Я работаю с набором данных размером около 400 000 x 250. У меня проблема с моделью, которая дает очень хороший показатель R ^ 2 при тестировании ее на тренировочном наборе, но крайне плохо при использовании на тестовом наборе.Первоначально это звучит как переоснащение.Но данные разбиты на произвольно обучающие / тестовые наборы и набор данных у меня довольно большой, поэтому я чувствую, что должно быть что-то еще.Любые предложения?
Разделение набора данных на тренировочный набор и тестовый набор
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(df.drop(['SalePrice'],
axis=1), df.SalePrice, test_size = 0.3)
Оценка линейной регрессии Склеарна
from sklearn import linear_model
linReg = linear_model.LinearRegression() # Create linear regression object
linReg.fit(X_train, y_train) # Train the model using the training sets
# Predict from training set
y_train_linreg = linReg.predict(X_train)
# Predict from test set
y_pred_linreg = linReg.predict(X_test)
Метрический расчет
from sklearn import metrics
metrics.r2_score(y_train, y_train_linreg)
metrics.r2_score(y_test, y_pred_linreg)
Оценка R ^ 2 при тестировании на тренировочном наборе: 0,64
Оценка R ^ 2 при тестировании на испытательном наборе: -10 ^ 23 (приблизительно)