我正在尝试对具有SelectKBest和chi2(SelectKBest(chi2,k = 5))的分类变量应用特征选择。但是获取值错误,该字符串无法转换为浮点数。我知道解决方法是使用pd.get_dummies()将类别变量转换为虚拟变量。但是为什么会这样呢?卡方统计检验旨在对两个类别变量进行双变量分析,那么为什么它不接受类别变量?
最佳答案
在这种情况下,卡方度量特征值(在X
中)和类别(在y
中)之间的对应关系。为此,它需要目标变量的类频率以及每个类的特征值之和。然后,它将每个类别的值的“理想”分布(即X
值的总和与类别频率相乘)与实际分布(即每个类别的实际值之和)进行比较,以得出卡方值。有关详细信息,请参见here。
关于python - 与chi2的SelectKBest提供ValueError:无法将字符串转换为浮点型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57451605/