Итак, я хочу найти 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
было одинаковое количество столбцов.