运行 sklearn 线性回归,得到“样本数不一致的数组”错误

Posted

技术标签:

【中文标题】运行 sklearn 线性回归,得到“样本数不一致的数组”错误【英文标题】:Running sklearn linear regression, getting "arrays with inconsistent numbers of samples" error 【发布时间】:2017-04-06 16:40:28 【问题描述】:

我正在尝试在 sklearn 中运行一个简单的线性回归。我有一个包含两列“喜欢”和“出勤”的 Pandas 数据框,这两列都有 18 个样本。

lr = LinearRegression()
lr.fit(Likes,Attendance)

我收到以下错误:

C:\Anaconda3\lib\site-packages\sklearn\utils\validation.py:386: DeprecationWarning: Passing 1d arrays as data 在 0.17 中被弃用,并且会在 0.19 中引发 ValueError。如果您的数据具有单个特征,则使用 X.reshape(-1, 1) 或 X.reshape(1, -1) 如果它包含单个样本,则使用 X.reshape(1, -1) 重塑您的数据。 弃用警告)

...

ValueError:发现样本数不一致的数组:[1 18]

即使在我使用 Likes.reshape(-1, 1) 重新调整数据后,我还是遇到了同样的错误。

谁能帮忙?

【问题讨论】:

我查了一下,Likes 和 Attendance 的形状都是“(18,)” 【参考方案1】:

您的数据中只有一个特征,因此(如您发布的错误中所建议的那样)“重塑您的数据......使用 X.reshape(-1, 1)”。

lr = LinearRegression()
lr.fit(X=Likes.reshape(-1, 1), y=Attendance)

我看到你试过这个。我上面的代码不起作用吗?

【讨论】:

以上是关于运行 sklearn 线性回归,得到“样本数不一致的数组”错误的主要内容,如果未能解决你的问题,请参考以下文章

多项式回归的样本数不一致的输入变量

具有交叉验证的 Sklearn 线性回归返回 NA 准确度分数

sklearn学习笔记之简单线性回归

从 sklearn.linear_model 导入线性回归

线性回归系数如何存储在 Sklearn 管道中?

SKLearn 线性回归,但在开始之前设置某些系数