【问题标题】:SelectKBest with chi2 gives ValueError: could not convert string to floatSelectKBest with chi2 给出 ValueError: could not convert string to float
【发布时间】:2019-12-18 11:13:13
【问题描述】:
我正在尝试使用 SelectKBest 和 chi2 (SelectKBest(chi2, k=5)) 对分类变量应用特征选择。但是出现字符串无法转换为浮点数的值错误。我知道解决方法是使用 pd.get_dummies() 将分类变量转换为虚拟变量。但为什么会这样呢?卡方统计检验是对两个分类变量进行双变量分析,那为什么不接受分类变量呢?
【问题讨论】:
标签:
python
scikit-learn
feature-selection
【解决方案1】:
在这种情况下,卡方测量特征值(X)和类(y)之间的对应关系。为此,它需要来自目标变量的类频率和每个类的特征值总和。然后,它将每个类的值的这种“理想”分布(即X 值的总和乘以类频率)与实际分布(即每个类的实际值的总和)进行比较,以获得您的卡方值。详情请见here。