所以我想找到我的 R 平方,X_test
其中包括虚拟列。
我尝试在删除虚拟列的X_test
同时不删除它们X_train
(这是我能想到的唯一解决方案,但显然它不起作用)。
所以 X 是一个矩阵并且有一些分类变量。火车测试拆分后,我转身X_train
并X_test
有虚拟柱。
为了避免多重共线性,我删除了每个虚拟列的第一列。
创建X_train_dum
and后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)
把 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
。