トピックス プログラム、シミュレーション 科学・技術・数学

どのアルゴリズムがクラスタリング性能がいい?

投稿日:

クラスタリングにはいろいろなアルゴリズムが存在して、どれも得意・不得意があるようです。以下のサイトに各種アルゴリズムにより、月以外のパターンについてクラスタリングした実行結果がまとめられています。 → https://scikit-learn.org/stable/modules/clustering.html

資料ご覧ください → 各種アルゴリズム

p.1 上記Websiteの実行結果のコピーです。 これを見ると、左から3番目の「KMeans法」やその他の方法に比較しても、右から3番目の「DBSCAN法」の方がクラスタリング性能は高いようです。

p.2 他のアルゴリズムを試したい方は、「from sklearn.cluster import 〇〇〇」の「〇〇〇」の部分に、以下のページにあるリストから選びその名称(アルファベット)を入れます。

クラスタ分類のアルゴリズムはこちら → https://scikit-learn.org/stable/modules/classes.html#module-sklearn.datasets

p.3 クラスタリングしたいパターンのデータは以下のページのリストから選択して、「X,y = datasets.make_〇〇〇(    )」の「〇〇〇」に名称を入れてください。このコマンド(命令)により、(X,y)のデータが格納されます

パターンデータはこちら → https://scikit-learn.org/stable/modules/classes.html#module-sklearn.datasets

◎◎ = 〇〇〇〇(   )」の「〇〇〇〇」の部分にアルゴリズムの名称を入れると、変数「◎◎」に(X,y)のデータを格納します。 「◎◎.fit(X)」とすると「〇〇〇〇」のアルゴリズムによりクラスタリングを実行します。 この一文でクラスタリングしてしまいます。 次は、クラスタリング結果を色分けして散布図でプロットします。「plt.scatter(x、y)、c=’色’」は(x、y)の点を散布図に指定した色でプロットするコマンドでしたね。このxに「X[◎◎.labels_==0,0]」,yに「X[◎◎.labels_==0,1]」が書かれています。クラスタリングしたデータは変数◎◎の中に格納されています。「==」の後にある(0,0)あるいは(0,1)の左側の「」はに分類されたものを示し、右側の「」はX、「」は「y」のデータになります。次の「==」の後にある、(1,0)あるいは(1,1)の左側の「1」は1に分類されたデータになります。分類されたグループが多きくなれば、0,1,2,3,・・と大きくなっていきます。 最後の「plt.show()」は、グラフ表示のコマンドです。

クラスタリングのアルゴリズムを読み込んで、fitで実行するだけです。pythonは本当にライブラリが充実してコマンドが簡単です。今回は、「教師なし学習」でした。

 

-トピックス, プログラム、シミュレーション, 科学・技術・数学

Copyright© 進化するガラクタ , 2019 All Rights Reserved Powered by STINGER.