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

Creating a regression model that will predict price of a product

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

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,我尝试在一个数组中收集所有数量,在另一个数组中收集价格。例如: numpy 数组中所有 3 家公司的所有数量:

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_)

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

应该是

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

sklearn 线性模型寻找系数 A,以便 XA = Y。这里你的 train_qtytrain_prices 都是矩阵 1 x 9,所以你得到 A 一个 9 x 9 的矩阵。你必须转置你的输入。

另一种获取一维数组的方法是使用整形:

train_qty = np.array([[100,200,300,110,200,300,1000,1500,3700]]).reshape(-1,1)
train_prices = np.array([[1000,1800,300,110,200,300,1000,1500,3700]]).reshape(-1,1)