1.本人python小白刚试了如下代码便出错了:
from sklearn.linear_model import LinearRegression
# 创建并拟合模型
model = LinearRegression()
X = [[6], [8], [10], [14], [18]]
y = [[7], [9], [13], [17.5], [18]]
model.fit(X, y)
print('预测12英寸匹萨价格:$%.2f' %
model.predict([12])[0])
2.根据错误提示
ValueError: Expected 2D array, got 1D array instead:
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.
可知这是因为我输入的一维数据不被认可,他期望是二维的数据,如果需要使用一维数据,要使用reshape(-1,1)或reshape(1,-1)
3.重点是reshape加在哪都不对,最后发现reshape是numpy库的一个函数必须先引入这个库,最终修改了一下,如下图,即可正确运行
from sklearn.linear_model import LinearRegression
import numpy as np //引入numpy库
# 创建并拟合模型
model = LinearRegression()
X = [[6], [8], [10], [14], [18]]
y = [[7], [9], [13], [17.5], [18]]
model.fit(X, y)
x_new=[12]
x_new = np.array(x_new).reshape(1, -1)
print('预测12英寸匹萨价格:$%.2f' %
model.predict(x_new)[0])
4.总结
- 引入numpy库
- 把要测试的一维数据x_new进行如下处理:
x_new=[12]
x_new = np.array(x_new).reshape(1, -1)