创建一个可以预测产品价格的回归模型

时间:2018-06-06 22:34:36

标签: numpy machine-learning scikit-learn linear-regression data-science

我有以某些价格销售一定数量的相同产品的公司的数据,请参阅以下内容:

Company A:
(qty)     (price)
100        1000
200        1800
300        2400

Company B:
(qty)     (price)
110       1000
200       1770
300       2390

Company C:
(qty)     (price)
1000       10000
1500       13000
3700       22000

我想创建一个模型,根据数据粗略预测一定数量产品的价格。我正在使用sickitlearn,我尝试在一个阵列中收集所有数量,在另一个阵列中收集价格。例如: 所有3家公司的数量均为numpy数组:

import numpy as np
train_qty = np.array([[100,200,300,110,200,300,1000,1500,3700]])

价格:

train_prices = np.array([[1000,1800,300,110,200,300,1000,1500,3700]])

我试过了:

from sklearn import linear_model 
reg = linear.model.LinearRegression()
reg.fit(train_qty,train_prices)

然而,当我这样做时:

print(reg.coef_)

我得到一个全零的矩阵。你能解释一下我做错了什么以及正确的做法吗?

2 个答案:

答案 0 :(得分:2)

应该是

reg.fit(train_qty.T, train_prices.T)
reg.coef_  # 0.85178458

sklearn线性模型查找coefs A以便XA = Y。在这里,train_qtytrain_prices都是矩阵1 x 9,因此您获得A矩阵9 x 9.您必须转置输入。

答案 1 :(得分:0)

获得一维数组的另一个选择是使用重塑:

Bands