官網:sklearn.feature_selection.mutual_info_classif
函數
sklearn.feature_selection.mutual_info_classif(X, y, discrete_features='auto', n_neighbors=3, copy=True, random_state=None)[source]
估計離散目標變量的互信息。
兩個隨機變量之間的互信息(MI)[1]是非負值,用於衡量變量之間的依存關係。當且僅當兩個隨機變量是獨立的,並且等於較高的值意味着較高的依賴性時,它等於零。
該函數依賴於非參數方法,該方法基於[ k]最近鄰居距離的熵估計,如[2]和[3]中所述。兩種方法都基於[4]中最初提出的想法。
參數說明
Parameters
----------
X: array_like or sparse matrix, shape (n_samples, n_features)
Feature matrix.
特徵矩陣。
y:array_like, shape (n_samples,)
Target vector.
標籤向量。
discrete_features:{‘auto’, bool, array_like}, default=‘auto’
如果爲'auto',則將其分配給False(表示稠密)X,將其分配給True(表示稀疏)X。
如果是bool,則確定是考慮所有特徵是離散特徵還是連續特徵。
如果是數組,則它應該是具有形狀(n_features,)的布爾蒙版或具有離散特徵索引的數組。
n_neighbors:int, default=3
用於連續變量的MI估計的鄰居數;
較高的值會減少估計的方差,但可能會帶來偏差。
copy:bool, default=True
是否複製給定的數據。如果設置爲False,則初始數據將被覆蓋。
random_state:int, RandomState instance or None, optional, default None
確定隨機數生成,以將小噪聲添加到連續變量中以刪除重複值。
在多個函數調用之間傳遞int以獲得可重複的結果。
Returns
-------
mi:ndarray, shape (n_features,)
每個功能和目標之間的估計相互信息。
筆記
-
使用術語“離散特徵”而不是將它們命名爲“分類”,因爲它可以更準確地描述要素。例如,圖像的像素強度是離散的特徵(但很難分類),如果將其標記爲這樣,您將獲得更好的結果。還要注意,將連續變量視爲離散變量,反之亦然通常會產生錯誤的結果,因此請注意這一點。
-
真正的共同信息不能是負面的。如果其估計結果爲負,則將其替換爲零。