sklearnmutual_info_classif 根据特征顺序返回不同的值

问题描述

我注意到 sklearn 的mutual_info_classif 函数中的行为与我在互信息目标中的预期不一致。

给定一组列 ['A','B','C'] 和一个因变量 y,计算的互信息可以在所有特征和 y(单个标量)或单个特征和 y(标量列表)。基于此,我不确定 sklearn 返回给我的值是什么,因为值会随着特征的排序而变化,也会随着输入的特征数量而变化。

  1. sklearn 给出的互信息值(在特征和因变量之间)随着列的排序而变化。 例如,以下查询给出不同的输出。
feature_scores = mutual_info_classif(X[['A','C']],y,random_state=0)
feature_scores

array([0.,0.13,0.045])
feature_scores = mutual_info_classif(X[['A','C','B']],0.017,0.14]
  1. 另一个意想不到的行为是改变特征集会改变互信息值。
feature_scores = mutual_info_classif(X[['A',0.14])
feature_scores = mutual_info_classif(X[['A',0.045])

谁能向我解释这种行为以及为什么这是正确的?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)