始める無料で始める

ポケモンの目撃情報:階層的クラスタリング

前の演習に続いて、伝説のポケモンの目撃情報を調査していきます。前回の散布図では、目撃が密集しているエリアを2か所見つけました。これは、点が2つのクラスタに分かれそうだということを意味します。この演習では、階層的クラスタリングを使って目撃情報を2つのクラスタに分けます。

'x''y' は目撃場所の X・Y 座標を表す列で、pandas の DataFrame df に格納されています。matplotlib.pyplotpltseabornsnspandaspd として使用できます。

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

Pythonで学ぶクラスタ分析

コースを見る

演習の手順

  • linkagefcluster をインポートします。
  • 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()
コードを編集して実行