ポケモンの目撃情報:階層的クラスタリング
前の演習に続いて、伝説のポケモンの目撃情報を調査していきます。前回の散布図では、目撃が密集しているエリアを2か所見つけました。これは、点が2つのクラスタに分かれそうだということを意味します。この演習では、階層的クラスタリングを使って目撃情報を2つのクラスタに分けます。
'x' と 'y' は目撃場所の X・Y 座標を表す列で、pandas の DataFrame df に格納されています。matplotlib.pyplot は plt、seaborn は sns、pandas は pd として使用できます。
この演習はコースの一部です
Pythonで学ぶクラスタ分析
演習の手順
linkageとfclusterをインポートします。linkage()関数で ward 法を使って距離を計算します。fcluster()関数で、各データ点に対してクラスタ数2のクラスタラベルを生成します。- seaborn で点をプロットし、クラスタごとに異なる色を割り当てます。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import linkage and fcluster functions
from scipy.cluster.hierarchy import ____, ____
# Use the linkage() function to compute distance
Z = ____(____, 'ward')
# Generate cluster labels
df['cluster_labels'] = ____(____, ____, criterion='maxclust')
# Plot the points with seaborn
sns.scatterplot(x=____, y=____, hue=____, data=df)
plt.show()