トピックス プログラム、シミュレーション

教師なし学習で失敗することもあり

投稿日:

昨日は1日面談(8名)を実施して、疲れたのでブログ作成中にうたた寝してしまい、投稿遅くなりました。

1昨日はkNN法でアイリスを分類することをpythonで実行してみました。 本日は、「KMeans(K-Means clustering)法」という方法でクラスタ分類する方法を説明します。1昨日は近い距離での多数決で分類するアルゴリズムでした。 今日は、同じ仲間の重心を探す方法です。この違いを説明しているWebサイトを見つけました。

こちらです。 → https://qiita.com/NoriakiOshita/items/698056cb74819624461f

資料ご覧ください。 → KMeans法

p.1 KMeans法の手順を書いてみました。昨日のKNN法は、「教師あり学習」に分類され、本日のKMeans法は「教師なし学習」に分類されます。前者は、いくつかの既知データを基に学習して、未知問題を予測するので「教師あり学習」となります。後者は、手順①の段階で適当に重心の位置を決めます。この場合は3つの「×」です。次はその近くのデータの塊を決めて重心の位置を再計算します。 その重心に近いところの塊を決めて、また重心を計算します。重心位置が変化しなくなったら終了です。

p.2 Jupyterを起動して、scikit-learnにあるDatasetsを読み込みます。KMeansを読込、中心が20個の塊として、0列目をx、1列目をyにして散布図を描きます。続いて「kmeans.fit」でクラスタ分類を実施して、色分けして散布図を描きます。

p.3 Datasetsの中にはいろいろ種類があり、月形状のデータを読込ます。適当にばらついたものにします。 これにKMeans法を適用してクラスタ分類して色分けしたものが右下図です。ピンク色の部分で分類が失敗であることが分かります。 KMeans法では分類できないので、別のアルゴリズムが必要になる訳です。 本日は、ここまで。

 

-トピックス, プログラム、シミュレーション

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