モデル最適化指標・ 評価指標の選び方...roi...
TRANSCRIPT
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
モデル最適化指標・評価指標の選び方
Enabling the AI-Driven Enterprise
-
Confidential. Copyright © DataRobot, Inc. - All Rights Reserved
DataRobotのトレーニングについて
エッセンシャル
エッセンシャルfor Experts
アドバンスド
エグゼクティブ
モデルデプロイ
スポンサー
ビジネスユーザー
データサイエンティスト
AIスーパーヒーロー
AIスポンサー
Universityコースに加え、中級レベルの月次ワークショップを様々なテーマで開催中
詳細は https://datarobot.connpass.com/ を御覧ください!
https://datarobot.connpass.com/
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
本日の講師のご紹介
シバタアキラチーフデータサイエンティスト
オガワミキオデータサイエンティスト
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
本日のアジェンダ
1. 前提 (15分)a. なぜ指標を意識する必要があるのかb. 機械学習プロジェクトで使われる指標の種類と構造
2. 指標リファレンスとDataRobotでの選択ルール (70分)a. DataRobotセットアップb. 回帰(RMSE,RMSLE,MAE,MAPE,Tweedie,Gamma,)c. 二値(Logloss,AUC,KS,Gini)(ハンズオン)d. 多値(Micro-Macro)
3. DataRobotのデフォルトから変えるべきケース (35分)a. 評価の時b. ビジネスケース(ハンズオン)c. 答えが明確にわかっているケースd. 加重指標の場合(ハンズオン)
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
なぜ指標を意識する必要があるのか
どんなにモデルの精度を向上しても、ビジネスに則していない指標で精度が測られていたならば解釈が難し
かったり、実装し時の効果が期待と異なる結果になる
一方で最終的なRoIをターゲットにしてオプティマイズすることは難しい● モデルをデプロイしてみたらどうなったか、という過去データはない
○ 実装済み既存モデルがあれば、モデル精度から RoIを解釈しやすくなる● よってビジネスRoIは計算が難しく、シミュレーションを伴うことも多い● モデルだけでビジネスが動いてるわけではない(取られるアクションの質にもよる)ので、モデルによる貢
献は分解して理解するほうが理想
ビジネスRoIとモデルの個別精度が相関するよう、問題設定することも重要● 例:会社の倒産を予測するモデルが、与信には使えない(期間が違う)● 例:離反しそうな顧客を見つけるモデルができても、引き止められない
とは言え、特徴量エンジニアリングや、ハイパーパラメーターのチューニング、リーケージ除去などのテーマと比
べると結果に与えるインパクトはそんなに大きくない場合も:「どの指標では測ってもいいモデルはいいモデル」
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
機械学習プロジェクトで使われる指標の種類と構造
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
モデル利用の各ステージに即した指標を使うことが重要
与えられたアルゴリズムと
設定で最適なモデルを生成モデリング
チューニング
比較・評価
ビジネス判断
ビジネスインパクト
目的 指標
損失関数
モデルの精度を上げるアルゴリ
ズムの設定をみつける
最適化指標
複数モデルを評価・比較して選
抜する
評価指標
モデル実装時の効果試算し、実
ビジネスでの利用判断
ビジネスKPI
モデル利用後の効果を検証 RoI
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
モデル利用の各ステージに即した指標を使うことが重要
与えられたアルゴリズムと
設定で最適なモデルを生成モデリング
チューニング
比較・評価
ビジネス判断
ビジネスインパクト
目的 指標
損失関数
● 予測値と、実測値の誤差(損失)を最小限にするような最適化が行われる。
● 最適化計算の性質上、損失関数(コスト関数、効用関数)は多くの場合微分可能性
や、計算効率が要求される
● アルゴリズムによって利用できる指標の種類は限られており、増やすためには追加開
発が必要となることも
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
モデル利用の各ステージに即した指標を使うことが重要
モデルの精度を上げるアルゴリ
ズムの設定をみつけるモデリング
チューニング
比較・評価
ビジネス判断
ビジネスインパクト
目的 指標
最適化指標
● 各アルゴリズムの設定値(ハイパーパラメータ)の中で、最も精度の高いモデルを作れる
値を探索する
● DataRobotではグリッドサーチを採用。最適化の対象となる指標の種類は自由度が高い
が、閾値の設定が必要な指標は適さない
○ 閾値の設定を自動で行うことは困難○ 閾値の設定にはより多くの計算コスト
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
モデル利用の各ステージに即した指標を使うことが重要
複数モデルを評価・比較して選
抜するモデリング
チューニング
比較・評価
ビジネス判断
ビジネスインパクト
目的 指標
評価指標
● これまでの傾向と比較するために、より解釈可能性の高い評価指標を使い、最終的に
使うモデルを決定する場合も
○ 例:AUCなどの比較し易い指標● よりビジネスKPIに近い指標が好まれるた
め、プレシジョン・リコールなどの閾値を伴う
指標が使われることもある
○ 最初に全体指標、その後に閾値あり指標、などの組み合わせが一般的
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
損失関数 最適化指標 評価指標
DataRobot内での指標の選択方法
*損失関数は任意の組み合わせで選ぶことは出来ない
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
モデル利用の各ステージに即した指標を使うことが重要
モデル実装時の効果試算し、実
ビジネスでの利用判断モデリング
チューニング
比較・評価
ビジネス判断
ビジネスインパクト
目的 指標
ビジネスKPI
● モデルをビジネス実装したときに期待される効果を数値化し、実装実施判断を行う
○ 例:マーケティングのレスポンス率○ 例:在庫欠品商品数
● 次のステップのビジネスインパクト(RoI)計算と同等であったり、両ステップを一度に
行ったりもされる
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
モデル利用の各ステージに即した指標を使うことが重要
モデル利用後の効果を検証モデリング
チューニング
比較・評価
ビジネス判断
ビジネスインパクト
目的 指標
RoI
● 実際のモデル利用の結果としてどのような効果が現れたのか、経済的な指標として算
出する
● RoIとざっくり言われるが、コスト減、利益増、売上増等、様々な形を取る
○ 分母には施策実施にかかったツール、人件費、開発費等が入る
● 企業イメージ、採用など定量化が難しかったり、間接的な効果であることも
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
注意点
● DataRobotのプロジェクト作成時に選ぶ指標は損失関数と最適化指標の両方を指定するが、損失関数に関しては必ずしも選択した指標が使われない
○ 例:ロジスティック回帰はいつも LogLoss損失関数を使う
● 評価指標の結果を良くするためには、同じ指標を損失関数と最適化指標に設定したら良いとは限らない
○ 例:AUCを最適化指標に設定するよりも、 LogLossを使ったほうが、AUCの高いモデルが出来ることがある
■ チューニングにおける探索の効率は指標によって変わってくる(異なる局所最適解が見つかることがある)
● ビジネス指標に結果的に相関が強い関数などの明確なルールは存在しない○ よって、各ステージである程度独立した選択が行われる場合もある
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
2値分類の例
モデリング
チューニング
比較・評価
ビジネス判断
ビジネスインパクト
指標
損失関数はLogLoss
最適化指標はLogLoss
AUCでモデル候補を選択し、固定リコールでのプレシジョンで最終モデルを決定
不正取引の誤判定率が60%下がることを確認
不正取引をチェックする人員を40%削減
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
連続値回帰の例
モデリング
チューニング
比較・評価
ビジネス判断
ビジネスインパクト
指標
損失関数はGamma Deviance
最適化指標はGamma Deviance
MAPEで、ざっくりモデル精度を把握し、ベストなモデルを選択
これにより、値引きされた商品数が10%減
結果、売り上げが5%増加
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
workshop1.xlsxをアップロードし、今週の売上をターゲット、モデリングモードを手動、主時間を表す特徴量を週にして、最適化指標を確認しましょう
手元の環境で試してみよう1
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
高度なオプションからその他、
最適化指標をみたら開始ボタンを!ここでは最適化指標は変更しない
手元の環境で試してみよう2
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
リポジトリから、
Dropout Additive Regression Trees Regressor (Gamma Loss) (15 leaves)だけを選択し、実行
手元の環境で試してみよう3
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
作成したモデルの評価タブの高度なチューニングからobjectiveを見てみましょう
https://github.com/Microsoft/LightGBM/blob/master/docs/Parameters.rst
手元の環境で試してみよう4
https://github.com/Microsoft/LightGBM/blob/master/docs/Parameters.rst
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
各指標の特徴リファレンスマニュアル
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
回帰問題における指標の一覧
指標名 特徴 損失関数 最適化関数 評価関数 ビジネスKPI
RMSE 大きいエラーを重要視する
◯ ◯ △ x
RMSLE 予測値と実測値の比率の対数
◯ ◯ △ x
MAE 誤差の幅を等しく扱う ◯ ◯ ◯ △
MAPE 誤差を百分率で考慮 x △ ◯ ◯
Tweedie 0か0以外で2種類の分布を持つ
△ (BP依存) ◯ △ x
Gamma 連続確率分布 △ (BP依存) ◯ △ x
Poisson 離散確率分布 △ (BP依存) ◯ △ x
R Squared 「決定係数」 x △ △ x
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
RMSE、RMSLE
● RMSE (Root Mean Squared Error)○ 大きな間違いをより重要視する○ 大きな価格の誤差を許容できないケース○ 概ね万能
● RMSLE (Root Mean Squared Logarithmic Error)○ 幅ではなく、誤差の割合を重要視する○ かつ上振れよりも下振れを重要視する○ 小規模のレンジの誤差を重要視したい場合
かつ下振れを抑えたいケース
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
MAE & MAPE
● MAE (Mean Absolute Error)○ 誤差の幅に比例して重要視する○ 平均X予測がずれていると解釈可能○ MAEで最適化していくと最大誤差がRSMEに比べ
て大きくなる傾向にはある
● MAPE (Mean Absolute Percentage Error)○ 誤差の割合に比例して重要視する○ 平均X%予測がずれていると解釈可能○ ターゲットに0が含まれていると選択できない○ ターゲットに値が小さいものが含まれるケースには
考慮が必要
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
Poisson deviance, Gamma deviance● Poisson deviance
○ 離散的な事象に対しての発生確率を示す○ 一定区間や一定時間で発生する離散的な
事象に対して使用する
○ 一定時間の交通量や1分間のアクセス数
● Gamma deviance○ 連続確率分布の一種○ 期間ごとに1回起きる事象がn回起きるまで
の時間分布を表す
○ ウイルスの潜伏期間や製品部品の寿命○ 売上や収入にもよく選択される
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
Tweedie deviance
● GammaとPoissonを組み合わせたもの○ 各事象はGammaに従い、
発生回数はPoissonに従う● ゼロブースト問題において相性が良い● ゼロブースト問題
○ 発生しない(0)ことが多いが、発生すると連続値をとるターゲット
○ 保険金支払額○ 喫煙量
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
(おまけ)頻度ー強度モデル
Tweedie deviance が検出されるプロジェクトにおいては、頻度ー強度モデルもDataRobotでは実行される
損失関数としてTweedie devianceを使用するのではなく、2段階の問題に分ける
1. 発生回数を予測するモデルをPoissonを損失関数としたモデルa. 回数は関係なく発生するかしないかの二値の場合には LogLossを損失関数として利用
2. 発生した事象だけの連続値回帰問題としてGammaを損失関数としたモデル
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
R Squared a.k.a.「決定係数」
● メリット○ 全データが正確に捉えられている場合に、その
ままモデルの性能を表すパラメータとなる
● デメリット○ データにノイズが多いと勝手にスコアがよくなる
傾向にあり、統計家は敬遠することも
● DataRobotではアウトオブサンプルで計算
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
二値分類における指標の一覧
指標名 特徴 損失関数 最適化関数 評価関数 ビジネスKPI
LogLoss エラーの幅も考慮 ◯ ◯ △ x
AUC 順位付け x ◯ ◯ x
Gini Norm / AR 順位付け x ◯(AUCと等価) ◯ x
Kolmogorov-Smirnov
正解数と誤り数の幅を定義
x ◯ ◯ x
RMSE △ △ △ x
TopX% 上位の精度のみ x △ ◯ △
Precision/Recall しきい値が必要 x x △ ◯
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
LogLoss a.k.a. ”Logarithmic Loss” or「クロスエントロピー」
● 情報理論(エントロピー)に基づく理論的にも扱いやすい指標
● 実測と予測が乖離しているほどペナルティーが加算される。
○ 乖離が大きいほどペナルティーは大きくなる(Logで強調される)
○ LogLossが小さいほどモデルの精度が高い
○ 数件でも誤ったラベル付けをしていると罰則が非常に大きい
● 多値分類でも利用可能● Loglossの値で別プロジェクト(別のデー
タ)のモデルと比較できない
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
AUC a.k.a “Area Under the (ROC) Curve”
● ROC曲線の下の面積○ 比率を1:1にした場合、ランク付けした
際に合っている割合となる
○ 完全にランダムなモデルの場合でも0.5を取り、1が最も精度が良い
● 他のモデルとの比較がしやすい○ わずかな違いは同一のスコアとなる
場合がある
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
Gini Norm
● 実測値と予測値の順位が正しいかどうかを評価する
○ 絶対的な差は考慮しない● 二値分類においてはAUCと等価
○ 2*AUC-1:AR値とも呼ばれる○ 0が最小で1が最大
● 回帰でも分類でも定義できる○ 相対的な比較が可能
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
Kolmogorov-Smirnov
● 累積確率分布の差を表す○ 正負の予測分布がよりはっきりと分か
れているほど高い値をとる
○ 全く分類できていない予測分布に差異がでない問題では0となる
● ROC曲線タブに値が表示されている● 金融でよく使われる
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
(ハンズオン15分間)二つのデータセットでLogLossを計算してみましょう
Calc_Logloss_ROC.xlsxをexcelで開いてください。
1.予測と実測の列がシート1とシート2にあるので、それぞれのシートでLogLossを以下の式を参考に計算して見てください。
2.どちらのシートの方が予測の精度が高いと思いますか?予測値に対して閾値ごとの実測のFalseとTrue数を入れると予測分布とROC曲線が描かれるので、比較しましょう。
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
二値分類ではROIを出すために閾値が必要
予測値は確率値として出力されるため、最終的にターゲットであるとするかターゲットでないとするかは閾値によって決まってきまる。一般的には閾値以上ならターゲットであり、閾値未満ならターゲットでないとする。閾値はビジネス用途によって、どんなリスクを取るかによって決まってくる。閾値によって変動するプレシジョンやリコールを確認する。
ID 実測値 予測値
1 ターゲット 90%
2 ターゲットでない 60%
3 ターゲット 50%
4 ターゲットでない 20%
5 ターゲットでない 15%
閾値を50%と20%の間に置くとID2を間違える
閾値を90%と60%の間に置くとID3を間違える
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
多値における指標の一覧
指標名 特徴 損失関数 最適化関数 評価関数 ビジネスとして利用
LogLoss 大きいエラーを重要視する
◯ ◯ △ x
Accuracy 全体の正解率 x ◯ ◯ ◯
Balanced Accuracy
各クラスの正解率の平均
x ◯ ◯ △
AUC 順位付け x ◯ ◯ x
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
Micro-Macro
● Micro Average○ 全体の値○ クラスごとのデータサイズが影響する
■ 大量に出現するクラスがあり、それが簡単に分類できる場合、値がよくなる
○ DataRobotのAccuracyはMicro
● Macro Average○ 各クラスの値の平均○ クラスごとのデータサイズが影響しない
■ 大量に出現するクラスがあり、それが簡単に分類できても値がよくならない
■ 小さなクラスを重要視する場合に利用する■ 学習データに偏りがある場合に使用する
○ DataRobotのBalanced AccuracyはMacro
label tp fp fn recalltp/(tp+fn)
precisiontp/(tp+fp)
c1 10 10 10 0.5 0.5
c2 90 10 10 0.9 0.9
total 100 20 20
Micro 100/(100+20)=0.833
100/(100+20)=0.833
Macro (0.5+0.9)/2=0.7
(0.5+0.9)/2=0.7
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
DataRobotのデフォルトから変えるべきケース
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
評価のときには必要な指標に変更する
DataRobotのリーダーボードではデフォルトで最適化する指標で表示される
LogLoss->AUCやRMSE->MAPEといったケースがある*AUCは小さいな変化が捉えられないという欠点が LogLossに比べて存在する
*ゼロブースト問題をMAPEに変更すると必要以上に悪いスコアがでる
モデリング後に評価指標を選択してもモデル自
体が再計算されることはない
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
ビジネスケースによって指標を変更する
RMSEでは大きなエラーを重要視する傾向があるが、ビジネスケースによっては、エラーの幅に関しては等価なこともある。この場合にはMAEにおいて最適化するほうが望ましい
エラーの幅だけでなく、上振れと下振れに差があるケースも存在する。在庫リスクと機会
損失では在庫リスクのほうが直接的なインパクトが大きいため、上振れと下振れを同じ
に捉えるRMSEでなく、RMSLEにおいて最適化するほうが望ましい
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
(ハンズオン15分間)売上予測における下振れ
ストーリー
毎週次の週の売上予測の値によって人員の配備シフトを決定する。
上振れはコスト的にはよろしくないが、大きな下振れの場合にはオペレーションに影響
し、店のブランドに傷つくため、下振れをなるべく減らしたい。
上記のビジネスロジックに合いそうな指標を選択した場合に、実際のモデルはどの
ようになるか。同じプループリントのDropout Additive Regression Trees Regressor (15 leaves)を利用して比較してみましょう。時系列の精度から検定のデータセットにおいて、下振れがどこまで防げるようになるのか
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
(ハンズオン)売上予測における下振れ
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
DataRobotではターゲットを選択すると最適化の指標はプロジェクト単位で固定され、変更することができない。(モデル単位での損失関数は変更可能)
プロジェクトの管理->プロジェクトコピーを選択して、アップロード直後の状態のプロジェクトを作成可能
(ハンズオン)売上予測における下振れ
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
(ハンズオン)売上予測における下振れ比較結果
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
アンサンブルモデルにおいて、別々の損失関数で作成したモデルを組み合わせる。この
場合においては最終的な最適化指標は目的として指定されている指標を選択する
ex) 最終的な比較指標がMAEで合ったとしても、損失関数としてはMAEで作成したモデルとRMSEで作成したモデルをアンサンブルで組み合わせたものを使用する。アンサンブルモデルはMAEで最適化、評価する。
コンペでのテクニック
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
答えが明確にわかっているケース
現在取れているターゲットのデータ数では、DataRobotが分布を捉えきれなかったが、一般的にその事象が特定の分布に従うとすでにわかっている場合には、その分布に設
定することによってより未知のデータへの対応力が上がる
ex)
poisson分布
流れ星の数、交差点の車の数、Webサーバへの1分間のアクセス数
gamma分布
電子部品の寿命、通信におけるトラフィック待ち時間、所得分布
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
加重指標の場合
特定の商品などを重点的に当てたい場合にはウェイトを指定する。ウェイトが指定され
た場合には加重指標が使用される。
またダウンサンプリングを利用した場合にも、同様に加重指標が使用される。
ex) 千行のデータがあったとして、990がFALSE、10がTRUEである場合。ダウンサンプリングしてFALSEから500行を取り除き、490行のFALSEと10行のTRUEを用いるとclass_F_weight = (990 / 1000) / (490 / 500) = 0.99 / 0.98 = 1.0102class_T_weight = (10 / 1000) / (10 / 500) = 0.01 / 0.02 = 0.5
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
(ハンズオン15分間)加重指標を計算してみる
利益率の列をそのままウェイトとして指定して実行してみる
利益率10%に対して利益率30%のものは3倍重要視される
全体の時系列の精度がどれだけ変化したか、利益率ごとの精度がどのようになってい
るか確認してみましょう。
利益率ごとの精度は予測をダウンロードしてexcelでプロットしてみましょう
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
プロジェクトをまたコピーして、これまでと同じ設定を施した後に
高度なオプションからウェイトに商品の利益率サイズを指定します
(ハンズオン15分間)加重指標を計算してみる
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
予測はホールドアウトデータで行いたいため、事前
にホールドアウトのロックを解除し、元の値とウェイ
トに指定した値も出力に含める
(ハンズオン15分間)加重指標を計算してみる
-
Confidential | Copyright © DataRobot, Inc. | All Rights Reserved
Thank you!
Data Scientist @ DataRobot