データ分析を効率的に進めるためのプロセスとは~EDAを意識した分析~
どうもKoheiです。
最近のHUNTER×HUNTER、いつにもましてルールが多すぎて難しくないですか
さて、以前の記事で、データサイエンティストの仕事のプロセスについては下記のとおりになっていると書きました。
- 要件のヒアリング
- 必要なデータの収集
- 分析の準備
- データ分析
- 結果のアウトプット
今回はこのうち、4のデータ分析のプロセスについて、もう少し詳細に書きたいと思います。
過去の記事はこちらで
どんな分析をすべきか?
さて、分析してほしいデータを手に入れたあなた
まずは何をしましょうか?
そのままデータを読み込んでみようと思いましたが、データが大きすぎてすべては読み込めません。。。適当に数件ピックアップしてみてみます。
中には、数十以上のカラムで構成され、様々な数値や項目が入っています。
んーとりあえず、これを集計してみるか?
何をキーに集計してみようか…?データをもらった人にもう一度聞いてみるか…?
など、意外といろんな選択肢が出てきます。
「データを分析する」という言葉が示す範囲は非常に広いです。
こうした中、あらゆる問題を解決する
最強の方法!というものはなく、
具体的に分析する方法や手順はいくつかありますが、
自分が体験的にもこうした方がいいなぁ、と思ったものを紹介します。
データ分析のプロセス
このプロセスは下記の文献*1を基にしていています。
*1 "Doing Data Science", Cathy O'Neil and Rachel Schutt, 2013
分析する前のそのままのデータ(raw data)をまずデータ加工(Data processing)し分析するのに扱いやすいデータ(Clean Data)にします。
イメージはテキストでベタ書きされてるものをきちっと表形式に直すようなイメージです。
そこからそのまま可視化(visualization)して、レポートとしてすぐに利用するケースもあれば、合計、最大、平均値などさまざまな尺度からデータを探索的に調査し(Exploratory data anaylsis)、機械学習、統計モデル生成(machine learning/Algotichms)から予測や分類などを評価、AIとして利用するアウトプットも想定されます。
ここで注目すべきは探索的データ分析から再びデータ加工へ戻っているフローもあることです。データを探索的に繰り返し調査していくことで、データの本質を把握し、より効果的な統計モデルの生成などに繋げることができます。
さて、この「探索的データ分析」についてもう少し掘り下げたいと思います。
EDA(探索的データ分析)
探索的データ分析(よく先頭のキーワードをとってEDAと訳されます)は、1977年(!)にJohn W. Tukeyさんによって提唱されていた方法です。
簡単に言えば、「予想した仮説だけじゃなくて、データをいろんな側面で見てみようよ」っていう考え方です。
データが膨大な量になる今、全量を把握することはほぼ不可能で、データの担当者がなんとなくこうだろうと思っていても、実際データを見てみると別の意外な発見があった・・・なんてことも珍しくありません。
EDAを通じて、どんな変数が特徴を持つのか、外れ値や異常値の有無、適切なモデル・可視化方法の評価を進めます。EDAの具体的なアプローチは下記のとおりです。
1. 基本的な統計量の把握
- 平均、分散、最大値、最小値、中央値、四分位数などの算出
- 箱ひげ図などによる可視化
2. 単純データの可視化
- 各説明変数と目的変数の関係性の可視化
- 散布図、ヒストグラフなどでデータ全体の分布を把握
- 変数同士の相関関係の把握
- 外れ値、異常値の把握
3. 変数変換後のデータ可視化
- 主成分分析(PCA)などによる多次元データの次元削減。
- 対数変換、逆数などの変数の見せ方を変える
こうした方法を重ねて、データの本質を見抜いていきます。
EDAの際の注意点としては、EDAの時点ではまだ外れ値や欠損値が混在している可能性があるため、そうした外れ値に影響を受けにくい頑健な方法をとる必要があります。
平均値などは特に、一個のとびぬけた値に影響を受けやすいので扱いは気を付ける必要があります。
まとめ
さて、今回はデータ分析のプロセスについて書きました。
このEDAのアプローチは、データ分析コンテストのkaggleでもよく見られる方法です。
分析目的は様々ですが、実際にに上記のようなプロセスを意識して進めてみると効果的で効率的な分析が進められるケースが多々あると思いますので、ぜひ意識してみてはいかがでしょうか
ではでは