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(___, ___)