Pythonの階層的クラスタリングが今イチわからないアナタへ…
『階層的クラスタリングって何?』
『どんな種類があるの?』
『樹形図は出力できるの?』
こんな疑問に答えます。
と勢い良く書いた記事ですが…
途中でわからなくなり解決できてません。ごめんなさい!!
『こんな奴もいるんだな』とか思ってもらえたり、
万が一、何かの役に立つかもしれないので残してます。
【Python】階層的クラスタリングって何?どんな種類があるの?
Pythonのクラスタリングで階層的クラスタリングがあります。
階層的クラスタリングってわかりずらい名前。
まず、
クラスターは集まるっていう意味です。
階層っていうのはWindowsのエクスプローラみたいな感じで芋を掘っていくようなイメージ。
集めながら、芋を掘る。
うーんわかるようなわからんような。
階層的っていうからには階層化されているんだなってことはわかるけど…
階層的クラスタリングは凝集型と分散型にわけれれます。
また、難しい言葉でてきたな。くそー。
凝集は、めっちゃ集まるってことか。
分散は、バラバラになるってことか。
Pythonエンジニア認定試験のデータ分析試験では、凝集型を扱ってます。
とりあえず、凝集型で。
階層的クラスタリング:凝集型
凝集型の階層的クラスタリングの手順
- 似ているデータをまとめて、小さなクラスタを作る(芋を掘る)
- 作った小さなクラスタと似ているデータをさらにまとめる(掘った芋をまとめる)
- 最終的に1つのクラスタにまとめるまで、上記を繰り返す(掘った穴は1つにする)
芋を掘るを用いると余計に分かり辛いか…
くそー。ごめん。
凝集型の階層的クラスタリングの実行できるScikit-learnのクラス
凝集型の階層的クラスタリングは
Scikit-learnのclusterモジュール内のAgglomerativeClausteringクラスでの実行できます。
なにわ友あれ、赤井英和! まちがえた。
なにはともあれ、データセットが必要です。
まずはデータセットから、おなじみのアヤメ(Iris)データセットを読み込みましょう。
Irisデータセットはアヤメの額の長さや花びらの長さと種類を持つデータです。
つまり、額の長さや花びらの長さが~なら、この種類のアヤメだよね~
ってことがわかるはずだ。という推測にもとづいて処理をしていくことになります。
from sklearn.datasets import load_iris
# Irisデータセットを読み込む
iris = load_iris()
data = iris.data
# 1, 3列目を抽出
X = data[:100, [0, 2]]
X
from sklearn.cluster import AgglomerativeClustering
# 擬集型の階層クラスタリングのインスタンスを作成
ac = AgglomerativeClustering(n_clusters=3, affinity='euclidean', linkage='complete')
# クラスタリングを実行し、各クラスのクラスタ番号を取得
labels = ac.fit_predict(X)
labels
array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 0, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0], dtype=int64)
うーん。わからんな。
イメージは下から似てるデータをちょっとずつまとめていって、最後には1つにする。
と言った感じかなー
いやー、中途半端でごめんなさい!
とりあえず、勉強してるヤツがここにおる
ということで、終わりにさせてください。
ごめんよぉぉ。
「記事を読んでもわからないトコがある」「内容が変だよ」
という時は、お気軽にコメントください♪
「もっとSEおっさんに詳しく聞きたい。何かお願いしたい!」
という時は、ココナラまで。メッセージもお気軽に♪
LINEでのお問合わせも受付中!
LINE公式アカウント
メッセージをお待ちしています!
- 応用情報技術者
- Oracle Master Gold
- Java SE Gold
- Java EE Webコンポーネントディベロッパ
- Python エンジニア認定データ分析
- 簿記2級