我有以某些价格销售一定数量的相同产品的公司的数据,请参阅以下内容:
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_)
我得到一个全零的矩阵。你能解释一下我做错了什么以及正确的做法吗?
答案 0 :(得分:2)
应该是
reg.fit(train_qty.T, train_prices.T)
reg.coef_ # 0.85178458
sklearn线性模型查找coefs A
以便XA = Y
。在这里,train_qty
和train_prices
都是矩阵1 x 9,因此您获得A
矩阵9 x 9.您必须转置输入。
答案 1 :(得分:0)
获得一维数组的另一个选择是使用重塑:
Bands