Machine-learning-with-python-clustering-algorithms-hierarchical
機械学習-階層的クラスタリング
階層的クラスタリングの概要
階層的クラスタリングは、同様の特性を持つラベルなしデータポイントをグループ化するために使用される別の教師なし学習アルゴリズムです。 階層的なクラスタリングアルゴリズムは、次の2つのカテゴリに分類されます。
アグロメレーティブ階層アルゴリズム-アグロメレーティブ階層アルゴリズムでは、各データポイントは単一のクラスターとして扱われ、クラスターのペアを連続的にマージまたはアグロメレートします(ボトムアップアプローチ)。 クラスターの階層は、樹状図またはツリー構造として表されます。
分割型階層アルゴリズム-一方、分割型階層アルゴリズムでは、すべてのデータポイントが1つの大きなクラスターとして扱われ、クラスタリングのプロセスでは、1つの大きなクラスターをさまざまな小さなクラスターに分割(トップダウンアプローチ)します。
凝集型階層クラスタリングを実行する手順
最も使用されている重要な階層的クラスタリング、つまり 凝集性。 同じことを実行する手順は次のとおりです-
- *ステップ1 *-各データポイントを単一のクラスターとして扱います。 したがって、開始時にK個のクラスターが存在することになります。 データポイントの数も開始時にKになります。
- *ステップ2 *-このステップでは、2つのクローゼットデータポイントを結合して大きなクラスターを形成する必要があります。 これにより、合計K-1クラスターになります。
- *ステップ3 *-次に、より多くのクラスターを形成するには、2つのクローゼットクラスターを結合する必要があります。 これにより、合計K-2クラスターになります。
- *ステップ4 *-1つの大きなクラスターを形成するには、Kが0になるまで上記の3つのステップを繰り返します。 結合するデータポイントが残っていません。
- *ステップ5 *-最後に、単一の大きなクラスターを作成した後、樹状図を使用して、問題に応じて複数のクラスターに分割します。
凝集型階層クラスタリングにおける樹状図の役割
最後のステップで説明したように、大きなクラスターが形成されると、樹状図の役割が始まります。 問題に応じて、樹状図を使用してクラスターを関連するデータポイントの複数のクラスターに分割します。 それは次の例の助けを借りて理解することができます-
例1
理解するために、次のように必要なライブラリのインポートから始めましょう-
次に、この例で使用したデータポイントをプロットします-
上記の図から、アウトデータポイントに2つのクラスターがあることが非常に簡単にわかりますが、実際のデータでは、数千のクラスターが存在する可能性があります。 次に、Scipyライブラリを使用してデータポイントの樹状図をプロットします-
ここで、大きなクラスターが形成されると、最長の垂直距離が選択されます。 次の図に示すように、垂直線が引かれます。 水平線が2点で青い線と交差するため、クラスターの数は2になります。
次に、クラスター化のためにクラスをインポートし、そのfit_predictメソッドを呼び出してクラスターを予測する必要があります。 _sklearn.cluster_ライブラリの_AgglomerativeClustering_クラスをインポートしています-
次に、次のコードの助けを借りてクラスタをプロットします-
上の図は、データポイントからの2つのクラスターを示しています。
例2
上記の簡単な例から樹状図の概念を理解したので、階層クラスタリングを使用してPima Indian Diabetes Datasetのデータポイントのクラスターを作成する別の例に移りましょう。
Preg | Plas | Pres | Skin | Test | Mass | Pedi | Age | Class | |
---|---|---|---|---|---|---|---|---|---|
0 | 6 | 148 | 72 | 35 | 0 | 33.6 | 0.627 | 50 | 1 |
1 | 1 | 85 | 66 | 29 | 0 | 26.6 | 0.351 | 31 | 0 |
2 | 8 | 183 | 64 | 0 | 0 | 23.3 | 0.672 | 32 | 1 |
3 | 1 | 89 | 66 | 23 | 94 | 28.1 | 0.167 | 21 | 0 |
4 | 0 | 137 | 40 | 35 | 168 | 43.1 | 2.288 | 33 | 1 |