Линейная регрессия - неверный вывод - PullRequest
1 голос
/ 06 февраля 2020

У меня есть база данных из двух столбцов ["A", "B"], где "A" является входной переменной, а "B" является целевой переменной. Все значения в целых числах.

Мой код:

X.shape
>>(2540, 1)

y.shape
>>(2540, 1)

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
scaler.fit(X)
X = scaler.transform(X)

import numpy as np
from sklearn.model_selection import train_test_split
np.random.rand(4)
X_train, X_test, y_train, y_test  = train_test_split(X,y,test_size = 0.2)

Линейная регрессия от Sklearn

regr = LinearRegression(fit_intercept=True)
regr.fit(X_train, y_train)  

print ('Coefficients: ', regr.coef_)
print ('Intercept: ',regr.intercept_)          
>>Coefficients:  [[43.95569425]]
>>Intercept:  [100.68681298]

Я получил значение R2 0,93

последняя запись в X_train - 3687, а соответствующее значение y_train - 212.220001

Я использовал последнюю запись для предсказания, как

regr.predict([[3687]] )
>>array([161825.22279211])

Я не понимаю, что происходит, я исключил предсказанное значение будет около 212.

Но, прогнозируемое значение составляет 161825

Не могли бы вы объяснить, в чем причина, спасибо

1 Ответ

2 голосов
/ 06 февраля 2020

возможно, вам нужно передать данные теста через скалер перед подачей в регрессию. попробуйте reg.predict(scaler.transform([3687])

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