我有一些公司销售相同产品的特定数量和价格的数据,请参考以下内容:
Company A:(qty) (price)100 1000200 1800300 2400Company B:(qty) (price)110 1000200 1770300 2390Company C:(qty) (price)1000 100001500 130003700 22000
我想创建一个模型,根据这些数据大致预测特定数量产品的价格。我使用的是sickitlearn,并且我尝试将所有数量收集在一个数组中,价格收集在另一个数组中。例如,所有三家公司的数量放在一个numpy数组中:
import numpy as nptrain_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_)
我得到一个全是零的矩阵。您能解释我做错了什么以及正确的做法吗?
回答:
应该这样做
reg.fit(train_qty.T, train_prices.T)reg.coef_ # 0.85178458
sklearn的线性模型寻找系数A
,以满足XA = Y
。这里你的train_qty
和train_prices
都是1 x 9的矩阵,因此你得到的A
是一个9 x 9的矩阵。你需要转置你的输入数据。