1

所以我想找到我的 R 平方,X_test其中包括虚拟列。

我尝试在删除虚拟列的X_test同时不删除它们X_train(这是我能想到的唯一解决方案,但显然它不起作用)。

所以 X 是一个矩阵并且有一些分类变量。火车测试拆分后,我转身X_trainX_test有虚拟柱。

为了避免多重共线性,我删除了每个虚拟列的第一列。

创建X_train_dumand后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

4

0 回答 0