データ解析

データ分析プロセスの「CRISP-DM」をデータサイエンティストが解説!

CRISP-DM
ウマたん
ウマたん
本記事では、データ分析において非常に重要なプロセスである「CRISP-DM」について簡単に解説していきます。この言葉自体を覚える必要はありませんが、CRISP-DMのフレームワークをしっかり体に刷り込んでおくことがデータ分析においては重要です。

こんにちは!

消費財メーカーのデータサイエンティスト、ウマたん(@statistics1012)です。

データ分析において必要な考え方である「CRISP-DM」。

おそらくCRISP-DMという言葉は知らなくても、多くの人がこの「CRISP-DM」を日ごろから無意識的におこなっていることでしょう。

CRISP-DMという言葉自体を覚えることそのものには意味がありませんが、CRISP-DMを理解してこのフレームワークに立ち返ることでデータ分析を効率よく行うことができます。

ロボたん
ロボたん
確かにフレームワークは覚えるだけでは意味がないよね!実践して使えるようにならないと!
ウマたん
ウマたん
そうなんだ!理解して実践!

この記事では、そんなCRISIP-DMというプロセスに関してまとめていきます。

CRISP-DMとは

CRISP-DM

(出典:Wikipedia-‘Cross-industry standard process for data mining’)

CRISP-DMとは、「Cross-industry standard process for data mining」の略であり、データマイニング・データサイエンス・AI開発などにおいて業界横断で標準的に使えるデータ分析プロセスになります。

このCRISP-DMには全部で6つのプロセスがあります。

Business Understanding
Data Understanding
Data Preparation
Modeling
Evaluation
Deployment

それぞれについて詳しく見ていきましょう!

Business Understanding

Business Plan

まず全てのデータ分析は、ビジネス理解から始まります。

ロボたん
ロボたん
ビジネス理解ってデータ分析関係なくない!?
ウマたん
ウマたん
いや、データ分析だからといって、いきなりデータを触ってモデルを構築するわけではないんだよ!

データ分析というと、プログラミング言語やツールを使ってデータにアクセスするイメージがあると思いますが、最初は往々にしてビジネスを理解してビジネス課題を特定するところから始まります。

とはいえ、この段階でデータを触ってはいけないわけではありません。

理想はマクロ的な視点でビジネス課題を特定してその課題に対する仮説を基にデータを触ることですが、個人的にはデータをとりあえず触ってみるというところから始まってよいと思っています。

というかそこにあまり理路整然とした順番は必要ありません。

図でもBusiness UnderstandingとData Understandingが行き来しているように、シャープな課題特定と仮説立てにはこのプロセスの行き来が必要なのです。

ここでは、その課題に対してどのような出口設計をするのか、どのように効果検証を行うのかという事前設計も重要です。

このフェーズはコンサルタントの仕事に近く、コンサル本が役に立ちますが、定番は「イシューからはじめよ」といったところでしょうか。

created by Rinker
¥1,782
(2020/08/08 22:31:27時点 Amazon調べ-詳細)

Data Understanding

pc python

Business Understandingと相互的に行うのがData Understanding

データの構造や中身を分かっていないと、データ分析に移ることはできません。

もしかしたら元々Business Understandingで設計した課題と仮説を検証するデータがそもそも揃っていないかもしれません。

その場合、そのデータを新たに計測もしくは別のDMPから連携するのか、それとも別の検証方法を考えるべきなのか検討しなくてはいけません。

ここでDMPをしっかり作り込めているか否かの差が大きく出てきてしまいます。

また、このフェーズではデータを簡単に集計して可視化を行い、どこに課題があるのか見極めていくことになります。

PythonだとMatplotlibやSeabornと呼ばれるライブラリを使用することで比較的簡易的に可視化を行うことができます。

Data Preparation

python

続いてData Preparation。

このプロセスは、いわゆるデータ分析における前加工・前処理と言われるところです。

最もデータ分析において時間がかかる工程であり、地味な作業が多いです。

・欠損値処理
・ダミー変数化
・外れ値除去
・テーブルデータの結合
・特徴量作成

などの工程が必要になります。

Pythonで行う場合は、Pandasというライブラリが便利ですね。

pandas
【入門者向け】PythonのPandasの使い方について簡単にまとめておく!当サイト【スタビジ】の本記事では、Pythonで頻繁に使われるPandasについて簡単にまとめておきたいと思います!データの読み込みや前処理や集計、可視化などによくつかわれるPandasについてしっかりおさえておきましょう!また最後にはPandasを含めたPythonの基礎文法の勉強方法についてまとめておきますよ!...

モデル構築に利く特徴量エンジニアリングに関しては以下の記事にまとめています。

特徴量エンジニアリング
機械学習で重要な特徴量エンジニアリングとは?当サイト【スタビジ】の本記事では、精度の高いモデルを構築する上で非常に重要な特徴量エンジニアリングについて簡単に解説していきます。特徴量エンジニアリングの流れやテクニックを知っているのと知っていないのとではたたき出すアウトプットの質が全く違うので必ず理解しておきましょう!...

Modeling

road

データ分析という言葉から連想されるイメージはこのモデリングの場合が多いかもしれません。

しかし、実際はこのモデリング自体は便利なライブラリが用意されているためそれほど時間がかからないのです。

※モデル構築のコーディングには時間はかかりませんが、モデル学習自体は時間がかかる場合が多いです。

選択するモデルにはたくさんの種類がありますが、選択する上での基準はいくつかあります。

例えば、

・分類なのか回帰なのか
・画像データか否か
・時系列データか否か

精度だけを求めるのであれば、勾配ブースティングもしくはディープラーニング

解釈容易性を求めるのであれば、決定木ロジスティック回帰などが好まれます。

またKaggleなどのデータコンペでは、とにかく高い精度を出力することが求められるのでいくつかのモデルを組み合わせて(アンサンブル)、最終結果とすることもあります。

そもそも勾配ブースティングが自体がアンサンブル学習なのですが、それをさらに他の様々な手法とアンサンブルすることは、本質的ではないとは思いますが現にそれで精度が上がるのです。

Evaluation

studies science

モデルを構築した後にそれで終わりではありません。

そのモデルを評価しなくてはいけません。

評価指標には、

・MSE(平方平均二乗誤差)
・RMSE(平均二乗誤差)
・正解率
・適合率
・再現率
・F-measure

などがあります。

機械学習領域と統計学領域で同じ指標でも言い方が違ったりややこしいのですが、

回帰のタスクであれば、RMSEあたり

分類のタスクであれば、再現率・適合率

を使用することが多い気がします。

再現率・適合率に関しては以下の不均衡データの記事で詳しくまとめています

smote
不均衡データの扱い方と評価指標!SmoteをPythonで実装して検証していく!当サイト【スタビジ】の本記事では、実データによくありがちな不均衡データの特徴とどのように分析していったら良いかについてまとめてみました!最終的にSMOTEというオーバーサンプリング手法を使ってPythonで解析していきます!...

実は、このEvaluationの段階で、思ったような効果が出ていないと判断された場合「CRISP-DM」でいうBusiness Understandingに戻ってしまっています。

つまりは、そもそも最初に立てた課題設定が間違っていたという大きな手戻りが発生しているわけですね。

Deployment

mail

ここまできて、やっとビジネスに落とし込むことができます。

この時、しっかり現場と握れていないとDeploymentが出来ないという結果に陥りかねません。

しっかりDeploymentまで行うことができてデータ分析であり、それを行うことができるのがデータサイエンティストなのです。

そのためには、データホルダーだけで進めるのではなくマーケティングサイド・ビジネスサイドとしっかり業務要件やビジネス設計を明確にして共有しておくことが非常に大事です。

CRISP-DMの利用場面

Mobile Marketing

CRISP-DMの利用場面というよりも、データ分析の実例と言った方が早いかもしれませんが例えば顧客の解約率を予測してそれを防ぐことなどがあります。

これをCRISP-DMに当てはめると、非常に簡略化していますが以下のようなイメージです。

・Business Understanding
売上が落ちているのは何が原因なのか→既存顧客の解約率が下がっている→既存顧客の流出を防ぐことが急務である→既存顧客の解約率を予測する

・Data Understanding
どのようなデータがあるか調査、どのようなデータが顧客解約予測に利きそうか基礎分析

・Data Preparation
データの結合、前処理、加工、特徴量生成

・Modeling
機械学習手法でモデル構築

・Evaluation
顧客解約予測における実解約と予測解約の再現率・適合率で評価

・Deployment
解約予測された顧客に対するアプローチ(クーポン付与、メールセグメント、DM、直接アプローチ)

ちなみにデータ分析のプロセスを簡単に分かりやすくまとめているのが以下の書籍になります。

拙著「俺たちひよっこデータサイエンティストが世界を変える

created by Rinker
¥322
(2020/08/09 11:11:28時点 Amazon調べ-詳細)

この小説はCRISP-DMにおけるDeploymentまで出来ていないのですがデータ分析のプロセスがなんとなーく分かるかなと思います。

CRISP-DM まとめ

ここまでCRISP-DMについて見てきました!

冒頭でも述べましたが、CRISP-DMという言葉を知っているかどうかは重要ではありません。

CRISP-DMのフレームワーク

Business Understanding
Data Understanding
Data Preparation
Modeling
Evaluation
Deployment

の流れと各プロセスを理解して実践できるようにしましょう!

ロボたん
ロボたん
なるほどー!一見Modelingだけが目立つけど、それは一連のデータ分析の一部分でしかないんだねー!
ウマたん
ウマたん
Modelingよりも実はBusiness UnderstandingやData Preparationなど前手のプロセスが非常に重要なんだよ!

データ分析に有用なPythonの勉強法については以下の記事でまとめています。

【独学入門】初心者が3か月でPythonを習得できるようになる勉強法!当ブログ【スタビジ】の本記事では、Pythonを効率よく独学で習得する勉強法を具体的なコード付き実装例と合わせてまとめていきます。Pythonはできることが幅広いので自分のやりたいことを明確にして勉強法を選ぶことが大事です。...

また、データサイエンティストについてロードマップは以下の記事でまとめていますので是非参考にしてみてください!

【入門者向け】データサイエンティストに必要なスキルと独学勉強ロードマップ!当サイト【スタビジ】の本記事では、データサイエンティストに求められるスキルとそれを身に付けるための勉強法について徹底的にまとめていきます!入門者でも、しっかりデータサイエンティストについて理解しある程度独学で駆け出しの状態までいけることを目指します。...
Pythonを初学者が最短で習得する勉強法

Pythonを使うと様々なことができます。しかしどんなことをやりたいかという明確な目的がないと勉強は捗りません。

Pythonを習得するためのロードマップをまとめましたのでぜひチェックしてみてくださいね!