sklearn.feature_selection.SelectKBest feautre评分模块中的负数问题

问题描述

我正在尝试进行自动要素工程设计和选择,因此,我使用了sklearn中可用的波士顿房价数据集。

from sklearn.datasets import load_boston
import pandas as pd
data = load_boston()
x = data.data
y= data.target
y = pd.DataFrame(y)

然后我在数据集上实现了特征转换库。

import autofeat as af
clf = af.AutoFeatRegressor()
df = clf.fit_transform(x,y)
df = pd.DataFrame(df)

此后,我实现了另一个功能来查找每个特征相对于标签的得分。

from sklearn.feature_selection import SelectKBest,chi2
X_new = SelectKBest(chi2,k=20)
X_new_done = X_new.fit_transform(df,y)
dfscores = pd.DataFrame(X_new.scores_)
dfcolumns = pd.DataFrame(X_new_done.columns)
featureScores = pd.concat([dfcolumns,dfscores],axis=1)
featureScores.columns = ['Specs','Score']
print(featureScores.nlargest(10,'Score'))

这给出了如下错误。

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-16-b0fa1556bdef> in <module>()
      1 from sklearn.feature_selection import SelectKBest,chi2
      2 X_new = SelectKBest(chi2,k=20)
----> 3 X_new_done = X_new.fit_transform(df,y)
      4 dfscores = pd.DataFrame(X_new.scores_)
      5 dfcolumns = pd.DataFrame(X_new_done.columns)

ValueError: Input X must be non-negative.

我的数据集中有几个负数。那我该如何克服这个问题呢?

注意:-df现在具有y的变换,它仅有x的变换。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)