ほくそ笑む

R言語と統計解析について

データ分析のプロを目指すエンジニア必読の書

福島真太朗『データ分析プロセス』を読みました。

データ分析プロセス (シリーズ Useful R 2)

データ分析プロセス (シリーズ Useful R 2)

「データ分析」とひとことで言っても、色々な人たちが色々な考え方で「データ分析」をやっていると思います。

その一大勢力として挙げられるのが「Excelで集計だけしてる人たち」です。これは特にマーケター出身の人が多いのではないでしょうか。*1

一方、最近のデータ分析界隈に増加していると思われるのが「機械学習ツールにデータを入れるだけ」の人たちです。
特にエンジニア出身の方が、上司に「データ分析が流行ってるみたいだから今日からデータ分析やって」と言われて泣きながらやっているケースが多いのではないかと。

そういう人たちは、機械学習についてある程度理解しており、機械学習ツールにデータを入れて結果を出すことはできるのだけれど、分類精度が悪かったり、うまくレコメンド結果が出ないなどで悩む人も多いかと思います。

そしてふと、「そもそもデータ分析ってこれでいいの?」ということに突き当たります。
「そもそもデータってそのまま機械学習に入れていいの?」
「精度が悪いときにはどうすればいいの?」
「そもそもどうやって精度を測ればいいの?」
「みんなどうやってるの?」

つまり、「データ分析のプロセスってどういうものが一般的なの?」ということが彼らの知りたいことです。

これに対する答えが、福島真太朗『データ分析プロセス』に載っています。

データ分析プロセス (シリーズ Useful R 2)

データ分析プロセス (シリーズ Useful R 2)

この本は、データ分析の実務家である著者が、データの集計・前処理から、予測モデルの構築、データマイニングまで、データ分析のプロセスを一通り行うための知識をまとめたものです。

例えば、「4.1 予測モデルの構築」では、

  1. 予測問題の設定
  2. 特徴量の構築
  3. ハイパーパラメータの最適化
  4. 予測モデル構築

のように、予測モデル構築までのフローを提示し、各プロセスで何をやるのかについてコード付きで解説してくれます。


特に私が本書を読んで感嘆したのは、データハンドリングと前処理だけで、本書の半分を費やしているということです。
機械学習ツールにデータを入れる際、そのままのデータを入れてもうまく精度は出ません。
「Garbage in, garbage out(がらくたを入れてもがらくたしか出てこない)」という言葉があるように*2、どんなに高性能な機械学習アルゴリズムを使っても、データがごみならごみのような結果しか出すことはできません。
そこで重要なのが、欠損値の処理、外れ値の検出、変数の離散化などの前処理です。

  • 欠損のある観測値を単純に削除していませんか?
  • 外れ値を考えずにデータをそのまま入力していませんか?
  • 連続変数をそのまま使っていませんか?

本書では、これらのやり方について、様々な手法の紹介をしています。
著者は恐ろしいほどの量の文献を調査し、伝統的な手法から現代的な手法まで、バランスよく厳選された手法の紹介を行っています。


また、本書の後半では、caret を使った予測モデルの構築について書かれています。
caret は、R 言語から使える機械学習フレームワークで、クロスバリデーションを用いたパラメータチューニングや属性選択(feature selection)など、モデル構築を行うための便利な機能をたくさん持っています(並列計算もできます)。
まだ caret を使ったことがないという方は、かなり損してると思います。


一方、この本では機械学習手法そのものについては、あまり説明していません。
取り扱っている機械学習手法は、ランダムフォレストとサポートベクタマシンくらいです。
これは、この本が主眼を置いているのは、

  • 欠損処理、外れ値処理、離散化などの前処理を行い、機械学習に入力するデータを作ること
  • パラメータチューニングや属性選択手法を行い、精度の良いモデルを作ること

であり、これらは「どんな機械学習手法を使うとしても、やり方は同じ」だからと考えられます。
つまり、この本で学べる知識は、今は存在していない新しい機械学習アルゴリズムが現れたとしても、全く同じように適用可能です。


というわけで、この本をおススメしたいのは「コードが読めるエンジニア」であり、「欠損や外れ値の処理を行わず、そのまま機械学習に入れちゃってる人」です。
そういう人たちが「実務で通用する」データ分析を学ぶためには、必読の書と言えるでしょう。
また、実務で機械学習を使ったことがない分析者志望の人にとっても、実際の現場におけるデータ分析の流れを、具体例を通して知ることのできる貴重な本だと思います。

『データ分析プロセス』、ぜひ手に取ってみてください。

関連

本書の各章でどのような手法が紹介されているかは、下記の書評が参考になります。

*1:そういう人たちにおススメなのはこちらです:http://d.hatena.ne.jp/hoxo_m/20141010/p1

*2:Wikipediaにも載ってます: https://en.wikipedia.org/wiki/Garbage_in,_garbage_out