我是机器学习领域的新手,在学习回归中,我有一些疑问
1:在练习sklearn学习回归模型预测方法时得到以下误差。
码:
sklearn.linear_model.LinearRegression.predict(25)
错误:“ValueError:预期的2D数组,改为使用标量数组:array = 25.如果数据具有单个要素或array.reshape(1,-1),则使用array.reshape(-1,1)重新整形数据它包含一个样本。“
我需要通过二维阵列吗?在sklearn文档页面上检查任何未找到任何版本更新的东西。 **在Kaggle上运行我的代码 https://www.kaggle.com/aman9d/bikesharingdemand-upx/
2:数据集的索引是否会影响模型的分数(权重)?
首先,您应该在使用时放置代码:
# import, instantiate, fit
from sklearn.linear_model import LinearRegression
linreg = LinearRegression()
linreg.fit(X, y)
# use the predict method
linreg.predict(25)
因为你在问题中发布的内容不能正确执行,所以predict
方法对于类LinearRegression
来说不是静态的。
当您拟合模型时,第一步是识别哪种数据将是输入,在您的情况下将类似于X
,这意味着如果您将具有不同形状的X
的内容传递给模型,则会引发错误。
在您的示例中,X
似乎是一个只有1列的pd.DataFrame()实例,这应该可以替换为2维数组,表示按功能数量表示的示例数量,因此如果您尝试:
linreg.predict([[25]])
应该管用。
例如,如果您尝试使用超过1个特征列的回归,让我们说temp
和humidity
,您的输入将如下所示:
linreg.predict([[25, 56]])
我希望这会对您有所帮助,并始终牢记哪些是您数据的形状。
X:类似数组或稀疏矩阵,形状(n_samples,n_features)