広告
書評:集合知プログラミング

著:Toby Segaran
訳:當山 仁健、鴨沢 眞夫
発行:オライリー・ジャパン
サイト
Amazon

データサイエンス系のインターンに応募する前に勉強しようと思い購入した。 「集合知」というワードは現代のデータ分析・機械学習の分野ではもう頻繁には用いられないが、 内容としてはWebマイニング+機械学習の初歩あたりに加え簡単なクローリングなどのサンプルもあり Webデータサイエンスの入門書と位置づけられるだろう。 サンプルコードは全てPythonで、バージョンは明記されていないが大部分はPython2でもPython3でも動きそうだった。 一部Python2専用のurllib2を利用する箇所があるのでそこだけPython3ユーザーは(といってももう大部分の人はそうであろう) 適宜読み替える必要がある。

初版は2008年でやや古いが、言語処理など第3次AIブームで大きく常識が書き変わった分野を除いては データ分析の基礎ともいえる単純ベイズ・SVM・クラスタ分析等が広く浅く網羅されている。 手っ取り早く試せる分析手法をカタログ化しているので現代でも通用する入門書として有用だ。 例えば 等についてPythonでの実装方法・あるいはライブラリの呼び出し方がサンプルコードとともに紹介されている。 これらはデータ分析の世界では基礎的なものだが(たぶん)、 実務でも高度なアルゴリズムを集めたての生データにいきなり適用できるわけではないので 必然的にこのあたりの手法から手ごたえを探っていくことになるのだろう。
数式はほとんどなくあくまで"Pythonでどうやるとどういう結果が出るか"のhow toにとどまるので 深くやりたいなら理論系の教科書と合わせて読むとベターである。 またPythonの文法等は説明されないのでPython初心者以上・データ分析初心者未満のひとびとに最もおすすめだ。

一方やや古くなった内容も散見されるので注意したほうが良い個所もある。  例えば、紹介されているアルゴリズムの中では遺伝的アルゴリズムはデータ量に対するスケール性が悪いのでもうあまりこのような用途では 用いられないように思った。またSVMのパッケージとしてLIBSVMを直接使っているが最近ならscikit-learnなどに 多くの学習アルゴリズムとともにまとまっているので使うのもよいだろう。