始める無料で始める

kmeans() と hclust() の比較

k-means とhierarchical clustering(階層的クラスタリング)を比較すると、2つの手法で異なるクラスタ所属の結果が得られることがわかります。これは、両アルゴリズムがデータの生成過程について異なる前提を置いているためです。より高度なコースでは、モデルの前提の妥当性に基づいてどちらかの手法を選ぶこともできますが、ここでは両者が異なる結果を生むという点を押さえておけば十分です。

この演習では、pokemon データセットに対する2つのモデルの結果を比較し、どのように違うかを確認します。

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

R による教師なし学習

コースを見る

演習の手順

pokemon データに対してk-meansクラスタリングを実行した結果(クラスタ数3)は km.pokemon として保存されています。前の演習で作成したhierarchical clusteringモデルは hclust.pokemon として引き続き利用できます。

  • hclust.pokemon に対して cutree() を使用し、各観測値にクラスタを割り当てます。クラスタ数を3と仮定し、その結果を cut.pokemon というベクトルに代入します。
  • table() を使用して、2つのクラスタリング手法間でクラスタ所属を比較します。k-meansモデルオブジェクトの各コンポーネントには $ 演算子でアクセスできることを思い出しましょう。

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

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

# Apply cutree() to hclust.pokemon: cut.pokemon


# Compare methods
table(___, ___)
コードを編集して実行