私の普段使用しているデータマイニングツールであるSPSS Modelerには、階層的クラスタリングが実装されていません。
ですので、これに限ってはRを使って行っています。
以下はその作業の備忘録になります。
まずRを起動します。スクリプトを書いていってもいいのですが、たびたび使うわけではないのでちょっとしたオプションなどに関してはなかなか覚えきれないものです。
ですので、RのライブラリであるRコマンダーを使って行うとサクサクと実施することができます。
Rコマンダーを呼び出します。
>library(Rcmdr) |
Rコマンダーから
統計量→次元解析→クラスター分析
→階層的クラスタ分析
そして変数に必要な変数をセレクトすれば分析が実行され、デンドログラムも表示されます。
(RStudioを使っていれば、Plotsのところに出ています。)
元データに階層ごとのクラスタのラベルを付けて出力するには
統計量→次元解析→クラスター分析
→階層的クラスタリングの結果をデータセットに保存
これを行うと右端に指定したクラスタ数のラベルがセットされていきます。クラスタ数を変えた結果の保存には、ラベル名を変えて適用していくとデータセットに追加されていきます。GUI上は10までになりますが、Rコマンダーに命令が出力されていますので、最後のところにk = ●というのがあると思いますので、この●に任意の数字をいれればその数のクラスタ数が出来上がります。
結果に関しては、さらにRで編集・加工していくも良し、結果をCSVに吐き出して、慣れたツールで内容を確認するのもよいでしょう。
CSVに吐き出すのは、
データ→アクティブデータセット
→アクティブデータセットのエクスポート
ここで小ネタですが、「行名を書く」というオプションがありますが、ここをオンにしておくと行番号が一番左の列に加わります。しかし、これに対する変数名がつけられないので、変数名が空白なってしまい、エクセルで開いた場合などは変数名とデータセットがずれていますので、こちらをOFFにされたほうが良い場合が多いように思います。
以上、Rで階層型クラスタリングを簡単に行う方法でした。