SelectKBest with chi2 给出 ValueError: could not convert string to float

Posted

技术标签:

【中文标题】SelectKBest with chi2 给出 ValueError: could not convert string to float【英文标题】:SelectKBest with chi2 gives ValueError: could not convert string to float 【发布时间】:2019-12-18 11:13:13 【问题描述】:

我正在尝试使用 SelectKBest 和 chi2 (SelectKBest(chi2, k=5)) 对分类变量应用特征选择。但是出现字符串无法转换为浮点数的值错误。我知道解决方法是使用 pd.get_dummies() 将分类变量转换为虚拟变量。但为什么会这样呢?卡方统计检验是对两个分类变量进行双变量分析,那为什么不接受分类变量呢?

【问题讨论】:

【参考方案1】:

在这种情况下,卡方测量特征值(X)和类(y)之间的对应关系。为此,它需要来自目标变量的类频率和每个类的特征值总和。然后,它将每个类的值的这种“理想”分布(即X 值的总和乘以类频率)与实际分布(即每个类的实际值的总和)进行比较,以获得您的卡方值。详情请见here。

【讨论】:

以上是关于SelectKBest with chi2 给出 ValueError: could not convert string to float的主要内容,如果未能解决你的问题,请参考以下文章

SelectKBest 将分数作为 nan 值

从 selectKbest 中获取特征名称

Sklearn Chi2 用于特征选择

特征选择(即 chi2 方法)产生的 p 值是啥意思? [关闭]

06 决策树 - 案例一 - 鸢尾花数据分类、卡方检验

使用(SelectKBestSelectPercentile)卡方检验法(chi2)方差分析法(f_classifANOVA)进行特征筛选(feature selection)详解及实战