プログラマーに最適なデータマイニングの教科書 『集合知プログラミング』
- 作者: Toby Segaran,當山仁健,鴨澤眞夫
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/07/25
- メディア: 大型本
- 購入: 91人 クリック: 2,220回
- この商品を含むブログ (277件) を見る
『集合知プログラミング』とは
『集合知プログラミング』は、Amazonの協調フィルタリングのように、ウェブ上のデータを収集してユーザーの嗜好にあったコンテンツを推薦したり、大量のデータを分かりやすく分類・可視化するプログラムを簡単に実装する技術を解説した書籍です。Webプログラミングをかじったことのある方でしたら、だれしもAmazonのような推薦サービスを作ってみたいと思ったことがあるかと思いますが、そのような方には最適な書籍です。
データマイニングの教科書としての側面
本書はまた、データマイニングの優れた入門書でもあります。データマイニングとは大規模なデータをコンピューターで解析し、新たな知見を得る技術のことを指します。有名な例に「スーパーマーケットで紙おむつコーナーのそばにビールを置いておくと、ビールの売り上げが上がる」というものがあります。*1この例に見られるように、データマイニングを活用すると誰もが推測できなかった法則性を発見することができ、ビジネスや研究など様々な分野で戦略を立てる際に役立てることができます。
プログラミングをかじったことのある人がデータマイニングを勉強しようと思うなら、本書が最適だと私は思います。なぜなら、「内容が濃い」「分かりやすい」「実践的である」というプログラミングの技術書に重要な要素がすべて揃っているからです。
魅力1:内容が濃い
本書ではピアソン相関、SVM、K平均法によるクラスタリングや遺伝的プログラミングに至るまで、データマイニングの理論がこれでもかというぐらい紹介されています。私は以前「データマイニング」という講義を大学で受けたことがありますが、10回かけた講義内容と同じ内容が解説されています。
魅力2:分かりやすい
このように高度な理論が紹介されているにもかかわらず、本書では文系プログラマーに対してもきわめて親切な構成となっています。その1つに「いきなり数式を出さない」という点があります。一般的なデータマイニングの教科書は複雑な数式が登場するため、数学が得意ではない人にとっては文面を見るだけで敬遠がちです。しかし、本書では「似た嗜好を持った映画評価者を探す」といった身近な例と図式を用いて、それぞれの理論を数式抜きで解説してくれます。
もちろん後半の章ではそれぞれの理論について数式を用いた詳細な解説も載っており、データマイニングのアルゴリズムをしっかり理解しておきたいという人にも対応した親切な構成となっています。
魅力3:実践的である
本書の最大な魅力はここにあります。本書ではウェブ上のデータを解析するサンプルコードが掲載されており、読者は本書で得られたデータマイニングの素晴らしさをすぐに体感することができます。
例えば、第2章「推薦を行う」ではソーシャルブックマークサービスdel.icio.usのAPIを使って、似た内容に関心を持つブックマーカーを推薦するプログラムが紹介されています。このほかにもWebをクロールしてWebサイトの分類をするプログラムなど、データマイニングを最大限に活用した魅力的なプログラムをすぐに書くことができます。
それぞれのプログラムはPythonで書かれていますが、アルゴリズムが分かりやすいように平易に書かれているため、Pythonを知らなくとも理解できるソースコードになっています。
まとめ
以上、本書の魅力を3点に分けて解説しましたが、一言で言ってしまえば「難解なデータマイニングの理論をプログラミングを通して直感的に理解することができる」ということが、本書の最大の魅力です。
データマイニングなどの技術については自分も勉強中ですが、この本を片手に実際にウェブサービスの機能を実装できるまで上達していけるようがんばりたいと思いました。皆さんもぜひ本書を読んで、データマイニングの使い手になってください!
関連書籍
- 作者: 石井一夫
- 出版社/メーカー: 日刊工業新聞社
- 発売日: 2004/12
- メディア: 単行本
- 購入: 11人 クリック: 250回
- この商品を含むブログ (8件) を見る
- 作者: 金明哲
- 出版社/メーカー: 森北出版
- 発売日: 2007/10/01
- メディア: 単行本(ソフトカバー)
- 購入: 36人 クリック: 694回
- この商品を含むブログ (64件) を見る
Webサービスではなく、解析だけを目的としたプログラムを書きたいという方はこちらをお勧めします。
なお、「Tsukuba.R」という筑波大学生が中心となっているRの勉強会が最近開催されているようなので、こちらも要チェックです。
関連記事(他サイト)
この記事に先行してデータマイニングの観点から書評を書かれています。
本書のサンプルコードについての問題点が提示されています。プログラムを実践する人はこちらもご参照ください。
- 遺伝的アルゴリズムをRで書いてみた - yasuhisa's blog
- 集合知プログラミング 5.1 5.2 5.3 最適化 - DUNNO-CLEARブログ3.0
- 『集合知プログラミング』をR言語で書く - 極めて個人的なメモ
- http://d.hatena.ne.jp/shokai/searchdiary?word=%2a%5b%bd%b8%b9%e7%c3%ce%a5%d7%a5%ed%a5%b0%a5%e9%a5%df%a5%f3%a5%b0%5d
Pythonで書かれた本書のサンプルコードを、RubyやR言語に移植するという試みです。Pythonをメインに使っていない方はこちらを参考にするといいかもしれません。
関連記事(自サイト)
*1:ただし、これは実践された例ではなく、あくまで理論上の話だそうです。解説 > http://www.atmarkit.co.jp/aig/04biz/diapersandbeer.html