『実践 機械学習システム』を読んだ

オライリーの『実践 機械学習システム』を読んだ。
内容はこの前読んだ『集合知プログラミング』と似ていて、機械学習ではこんなことができる、ということがいろいろ紹介されている。 もちろん色々紹介されているから中身が薄いというわけではなく十分満足できる内容だった。
でも、もうすでに機械学習をバリバリやっているような人が読んでもふーんで終わるかもしれない。

著者ができるだけ数学や統計学の知識がなくても読めるようにわかりやすく噛み砕いて説明しようと努めているため非常に読みやすい。
本で記載されているコードでは積極的にライブラリを使用している。
『集合知プログラミング』ではアルゴリズムやロジックをコードでわかりやすく説明するというスタンスだったがこの本は文章で説明して実装はscikit-learnなどのすでにあるライブラリを使用するというものになっている。
業務では実際のところ、スクラッチで機械学習部分をコーディングすることはほとんどないのでライブラリを使ったコードになっているのは実用的でありがたい。

building-machine-learning

特に読んでいて興味深かったのは「トピックモデル」と「音楽ジャンル分類」のところだった。
トピックモデルに関しては、データ量が多いのをトピック単位でまとめあげて中間的なデータセットとして他の分析にも使えそうだと思った。
音楽ジャンル分類のところでは、scipyでwavファイルを読み込める、というのを知ってびっくりした。
まさか音声ファイルも読み込めるとは… 他にも調べるとnumpy、scipy、scikit-learnは色々できそう。 numpy, scipy, scikit-learnは機械学習のデパートみたいだ。

本の内容は以下のとおり。

第1章 Pythonではじめる機械学習
第2章 実例を対象とした分類法入門
第3章 クラスタリング:関連のある文書を見つける
第4章 トピックモデル
第5章 クラス分類:悪い回答を判別する
第6章 クラス分類2:感情分析
第7章 回帰:レコメンド
第8章 回帰:レコメンドの改良
第9章 クラス分類3:音楽ジャンル分類
第10章 コンビュータビジョン:パターン認識
第11章 次元削減
第12章 ビッグデータ
付録 機械学習についてさらに学ぶために

11章で次元削減について1章丸ごと使って説明しており、非常にためになった。これはデータセットを作るときに役立ちそう。

最近の機械学習(ディープラーニングは除く)についていろいろ言及していて読んでいて面白いけれど、ひとつだけいらないなーと思ったのが、 12章のAWSの説明の部分はいらなかった。AWSはゴリゴリ触っているのでEC2の説明のところは何をいまさらという感じだったのが残念。

この本を読んで収穫だったのが、機械学習の肝はどんな手法を使うかではなくていかにして良いデータセットをつくるか、ということがわかったことと 、機械学習を利用した新しい何かをするときは流用できそうなまたは参考になりそうな論文をまず探すことということがわかったことである。

次はディープラーニングの本を読もうかな。