Yoshimaru's Blog

京都に住む院生が書いています

sklearnでつかえるMNIの計算式

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の間に収まる値.