这是我的场景。
data = [[25593.14, 39426.66],
[98411.00, 81869.75],
[71498.80, 62495.80],
[38068.00, 54774.00],
[58188.00, 43453.65],
[10220.00, 18465.25]]关于数据是我的数据模型。
x-cordinates指“工资”y-cordinates指“费用”
当我给出“工资”时,我想预测费用,也就是X坐标。
这是我的代码样本。请帮帮我。
from sklearn.linear_model import LinearRegression
data = [[25593.14, 39426.66],
[98411.00, 81869.75],
[71498.80, 62495.80],
[38068.00, 54774.00],
[58188.00, 43453.65],
[10220.00, 18465.25]]
salary=[]
expenses=[]
for dataset in data:
# import pdb; pdb.set_trace()
salary.append(dataset[0])
expenses.append(dataset[1])
model = LinearRegression()
model.fit(salary, expenses)
prediction = model.predict([10200.00])
print(prediction)我得到的错误:
ValueError: Expected 2D array, got 1D array instead:
array=[ 25593.14 98411. 71498.8 38068. 58188. 10220. ].
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。
发布于 2018-02-20 17:39:27
正如评论中所建议的那样,这样的东西将是处理您想要输入到scikit学习模型中的数据的更好方法。另一个例子是这里。
from sklearn.linear_model import LinearRegression
import numpy as np
data = np.array(
[[25593.14, 39426.66],
[98411.00, 81869.75],
[71498.80, 62495.80],
[38068.00, 54774.00],
[58188.00, 43453.65],
[10220.00, 18465.25]]
).T
salary = data[0].reshape(-1, 1)
expenses = data[1]
model = LinearRegression()
model.fit(salary, expenses)
prediction = model.predict(np.array([10200.00]).reshape(-1, 1))
print(prediction)发布于 2018-02-20 17:38:13
快速修复,替换这一行
model.fit(np.array([salary]), np.array([expenses]))X应该是一个数组,array([arr1,arr2,array3,...])相同的arr1和arr2是至少一个特性的数组,对于y,它应该是一个包含值array[label1,label2,label3,...]列表的数组。
https://stackoverflow.com/questions/48890866
复制相似问题