【发布时间】:2017-09-14 17:15:43
【问题描述】:
我在尝试使用特征选择数据集进行预测时遇到的一个问题是,一旦您选择了某些特征,如果您要在测试数据集上进行预测,测试数据集的特征将不会对齐,因为训练由于特征选择,数据集将具有较少的特征。您如何正确实施特征选择,以使测试数据集具有与训练数据集相同的特征?
例子:
from sklearn.datasets import load_iris
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
iris = load_iris()
X, y = iris.data, iris.target
X.shape
(150, 4)
X_new = SelectKBest(chi2, k=2).fit_transform(X, y)
X_new.shape
(150, 2)
【问题讨论】:
-
你也必须
transform你的测试集......并且不要使用fit_transform,而只使用transform。 -
@juanpa.arrivillaga 我唯一关心的是在测试数据集上实现特征选择时,是否有可能获得与训练数据集不同的特征集?
-
出于这个原因,您不对测试数据进行特征选择。
标签: python machine-learning scikit-learn anomaly-detection