Создание регрессионной модели, которая будет прогнозировать цену товара - PullRequest
0 голосов
/ 07 июня 2018

У меня есть данные о компаниях, продающих определенное количество одного и того же продукта по определенным ценам, см. Ниже:

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 голосов
/ 07 июня 2018

Другой вариант для получения одномерных массивов - использовать изменение формы:

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)
0 голосов
/ 07 июня 2018

Это должно быть

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. Вы должны транспонировать свои входные данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...