Линейная регрессия - прогноз ŷ - PullRequest
0 голосов
/ 10 ноября 2018

Я пытаюсь построить точечный график значений фактических продаж (у) и прогнозируемых продаж (ŷ).

Я импортировал файл CSV, и в настоящее время у меня есть коды для модели линейной регрессии:

result = smf.ols('sales ~ discount + holiday + product', data=data).fit()
print(result.summary())

Поскольку у меня есть только фактические значения продаж, как мне найти прогнозируемые значения продаж (ŷ) для построения графика рассеяния? Я попытался исследовать и нашел lm.predict() и result.predict(). Есть ли разница? lm = LinearRegression() Заранее спасибо!

1 Ответ

0 голосов
/ 10 ноября 2018

Без данных трудно помочь, но я думаю, у вас есть X и y из набора данных, потому что вы хотите выполнить линейную регрессию. Вы можете разделить данные на обучающие и тестовые наборы, используя scikit-learn:

from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 1/3)

Тогда вам нужно подогнать линейную регрессию к тренировочному набору:

from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train, y_train)

, а затем прогнозировать результаты тестового набора:

y_pred = regressor.predict(X_test)

Наконец, вы можете отобразить результаты теста или тренировки:

# Visualising the Training set results
plt.scatter(X_train, y_train, color = 'red')
plt.plot(X_train, regressor.predict(X_train), color = 'blue')
plt.title('Discount vs Sales (Training set)')
plt.xlabel('Discount percentage')
plt.ylabel('Sales')
plt.show()

# Visualising the Test set results
plt.scatter(X_test, y_test, color = 'red')
plt.plot(X_train, regressor.predict(X_train), color = 'blue')
plt.title('Discount vs Sales (Test set)')
plt.xlabel('Discount percentage')
plt.ylabel('Sales')
plt.show()

(В этом сценарии мы хотим предсказать, сколько будет объем продаж, если мы установим конкретное значение, например, процент скидки). Если у вас есть более одного X параметра, все будет сложнее, и вам нужно будет использовать фиктивные переменные, выполнить статистический анализ и т. Д.

...