我的问题是,当我尝试拟合模型时出现此错误。我不知道是什么导致了此错误,但自变量的选择可能不正确。 这是错误
retrieve
这是我到目前为止构建的代码
ValueError: Found input variables with inconsistent numbers of samples: [104, 26]
我的excel文件的第一列包含自变量,第四列包含因变量。我还有另一条简单线性回归代码可以正常工作,但是当我尝试应用多重线性回归时,我只是更改了这一行,但我没有做错什么。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
# Import Excel File
data = pd.read_excel("C:\\Users\\AchourAh\\Desktop\\Multiple_Linear_Regression\\SP Level Reasons Excels\\SP00105485_PL22_AAB_05_09_2018_Reasons.xlsx",'Sheet1') #Import Excel file
# Replace null values of the whole dataset with 0
data1 = data.fillna(0)
print(data1)
# Extraction of the independent and dependent variable
X = data1.iloc[0:len(data1),[0,1,2,3]].values.reshape(-1, 1) #Extract the column of the COPCOR SP we are going to check its impact
Y = data1.iloc[0:len(data1),4].values.reshape(-1, 1) #Extract the column of the PAUS SP
print(X)
print(Y)
# Importing
from sklearn.linear_model import LinearRegression
from sklearn import model_selection
# Fitting a Linear Model
lm = LinearRegression() #create an lm object of LinearRegression Class
lm.fit(X, Y)
plt.scatter(X, Y, color = 'red')#plots scatter graph of COP COR against PAUS for values in X_train and y_train
plt.plot(X, lm.predict(X), color = 'blue')#plots the graph of predicted PAUS against COP COR.
plt.title('SP000905974')
plt.xlabel('COP COR Quantity')
plt.ylabel('PAUS Quantity')
plt.show()#Show the graph
请注意,我是这个的初学者。
答案 0 :(得分:1)
您的问题确实是X的重塑。
示例:
pd.DataFrame([[1,2],[3,4],[5,6]], columns = ["a", "b"]).values
是一个看起来像numpy的数组
array([[1, 2],
[3, 4],
[5, 6]], dtype=int64)
同时
pd.DataFrame([[1,2],[3,4],[5,6]], columns = ["a", "b"]).values.reshape(-1,1)
使行数加倍(因为两列被重塑为一列)
array([[1],
[2],
[3],
[4],
[5],
[6]], dtype=int64)
因此,在将四列重整为一列的情况下,X中的行比Y中的行多四倍,而lm.fit(X,Y)则需要X和Y中的行数相同。 / p>