我正在尝试获取我的数据集的所有特征的分数。
file_data = numpy.genfromtxt(input_file)
y = file_data[:,-1]
X = file_data[:,0:-1]
x_new = SelectKBest(chi2, k='all').fit_transform(X,y)
在 X 的第一行具有字符串格式的“特征名称”之前,但我收到“输入包含 NaN、无穷大或对于 dtype('float64') 来说太大的值”错误。因此,现在 X 仅包含数据,而 y 包含目标值 (1,-1)。
如何从 SelectKBest 中获取每个特征的分数(尝试使用单变量特征选择)?
谢谢
请您参考如下方法:
解决方案
你只需要做这样的事情。
file_data = numpy.genfromtxt(input_file)
y = file_data[:,-1]
X = file_data[:,0:-1]
selector = SelectKBest(chi2, k='all').fit(X,y)
x_new = selector.transform(X) # not needed to get the score
scores = selector.scores_
你的问题
当您直接使用 .fit_transform(features, target) 时,选择器 不会被存储,您将返回选择的特征。但是,分数是选择器 的一个属性。为了得到它,你必须使用.fit(features, target)。安装好选择器后,您可以通过调用selector.transform(features) 获取选定的功能,如您在代码中所见避免。
正如我在代码中评论的那样,您无需转换特征即可获得分数。只需安装它们就足够了。
链接
