デンドログラムの見た目を整える
デンドログラムは作れましたが、思ったほど目を引く見た目ではないですね。
dendextend パッケージを使うと、枝に色を付けたり、クラスターの外枠を描いたりして、見る人にとってわかりやすくできます。dendextend はデンドログラムオブジェクトを対象に動作するため、hclust で作った階層的クラスタリング結果は as.dendrogram() で変換する必要があります。
デンドログラム内の用語を確認するには、labels() 関数が便利です。すべての用語が表示されます。特定の枝を強調したいときは、branches_attr_by_labels() を使います。最初にデンドログラムオブジェクトを渡し、次に c("data", "camp") のような用語のベクトル、最後に "blue" のような色を指定します。
プロットを作成した後、rect.dendrogram() でクラスターを囲むことができます。各クラスターに長方形が追加されます。rect.dendrogram() の第1引数はデンドログラム、続いてクラスター数(k)です。さらに、長方形の色を指定する border 引数(例: "green")も渡せます。
この演習はコースの一部です
Rで学ぶBag-of-Wordsによるテキストマイニング
演習の手順
dendextend パッケージは読み込まれており、tweets_dist から作成した階層クラスタリングオブジェクト hc が用意されています。
hcに対してas.dendrogram()を使い、デンドログラムとしてhcdを作成します。hcdのlabelsをコンソールに出力します。branches_attr_by_labels()を使って枝に色を付けます。3つの引数を渡してください:hcdオブジェクト、c("marvin", "gaye")、色"red"。結果をhcd_coloredに代入します。- デンドログラム
hcd_coloredをplot()し、main引数でタイトル"Better Dendrogram"を付けます。 rect.dendrogram()を使ってプロットに長方形を追加します。k = 2のクラスター数を指定し、borderの色は"grey50"にします。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create hcd
___ <- ___(___)
# Print the labels in hcd
___(___)
# Change the branch color to red for "marvin" and "gaye"
___ <- ___(___, ___, ___)
# Plot hcd_colored
___(___, ___)
# Add cluster rectangles
___(___, ___, ___)