Python,SelectKBest 不起作用

Python, SelectKBest doesn't work

我使用 SelectKBest 到 select 我的数据集中最重要的特征,但是 X_new 的长度与 X 的长度相同。

这是我的简单代码:

from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
from sklearn.feature_selection import mutual_info_classif
X=[[1,4,3,5],[4,5,4,5],[6,3,8,3],[6,3,10,7]]
Y=[1,1,2,2]
X_new = SelectKBest(k=2).fit_transform(X, Y)
len(X_new)

这是想要的结果。 SelectKBest(k=2) 根据 Y 中提供的值,从 X 中的每个集合中选取最好的 2 个特征。

在为最后 2 个值提供两倍的值后,SelectKBest 正在选择 2nd3rd 中的元素每组,给出

[[ 4  3]
 [ 5  4]
 [ 3  8]
 [ 3 10]]

这正是您应该得到的:)。结果数组的长度为 4(与 X 相同),因为它从每个集合中选取前 2 个元素。 SelectKBest 应该生成一个新数组 Number_of_sets_in_input_array * K。在你的情况下它是 4*2(因为 X 是一个 4*4 数组,你选择了 k=2