始める無料で始める

階層的クラスタリング:ward 法

いよいよ Comic-Con の時期です!Comic-Con は、世界各都市で開催される毎年恒例のコミックの祭典です。ここでは昨年の来場者数(ある時点で会場にいる人数)のデータがあります。売上を最大化するために、自分のブースを置く場所を決めたいと考えています。ward 法を使って階層的クラスタリングを適用し、会場内の「人が集まる2つの地点」を見つけましょう。

データは pandas の DataFrame comic_con に格納されています。x_scaledy_scaled は、ある時点における人の位置の標準化済み X 座標・Y 座標の列名です。

この演習はコースの一部です

Pythonで学ぶクラスタ分析

コースを見る

演習の手順

  • scipy.cluster.hierarchy から fclusterlinkage をインポートします。
  • linkage() 関数では ward メソッドを使用します。
  • distance_matrix から 2 つのフラットクラスタを作成してクラスタラベルを割り当てます。
  • 結果を確認するには、描画用のコードをコードを実行するしてください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Import the fcluster and linkage functions
from scipy.cluster.hierarchy import ____, ____

# Use the linkage() function
distance_matrix = ____(comic_con[['x_scaled', 'y_scaled']], ____ = ____, metric = 'euclidean')

# Assign cluster labels
comic_con['cluster_labels'] = ____(____, ____, criterion='maxclust')

# Plot clusters
sns.scatterplot(x='x_scaled', y='y_scaled', 
                hue='cluster_labels', data = comic_con)
plt.show()
コードを編集して実行