Bla*_*gon 1 python data-analysis feature-selection scikit-learn
我试图得到我的数据集的所有功能的分数.
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)
Run Code Online (Sandbox Code Playgroud)
在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_
Run Code Online (Sandbox Code Playgroud)
你的问题
直接使用时.fit_transform(features, target)
,不会存储选择器,而是返回所选功能.但是,分数是选择器的属性.为了得到它,你必须使用.fit(features, target)
.一旦安装了选择器,就可以通过调用获得所选功能selector.transform(features)
,如代码avobe中所示.
正如我在代码中评论的那样,您无需转换功能即可获得分数.只需配合它们就足够了.
链接