戦略的データサイエンス(4)

第7章 意思決定のための分析思考

    • データ分析の解析結果を現場に活かせきれていない問題
      • データ収集にかかる費用、体制がない。そもそも上層部が理解できていない
      • そんな問題を解決・軽減するためにも、ある程度共通した物の見方が必要。
    • 分類器評価
      • データ分析の結果について深く考える必要
        • 陽性陰性は良い悪い結果について議論している。
          • がんであることが陽性などと表現するので、定義は曖昧。現場に沿うべき
        • 判断を謝る場合
          • 偽であることを、真であるということ:偽陽性(第一種の過誤)
          • 真であることを、偽であるということ:偽陽性(第二種の過誤)
        • 単純な精度(正答率)は広く普及しているが、問題が多い。
          • 正しい決定と間違った決定を適切に判断することが必要
            • 混同行列NクラスならN*N
    • 偏りに関する問題
      • ベースレート:1:9のデータの場合。9が正解クラスなら、適当に判定してもベースレートは90%のデータになってしまう。
        • この数値に対して意味をもたない
        • なにかモデルを作る際に、使用したデータの構成(均等になるように設計してる等)がある
          • すなわち、データの構成や分析にかかるバックとなる部分を疑う。
      • 偏りがあることによって、データ量において大きく差が発生しうる
      • 等しくないコストと利益
        • 偽陰性と偽陽性はコストが違う。がんなのにがんでないとがんでないのにがん
        • →これを避けるために、結果に対し異なる利益コストを設定&集計を行なう必要
      • コスト評価において、評価基準の意味を理解すべき
        • なんでR2なのとか
      • 分析のフレームワーク
        • 1.問題の構造を理解する
        • 2.対象のデータ分析のための要素
        • 3.対象のデータ以外の情報源から得る必要がある分析のための要素
      • 期待値計算を行なう
        • 期待値の使いみち
          • モデルの出力値から、モデルの使い方を定義すべく期待値計算を行う。
            • 期待値を元に発生確率が期待値よりも高い場合に限定して対象として選択する。
            • こういう場合には、こういう施策が必要だ!
          • 分類器を評価するために期待値を使う
            • 期待値には実際の損益を考慮して最終的に評価する
              • 事前に損益行列を定義する必要
              • 損益行列*期待値行列
            • 個々に良し悪しを判定する場合は辛いので期待値で全体を評価
      • 損益行列には、二重カウントの懸念。
        • ある課題に対して改善利益を求める場合、正負が共存していると「相殺」が発生していまう
          • 改善利益の場合:(エラー回避+1000円-(エラー遭遇-1000円)=1000。実際の改善利益は1000円なので、)
            • ある事象が利益としても損としても捉えられる場合(ガン検査に1000円かかるとか、、)
            • どちらかを0にすることで解決
      • いろんな評価指標
        • F、特異度、感度
        • 陽性適中は適合率と同じ
      • 評価・性能基準・データへの投資
        • モデルの性能の比較対象となる適切な基準はなにか?考えることは非常に大事
          • ランダム性能vsシンプルモデル
            • 時にはシンプルモデルを構築する必要。必ず出さなければ行けない場合もある
        • 妥当な性能基準
          • 必ずしも高い予測性能が良いとは限らない。
          • 結果から何を求められているのかを考える(平均、多数決、中央値・・・)
        • 妥当なデータ
          • 決定株:単一の特徴でデータを説明できちゃうこと
      • まとめ
        • データの偏りはそのまま使うべき
          • モデルで何が解決できそうかを再考できる。
        • モデル選択の際に混合行列を用いた期待値評価が有用。

第8章 モデル性能の可視化

    • ビジネス的には、分類よりもランク付けの方が重要
      • 多くの場合は予算が存在し、割当の方法を考えるから
      • 分類問題は真のクラスに対する「推定」の確率(=尤度)であり、コストではない。
        • そもそも、クラス分類の過程でデータの偏り・データ量の観点からそもそも推定の確率が正確でない場合がある。
    • ランク付け(確率)を比較する
      • ランク付けはしきい値によって変化する。分類器の特性が変わる
        • 判定結果に対し、利益をベースに評価をし、分類器が保守的かどうかを現実的に評価する
        • 利益曲線は使用したテストインスタンスの割合がXになる。
          • スコア降順にソートし、全体に対してどこまで下に行けば良いか
            • 予算は限られているので、全顧客に対してテストすることは厳しい、予算の範囲で限定する必要がある、
          • 左端一致:NoActionのため
          • 右端一致:全顧客の結果であるから、yな客とNな客は一致。
          • 仮に予算の都合上、全体の8%しか顧客にアプローチかけられない場合↓
    • 利益曲線が適切である場合
      • クラスの事前分布が明確。また適切に分類されている事前分布である。ベースレートが極端でない
      • コストー利益行列が適切に設定されている。学習機はコストに大きく影響を受けるので、これも極端な損失とかあるとまずい気がする
    • それで評価するのはまずいから、まず混合行列ベースのスコアに対して、分類器そのものの性能を評価する
      • ROC曲線
        • クラス分布やコスト・利益とは別物に考えることができる
          • 分類機の単純な性能を評価する場合に有効
          • インスタンスが多ければ、なめらかになるはず。。。
        • インスタンスの数だけ、プロットする
          • 上の例であれば、しきい値を変化させた数だけインスタンスが存在
          • 実質的には、混合行列をプロットしているだけ
        • FP+TP(ポジ判定だしたけど正解不正解) or  FN+TN 
          • TPがY軸で、曲線左に行けば、保守的:すぐにアラートだすので。
      • AUC
        • ROCはたかだかグラフでしか見ることが出来ない。
          • 定量的に判定は不可能
        • ROCの下側面積/全体
          • 一般的に用いられている。汎用的な要約統計量
          • wilcoxon順位検定と同じ
      • 累積反応とリフト曲線
        • 累積反応:X:テストインスタンス割合、Y:対象となった陽性インスタンスの割合
        • リフト値:X:テストインスタンス割合、Y:対象となった陽性インスタンスの割合/対象となった陰性インスタンスの割合
          • それだけ陽性を上に押し上げたか
            • 完璧な分類機なら押上げきる。
          • コストとは完全に独立しているよ
        • 以上は、母集団とテストセットが同様のクラス割合であると仮定している。
          • しかし、1軸で1クラスのを示しているため、ダウンサンプリングしても問題はない。調整は不要。
            • それによってグラフの形が変わる。
        • ROCなどの場合は、2軸を相手にしているので変更すると形が意味なくなる
      • 乗り換えモデリング例題
        • トレーニングセットでの再試験:どれだけ記憶(fit)しているに過ぎない。でも、意味はある。
        • 本当は全部のせたい
          • ROC.AUC.リフトのみならず、データセットに関する色々が乗っている
        • 例;
          • 精度が低いだけで排除はいけない
            • AUCが高い場合→特定の状況において有利な可能性がある
              • 「あ、これはオーバーフィッティングしてるな!」
                • スイートスポットを認識し、適切なサイズ設定しよう
                  • X:分類機の複雑さ(深さなど)
                  • Y:AUCでとって、
              • ROCを見て「あ、実は保守的で、この場合は的確に捉えている」
                • ↑「でも、数の圧力で大きくその割合を引い下げている!」みたいな考察
                • ROCみて保守的!っていうのはリフト見て、数量ベースで捉えてみる
                  • じつは上位25%には有効ではないけどそれ以外は有効とか
                    • 一般的にそういう時に(予測時)アンサンブルしても意味はない。
                      • インスタンスは分類器ごとに異なるから
            • 一般的に巷のデータは汚く、AUC50ちょい超えくらいが普通
          • 更に、利益をYにとることで変化してくる
            • ここで、ようやくビジネス的な判定ができる
            • 最終目標であるモデルが経理上の純利益に近づくことができる
          • しかし、一般に運用は分析している以上は利益を見出しにくい
            • その中で有効なのは、累積とリフト
          • ROCは各モデルの性能を評価できる。
            • コストとは分離して考える事ができる