我正在处理kaggle的房价竞争。我有一个数据准备函数,它使用递归特征消除(RFE)进行特征选择,如下所示:
rfe = RFE(estimator=ElasticNet(), n_features_to_select=10)
X_selected = rfe.fit_transform(X, y)
X = pd.DataFrame(X_selected)
其中X, y = dataset.iloc[:,:-1], dataset.iloc[:,-1:]
当我使用训练数据集时,它可以正常工作,但当我使用测试数据集时,它不能正常工作,因为它没有y
变量
我的问题是,如何选择与使用培训数据集时相同的功能
我在使用TruncatedSVD
进行降维时也有同样的问题:
svd = TruncatedSVD(n_components=30)
X_trans = svd.fit_transform(X)
X = pd.DataFrame(X_trans)
其中,我有一个集合X(train)和一个集合datasetest(test),我希望选择相同的特性
^{} 有一个
transform
方法,因此您可以执行类似的操作(在将选择器装配到培训数据之后):如果我理解正确,您的问题是您无法对测试集执行
fit_transform
,因为您没有y变量您可以访问rfe.support,它返回所选的功能
rfe.support
包含一个[True False... True]
掩码,其中True
表示已选择该功能你可以在scikit documentation中阅读更多内容
相关问题 更多 >
编程相关推荐