Результаты регрессии с набором тестовых данных - PullRequest
0 голосов
/ 26 сентября 2018

Моя проблема в том, что я применяю простую линейную регрессию к своим данным: когда я разделяю данные для обучения и тестирования данных, я не нахожу значимой модели, когда плохое значение p и r возводят в квадрат и корректируют r возводят в квадрат результаты, покаэто хорошие результаты в данных поезда.Вот код для дополнительных объяснений:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import statsmodels.api as sm
from scipy import stats
data = pd.read_excel ("C:\\Users\\AchourAh\\Desktop\\PL14_IPC_03_09_2018_SP_Level.xlsx",'Sheet1') #Import Excel file
data1 = data.fillna(0) #Replace null values of the whole dataset with 0
print(data1)
X = data1.iloc[0:len(data1),5].values.reshape(-1, 1) #Extract the column of the COPCOR SP we are going to check its impact
Y = data1.iloc[0:len(data1),6].values.reshape(-1, 1) #Extract the column of the PAUS SP
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size =0.3,  random_state = 0)
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train, Y_train)
plt.scatter(X_train, Y_train, color = 'red')
plt.plot(X_train, regressor.predict(X_train), color = 'blue')
plt.title('SP00114585')
plt.xlabel('COP COR Quantity')
plt.ylabel('PAUS Quantity')
plt.show()
plt.scatter(X_test, Y_test, color = 'red')
plt.plot(X_train, regressor.predict(X_train), color = 'blue')
plt.title('SP00114585')
plt.xlabel('COP COR Quantity')
plt.ylabel('PAUS Quantity')
plt.show()
X2 = sm.add_constant(X_train)
est = sm.OLS(Y_train, X2)
est2 = est.fit()
print(est2.summary())
X3 = sm.add_constant(X_test)
est3 = sm.OLS(Y_test, X3)
est4 = est3.fit()
print(est4.summary())

В конце, при попытке отобразить статистические результаты, я всегда нахожу хорошие результаты в данных поезда, но не в данных испытаний.Возможно, что-то не так в моем коде.Чтобы заметить, я новичок в Python

1 Ответ

0 голосов
/ 26 сентября 2018

Попробуйте запустить эту модель несколько раз, без указания random_state в train_test_split или изменения параметра test_size.

Т.е.

X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size =0.2)

На данный момент, каждый раз, когда вы запускаете модель, вы делаете то же самое разделение данных, так что этовозможно, что вы надеваете модель только из-за раскола.

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