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
正在选择 2nd 和 3rd 中的元素每组,给出
[[ 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
)
我使用 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
正在选择 2nd 和 3rd 中的元素每组,给出
[[ 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
)