【发布时间】:2020-05-01 13:43:41
【问题描述】:
我正在尝试使用简单的线性回归(只有一个自变量)来预测汽车价格(通过机器学习)。变量是“每加仑公路里程”
0 27
1 27
2 26
3 30
4 22
..
200 28
201 25
202 23
203 27
204 25
Name: highway-mpg, Length: 205, dtype: int64
和“价格”:
0 13495.0
1 16500.0
2 16500.0
3 13950.0
4 17450.0
...
200 16845.0
201 19045.0
202 21485.0
203 22470.0
204 22625.0
Name: price, Length: 205, dtype: float64
使用以下代码:
from sklearn.linear_model import LinearRegression
x = df["highway-mpg"]
y = df["price"]
lm = LinearRegression()
lm.fit([x],[y])
Yhat = lm.predict([x])
print(Yhat)
print(lm.intercept_)
print(lm.coef_)
但是,截距和斜率系数打印命令给了我以下输出:
[[0. 0. 0. ... 0. 0. 0.]
[0. 0. 0. ... 0. 0. 0.]
[0. 0. 0. ... 0. 0. 0.]
...
[0. 0. 0. ... 0. 0. 0.]
[0. 0. 0. ... 0. 0. 0.]
[0. 0. 0. ... 0. 0. 0.]]
为什么不打印截距和斜率系数? “Yhat”打印命令确实正确打印出数组中的预测值,但不知何故,其他打印命令并没有打印出我想要的输出......
【问题讨论】:
-
只是想知道,为什么要在
x和y周围加上额外的方括号? -
如果同时去掉
fit和predict行中的括号会发生什么? -
@iz_ 它给了我“ValueError: Expected 2D array, got 1D array instead:”错误,这就是我使用 [x] 方法的原因
-
你的所作所为对我来说似乎很奇怪。你能发布
x和y的样子吗?
标签: python machine-learning scikit-learn