簡潔であること≠わかりやすいこと
★☆☆☆☆
本書のプログラムではループを必ず「apply()」で代用する。おかげでプログラムは少しは短くなるだろうが「何をやっているかが一目でわかるのか」という点で違和感が拭えず、なぜ素直にfor文を使わないのだろうか、と疑問に思う。これは、Ruby言語で結局採用されなかったpython言語独特の「リスト内包表現」と同じこと。MatrixMarket然り、筆者はそれを「Rプログラミングの大原則」と称するが、プログラミング上達の大原則はコードを短くすることではなく、間違いを起こしにくい、すなわち理解しやすいプログラムにすること。おまけに本書の趣旨はあくまでクラスタリングの解説であり、コードの小細工など必要ない。
クラスタリング手法の良い入門書
★★★★★
Rで学ぶ.と書いてあるのでクラスタ解析をRでやってみようという印象を受けるが,
著者がまえがきが触れているとおり,
・クラスタリング手法を学びたい人
・クラスタリングを実際に試したい人
・Rのプログラミングを学びたい人
に向けて書かれているため,理論の解説もしっかりしている.
クラスタリング手法としては,
・階層的クラスタリング
・k-means法
・混合分布モデル
・スペクトラルクラスタリング
・ファジィクラスタリング
を解説している.
クラスタリング手法だけでなく,付随する評価や次元圧縮の問題についても解説がある.
それぞれのアルゴリズムの式の証明までしっかり行っているのでクラスタリング手法を
はじめて勉強する人にちょうどよい.
それぞれについてRによる解析を行っているので,理論と実践のバランスが取れている.
個人的には日本語の解説が少ない(ない?)スペクトラルクラスタリングの解説がある
のが有難かった.