「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
CRISP-DM:クリスプ ディー エム的な。
- 専門家が一般的に使用するアプローチを説明する
オープンスタンダードなプロセスモデル
- 2015年、IBMは、CRISP-DMを改良および拡張する、
ASUM-DMと呼ばれる新しい方法論をリリースした。
詳細 †
CRISP-DMは、データマイニングのプロセスを6つの主要なフェーズに分割する。
ビジネスの理解 †
Business Understanding
- ビジネスの背景を理解し、
ビジネス上の問題点、課題を明確にする。
- そして、
- 何を分析して何を解決したいのかを検討し、
- 分析プロジェクトの目標を決める。
データの理解 †
Data Under Standing
- データの内容を理解し、
- 分析の目的に合ったものになっているか、
- 余分なデータが入っていないか
などを確認する。
データソース、サイズ、収集方法 †
項目の情報の確認(名称、意味、型) †
項目の
データの調査 †
データの品質の検証 †
- 発生メカニズム
・MCAR(Missing Completely At Random)
欠損が完全にランダムに発生しており特別な偏りが存在しない。
・MAR(Missing At Random)
・他の特徴量に影響を受けて欠損が発生している。
・例:高齢者の多くは収入がない。
・MNAR(Missing Not At Random)
・自身の特徴量に影響を受けて欠損(に特別な偏り)が発生している。
・例:収入が低ければ低いほど自分の収入を報告しない。
- 欠損データの分類
・無視可能(MCAR、MAR
・無視不可能(MNAR
- データのクリーニング
・MCAR:レコードの除去
・MAR :欠損値の補完
・MNAR:方法を変えてデータを取り直すことくらい。
- 不均衡データ
予測したい事象(正例)が非常に少ないデータ
- 正例・負例の割合や件数を把握する。
- 不均衡な場合、特別な対応が必要となる。
データの要約 †
- 統計ベース(統計的基準)
・平均値から±2標準偏差以上離れた値
・外れ値検定(スミルノフ=グラブス検定)
・可視化(一変量、二変量で使用する図表が異なる)
・一変量:分布観察
・二変量:関係観察
- ルールベース(経験的基準)
・システム観点
・ドメイン観点
統計的基準から外れ値と判断されても、
経験的に意味がある値は外れ値としない。
- 外れ値検出のアルゴリズム
- k-NN(k-Nearest Neighbor)
- LOF(Local Outlier Factor)
- ホテリング理論
- エラーチェック
エラー入力がないかをチェックする。
- 分布観察(で使用する図表
10カテゴリのうち5カテゴリの合計が5%に満たない場合、
5カテゴリを「その他」に集約し、6カテゴリにする。
- 外れ値定義
- 一変量要約からの外れ値定義
- 外れ値がある場合、クリーニングが必要となる。
- 二変量要約
| | 統計量 | 可視化 |
関係の強さ | 分布の形状 |
尺度 | 質的×質的 | X^2値 | 棒グラフ |
量的×量的 | 相関係数 | 散布図 |
量的×質的 | F値 | 円グラフ、棒グラフ、箱ひげ図、散布図 |
- エラーチェック
- エラー入力がないかをチェックする。
- 二変量ではエラーの関連チェックも必要になる。
- 関係観察(で使用する図表
変数の組合せを要約することにより、
因果関係、相関関係とその程度を確認できる。
- 外れ値定義
- 二変量要約からの外れ値定義
- 外れ値がある場合、クリーニングが必要となる。
データの準備 †
Data Preparation
データの選択(データセット化) †
- 学習用と検証用のデータセットに分割
(コレはシステムレベル。プログラムレベルはコチラ。)
データの取得 †
- データ・アクセス権限をもらう
- 様々なデータソースから集約
- ETLで分析し易い形式に変換
データのクリーニング †
選択データセットの品質向上、データ補完など。
- リストワイズ削除法
欠損データを含む行・列をすべて削除する手法
- ペアワイズ削除法
欠損データの少ない列を残し、そこから欠損している行のみを削除する手法
- 補完値で置換
欠損値レコードを削除するとデータが残らない場合
- 単一代入量
特定の単一の値を代入する手法
・確定的代入法
・平均値代入法
平均値で補完(百害あって一利なし
・比例代入法
・切片のない単回帰分析の構造をしたモデルを用いて欠測値を予測
・相関が無い場合、適切な補完にならない
・確定的回帰代入法
・回帰モデルを作成し、欠測値を予測
・相関が無い場合、適切な補完にならない
・ホットデック法
類似するレコードの値で補完する手法だが、作業が煩雑、
また欠損データが多い場合には類似データの割り出しが難しい。
・確率的代入法
・確率的回帰代入法
・誤差項を追加した回帰モデルを作成し、欠測値を予測することで補完
・確定的回帰代入法で損なわれたデータのばらつきの表現を解消
- 多重代入法
多重代入法とは、1つの欠損データに対し、複数の値を代入する手法
・EMアルゴリズムによる補完
・マルコフ連鎖モンテカルロ法
データの構築 †
- 単一属性変換
データから新たな派生項目(集計、平均、カテゴリデータ)を作成
- 値の範囲:
- 値を10%ずつに分ける
- 例:年齢を10代、20代、30代...に変換
- 意味のある分岐点:
- xx卒
- 例:15歳(中卒)、18歳(高卒)、22歳(大卒)
- その他
- 数値属性の単位を合わせる
- カテゴリデータを数値データに変換
- 数値データ以外
文字列に対するテキストマイニング、エンリッチメント
データの統合 †
- カテゴリを列に展開(0・1化)など。
順序関係のないカテゴリデータの単一属性変換。
(PG上ある) †
X、Y分割 †
※ ≒ 特徴選択
標準化・正規化 †
学習・テストデータの分割 †
- CRISP-DM的にはこの位置に書かれていないが、実際に、
Pythonなどのプログラムの中では、この位置での処理になる。
モデリング †
Modeling
- 分析に適したモデリング手法
「予測(分類・回帰)」を選択し、
※ データの準備と被る部分も。
モデル概要 †
色々な分類方法がある。
- 理論別の分類
- 推測統計
- ベイズ統計
- 深層学習
- その他
・
・
・
モデル選定 †
SaaSリファレンスの例
評価 †
Evaluation
- モデルの評価ではなく、ビジネス目標を満たすかの評価。
- 分析プロジェクトがビジネス目標を達成しているか評価する。
- 問題があった場合は、ビジネスの理解フェーズに戻る。
ある。
モデルの評価 †
モデルの評価手法は、モデルのアルゴリズムに依存するので、モデルによって異なる。
- 残差プロット(重回帰)
- 予測の外れ方の傾向を視覚的に掴む手法
- 残差データを散布図にプロット。
・4次元以上になると可視化ができないが、残差なら平面で観察できる。
・作成方法
・目的変数の推論値と実測値を使用して散布図を作成する。
・X軸は目的変数の推論値、Y軸は目的変数の推論値と実測値の残差。
- データの問題、モデルの問題を見つける
・データの問題:外れ値、偏り、傾向
・外れ値:残差の外れ値、説明変数の外れ値を確認して除外
・偏り:対応する説明変数のヒストグラムを確認
・傾向:右肩上がり・下がりの傾向があったら目的変数を対数変換
・モデルの問題
曲線分布の傾向があったら多項式回帰など非線形を導入する。
- 可視化(3変数まで
- クラスタリングの可視化(2D
- クラスタリングの可視化(3D
- アルゴリズム毎
- k-means法:エルボー法、シルエット分析
- ...
精度の評価 †
精度の評価手法は、実行結果から評価するのでモデルに非依存(目的変数の種類によって異なる)。
目的変数が、
- MAE : Mean Absolute Error
- 平均絶対誤差(誤差の平均の大きさを直感的に見る相対指標)
- 誤差の絶対値の総和をデータ数で割った値(=平均値)
- MSE : Mean Squared Error
- 平均二乗誤差、誤差分散(誤差の平均の大きさを見る指標)
- 誤差の二乗値の総和をデータ数で割った値(=平均値)
- RMSE : Root Mean Squared Error
- RMSE = √MSE
- 誤差の標準偏差(平均二乗誤差の平方根で、誤差の平均の大きさを直感的に見る相対指標)
- (目的変数の)推論値の誤差の標準偏差が、実測値の標準偏差と比較して、充分小さいか?
- その他、色々。
- MSD : Mean Signed Difference
- MSLE : Mean Squared Logarithmic Error
- RMSLE : Root Mean Squared Logarithmic Error
- MAPE : Mean Absolute Percentage Error
- RMSPE : Root Mean Squared Percentage Error
※ 回帰問題の評価時には、基本的にRMSEかMAEのどちらかを使う。
- エラーのタイプ(混同行列)による指標
指標 | 計算方法 | 適合するケース例 | 用例 |
accuracy(正解率) 正解 / 全ケース | = (TP + TN) / (TP + TN + FP + FN) | 予測が当たるか当たらないかの指標 | 汎用的 |
precision(感度(再現率)) 分類に問題ナシ / 分類で問題アリ | = (TP) / (TP + FP) | 「どれだけ嘘の分類結果が少ないか」 ・真陽性(TP)と偽陽性(FP)に限定した指標 ・「真陽性(TP)と偽陽性(FP)」中の真陽性の比率 ・分類で問題アリ(TP + FP)のケース中で、分類に問題ナシ(TP)の割合 ・スコアが下がると偽陽性の誤検知が多いと言う話になる。 | ・疾病の診断判定 ・検索エンジン |
recall(精度(適合率)) 分類に問題ナシ / 実際に問題アリ | = (TP) / (TP + FN) | 「どれだけ取りこぼさないで分類できたか」 ・真陽性(TP)と偽陰性(FN)に限定した指標 ・「真陽性(TP)と偽陰性(FN)」中の真陽性の比率 ・実際に問題アリ(TP + FN)のケース中で、分類に問題ナシ(TP)の割合 ・スコアが下がると偽陰性の誤検知が多いと言う話になる。 | ・商品レコメンド ・検索エンジン |
specificity(特異度) 分類に問題ナシ / 実際に問題ナシ | = (TN) / (FP + TN) | ・偽陽性(FP)と真陰性(TN)に限定した指標 ・「偽陽性(FP)と真陰性(TN)」中の真陰性の比率 ・実際に問題ナシ(FP + TN)のケース中で、分類に問題ナシ(TN)の割合 ・スコアが下がると偽陽性の過検知が多いと言う話になる。 | ... |
f1-score(F値) | = (2 * precision * recall) / (precision + recall) | ハックし難い指標 | ... |
※ ハックとは実値異常(or 正常)が99%なら、予測値全部異常(or 正常)でaccuracy = 99%的な話。
※ テスト・エンジニア、セキュリエィ・エンジニア的に過検知(specificity)を許容して、誤検知(precision、recall)を減らす方向の努力が多い。
- ROC曲線とAUC
ROC曲線(receiver operating characteristic curve)およびAUC(area under)
- 正解率などとは異なった観点でモデルの性能を評価する。
- ロジスティック回帰分析の2クラス分類などは出力自体は確率で表現されている。
・基本的には閾値としてモデルの出力を正例か負例かに分類する。
・確率の閾値を0.3や0.7などに変えることによって予測結果も変化する。
- 閾値0-1間で予測の当たり外れどのように変化していくのかを表したものがROC曲線
・横軸にFPR、縦軸にTPRを取り、閾値0-1間に変化させていった際の両者の値をプロット
・FPR = TP / (TP + FN)
・TPR = FP / (FP + TN)
・この曲線の形はモデルの性能によって大きく変化し、
・もし全く予測ができないなら、ROC曲線は右下から左上の対角線になる。
・もし完全に予測することができるならば、ROC方形の左上2辺と一致する。
・ROC曲線は、上記の対角線と左上2辺の間の、対角線の左上を通過する曲線になる。
・ROC曲線より下部の面積のことをAUCと呼ぶ。
・AUCが1に近いほどモデル性能が高いことを表す。
・視覚的だけなく、数値としてもモデル性能を評価できる。
精度と説明力 †
- 特定のデータの周辺に着目し(≒ 局所的な説明ツール)、
単純なモデルによる近似を行い、その判断根拠を解釈・可視化するツール
- LIME:Local Interpretable Model-agnostic Explainations
決定木のアンサンブル学習器、ニューラルネットワークなど複雑でブラック・ボックスなモデルを
特定の入力データに対する予測について、単純で挙動を解釈可能し易い線形回帰モデルで近似して
特徴量の寄与度を測ることでモデルの解釈し説明を行う。
- 表形式データ:「どの変数が予測に効いたのか」
- 画像データ:「画像のどの部分が予測に効いたのか」
- SHAP:SHapley Additive exPlanations
- 学習済みモデルfを各変数の寄与が説明し易い簡単な線形モデルで近似し予測結果を特徴量の間に分配するイメージ
(個別の予想結果に対して「それぞれの特徴量が予測にどれくらい影響を与えたのか」を算出する)
- 原理は協力ゲーム理論におけるShapley値(シャープレイ値)の応用で、
「各特徴量」が「(ゲームにおける)プレイヤー」、「モデルの予測値」が「報酬」に相当、
各特徴量に分配された報酬の大きさ(= 各プレイヤーの寄与の大きさ)を求めるアプローチ
- Grad-CAM
CNNモデルで勾配情報を活用し、モデル全体の予測根拠を可視化する手法
- モデルの学習に用いられるのと同じ勾配の情報を可視化に使う
(最後の畳み込み層の予測クラスの出力値に対する勾配を使用)
- 勾配が大きいピクセルの重みが増す:予測クラスの出力に大きく影響する重要な場所
「画像のどこに注目して分類しているのか」「正しく認識しているか」を目視できる
- Guided Grad-CAM:解釈過程で画像の解像度が下がってしまうのが問題を解決
具体的に「(模様などの)どういう特徴に着目しているのか?」まで可視化可能
- feature importance、partial dependence
ランダムフォレスト
- モデルの選択と情報量
「モデルの複雑さと予測精度バランス」を考える。
- オッカムの剃刀に従うのが望ましい
「ある事柄を説明するためには、必要以上に多くを仮定するべきでない」という指針
- 赤池情報量規準(Akaike's Information Criterion、AIC)
解きたいタスクに対して実際にモデルをどれくらい複雑にすれば良いかの指標
説明変数が少ないほど小さい値になり、そのようなモデルがよいモデルとされる。
- Lはモデルの最大尤度
- kは自由パラメタ(説明変数)数
AIC = -2 ln L + 2k
展開 †
Deployment
PMPで言う最終プロダクト・サービス・所産の移管で、
- 目標を達成していれば、
- 最終プロダクト・サービス・所産をステークホルダーに展開し、
- 出力結果を意思決定(もしくは現場の業務)で活用する。
- 目標を達成していなければ、
前工程に戻ることを繰り返し、精度目標の達成をめざす。
報告書 †
開発 / 活用 / 運用の経験の文書化
- ビジネスの理解
- データの理解
- データの準備
- モデリング
- 評価
システム †
分析プロセスを今後も繰り返す場合はシステム化を検討する。
運用の示唆 †
- 継続的改善が重要
- モニタリング・メンテナンス計画
- 必要に応じてプロジェクトを見直す。
MLOpsなど、追加学習などを迅速に行なってデプロイするプラクティスがある。
参考 †