「データ前処理の極意」を読んだ

f:id:Kenta-s:20181018190836j:plain

AI、IoTを成功に導く データ前処理の極意

なぜ読もうと思ったのか

Kaggleのある問題を他の人がどうやって解いてるのか調べてみると、前処理の手間の掛け方が自分の想像を超えていて、どうやら基本的なことがわかってないらしいことに気付く。

近くのジュンク堂書店に立ち寄ったときに、「データ前処理の極意」と「前処理大全」の二つが目についたが、軽く目を通してみて、より初心者向けに思えたこちらを手に取った。

内容など

前提知識がない人でも理解できるようにというコンセプトで書かれたんじゃないかと思う。

例えば、「最頻値」「中央値」といった常識と言っても過言ではないような単語ですら説明が入るので、本当に全くの素人でも読めるようにかなり配慮されている印象。

Amazonのレビューを見るとやはり「書いてあるのは基本的なこと」「入門者向け」といった意見も散見された。

しかしその基本的な知識がなかった自分には、かなりためになる一冊だったと思う。

  • ビジネスの理解
  • データの理解
  • データの準備
  • モデリング
  • 評価
  • 展開

という5つのステップからなるデータ活用の標準プロセスの一つ「CRISP-DM」についての説明がメイン。

自分にとって最もためになったと感じたのは第5章「データの準備」で、このステップではさらに

  • データの選択
  • データのクリーニング
  • データの構築
  • データの統合
  • データのフォーマット変換

とさらに細分化されたステップがある。

この中の「データの選択」についてだけ挙げても

  • 分析に関係のない項目を削除する。
  • 欠損値や不正なデータが多い項目は削除を検討する。
  • データ量が多すぎる場合はサンプリングでサイズを小さくする。
  • 正常時と異常時のデータ数に差がありすぎると正しく学習されないことがあるので、データ数を合わせる。
  • 相関関係が高い項目がある場合にはどちらかを削除する。

と、ある程度具体的にしかもわかりやすく書いてある。

最後の「相関関係が高い項目がある場合にはどちらかを削除する」というのはこれまで考えつかなかったことだったので目からコブラが落ちる思いだった。

データの準備以外のステップもそれなりに楽しめたので、この紹介で面白そうだと思えたら読んでみて損はないと思う。

逆に、「そんなの常識じゃないか」って人は、学べることは多くないかもしれない。

KNIMEというツールを使って実践してみるハンズオンライクなコーナーが各章の終わりにあるけど、手を動かすのは実践で散々できるのでスキップしても良いかなと思う(自分は飛ばした)。

感想

ちょうどKaggleのHouse Pricesに挑戦しているタイミングだったので、この説明にはあの項目が当てはまりそうだな、など考えながら読めて楽しさが倍増だった。

これを読んだあと改めて他の人がどうやってhouse pricesを解いているのか見てみると、まさにこの本で紹介されている手法(相関関係が高い項目はいずれかを削除などなど)が当たり前のように行われていたので、内容はある程度信頼できるんじゃないかと思う。

さっそくこの本で学んだことを参考にhouse pricesのデータを前処理して、どのくらいスコアが上がるのか試してみたい。

落ち着いたら次は「前処理大全」も読んでみる予定。

あと統計学に興味出てきてやばいかも