如何在分类特征上应用互信息

时间:2018-11-25 17:34:41

标签: python scikit-learn feature-detection

我正在使用Scikit-learn来训练分类模型。我的训练数据同时具有离散和连续特征。

我想使用mutual information进行特征选择。

功能1,2和3是离散的。为此,我尝试下面的代码:

mutual_info_classif(x, y, discrete_features=[1, 2, 3])

但是它不起作用,它给了我错误:

 ValueError: could not convert string to float: 'INT'

3 个答案:

答案 0 :(得分:0)

带有mutual information classifier的简单示例:

time

答案 1 :(得分:0)

。“离散”和“分类”之间有区别 在这种情况下,函数要求数据为数字。如果您具有序数功能,则可以使用标签编码器。否则,您将不得不为名义特征使用一种热编码。您可以为此目的使用pd.get_dummies。

答案 2 :(得分:0)

mutual_info_classif只能接受数字数据。您需要对分类特征进行标签编码,然后运行相同的代码。

x1=x.apply(LabelEncoder().fit_transform)

然后运行与您运行的完全相同的代码。

mutual_info_classif(x1, y, discrete_features=[1, 2, 3])