我有两个数据集,一个用于训练,另一个用于测试:
- 训练数据的形状为
X_train.shape = (5000, 30)
和y_train.shape = (5000, 1)
- 测试数据的形状仅为
X_test.shape = (5000, 30)
在训练数据中,我应用了特征选择(SelectKBest()
),结果得到了新的形状(5000, 10)
。
问题出现在测试数据上:测试数据没有输出,因此我无法应用SelectKBest()
,因为它需要y_test
。鉴于训练数据的新形状和新特征,我该如何重塑测试数据呢?
回答:
很容易过度思考sklearn的变换器。在评论中你问到
我可以使用get_support(True)来获取索引值…
那太麻烦了!试试看
best=SelectKBest(*args).fit(X_train,y_train)new_train=best.transform(X_train)new_test=best.transform(X_test)
就像你使用tfidftransformer或standardscaler那样