为了账号安全,请及时绑定邮箱和手机立即绑定

在Python中将具有离散特征的索引的数组传递给Mutual_info_classif

在Python中将具有离散特征的索引的数组传递给Mutual_info_classif

白猪掌柜的 2021-03-31 14:11:38
我正在使用来自sklearn.feature_selection.mutual_info_classif的MI来计算4个连续变量(X矩阵)和y(目标类)之间的MIX:prop_tenure prop_12m    prop_6m prop_3m    0.04        0.04        0.06    0.08    0           0           0       0    0           0           0       0    0.06        0.06        0.1     0    0.38        0.38        0.25    0    0.61        0.61        0.66    0.61    0.01        0.01        0.02    0.02    0.1         0.1         0.12    0.16    0.04        0.04        0.04    0.09    0.22        0.22        0.22    0.22    0.72        0.72        0.73    0.72    0.39        0.39        0.45    0.64**y**status001100010001所以我的X都是连续的,而y是离散的。函数中有一个参数,我可以将离散特征的索引传递给该参数:sklearn.feature_selection.mutual_info_classif(X, y, discrete_features=’auto’, n_neighbors=3, copy=True, random_state=None)我正在做如下:print(mutual_info_classif(X,y,discrete_features = [3],n_neighbors = 20))[0.12178862 0.12968448 0.15483147 0.14721018]尽管这没有给出错误,但是我不确定是否要传递正确的索引来将y变量标识为离散变量并将其他变量标识为连续变量。有人可以澄清一下我是否错了吗?
查看完整描述

2 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

该函数mutual_info_classif已经假定您的目标y是离散的。因此,无需传递任何索引,以下内容就足够了

mutual_info_classif(X, y)

请注意,默认值会discrete_features=’auto’自动计算出,因为所有X数组都是密集数组,所以所有功能都是连续的。

同样,您的示例是错误的,因为进纸 discrete_features=[3]会导致算法将第四要素(prop_3m)视为离散要素。


查看完整回答
反对 回复 2021-04-13
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

参数discrete_features用于指定您是否希望将特征(X)视为离散的或密集的(连续的)。默认情况下,Y以离散方式传递。而且,由于您正在找到连续随机变量的MI索引,因此应将其设置为“自动”以获得正确的结果。


查看完整回答
反对 回复 2021-04-13
  • 2 回答
  • 0 关注
  • 528 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信