mutual_info_classif#

sklearn.feature_selection.mutual_info_classif(X, y, *, discrete_features='auto', n_neighbors=3, copy=True, random_state=None, n_jobs=None)#

估计离散目标变量的互信息。

互信息(MI)[R50b872b699c4-1]_ 是两个随机变量之间的非负值,用于衡量变量之间的依赖关系。当且仅当两个随机变量独立时,互信息等于零,且值越高表示依赖性越强。

该函数依赖于基于熵估计的非参数方法,这些方法基于k近邻距离,如[R50b872b699c4-2]_和[R50b872b699c4-3]_中所述。这两种方法都基于最初在[R50b872b699c4-4]_中提出的思想。

它可以用于单变量特征选择,更多信息请参阅 用户指南

Parameters:
X{array-like, sparse matrix},形状为 (n_samples, n_features)

特征矩阵。

yarray-like,形状为 (n_samples,)

目标向量。

discrete_features‘auto’, bool 或 array-like, 默认=’auto’

如果是布尔值,则决定是否将所有特征视为离散或连续。如果是数组,则应为形状为 (n_features,) 的布尔掩码或离散特征的索引数组。如果是 ‘auto’,则对于密集的 X 赋值为 False,对于稀疏的 X 赋值为 True。

n_neighborsint, 默认=3

用于连续变量互信息估计的邻居数量,参见 [2][3]。较高的值可以减少估计的方差,但可能引入偏差。

copybool, 默认=True

是否复制给定的数据。如果设置为 False,则初始数据将被覆盖。

random_stateint, RandomState 实例或 None, 默认=None

确定用于向连续变量添加小噪声的随机数生成,以消除重复值。传递一个 int 以在多次函数调用中获得可重复的结果。参见 Glossary

n_jobsint, 默认=None

用于计算互信息的作业数量。并行化是在 X 的列上进行的。 None 表示 1,除非在 joblib.parallel_backend 上下文中。 -1 表示使用所有处理器。参见 Glossary 了解更多详情。

Added in version 1.5.

Returns:
mindarray, 形状为 (n_features,)

估计的每个特征与目标之间的互信息,单位为自然单位。

Notes

  1. 术语“离散特征”用于代替命名它们为“分类”,因为它更准确地描述了本质。例如,图像的像素强度是离散特征(但几乎不是分类的),如果你将它们标记为离散特征,你会得到更好的结果。还要注意,将连续变量视为离散变量,反之亦然,通常会给出不正确的结果,所以请注意这一点。

  2. 真正的互信息不能为负。如果其估计值为负,则替换为零。

References

[1]

互信息 维基百科。

[2]

A. Kraskov, H. Stogbauer 和 P. Grassberger, “Estimating mutual information”. Phys. Rev. E 69, 2004.

[3]

B. C. Ross “Mutual Information between Discrete and Continuous Data Sets”. PLoS ONE 9(2), 2014.

[4]

L. F. Kozachenko, N. N. Leonenko, “Sample Estimate of the Entropy of a Random Vector:, Probl. Peredachi Inf., 23:2 (1987), 9-16

Examples

>>> from sklearn.datasets import make_classification
>>> from sklearn.feature_selection import mutual_info_classif
>>> X, y = make_classification(
...     n_samples=100, n_features=10, n_informative=2, n_clusters_per_class=1,
...     shuffle=False, random_state=42
... )
>>> mutual_info_classif(X, y)
array([0.58..., 0.10..., 0.19..., 0.09... , 0.        ,
       0.     , 0.     , 0.     , 0.      , 0.        ])