データ解析

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

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

こんにちは!

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

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

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

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

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

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

以下のYoutube動画でも解説しているので是非チェックしてみてくださいね!

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
(2021/09/21 13:52:37時点 Amazon調べ-詳細)

Business understandingの工程に関しては以下の記事で詳しく解説しています。

データ分析 ビジネス理解
データ分析におけるビジネス理解の重要性と具体例について見ていこう!当サイト【スタビジ】の本記事では、データ分析におけるビジネス理解の重要性と具体例について解説していきます!データ分析の価値を最大化するためにはその前手のビジネス課題の特定が非常に重要なんです。ビジネスをしっかり理解してデータ分析の価値を高めていきましょう!...

Data Understanding

pc python

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

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

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

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

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

また、このフェーズでは探索的データ分析(EDA)と呼ばれるステップをおこなっていきます。

このステップは地味な面も多いですが、これからのモデル構築の精度を決める非常に重要なステップとも言えます。

以下の記事で探索的データ分析(EDA)については詳しく解説していますので是非チェックしてみてください!

探索的データ分析
探索的データ分析(EDA)のステップと方法について実データ×Pythonで理解しよう!当サイト【スタビジ】の本記事では、データ分析において非常に重要な探索的データ分析(EDA)のステップと方法について解説していきます!地味に思えるかもしれませんが、非常に重要でEDAなしには精度の高いモデルは構築できませんし、意味のある意思決定はできません。実データを題材にPythonを使いながら手を動かしてEDAを学んでいきますよ。...

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

PythonだとPandasを使い加工集計し、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に戻ってしまっています。

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

CRISP-DMにおける評価のフェーズに関しては以下の記事で詳しく解説しています!

機械学習 評価指標
機械学習の回帰・分類精度における評価指標を徹底解説!当サイト【スタビジ】の本記事では、機械学習を実装する上での評価指標について徹底的にまとめていきます!回帰タスクや分類タスクにおける評価指標について見ていきましょう。評価フェーズや評価における注意点についても解説していきます。...

Deployment

mail

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

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

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

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

Deploymentについては以下の記事で詳しく解説しています!

機械学習の導入
機械学習実装・導入「Deployment(デプロイ)」に関しての注意点をまとめておく!当サイト【スタビジ】の本記事では、機械学習実装「Deployment」における注意点についてまとめていきます。基礎分析の後、機械学習モデルを構築しても最終的に実装まで出来ないと意味がありません。必ず最終フェーズのデプロイについて理解しておきましょう!...

CRISP-DMの利用場面

Mobile Marketing

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

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

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

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

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

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

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

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

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

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

created by Rinker
¥322
(2021/09/21 13:20:51時点 Amazon調べ-詳細)

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

CRISP-DM まとめ

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

CRISP-DMのステップをより詳しく理解するために以下のUdemyコースを用意しています。是非チェックしてみてください!

【初学者向け】データ分析コンペで楽しみながら学べるPython×データ分析講座

Udemy-course
【オススメ度】
【講師】僕!
【時間】4時間
【レベル】初級~中級

僕自身がUdemyの色んなコースを受けてみた中で、他のコースにはないこんなコースあったらいいなみたいなコースを作ってみました。

このコースは、なかなか勉強する時間がないという方に向けてコンパクトに分かりやすく必要最低限の時間で重要なエッセンスを学び取れるように作成しています。

アニメーションを使った概要編ハンズオン形式で進む実践編に分かれており、概要編ではYoutubeの内容をより体系的にデータ分析・機械学習導入の文脈でまとめています。

データサイエンスの基礎について基本のキから学びつつ、なるべく堅苦しい説明は抜きにしてイメージを掴んでいきます。

統計学・機械学習の基本的な内容を学び各手法の詳細についてもなるべく概念的に分かりやすく理解できるように学んでいきます。

そしてデータ分析の流れについてはCRISP-DMに沿って体系的に学んでいきます!

データ分析というと機械学習でモデル構築する部分にスポットがあたりがちですが、それ以外の工程についてもしっかりおさえておきましょう!

続いて実践編ではデータコンペの中古マンションのデータを題材にして、実際に手を動かしながら機械学習手法を実装していきます。

ここでは、探索的にデータを見ていきながらデータを加工し、その上でLight gbm という機械学習手法を使ってモデル構築までおこなっていきます。

是非興味のある方は受講してみてください!

Twitterアカウント(@statistics1012)にメンションいただければ最低価格の1200円になる講師クーポンを発行いたします!

\30日間全額返金可能/

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

CRISP-DMのフレームワーク

Business Understanding
Data Understanding
Data Preparation
Modeling
Evaluation
Deployment

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

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

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

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

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

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

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

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