図書館情報学を学ぶ

はてなダイアリーで公開していたブログ「図書館情報学を学ぶ」のはてなブログ移行版です。

プログラマーに最適なデータマイニングの教科書 『集合知プログラミング』

集合知プログラミング

集合知プログラミング

当初はサンプルコードがPythonということで購入した本書ですが、読んでみると内容の素晴らしさに驚嘆しました。私が今までに読んだオライリーシリーズでも屈指の名作だと思います。

集合知プログラミング』とは

集合知プログラミング』は、Amazon協調フィルタリングのように、ウェブ上のデータを収集してユーザーの嗜好にあったコンテンツを推薦したり、大量のデータを分かりやすく分類・可視化するプログラムを簡単に実装する技術を解説した書籍です。Webプログラミングをかじったことのある方でしたら、だれしもAmazonのような推薦サービスを作ってみたいと思ったことがあるかと思いますが、そのような方には最適な書籍です。

データマイニングの教科書としての側面

本書はまた、データマイニングの優れた入門書でもあります。データマイニングとは大規模なデータをコンピューターで解析し、新たな知見を得る技術のことを指します。有名な例に「スーパーマーケットで紙おむつコーナーのそばにビールを置いておくと、ビールの売り上げが上がる」というものがあります。*1この例に見られるように、データマイニングを活用すると誰もが推測できなかった法則性を発見することができ、ビジネスや研究など様々な分野で戦略を立てる際に役立てることができます。
プログラミングをかじったことのある人がデータマイニングを勉強しようと思うなら、本書が最適だと私は思います。なぜなら、「内容が濃い」「分かりやすい」「実践的である」というプログラミングの技術書に重要な要素がすべて揃っているからです。

魅力1:内容が濃い

本書ではピアソン相関、SVM、K平均法によるクラスタリング遺伝的プログラミングに至るまで、データマイニングの理論がこれでもかというぐらい紹介されています。私は以前「データマイニング」という講義を大学で受けたことがありますが、10回かけた講義内容と同じ内容が解説されています。

魅力2:分かりやすい

このように高度な理論が紹介されているにもかかわらず、本書では文系プログラマーに対してもきわめて親切な構成となっています。その1つに「いきなり数式を出さない」という点があります。一般的なデータマイニングの教科書は複雑な数式が登場するため、数学が得意ではない人にとっては文面を見るだけで敬遠がちです。しかし、本書では「似た嗜好を持った映画評価者を探す」といった身近な例と図式を用いて、それぞれの理論を数式抜きで解説してくれます。
もちろん後半の章ではそれぞれの理論について数式を用いた詳細な解説も載っており、データマイニングアルゴリズムをしっかり理解しておきたいという人にも対応した親切な構成となっています。

魅力3:実践的である

本書の最大な魅力はここにあります。本書ではウェブ上のデータを解析するサンプルコードが掲載されており、読者は本書で得られたデータマイニングの素晴らしさをすぐに体感することができます。
例えば、第2章「推薦を行う」ではソーシャルブックマークサービスdel.icio.usAPIを使って、似た内容に関心を持つブックマーカーを推薦するプログラムが紹介されています。このほかにもWebをクロールしてWebサイトの分類をするプログラムなど、データマイニングを最大限に活用した魅力的なプログラムをすぐに書くことができます。
それぞれのプログラムはPythonで書かれていますが、アルゴリズムが分かりやすいように平易に書かれているため、Pythonを知らなくとも理解できるソースコードになっています。

まとめ

以上、本書の魅力を3点に分けて解説しましたが、一言で言ってしまえば「難解なデータマイニングの理論をプログラミングを通して直感的に理解することができる」ということが、本書の最大の魅力です。
データマイニングなどの技術については自分も勉強中ですが、この本を片手に実際にウェブサービスの機能を実装できるまで上達していけるようがんばりたいと思いました。皆さんもぜひ本書を読んで、データマイニングの使い手になってください!

関連書籍

図解 よくわかるデータマイニング (B&Tブックス)

図解 よくわかるデータマイニング (B&Tブックス)

データマイニング」の講義でお世話になったテキスト。プログラマでない方にとってはこちらの方が分かりやすいかもしれません。この本も数式をあまり出さずに図解によって解説しています。
Rによるデータサイエンス データ解析の基礎から最新手法まで

Rによるデータサイエンス データ解析の基礎から最新手法まで

Rという統計解析に特化したプログラム言語を用いてデータマイニングを行うための入門書。Rは最初からデータマイニングの処理を行う関数が定義されているので、解析プログラムを簡単に書くことができます。
Webサービスではなく、解析だけを目的としたプログラムを書きたいという方はこちらをお勧めします。
なお、「Tsukuba.R」という筑波大学生が中心となっているRの勉強会が最近開催されているようなので、こちらも要チェックです。

関連記事(他サイト)

この記事に先行してデータマイニングの観点から書評を書かれています。

本書のサンプルコードについての問題点が提示されています。プログラムを実践する人はこちらもご参照ください。

Pythonで書かれた本書のサンプルコードを、RubyR言語に移植するという試みです。Pythonをメインに使っていない方はこちらを参考にするといいかもしれません。

*1:ただし、これは実践された例ではなく、あくまで理論上の話だそうです。解説 > http://www.atmarkit.co.jp/aig/04biz/diapersandbeer.html