Skip to content

DNET_DataMiningCRISPDM

nishi_74322014 edited this page Sep 11, 2026 · 1 revision

データマイニング(DM)- CRISP-DM

概要

CRISP-DM:クリスプ ディー エム的な。

  • データマイニングの業界横断的な標準プロセス

  • 専門家が一般的に使用するアプローチを説明する
    オープンスタンダードなプロセスモデル

  • 2015年、IBMは、CRISP-DMを改良および拡張する、
    ASUM-DMと呼ばれる新しい方法論をリリースした。

詳細

CRISP-DMは、データマイニングのプロセスを6つの主要なフェーズに分割する。

ビジネスの理解

Business Understanding

  • ビジネスの背景を理解し、
    ビジネス上の問題点、課題を明確にする。

  • そして、

    • 何を分析して何を解決したいのかを検討し、
    • 分析プロジェクトの目標を決める。
  • データの理解と行き来する。

データの理解

Data Understanding

  • ビジネスの理解と行き来する。

  • データの内容を理解し、

    • 分析の目的に合ったものになっているか、
    • 余分なデータが入っていないか

    などを確認する。

  • 特徴選択と特徴量エンジニアリング(機械学習(machine learning)の該当節を参照)の一部。

データソース、サイズ、収集方法

  • データソース
  • サイズ
  • 収集方法

項目の情報の確認(名称、意味、型)

項目の

  • 名称
  • 意味

データの調査

  • グラフ、ヒストグラムによる可視化(データ分析の該当節を参照)

  • データの検査(統計量、代表値)(データ分析の該当節を参照)

    • 分布の中心
      平均値、中央値、最頻値(データ分析の該当節を参照)

    • 分布のばらつき

      • 四分位・パーセンタイル・箱ひげ図(データ分析の該当節を参照)
      • 分散、標準偏差、分布の形(統計解析の該当節を参照)
    • 相関関係

      • 相関係数の計算(統計解析の該当節を参照。 相関係数行列のヒートマップはPandasの該当節を参照)
      • 散布図で可視化(統計解析の該当節を参照。 散布図行列はMatplotlibの該当節を参照)

データの品質の検証

  • 外れ値や欠損値

    • エラー
      入力ミス

    • 外れ値

    • 欠損値
      未記入欄

      • 発生メカニズム
        ・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)
      • ホテリング理論
  • 一変量要約

尺度 尺度 尺度 統計量(分布の中心) 統計量(分布のばらつき) 可視化(分布の形状)
尺度 質的 名義 最頻値 カテゴリ数 棒グラフ、円グラフ
順序 最頻値、中央値 範囲 ヒストグラム
量的 間隔 平均値、中央値、最頻値 四分位範囲、分散、標準偏差
比率

移行メモ(表):元 Wiki の表はセル結合(|>| / |~|)を使っていた。 GitHub の表はセル結合ができないため、横結合は列を展開し、 縦結合は「〃」で表現した。尺度・統計量の各項目は データ分析 / 統計解析 の該当節を参照。

  • エラーチェック
    エラー入力がないかをチェックする。

  • 分布観察(で使用する図表は統計解析の該当節を参照)
    10カテゴリのうち5カテゴリの合計が5%に満たない場合、
    5カテゴリを「その他」に集約し、6カテゴリにする。

  • 外れ値定義

    • 一変量要約からの外れ値定義
    • 外れ値がある場合、クリーニングが必要となる。
  • 二変量要約

尺度 尺度 統計量(関係の強さ) 可視化(分布の形状)
尺度 質的×質的 X^2値 棒グラフ
量的×量的 相関係数 散布図
量的×質的 F値 円グラフ、棒グラフ、箱ひげ図、散布図
  • エラーチェック

    • エラー入力がないかをチェックする。
    • 二変量ではエラーの関連チェックも必要になる。
  • 関係観察(で使用する図表は統計解析の該当節を参照)
    変数の組合せを要約することにより、
    因果関係、相関関係とその程度を確認できる。

  • 外れ値定義

    • 二変量要約からの外れ値定義
    • 外れ値がある場合、クリーニングが必要となる。

データの準備

Data Preparation

データの選択(データセット化)

データの取得

  • データ・アクセス権限をもらう
  • 様々なデータソースから集約
  • ETLで分析し易い形式に変換

データのクリーニング

選択データセットの品質向上、データ補完など。

  • 欠損値
    を補完値で置換またはレコード除去

    • レコード除去

      • リストワイズ削除法
        欠損データを含む行・列をすべて削除する手法

      • ペアワイズ削除法
        欠損データの少ない列を残し、そこから欠損している行のみを削除する手法

    • 補完値で置換
      欠損値レコードを削除するとデータが残らない場合

      • 単一代入法
        特定の単一の値を代入する手法
        ・確定的代入法
         ・平均値代入法
          平均値で補完(百害あって一利なし)
         ・比例代入法
          ・切片のない単回帰分析の構造をしたモデルを用いて欠測値を予測
          ・相関が無い場合、適切な補完にならない
         ・確定的回帰代入法
          ・回帰モデルを作成し、欠測値を予測
          ・相関が無い場合、適切な補完にならない
         ・ホットデック法
          類似するレコードの値で補完する手法だが、作業が煩雑、
          また欠損データが多い場合には類似データの割り出しが難しい。
        ・確率的代入法
         ・確率的回帰代入法
          ・誤差項を追加した回帰モデルを作成し、欠測値を予測することで補完
          ・確定的回帰代入法で損なわれたデータのばらつきの表現を解消

      • 多重代入法
        多重代入法とは、1つの欠損データに対し、複数の値を代入する手法
        ・EMアルゴリズムによる補完
        ・マルコフ連鎖モンテカルロ法

  • 外れ値、異常値
    訂正(置換)またはレコード除去

  • OUTPUT:クリーニングレポート

データの構築

  • 単一属性変換
    データから新たな派生項目(集計、平均、カテゴリデータ)を作成

    • 特徴量を算出

      • 平均値や差
      • 例:BMI値
    • 値の範囲:

      • 値を10%ずつに分ける
      • 例:年齢を10代、20代、30代...に変換
    • 意味のある分岐点:

      • xx卒
      • 例:15歳(中卒)、18歳(高卒)、22歳(大卒)
    • その他

      • 数値属性の単位を合わせる
      • カテゴリデータを数値データに変換
  • 数値データ以外
    文字列に対するテキストマイニング、エンリッチメント

データの統合

  • 複数テーブルの結合

  • フォーマット変換

    • カテゴリを列に展開(0・1化)など。
      順序関係のないカテゴリデータの単一属性変換。

(PG上ある)

X、Y分割

  • X:説明変数
  • Y:目的変数

※ ≒ 特徴選択(機械学習(machine learning)の該当節を参照)

標準化・正規化

  • 標準化

    • 実測値を平均値0、標準偏差1の分布に置き換えるスケール変換

    • 正規分布に近い実測値は標準化(Z変換とも言う)

      標準化(Z変換) = (実測値 - 平均値) / 標準偏差
      
  • 正規化

    • 実測値を[0,1]の範囲に実測値を置き換えるスケール変換

    • その他の分布は正規化(標準偏差が重要な要因になる場合、適さない事がある)

      正規化 = (実測値 - 最小値) / (最大値 - 最小値)
      
  • Pythonでの実装(データマイニング(DM)- Pythonの該当節を参照)

学習・テストデータの分割

  • システムレベルに対するプログラムレベル

  • CRISP-DM的にはこの位置に書かれていないが、実際に、
    Pythonなどのプログラムの中では、この位置での処理になる。

  • 技法

    • ホールド・アウト法(データマイニング(DM)- Pythonの該当節を参照)

      • 訓練 / テストでデータを2つに分け、訓練データのみを学習用にする。
      • データの割合は、訓練:テスト = 9:1 とか 8:2 とか 7:3 が多い。
    • k分割交差検証法(k-fold Cross-Validation)(データマイニング(DM)- Pythonの該当節を参照)

      • 訓練 / テストでデータを複数パターン分割して学習し、評価 ・推定 で平均を利用

      • k分割 & xEpochで 1 学習 = k * x Epoch、ホールド・アウト法よりも高い信頼性評価ができる。

      • 選択問題的には
        ・すべてのデータを「学習 / 検証」データとして使用する。
        ・訓練データ部は重複するが、検証データは重複しない。

      • 回帰の場合:k分割交差検証法(k-fold Cross-Validation)

      • 分類の場合:層化k分割交差検証法(Stratified k-fold Cross-Validation)

      • ※ 「層化」は、分類問題向けで目的変数(各クラス)の割合が等しくなるように分割。

    • ハイパーパラメータのチューニング用に検証データを追加し、
      訓練、検証、テストの3つのデータに分割するケースもある。

モデリング

Modeling

モデル概要

色々な分類方法がある。

  • 目的別の分類

    • データの特徴や構造を捉えたい。

    • 予測したい。

      • 分類したい。
      • 回帰したい。
    • その他

      • レコメンド
      • テキスト分析
      • 画像分類
  • 理論別の分類

    • 推測統計
    • ベイズ統計
    • 深層学習
    • その他
  • リンク

モデル選定

SaaSリファレンスの例(Azure Machine Learningのアルゴリズム・モデルの該当節を参照)

Excelの手順

データマイニング(DM)- Excel

  • 単回帰分析
  • 重回帰分析
  • 決定木分析
  • ロジスティック回帰分析
  • 主成分分析
  • クラスタ分析

KNIMEの手順

データマイニング(DM)- KNIME

  • 回帰分析
  • 決定木分析
  • 主成分分析
  • ニューラルネットワーク
  • ロジスティック回帰分析
  • クラスタ分析
  • アソシエーション分析

Pythonの手順

データマイニング(DM)- Python

  • 単回帰分析
  • 重回帰分析
  • 多項式回帰
  • 正則化回帰
  • 単純パーセプトロン線形分類器
  • ロジスティック回帰分析
  • サポートベクターマシン分類器
  • 決定木分析
  • 主成分分析
  • クラスタ分析
  • 自然言語処理

評価

Evaluation

モデルの評価

モデルの評価手法は、モデルのアルゴリズムに依存するので、モデルによって異なる。

  • 回帰分析

    • 回帰係数、偏回帰係数(統計解析の該当節を参照)

    • 相関係数、決定係数(R2乗値)(統計解析の該当節を参照)

    • 自由度調整済み決定係数(R2乗値)(データマイニング(DM)- Pythonの該当節を参照)

    • オッズ比(ロジスティック回帰分析。統計解析の該当節を参照)

    • 可視化(3変数まで)

      • 回帰直線(2変数、単回帰)
      • 回帰平面(3変数、重回帰)
    • 残差プロット(重回帰)

      • 予測の外れ方の傾向を視覚的に掴む手法
      • 残差データを散布図にプロット(Matplotlibの該当節を参照)。
        ・4次元以上になると可視化ができないが、残差なら平面で観察できる。
        ・作成方法
         ・目的変数の推論値と実測値を使用して散布図を作成する。
         ・X軸は目的変数の推論値、Y軸は目的変数の推論値と実測値の残差。
      • データの問題、モデルの問題を見つける
        ・データの問題:外れ値、偏り、傾向
         ・外れ値:残差の外れ値、説明変数の外れ値を確認して除外
         ・偏り:対応する説明変数のヒストグラムを確認
         ・傾向:右肩上がり・下がりの傾向があったら目的変数を対数変換 (機械学習(machine learning)の該当節を参照)
        ・モデルの問題
         曲線分布の傾向があったら多項式回帰など非線形を導入する。
  • 分類器

    • 可視化(3変数まで)
      • 決定境界の可視化(2D)
      • 決定境界の可視化(3D)
  • クラスタリング

    • 可視化(3変数まで)

      • クラスタリングの可視化(2D)
      • クラスタリングの可視化(3D)
    • アルゴリズム毎

      • k-means法:エルボー法、シルエット分析

精度の評価

精度の評価手法は、実行結果から評価するのでモデルに非依存(目的変数の種類によって異なる)。

目的変数が、

  • 量的変数の場合

    • 平均絶対誤差(MAE:Mean Absolute Error)

      • 誤差の平均の大きさを直感的に見る相対指標

      • 誤差の絶対値の総和をデータ数で割った値(=平均値)

              n
        = 1/n Σ|ti-yi|
              i=1
        
    • 平均二乗誤差(MSE:Mean Squared Error)

      • 誤差の平均の大きさを見る指標

      • 誤差の二乗値の総和をデータ数で割った値(=平均値)

              n
        = 1/n Σ(ti-yi)^2
              i=1
        

    以降、日本語の並びがなんか資料によっていろいろ違う(笑)

    • 平均二乗平方根誤差(RMSE:Root Mean Squared Error)

      • 平均二乗誤差(MSE)の平方根

      • 誤差の標準偏差(平均二乗誤差の平方根で、誤差の平均の大きさを直感的に見る相対指標)

      • (目的変数の)推論値の誤差の標準偏差が、実測値の標準偏差と比較して、充分小さいか?

        RMSE = √MSE
        
    • 対数誤差関数

      • 平均二乗対数誤差(MSLE:Mean Squared Logarithmic Error)

              n
        = 1/n Σ(log(yi+1)-log(ti+1))^2
              i=1
        
      • 平均二乗平方根対数誤差(RMSLE:Root Mean Squared Logarithmic Error)

        RMSLE = √MSLE
        
    • その他

      • MSD : Mean Signed Difference
      • MAPE : Mean Absolute Percentage Error
      • RMSPE : Root Mean Squared Percentage Error
  • 質的変数の場合

    • 損失関数の場合、

      • 交差エントロピー誤差(エントロピーは機械学習の理論の該当節を参照)

           K
        = -Σ tk log yk
           k=1
        
      • カテゴリ交差エントロピー誤差

           n   m
        = -Σ  Σ  ti,j log yi,j
           i=1 j=1
        
    • エラーのタイプ(混同行列)(AIプロジェクトのマネジメントの該当節を参照)による指標

混同行列

指標 計算方法 説明文
accuracy(正解率) = (TP + TN) / (TP + TN + FP + FN)
=(真陽性 + 真陰性)/(真陽性 + 真陰性 + 偽陽性 + 偽陰性)
= 正解数 / 検査数
検査の正解率
precision(適合率、陽性反応的中率) = (TP) / (TP + FP)
= 真陽性 /(真陽性 + 偽陽性)
= 真陽性 / 検査結果が陽性
陽性反応(予測)の的中率(正確性)
(陰性反応的中率) = (TN) / (TN + FN)
= 真陰性 /(真陰性 + 偽陰性)
= 真陰性 / 検査結果が陰性
陰性反応(予測)の的中率(正確性)
recall(再現率、感度) = (TP) / (TP + FN)
= 真陽性 /(真陽性 + 偽陰性)
= 真陽性 / 実際に陽性
陽性を正しく陽性と予測する(陽性を取りこぼさない)確率
specificity(特異度) = (TN) / (FP + 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 the Curve)
    • 正解率などとは異なった観点でモデルの性能を評価する。
    • ロジスティック回帰分析(統計解析の該当節を参照)の2クラス分類などは出力自体は確率で表現されている。
      ・基本的には閾値としてモデルの出力を正例か負例かに分類する。
      ・確率の閾値を0.3や0.7などに変えることによって予測結果も変化する。
    • 閾値0-1間で予測の当たり外れどのように変化していくのかを表したものがROC曲線
      ・横軸にFPR、縦軸にTPRを取り、閾値0-1間に変化させていった際の両者の値をプロット
       ・TPR = TP / (TP + FN)
       ・FPR = FP / (FP + TN)
      ・この曲線の形はモデルの性能によって大きく変化し、
       ・もし全く予測ができないなら、ROC曲線は右下から左上の対角線になる。
       ・もし完全に予測することができるならば、ROC方形の左上2辺と一致する。
       ・ROC曲線は、上記の対角線と左上2辺の間の、対角線の左上を通過する曲線になる。
      ・ROC曲線より下部の面積のことをAUCと呼ぶ。
       ・AUCが1に近いほどモデル性能が高いことを表す。
       ・視覚的だけなく、数値としてもモデル性能を評価できる。

精度と説明力

  • 精度と説明力の関係(Azure Machine Learningのアルゴリズム・モデルの該当節を参照)

  • 精度比較

  • 説明力比較

    • (一般化)線形モデル(統計解析の該当節を参照)
      感度分析で影響度が解る。

    • ニューラルネットワーク
      明確な説明が難しい。

    • 決定木(統計解析の該当節を参照)
      高い説明力を持つ。

      • 特徴量の重要度を算出
      • 明確な分岐条件を出力
  • 特定のデータの周辺に着目し(≒ 局所的な説明ツール)、
    単純なモデルによる近似を行い、その判断根拠を解釈・可視化するツールで、
    機械学習の線形モデルやSVM、アンサンブルツリー、他の微分不可能モデル、
    深層学習(DNN/CNN/RNN)ブラックボックス・モデルにも適用可能

    • LIME:Local Interpretable Model-agnostic Explanations
      決定木のアンサンブル学習器、ニューラルネットワークなど複雑でブラック・ボックスなモデルを
      特定の入力データに対する予測について、単純で挙動を解釈し易い線形回帰モデルで近似して
      特徴量の寄与度を測ることでモデルを解釈し説明を行う。

      • 表形式データ:「どの変数が予測に効いたのか」
      • 画像データ:「画像のどの部分が予測に効いたのか」
    • SHAP:SHapley Additive exPlanations

      • 学習済みモデルfを各変数の寄与が説明し易い簡単な線形モデルで近似し予測結果を特徴量の間に分配するイメージ
        (個別の予想結果に対して「それぞれの特徴量が予測にどれくらい影響を与えたのか」を算出する)
      • 原理は協力ゲーム理論におけるShapley値(シャープレイ値)の応用で、
        「各特徴量」が「(ゲームにおける)プレイヤー」、「モデルの予測値」が「報酬」に相当、
        各特徴量に分配された報酬の大きさ(= 各プレイヤーの寄与の大きさ)を求めるアプローチ
      • 説明可能な近似モデルに対して求める、以下の3つの条件(Local Accuracy、Missingness 、Consistency)
        ・Local Accuracy:学習済みモデルと近似モデルの結果が一致しなければならないと言う性質
        ・Missingness:モデルの予測に使用されなかった特徴量の寄与は「0」となると言う性質
        ・Consistency:ある特徴量iを、除いた際の影響の大小の関係性と、寄与の大小の関係性を保つという性質
    • その他

      • Grad-CAM(E資格:試験対策の該当節を参照)
        CNN用、ヒートマップを作成

      • Attention
        ニューラルネットワーク

      • feature importance、partial dependence
        ランダムフォレスト

  • モデルの選択と情報量
    「モデルの複雑さと予測精度バランス」を考える。

    • オッカムの剃刀に従うのが望ましい
      「ある事柄を説明するためには、必要以上に多くを仮定するべきでない」という指針

    • 赤池情報量規準(Akaike's Information Criterion、AIC)
      解きたいタスクに対して実際にモデルをどれくらい複雑にすれば良いかの指標
      説明変数が少ないほど小さい値になり、そのようなモデルがよいモデルとされる。

      • Lはモデルの最大尤度
      • kは自由パラメタ(説明変数)数
      AIC = -2 ln L + 2k
      

展開

Deployment

PMPで言う最終プロダクト・サービス・所産の移管(PMP:終結の該当節を参照)で、

  • 目標を達成していれば、

    • 最終プロダクト・サービス・所産をステークホルダーに展開し、
    • 出力結果を意思決定(もしくは現場の業務)で活用する。
  • 目標を達成していなければ、
    前工程に戻ることを繰り返し、精度目標の達成をめざす。

報告書

開発 / 活用 / 運用の経験の文書化

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

システム

分析プロセスを今後も繰り返す場合はシステム化を検討する。

運用の示唆

  • 継続的改善が重要
  • モニタリング・メンテナンス計画
  • 必要に応じてプロジェクトを見直す。

MLOps(機械学習(machine learning)の該当節を参照)など、追加学習などを迅速に行なってデプロイするプラクティスがある。

参考

移行メモ

  • 混同行列の指標表で precision と recall の和名が入れ替わっていた。 計算式に合わせて「precision(適合率、陽性反応的中率)= TP/(TP+FP)」 「recall(再現率、感度)= TP/(TP+FN)」に修正した。
  • ROC曲線の説明で TPR と FPR の式が入れ替わっていたため 「TPR = TP / (TP + FN)」「FPR = FP / (FP + TN)」に修正した。 また「AUC(area under)」は「AUC(Area Under the Curve)」に補完した。
  • 「Data Under Standing」→「Data Understanding」、 「単一代入量」→「単一代入法」(対になる「多重代入法」に合わせて)、 「RMSE = √MSLE」→「RMSLE = √MSLE」に修正した。
  • 「Local Interpretable Model-agnostic Explainations」→「Explanations」、 「解釈可能し易い線形回帰モデル」→「解釈し易い線形回帰モデル」、 「モデルの解釈し説明を行う」→「モデルを解釈し説明を行う」、 「セキュリエィ・エンジニア」→「セキュリティ・エンジニア」に修正した。
  • データの構築の例「IBM値」は、文脈(平均値や差から特徴量を算出)から 「BMI値」の誤記と判断して修正した。
  • 「可視化(3変数まで」「(2D」「(3D」「(百害あって一利なし」 「無視可能(MCAR、MAR」など、閉じ括弧の欠落を補った。
  • 一変量要約・二変量要約の表は元 Wiki でセル結合(|>| / |~|)を使っていたが、 GitHub の表はセル結合ができないため、横結合は列を展開し、縦結合は「〃」で表現した。
  • 添付は 1 点(混同行列の図)で、DNET_DataMiningCRISPDM_1.png として取得した (元ファイル名は「タイトルなし.png」)。
  • マイクロソフト系技術情報 Wiki(techinfoofmicrosofttech.osscons.jp)への URL リンクは、移行済みの Azure Machine Learningのアルゴリズム・モデル に張り替えた。
  • PukiWiki のページ内アンカ(#xxxxxxxx)は GitHub Wiki では再現できないため、 同一ページ内のアンカは見出しから生成されるアンカに張り替え、 他ページのアンカを指すリンクは「〜(ページ名 の該当節を参照)」の形に置き換えた。

Tags: 移行, CRISP-DM, データマイニング, データの理解, データの準備, モデリング, 評価, 混同行列, ROC曲線, AUC, LIME, SHAP

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally