我正在使用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'
答案 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])