将具有离散特征索引的数组传递给 python 中的 mutual_info_classif
passing an array with index of discrete feature to mutual_info_classif in python
我正在使用 sklearn.feature_selection.mutual_info_classif 的 MI 来计算 4 个连续变量(X 矩阵)和 y(目标 class)
之间的 MI
X:
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**
status
0
0
1
1
0
0
0
1
0
0
0
1
所以我的 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 变量标识为离散变量,将其他变量标识为连续变量。
如果我错了,有人可以澄清一下吗?
函数 mutual_info_classif
已经假定您的目标 y
是离散的。所以不需要传递任何索引,下面就够了
mutual_info_classif(X, y)
请注意,默认值 discrete_features=’auto’
会自动计算出来,因为 X
是一个密集数组,所以您的所有特征都是连续的。
此外,您的示例是错误的,因为输入 discrete_features=[3]
会导致算法将第 4 个特征 (prop_3m) 视为离散特征。
参数 discrete_features 用于指定您是否希望特征 (X) 被视为离散或密集(连续)。默认情况下,Y 作为离散传递。并且由于您要查找连续随机变量的 MI 索引,因此应将其设置为 'auto' 以获得正确的结果。
我正在使用 sklearn.feature_selection.mutual_info_classif 的 MI 来计算 4 个连续变量(X 矩阵)和 y(目标 class)
之间的 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**
status
0
0
1
1
0
0
0
1
0
0
0
1
所以我的 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 变量标识为离散变量,将其他变量标识为连续变量。
如果我错了,有人可以澄清一下吗?
函数 mutual_info_classif
已经假定您的目标 y
是离散的。所以不需要传递任何索引,下面就够了
mutual_info_classif(X, y)
请注意,默认值 discrete_features=’auto’
会自动计算出来,因为 X
是一个密集数组,所以您的所有特征都是连续的。
此外,您的示例是错误的,因为输入 discrete_features=[3]
会导致算法将第 4 个特征 (prop_3m) 视为离散特征。
参数 discrete_features 用于指定您是否希望特征 (X) 被视为离散或密集(连续)。默认情况下,Y 作为离散传递。并且由于您要查找连续随机变量的 MI 索引,因此应将其设置为 'auto' 以获得正确的结果。