我在 kaggle 上做泰坦尼克号练习,有一个分类 Cabin 属性,它有很多不同的字符串:C41、C11、B20 等(大约 100 个)。
为了能够训练我的模型,我将其转换为数字属性(使用 pandas get_dummies())。所以最后我得到了100多个属性。
然而,在测试数据集上,小屋更少,所以我最终会得到更少的属性。
我做了这样的事情来使它们相等(创建训练集中的列并删除那些不在训练集中的列):
for column in X.columns:
if column not in X_test.columns:
X_test[column] = 0
for column in X_test.columns:
if column not in X.columns:
X_test.drop([column], axis=1, inplace=True)
但我知道这不是一件好事。那么我还应该如何处理呢?
我尝试完全移除机舱列,但我的模型在该列的测试数据上表现更好。