当我使用RFE来选择数据集中最重要的特征时,它返回了所有特征,而不是我指定的特征数量。
这里是简单的代码:
from sklearn.svm import SVC from sklearn.datasets import load_digits from sklearn.feature_selection import RFE import matplotlib.pyplot as plt new_X=np.array([[1,2,3,3],[1,2,4,4],[3,1,3,4],[3,1,4,5]]) new_Y=np.array([1,1,0,0]) svc = SVC(kernel="linear", C=1) rfe = RFE(estimator=svc, n_features_to_select=2, step=1) rfe.fit(new_X, new_Y) ranking = rfe.ranking_ len(ranking)
回答:
你看错了地方。
rfe.ranking_
总是会返回所有特征的排名。但在 ranking_
中,选中的特征值为1
打印 ranking_
看看:
ranking# Output: array([1, 1, 3, 2])
这意味着第一和第二个特征被选中。