sklearn.metricsでNMIを計算する.
NMIは正規化相互情報量で2つのデータ群の分布の一致度を見ることができる. (自分が見たのはクラスタリングの評価)
使い方は公式から以下.
from sklearn.metrics.cluster import normalized_mutual_info_score A = [0, 0, 1, 1] B = [0, 0, 1, 1] normalized_mutual_info_score(A,B)
normalized_mutual_info_scoreの引数は,
- labels_true : ラベル列
- labels_pred : もう一つのラベル列
- average_method : 平均をどうやって計算するのかを指定
average_methodは算術平均,幾何平均,最大最小を選べる
計算式とコードは以下
- 算術平均(デフォルト) $$ NMI = \frac{2I(X;Y)}{H(X) + H(Y)} $$
normalized_mutual_info_score(A,B,arithmetic)
- 幾何平均 $$ NMI = \frac{I(X;Y)}{\sqrt{H(X) \cdot H(Y)}} $$
normalized_mutual_info_score(A,B,geometric)
ちなみにMNIは0-1の間に収まる値.