階層的クラスタリング:ward 法
いよいよ Comic-Con の時期です!Comic-Con は、世界各都市で開催される毎年恒例のコミックの祭典です。ここでは昨年の来場者数(ある時点で会場にいる人数)のデータがあります。売上を最大化するために、自分のブースを置く場所を決めたいと考えています。ward 法を使って階層的クラスタリングを適用し、会場内の「人が集まる2つの地点」を見つけましょう。
データは pandas の DataFrame comic_con に格納されています。x_scaled と y_scaled は、ある時点における人の位置の標準化済み X 座標・Y 座標の列名です。
この演習はコースの一部です
Pythonで学ぶクラスタ分析
演習の手順
scipy.cluster.hierarchyからfclusterとlinkageをインポートします。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()