Python × AI [クラスタリング] - 調整ランド指数と正解率

前回クラスタリングを行った結果を、調整ランド指数(Adjusted Rand Index)正解率(Accuracy)という代表的な指標で評価してみます。

2つの指標とも最良の場合に1を返し、関係のないクラスタリングの場合0を返します。

調整ランド指数と正解率で評価

調整ランド指数と正解率で評価を行うためのコードは下記の通りです。

調整ランド指数の算出にはadjusted_rand_score関数を使い、正解率の算出にはaccuracy_scoreを使います。

引数としては両関数とも正解データ予測結果のクラスタ番号を渡しています。

[Google Colaboratory]

1
2
3
4
5
6
from sklearn.metrics import accuracy_score
from sklearn.metrics import adjusted_rand_score
ari = "ARI: {:.2f}".format(adjusted_rand_score(iris.target, cls_data["cluster"]))
accuracy = "Accuracy: {:.2f}".format(accuracy_score(iris.target, cls_data["cluster"]))
print(ari)
print(accuracy)

[実行結果]

調整ランド指数(ARI)は、同じクラスタに属すべきデータ同士が正しく同じクラスタに属しているかどうかを表す指標です。

0.73という結果になっており、まあまあの良い結果だと思います。

正解率(Accuracy)は、クラスタラベルと正解データとの完全一致を表す数字です。

0.01という結果はぜんぜん一致しないことを表していますが、これはラベルとクラスタリングでの予測結果であるクラスタ番号が一致していないことが原因であると思われます。