Как рассчитать R-квадрат теста после удаления фиктивных столбцов, чтобы избежать мультиколлинеарности? - PullRequest
1 голос
/ 23 июня 2019

Итак, я хочу найти R-квадрат моего X_test, который включает в себя фиктивные столбцы.

Я пытался не отбрасывать фиктивные столбцы для X_test, а отбрасывать их для X_train (это было единственное решение, которое я мог придумать, но, очевидно, оно не работало).

Итак, X является матрицей и имеет некоторые категориальные переменные.После разделения теста на поезд я повернул X_train и X_test, чтобы получить фиктивные столбцы.

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

После создания X_train_dum и X_test_dum я подгоняю обучение к модели линейной регрессии.

Вот процесс:

X_train_dum = pd.get_dummies(X_train, 
                             columns=['day', 'month'], 
                             drop_first=True)
X_test_dum = pd.get_dummies(X_test,
                            columns=['day', 'month'],
                            drop_first=True)
lr = LinearRegression()
lr.fit(X_train_dum, y_train)

После установки поезда в lr я подумал, что было бы уместно найти lr.score(X_test_dum, y_test)

К сожалению, он возвращает: ValueError: shapes (130,28) and (27,) not aligned: 28 (dim 1) != 27 (dim 0)

Получается, что X_train_dum имеет 27 столбцов, а X_test_dum имеет 26 столбцов.Я не знаю, почему это происходит, когда у X_test и X_train было одинаковое количество столбцов.

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