- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试自动特征工程和选择,为此,我使用了 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
的变换.
最佳答案
您有一个具有所有负值的功能:
df['exp(x005)*log(x000)']
返回
0 -3630.638503
1 -2212.931477
2 -4751.790753
3 -3754.508972
4 -3395.387438
...
501 -2022.382877
502 -1407.856591
503 -2998.638158
504 -1973.273347
505 -1267.482741
Name: exp(x005)*log(x000), Length: 506, dtype: float64
Input X must be non-negative
说明一切:
Pearson's chi square test (goodness of fit)不适用于负值。这是合乎逻辑的,因为卡方检验假设频率分布并且频率不能是负数。因此,
sklearn.feature_selection.chi2
断言输入是非负的。
[0, 1]
可能是相当安全的。 EdChum 建议的间隔。
sklearn.feature_selection.f_regression
计算方差分析 f 值 sklearn.feature_selection.mutual_info_classif
计算互信息 关于python-3.x - sklearn.feature_selection.SelectKBest 特征评分模块中的负数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64596532/
我正在使用 scikit learn 来训练分类模型。我的训练数据中既有离散特征也有连续特征。我想使用最大互信息进行特征选择。如果我有向量 x和标签 y并且前三个特征值是离散的,我可以像这样得到 MM
我使用 Scikit learn selectKbest 选择最佳特征,从 900 个特征中选择大约 500 个。如下,其中 d 是所有特征的数据框。 from sklearn.feature_sel
我想将特征选择的结果可视化为按降序排列的条形图。(仅前 10 个特征)我如何使用 matplotlib 来做到这一点?您可以在下面看到代码。 filename_train = 'C:\Users\x.
我试图通过将特征选择方法应用于我的数据集来找到最有值(value)的特征。我现在使用 SelectKBest 函数。我可以生成分值并根据需要对它们进行排序,但我不明白这个分值是如何计算的。我知道理论上
我在 sklearn 中使用 SelectKBest() 类进行特征选择。 SelectKBest() 可以将可调用的评分函数作为输入。在这种情况下,我想使用 mutual_info_regressi
在上课时,我被困在我认为必须是小问题的地方。我想用 SelectKBest 找出最重要的特征是什么(我将 k 从 2,4,6,8 改变) 我加载数据 data_dict = pickle.load(o
给定以下数据: import pandas as pd from sklearn.feature_selection import SelectKBest from sklearn.feature_s
我正在使用 SelectKBest()在 Sklearn 的 Pipeline()类将特征数量从 30 个减少到 5 个最佳特征。当我拟合分类器时,我会得到与特征选择不同的测试结果。但是我在我的代码中
我需要从数据集中为回归任务选择一些特征。但是数值来自不同的范围。 from sklearn.datasets import load_boston from sklearn.feature_selec
我想使用 SelectKBest 选择前 K 个特征并运行 GaussianNB: selection = SelectKBest(mutual_info_classif, k=300) data_t
我的问题是我应该首先对整个数据集执行 selectkbest sklearn 函数进行特征选择,然后将数据集划分为训练集和测试集,还是应该执行 selectkbest训练和测试数据集分区后?在第二个中
我正在尝试获取我的数据集的所有特征的分数。 file_data = numpy.genfromtxt(input_file) y = file_data[:,-1] X = file_data[:,0
我是 scikit-learn 和 python 的初学者,我使用 feature_selection 包中的 SelectKBest 尝试了这段看起来非常简单的代码。 train = pd.
我从 sklearn 实现了 SelectKBest,我想获得 K 个最佳列的名称,而不仅仅是每个列的值。 我需要做什么? 我的代码: X_new = SelectKBest(chi2, k=2).f
我正在尝试自动特征工程和选择,为此,我使用了 sklearn 中提供的波士顿房价数据集。 . from sklearn.datasets import load_boston import panda
我尝试在我的 SelectKBest 变量上使用 .fit(),一旦我的程序命中 skb.fit(X, y),我就会不断收到错误。不知道为什么。 我收到错误:fit % (self.score_fun
我有一个数据集,我尝试使用 SelectKBest 和 Chi2 获取特征重要性,但 SelectKBest 给出了分数特征为nan。 数据文件和代码文件位于 this链接 # Path to the
我正在尝试在多标签场景中将特征选择作为 scikit-learn 管道的一部分。我的目的是对于给定的 k 选择最佳的 K 个特征。 这可能很简单,但我不明白如何在这种情况下获取选定的特征索引。 在常规
我试图让 SelectKBest 示例的一个稍微修改的版本工作,但不断收到 ValueError("Unknown label type: %s"% repr(ys)) 这是我的代码: # Impor
我想做监督学习。 到目前为止,我知道对所有特征进行监督学习。 不过,我也想对 K 个最佳特征进行实验。 我阅读了文档,发现在 Scikit 中学习有 SelectKBest 方法。 不幸的是,在找到这
我是一名优秀的程序员,十分优秀!