【ファイナンス機械学習 解説】著者の解説スライドを日本語でまとめてみる (4/10)

はじめに

『ファイナンス機械学習 』著者のMarcos Lopez de Prado氏が自身のサイト『ファイナンス機械学習』に関する講義スライドを全編無料公開している。
『ファイナンス機械学習 』については、
botter界隈やシストレ界隈では
・『ファイナンス機械学習 』を抱いて寝る人
・『ファイナンス機械学習 』を枕にして寝る人
・『ファイナンス機械学習 』で枕投げをする人
が続出しているらしく?、
幅広く読まれているようだ。

このシリーズ記事では、 著者の了解を得て、上記の講義スライドを日本語でまとめる。 英語だとどうしても読むのに時間がかかったりエネルギーを多く使ってしまう、という方向け。全10回あるが、今回はその第4回のスライドを取り上げる。ログインのような画面になる場合は、メールアドレスとパスワードを入力してSSRNのアカウントを作ればダウンロードできる。
本記事はQuantCollege管理人の学習メモであり、
管理人は必ずしもこの分野の専門家ではない点につきご留意頂きたい。

参考文献

ファイナンス機械学習の続編とも言われている、同じ著者の新しい本はこちら。
(2020/11/12更新) ついに和訳版も出たようだ。

ファイナンス機械学習とその原著はこちら。

関連記事

前回(第3回)のスライドをまとめた記事はこちら。

第4回のスライドに書かれていること

第4回のスライドでは、モデリングに関する内容が解説されている。アンサンブル手法、クロスバリデーション(交差検証)、特徴量重要度、ハイパーパラメーターのチューニング、など。全部で198ページもある。

今日学ぶことは何?(p2)

  • アンサンブル法
    • 誤差の3つの源泉
    • Bootstrap Aggregation(バギング)
    • ランダムフォレスト
    • ブースティング
  • ファイナンスにおける交差検証
    • なぜK分割交差検証はファイナンスでうまくいかないのか
    • Purged K分割交差検証
  • 特徴量重要度
    • 代替効果あり
    • 代替効果なし
  • 交差検証におけるハイパーパラメーターのチューニング
    • グリッドサーチ
    • ランダムサーチ
    • スコアリング

アンサンブル法

誤差の3つの源泉 (p4)

  • 訓練データである観測値\(x_i\)と実数値の出力\(y_i\)を考える。
  • \(y=f[x]+\epsilon\)となる関数\(f[x]\)が存在するとする。
    • \(\epsilon\)はホワイトノイズで\(\mathbb{E}[\epsilon_i ] = 0, \mathbb{E}[\epsilon_i ^ 2 ] = \sigma_\epsilon ^2 \)である。
  • この関数\(f[x]\)を最も良く近似する関数\(\hat{f} [x] \)を推定したい。
    • ここで、最も良く近似するというのは、推定誤差の分散\( \mathbb{E} [(y_i – \hat{f} [x_i ])^2 ] \)を最小にする、という意味。
    • 平均二乗誤差はゼロにはできない。なぜなら、ノイズである\( \sigma_{\epsilon}^2 \)があるから。
  • この平均二乗誤差は以下のように分解できる。
  • \( \mathbb{E} [(y_i – \hat{f} [x_i ])^2 ] \)
  • \( = \left( \mathbb{E}[ \hat{f} [x_i ] – f[x_i ] ] \right)^2 + \mathbb{V}[\hat{f}[x_i ]] + \sigma_\epsilon ^2 \)
  • = bias + variance + noise
  • アンサンブル法は、同じ学習アルゴリズムを基にした弱い学習器を複数組み合わせて、そのどれよりもパフォーマンスが良い(より強い)学習器を作る。
  • アンサンブル法はバイアスとバリアンスの両方、またはそのどちらかを減らすことに寄与する。

アンサンブル法 (p5)

  • 統計モデルは3種類の推定誤差に苦しむ
    • バイアス:定式化の誤り (underfitting) が原因
    • バリアンス:ノイズをシグナルだと勘違いしてしまうこと (overfitting) が原因
    • ノイズ:予測不可能な変化や測定誤差
  • アンサンブル法は弱い学習器を複数組み合わせて、そのどれよりもパフォーマンスが良い学習器を作る
  • アンサンブル法には主に3種類ある。
    • バギング (Bootstrap Aggregation)
    • ブースティング
    • スタッキング
  • バイアスとバリアンスのトレードオフ:
    • バイアス (underfitting) を減らそうとするほど、バリアンス (overfitting) が増えてしまう。
    • アンサンブル法では、両方の誤差を減らすモデルを作ることを目指す。

バギング (p6)

  • バギングは以下のようにして、強い学習器を作る:
    • 複数の弱い学習器を独立に(並列に)学習させて、
    • それらの予測を決定論的な手順で合算する
  • 相関していない学習器が十分にたくさんあれば、バギングのアルゴリズムは効果的にバリアンス誤差を減らせる。
  • 加えて、もし個別の学習器が最低限の精度を持っていれば、バギングのアルゴリズムはバイアス誤差も減らせるかもしれない。
  • 分類問題では、一般的な合算方法が2つある。
    • Hard voting:全ての予測に対して多数決
    • Soft voting:個別の予測に対して平均確率を求め、それが最も高いクラスを選ぶ
  • バギングはほぼ常にバリアンスを減らせる。場合によってはバイアスも減らせる。並列処理できるので、バギングは過学習を防ぐデフォルトの方法として優秀。

Bootstrap Aggregation(バギング)(1/2) (p7)

  • N個の独立な分類器の多数決で k 個のクラスへの予測をするバギング分類器を考える。
  • 予測は0か1でラベル付けできる。ただし1は予測が正しかったことを意味する。
  • 分類器の正解率は、1とラベル付けされた確率である。
  • 分類器が “informed” とみなされるための十分条件は、これらラベルの合計 X が \(> N/2\) となることである。
  • しかしながら、クラスが k 個あることを踏まえると、分類器が “informed” とみなされるための(十分条件ではなく)必要条件は、\(X > N/k\) である。これが起こる確率は、
    • \( \mathbb{P}\left[ X > \frac{N}{k} \right] = 1 – \mathbb{P} \left[ X \leq \frac{N}{k} \right] = 1 – \sum_{i=0}^{ \lfloor N/k \rfloor } {}_N C_i p^i (1-p)^{N-i} \)
  • これからわかることは、十分大きい \(N\) に対して、\( N > p \left( p – \frac{1}{k} \right) ^{-2} \) であれば、\(p > \frac{1}{k} \) ならば \(\mathbb{P} \left[ X > \frac{N}{k} \right] > p\) である。したがって、バギング分類器の正解率は、個別の分類器の平均正解率を超える。
  • これは、計算負荷を許容できれば、一般にどんな分類器に対してであれ、バギングを支持する強い主張である。

Bootstrap Aggregation(バギング)(2/2) (p8)

ランダムフォレスト (p9)

  • 決定木は過学習しやすいことで知られ、予測のバリアンスが増加する。
  • この問題に対処するために、ランダムフォレスト (RF) はバリアンスの低いアンサンブル予測を出力するよう設計された。
  • RFは、ブートストラップされたデータに対して個々の推定器を独立に学習させるという意味で、バギングと共通点がある。
  • バギングとの重要な違いは、ランダムフォレストは第二段階のランダムネスを持っている点である:
    • 各ノードを最適化する際、特徴量のランダムなサブサンプル(重複なし)のみが評価される。その目的は、推定器の相関をさらに下げること。
  • 長所:
    • バギングと同様、RFは過学習を避けて予測のバリアンスを下げる(注意:\( \bar{p} < 1 \)である限り)
    • RFはその場で特徴量重要度を評価する
    • RFはout-of-bag精度推定値を提供する。しかし、ファイナンスへの応用ではこれは過大評価されやすい。
  • 注意事項
    • バギングと同様、RFは必ずしも個々の決定木より低いバイアスを示すとは限らない。

訳者補足

out-of-bag (OOB)は、N個から重複ありでN個をランダムサンプリングした際、サンプルに選ばれなかったデータのこと。ランダムフォレストの誤差評価などに使う。

ブースティング (p10)

  • ブースティングアルゴリズムは以下のようにして強い学習器を作る:
    • 複数の弱い学習器を逐次的に学習させ、その後のモデルが前段階での誤差から学習する。
    • 予測値を決定論的な手続きで総合する。
  • その適応的な性質から、ブースティングは一般にバギングよりもバイアスを減らす効果がある。
  • ブースティングはバリアンスを減らすのにも効果的な場合がある。
  • バギングと違って、強化させる学習器を並列に学習させることはできない。
    • よって、ブースティングは学習に時間がかかることが多い。
  • ブースティングのアルゴリズムには主に2種類ある:
    • Adaboost:サンプルの重みを更新することで適応する。
    • Gradient Boosting:観測値(残差)を更新することで適応する。

スタッキング (p11)

  • スタッキングアルゴリズムは以下のようにして強い学習器を作る:
    • 複数の弱い学習器を並列に学習させ、
    • 個々の予測に対してメタモデルを学習させる
  • バギングやブースティングとの違い:
    • スタッキングは、性質が異なる (heterogeneous) 弱い学習器を使うことが多い
    • スタッキングは弱い学習器を組み合わせるために(決定論的な方法ではなく)メタモデルを使う
  • スタッキングはK分割交差訓練と関連する
    • 訓練データをK分割する
    • N個のモデルをK-1分割されたデータにに対して学習させ、残りのデータで予測を行う
    • 予測結果を特徴量としてメタモデルを学習させる
  • 学習は並列化できるが、計算負荷は大きい
  • スタッキングは性質の異なる (heterogeneous) 弱い学習器の訓練を可能にする。弱い学習器はメタモデルが組み合わせる。

Numeraiのトーナメント (p12)

  • Numeraiは週次で、1か月後の金融予測を行うトーナメントを運営している。
    • データセットは企業名や特徴量名が暗号化されている。これにより:
      • ベンダーがデータ配布を許可してくれる
      • 参加者はテストセットを学習に使うことができない
    • データセットはクロスセクション研究用に構造化されているので、企業を時間に渡ってマッピングしたり暗号化を解いたりするのを防ぐ
      • 相対的な水準しか提供されない。頻度は日次でラグはない。
      • これによって、ECMなど、時系列の特徴のモデリングを防ぐ。
  • このデータセットにアンサンブルモデルを実装する場合、理に適う方法は:
    • パフォーマンスを月に渡ってバランスさせる
      • モデルのパフォーマンスが悪い月を見つけ、それらの月をモデルから除き、それら専用のモデルを開発する(一種のブースティング)
    • 重要度を特徴量に渡ってバランスさせる
      • 少数の特徴量に強く依存するモデルを避ける。もしそれらの特徴量が効かなくなったらモデルのパフォーマンスは悪くなる。
    • パフォーマンスをターゲットに渡ってバランスさせる
      • ロバストなモデルは異なるターゲットでも予測できる。
    • バグサイズをキャリブレーションする
      • バギングするとき、少ないバグを作り、サンプルが異なる月から来るようにコントロールする。
      • これによりバグ間の相関が下がるので、誤差のバリアンスを減らせる。

ファイナンスにおける交差検証

なぜK分割交差検証はファイナンスでうまくいかないのか (p14)

  • テストデータにも現れる情報が訓練データに含まれていると、リーケージ (leakage) が起こる。
  • 系列相関している特徴量\(X\)を考え、それはラベル\(Y\)に対応しており、そのラベルはオーバーラップしたデータから作られているとする:
    • 系列相関によって、\(X_t \approx X_{t_1} \)
    • ラベルは重なったデータポイントから作られているから、\(Y_t \approx Y_{t+1} \)
  • したがって、\(t\)と\(t+1\)を別のデータセットに分けることで、情報が漏れてしまう
    • 分類器はまず\( (X_t, Y_t ) \)で学習し、観測された\(X_{t+1}\)を用いて\( \mathbb{E}[Y_{t+1} | X_{t+1} ] \)を予測しろと言われる場合、この分類器は、たとえ\(X\)が無関係な特徴量だったとしても、\(Y_{t+1} = \mathbb{E} [Y_{t+1} | X_{t+1} ] \)を達成する可能性が高い。
  • 注意として、リーケージが起こるには、\( (X_\mathrm{train} , Y_\mathrm{train} ) \approx (X_\mathrm{test} , Y_\mathrm{test} ) \)でなければならず、\( X_\mathrm{train} \approx X_\mathrm{test} \) または \( Y_\mathrm{train} \approx Y_\mathrm{test} \)では十分ではない。

Purged K分割CV (p15)

  • リーケージを減らす一つの方法は、訓練データのラベルが、テストデータに含まれているラベルと、時間方向に重なっているような観測値を全て、訓練データから除去すること。私はこの手続きをパージング (purging) と呼んでいる。
  • ラベル\(Y_j \)が、閉じた範囲 \(t \in [t_{j, 0}, t_{j, 1} ]\) における観測値の関数 \( Y_j = f \left[ [t_{j, 0}, t_{j, 1}] \right] \) になっているとしよう。
    • 例えば、トリプルバリアラベリング法の文脈では、これはつまり、インデックス \(t_{j, 0}\) と \(t_{j, 1} \) の価格バーの間に渡るリターンのサイン、すなわち \(\mathrm{sgn} \left[ r_{t_{j, 0}, t_{j, 1} } \right] \) がラベルになっている、ということに対応する。
  • もし以下3つの十分条件のうちどれか一つでも満たされれば、ラベル \(Y_i = f \left[ [t_{j, 0}, t_{j, 1}] \right] \) は \(Y_j \)とオーバーラップする。
    • \(t_{j, 0} \leq t_{i, 0} \leq t_{j, 1} \)
    • \(t_{j, 0} \leq t_{i, 1} \leq t_{j, 1} \)
    • \(t_{i, 0} \leq t_{j, 0} \leq t_{j, 1} \leq t_{i, 1} \)

Embargoed K分割CV (p16)

  • ファイナンスの特徴量はよく、(ARMA過程のような)系列相関を持つ系列を含んでいるので、 テストデータにおいて、ある観測値の直後の観測値を、訓練データから除去すべきである。私はこの手続きをembargoと呼んでいる。
    • embargoはテスト前に訓練データの観測値に影響を与える必要はない。なぜなら、訓練データのラベル \(Y_i = f [[t_{i, 0}, t_{i, 1}]] \)(ただし \(t_{i, 1} < t_{i, 0} \))はテスト時点 \(t_{j, 0} \)において利用可能な情報を含んでいるからである。
    • 我々が関心があるのは、テスト直後、\(t_{j, 1} \leq t_{i, 0} \leq t_{j, 1} + h \) に起こる訓練データのラベル \(Y_i = f [[t_{i, 0}, t_{i, 1}]] \) のみである。
  • purgingする前に、\(Y_j = f[[t_{j, 0}, t_{j, 1} + h ]] \) と設定することで、このembargo期間 \(h\) を実装できる。小さな値 \(h \approx 0.01 T \)(ただし \(T\) はバーの数)であっても、全てのリーケージを防ぐのに十分であることが多い。

例:PurgingとEmbargoing (p17)

  • このプロットはK分割CVの一区間を示している。
  • テストセットは2つの訓練セットにはさまれていて、2つのオーバーラップを生んでいる。リーケージを防ぐために、このオーバーラップはpurgeしなければならない。
  • さらにリーケージを防ぐには、テストセットの直後にある訓練セットの観測値をembargoすることも必要である。

特徴量重要度

特徴量重要度の重要性 (p19)

  • バックテストはリサーチツールではない
    • バックテストでのパフォーマンスを最大化するように機械学習アルゴリズムを学習させるのはtrivialである。
  • 特徴量重要度がリサーチツールである
    • アルゴリズムの予測力の理由が何なのか、常に理解しようとすべき
    • 特に、金融市場の文脈では、自分自身に次の問いかけをすべき。「自分のアドバンテージに対して、市場参加者がシステマティックに損失を出すことを説明する、リスクベースや行動上の理由は何なのか?」
  • 特徴量重要度の方法は、代替効果をコントロールするか否かに依存して概ね分類できる。
  • 代替効果が起こるのは、ある特徴量重要度の推定値が、他の関連する特徴量の存在によって低下するときである。
  • 代替効果は、統計学や計量経済学の文献では「多重共線性 (multi-collinearity)」と呼ばれる。機械学習でそれに対応するものが代替効果。
  • 線形の代替効果に対処する一つの方法は、PCAを生の特徴量に適用してから、直交化された特徴量に対して特徴量重要度分析を行うこと。
  • より良いアプローチは、生の特徴量をクラスターに分けて、クラスターごとに分析すること。

訳者補足

特徴量をクラスターに分けた後でクラスターごとに重要度分析をする話は、後ほど繰り返し出てくる。

数値例 (p20)

  • ランダム二値分類問題を考える。40個の特徴量のうち、5個は有益、30個は冗長、5個はノイズとする。
    • 有益な (informative) 特徴量(接頭辞として「I」を付けている)は、ラベルを生成するのに用いたもの。
    • 冗長な (redundant) 特徴量(接頭辞として「R」を付けている)は、ランダムに選んだ有益な特徴量に対してガウシアンなノイズを加えて作ったもの。
    • ノイズな特徴量(接頭辞として「N」を付けている)は、ラベルを生成するのに使われていないもの。
  • 左のプロットは、これらの特徴量に対してロジット回帰を行い得られたp-値を示している。横に伸びるバーはp-値を示す。縦方向の点線は有意水準5%を示す。
    • ノイズ以外の35個の特徴量のうち、たった4個しか、統計的に有意となっていない。I_1, R_29, R_27, I_3である。
    • ノイズな特徴量は比較的重要だとランクされている(それぞれ上から数えて9、11、14、18、26番目)。
    • 重要度が下位の特徴量14個はノイズではない特徴量である(下から数えて14個までは有益なものか冗長なもの)。
  • 要するに、これらのp-値はground truthを正しく表していない

Mean Decrease Impurity (1/2) (p21)

  • 平均不純度減少量 (Mean Decrease Impurity; MDI) は速度が速く、RFなどツリーベースの分類器に対して用いられる、重要度を説明する(in-sample, IS)方法である。
    • それぞれの決定木の各ノードにおいて、選択された特徴量は、不純度が低下する形で受け取ったsubsetに分解する。
    • したがって、各決定木に対して、全体の不純度の低下のうちどれくらいが各特徴量に割り当てられるかを導出できる。
    • そして、たくさん木があると、全ての推定器に渡ってそれらの値を平均し、それに従って特徴量をランク付けできる。
  • MDIを使う際に覚えておくべき重要な注意事項がある:
    • その成り立ちから言って、MDIは特徴量重要度を合計すると1になり、各特徴量重要度も0から1の間に収まる。
    • MDIは代替特徴量の重要度を低下させる。それらは交換可能だからである:2つの別々の特徴量の重要度が半分になる。なぜなら、その2つは同じ確率でランダムに選ばれるからだ。
    • MDIは他のツリーベースではない分類器には一般化できない。
    • ある特徴量が、他の特徴量を優遇するツリーベースの分類器によってシステマティックに無視されると、マスキング効果が生じる。それを避けるには、max_features = int(1) と設定せよ。

Mean Decrease Impurity (2/2) (p22)

  • このプロットは、先ほど議論したのと同じランダム分類問題にMDIを適用した結果を示している。
    • 横方向に伸びるバーは、ランダムフォレストにおいて1,000のツリーに渡るMDI値の平均を示す。
    • 線はその平均周りの標準偏差を示す。
  • MDIは良い働きをしている。なぜなら、ノイズではない特徴量(つまり有益なものか冗長なもの)の全てが、ノイズな特徴量よりも上にランク付けされているからだ。
  • しかし、ノイズではない特徴量のうち、少数がその他よりもずっと重要であるかのように見える。これは代替効果の一種で、冗長な特徴量がある場合に見られることが多い。

訳者補足

ノイズであるN_0からN_4の5つが最下位になっている。しかし、ノイズではない特徴量、つまり、有益な特徴量や、それと強い関連のある冗長な特徴量は、いくつかのグループに分かれているように見える。例えば、同じ「有益な特徴量」の中でも、より有益なものと、それほど有益でないもの、というようにランク分けされているような結果である。「冗長な特徴量」についても同様。これが代替効果の一種であると著者は述べている。

Mean Decrease Accuracy (1/2) (p23)

  • 平均正解率減少量 (Mean Decrease Accuracy; MDA) は速度が遅いが、重要度を予測する (out-of-sample; OOS) 方法である。
    • 第一に、分類器をフィットさせる。
    • 第二に、何らかの評価スコア(accuracy, F1, AUC, negative log-lossなど)に従ってOOSパフォーマンスを導く。
    • 第三に、特徴量マトリックス (X) の各列を、1回につき1つの列、シャッフルして、各列の並べ替え後のOOSパフォーマンスを導く。
    • 特徴量の重要度は、その列の並べ替えで生じたパフォーマンスの減少の関数である。
  • MDAを使う際に覚えておくべき重要な注意事項がある:
    • この方法はツリーベースの分類器だけでなく、どんな分類器にも応用できる。
    • MDAは評価スコアをaccuracyだけに限定していない(他の評価スコアにも使える)。
    • MDIと同様に、相関のある特徴量が存在する場合、手順には代替効果の疑いもある。2つ別々の特徴量があるとして、MDAは常に一つをもう一つにとって冗長なものとみなす。不幸なことに、たとえその2つがクリティカルだったとしても、MDAは両方の特徴量を完全に無意味なものかのように見せてしまう。
    • MDIと違って、MDAは全ての特徴量が重要ではないと結論付ける可能性がある。これはなぜなら、MDAはOOSパフォーマンスに基づいているからである。
    • CVはpurgeとembargoをしないといけない。この理由は既に説明した通り。

Mean Decrease Accuracy (2/2) (p24)

  • このプロットは既に議論したのと同じランダム分類問題にMDAを適用した結果を示している。
  • MDIの例と似た結論を引き出すことができる。
  • 第一に、MDAはノイズな特徴量をその他から分離できている。ノイズな特徴量は最下位にランク付けされている。
  • 第二に、ノイズな特徴量はその規模についても重要ではないとみなされている。つまりMDA値はほぼゼロになっている。
  • 第三に、代替効果によってMDA重要度の分散が大きくなっているけれども、ノイズではない特徴量の重要性に疑問を持つほど大きい分散ではない。

訳者補足

MDIのグラフと比べて、ノイズの重要度とそれ以外の重要度が大きく異なり、特徴量重要度の規模によって、ノイズとそれ以外を分離できているのがわかる。

単一特徴量重要度 (Single Feature Importance) (p25)

  • 単一特徴量重要度 (Single Feature Importance; SFI) はクロスセクションの (out-of-sampleにおける) 重要度を予測する方法である。各特徴量単体でのOOS (out-of-sample) パフォーマンス指標を計算するもの。
  • いくつか留意事項がある。
    • この方法はツリーベースの分類器だけでなく、どの分類器にも応用できる。
    • SFIはaccuracyだけがパフォーマンス指標だと限定しない(他の指標でも使える)。
    • MDIやMDAとは違い、代替効果は発生しない。 一度に考慮する特徴量は一つだけだからだ。
    • MDAと同様、全ての特徴量が重要ではないと結論付ける可能性がある。なぜなら、パフォーマンスがOOS (out-of-sample) CV (cross validation) によって評価されるからだ。

直交化特徴量重要度 (Orthogonalized Feature Importance) (p26)

  • 代替効果に部分的に対処する一つの方法は、MDIやMDAを適用する前に特徴量を直交化することである。
  • 静的な特徴量のマトリックス \( \{ X_{t, n} \} \) を考える。観測時点 \( t=1, …, T \) 変数 \( n=1, …, N \) である:
  • ・・・
  • 対角化を \(X\) ではなく \(Z\) に対して行うのには2つ理由がある:
  • (1) データを中心化することで、 観測値の主たる方向に第一主成分が正しく向いてくれる。これは線形回帰で定数項を加えるのと同じである。
  • (2) データをリスケールすることで、PCAが分散ではなく相関を説明することに集中してくれる。

Clustered Feature Importance (p27)

  • より良いアプローチは、基底の変換を要求しないものだが、似た特徴量を集めてクラスターにし、クラスターレベルで特徴量重要度分析を行うことである。
  • その設計から言って、クラスターは互いに似ておらず、したがって代替効果を含んでいる。
    • 直観的な結果:基底変換せず、分析は特徴量の一部分に対して行う。
  • この考え方を実装するアルゴリズムを一つ紹介しよう。clustered feature importance (CFI) アルゴリズムは3つのステップから成る:
  • 1.全ての特徴量に対する類似度の指標を定義する。
    • 特徴量の類似度は(非線形)情報理論の指標を使って評価できる。
  • 2.特徴量のクラスターの数と構成要素を見つける。
    • 例:観測された特徴量にONCアルゴリズムを適用する。
  • 3.特徴量重要度分析を、個別の特徴量に対してではなく、似た特徴量のグループに対して適用する。
    • クラスターMDIはクラスターの構成要素に渡ってMDIを合計したものである。
    • クラスターMDAは特定のクラスター内の全特徴量を同時にシャッフルして得られる。

CFIの実験結果 (p28)

  • この実験ではクラスターMDI/MDAの手続きを、クラスター化しない通常のMDI/MDAで使ったのと同じデータセットに対してテストする。代替効果をコントロールするためにCFIを適用する。
  • 左のプロットから、関連するクラスターが6つあることを、ONCが正しく認識していることがわかる(有益な各特徴量に対して1つのクラスターがあり、加えて、ノイズな特徴量に対して1つのクラスターがある)。冗長な特徴量は、その導出元である有益な特徴量を含むクラスターに割り当てられている。
  • MDI(中央のプロット)、MDA(右のプロット)はC_5に有益でない特徴量が含まれると認識している。

CVによるハイパーパラメーターチューニング

グリッドサーチCV (p30)

  • グリッドサーチ交差検証は、ユーザーが定義したスコア関数に従って、検証データセットにおけるCVのパフォーマンスを最大化するパラメーターの組み合わせを、力づくで探すもの。
  • 対象のデータ構造についてあまり知らない場合、これは最初のアプローチとして合理的である。
  • メタラベリングの文脈では、accuracyやnegative log-lossによるスコアリングを避けるべき:
    • ネガティブ(つまりラベルが「0」(ゼロ))なケースが非常に多いサンプルを考える。
    • 全てのケースがネガティブだと予測する分類器は、高いaccuracyやneg_log_lossを達成する。たとえ特徴量からケースを区別する方法を学習していなかったとしても。
    • 実際、そのようなモデルはrecallゼロ、undefined precisionを達成する。
    • F1スコアは、precisionやrecallによって分類器をスコアリングすることによるパフォーマンスの過大評価を是正する。
  • 他の(メタラベリングではない)応用では、accuracyやneg_log_lossを使うのは問題ない。なぜなら、全ケースの予測に対して平等に興味があるからである。

ランダムサーチCV (p31)

  • 多数のパラメーターをもつ機械学習アルゴリズムの場合は、グリッドサーチ交差検証 (CV) は計算上取り扱いにくい。
  • この場合、良い統計的性質を持つ代替案としては、各パラメーターを分布からサンプリングすることである。これには2つの利点がある:
    • 問題の次元数とは関係なく、探索するパラメーターの組み合わせ数をコントロールできる(計算上の制限と同じ)。
    • パフォーマンス的には比較的関係ないパラメーターであれば、それがあったところで本質的には探索時間を増加させない。これはグリッドサーチCVでも同じこと。
  • 機械学習アルゴリズムで一般的なのは、非負のハイパーパラメーターのみを採用することだ。これは一部のパラメーターに当てはまり、SVC分類器の \(C\) やRBFカーネルの \(\gamma\)などである。
    • 0と何かしら大きな値、例えば100、の間に制限した一様分布から乱数を発生させる。これはつまり99%の値が1を超えることが期待される。
    • 関数が線形に反応しないパラメーターの許容範囲を探索する方法として、これは必ずしも最も有効なものではない。例えば、SVCはパラメーター \(C\) が0.01から1に増加すると、\(C\) が1から100に増加するのと同じように反応し得る。だから \(C\) を一様分布 \(U[0, 100]\) からサンプリングするのは非効率だろう。

対数一様分布 (1/2) (p32)

そのような例でもっと効果的と思われる方法は、サンプルの対数が一様分布に従うような分布から値をサンプリングすることである。

対数一様分布 (2/2) (p33)

  • 確率変数 \(X\) が \(a > 0\) と \(b > a\) の間の対数一様分布に従う必要十分条件は、\(\log{X}\) ~ \( U[\log{a}, \log{b}] \) である。この分布のCDF(累積分布関数)は:
    • \(F[x] = \frac{\log{x} – \log{a}}{\log{b} – \log{a}} \) for \( a \leq x \leq b \)
    • \(F[x] = 0 \) for \(x < a \)
    • \(F[x] = 1 \) for \(x > b \)
  • これからPDF(確率密度関数)を導ける:
    • \(f[x] = \frac{1}{x \log{b/a} } \) for \( a \leq x \leq b \)
    • \(f[x] = 0 \) for \(x < a \)
    • \(f[x] = 0 \) for \(x > b \)
  • CDFは対数の底によらないことに注意。なぜなら \(\frac{\log{\frac{x}{a}}}{\log{\frac{b}{a}}} = \frac{\log_c{\frac{x}{a}}}{\log_c{\frac{b}{a}}} \) が任意の底 \(c\) に対して成り立つからだ。したがって上記の確率変数は \(c\) の関数ではない。

評価関数

有用な分類スコア (p35)

  • Receiver Operating Characteristics (ROC: 受信者操作特性):真陽性率 (再現率: recall)を偽陽性率の関数として見たもの。
  • 正解率 (accuracy):正しくラベル付けされた機会の割合
  • 適合率 (precision):陽性 (positive) と予測されたもののうち、真に陽性だった割合
  • 再現率 (recall):正解だったもののうち真に陽性 (positive) だった割合
  • F1:適合率と再現率の(等加重の)調和平均
  • Log-loss(交差エントロピー誤差):真のラベルだった場合の分類器の対数尤度を計算する。予測の確率を考慮に入れる。Log-lossは次のように推定できる:
  • \(L[Y, P] = -\log [\mathbb{P}[Y|P]] = -\frac{1}{N} \sum_{n=0}^{N-1} \sum_{k=0}^{K-1} y_{n, k} \log [p_{n, k}] \)
  • ここで、
    • \(p_{n, k}\)はラベル\(k\)の予測\(n\)に対応する確率
    • \(Y\)は 1-of-K の二値インディケーターマトリックスで、観測値\(n\)が、ラベルに\(K\)通りの可能性があるうち、ラベル\(k\)に割り当てられた場合に\(y_{n, k} = 1\)となる。

Area Under the Curve (AUC) (p36)

  • ROCカーブは、真陽性率 (TP/P) を偽陽性率 (FP/N) の関数としてプロットすることで得られる。閾値 \(\tau\) を右から左へスクロールするように。
  • 分布 \(f_0\) と \(f_1\) が互いに完全に重なっている場合、いずれの \(\tau\) に対しても FP/N = TP/P となり、ROCカーブは45度の真っ直ぐな対角線になる。\(f_0\) と \(f_1\) の重なりが少なるなるほど、ROCは対角線から離れていく。
  • ROCカーブは、たとえコンセンサス予測が弱かったとしても、分類器がnegative instancesに対してpositive instancesを評価する能力を示している(これは他の指標に比べ大きな長所である)。また、ROCカーブはクラス分布(クラスの歪み)の変化や非対称なエラーコストでも不変である。
  • AUC(ROCカーブの下の領域)は、分類器が、ランダムに選択されたpositive instancesをランダムに選択されたnegative instancesよりも高く評価する確率である。異なる分類器のAUCを比較するために、それらに対応する分布をブートストラップによって生成できる (Fawcett [2005])。

交差エントロピー誤差 (p37)

  • 正しいラベルを高い信頼水準で予測することで、投資戦略は利益を生む。低い信頼水準で良い予測をして得られる利益は、高い信頼水準で悪い予測をすることによる損失を相殺するのに十分ではない。
  • このような理由から、正解率 (accuracy) で分類器のパフォーマンスの完璧な評価が得られるわけではない。
  • 反対に、log loss(交差エントロピー誤差として知られる)は真のラベルが与えられた際の分類器の対数尤度を計算する。これは予測の確率を考慮に入れるものである。
  • \(L[Y, P] = -\log [\mathbb{P}[Y|P]] = -\frac{1}{N} \sum_{n=0}^{N-1} \sum_{k=0}^{K-1} y_{n, k} \log [p_{n, k}] \)
  • ここで、\(p_{n, k}\)はラベル\(k\)の予測\(n\)に対応する確率
  • \(Y\)は 1-of-K の二値インディケーターマトリックスで、観測値\(n\)が、ラベルに\(K\)通りの可能性があるうち、ラベル\(k\)に割り当てられた場合に\(y_{n, k} = 1\)となる。

確率加重正解率 (Probability-Weighted Accuracy) (p38)

  • しかし、短所が一つある。log-lossスコアは解釈や比較が容易ではない。あり得る解決策としては、確率加重正解率 (PWA) を計算すること:
  • \(\mathrm{PWA} = \frac{\sum_{n=0}^{N-1} y_n (p_n – 1/K)}{\sum_{n=0}^{N-1} (p_n – 1/K))}\)
  • ここで、\(p_n = \max_k \{p_{n, k} \}\) であり、\(y_n\) は指示関数で \(y_n \in \{0, 1\}\)、ただし予測が正しかったときだけ \(y_n = 1\)、それ以外は \(y_n = 0\) である。
  • これは全ての \(n\) に対して \(p_n = 1\) のとき、通常のaccuracyになる。
  • PWAは信頼水準が高いが悪い予測にペナルティを与える。その強さはaccuracyよりも強く、cross-entropyよりも弱い。

多クラスラベルに対する二値スコア (p39)

  • 評価指標の中には、二値ラベルに対してしか計算できないものもある。
  • ラベルが多クラスの場合、ラベルを二値化して、それに対して二値スコアを計算することができる。
    • ラベル行列を作る。一行がひとつの観測値、一列がひとつのクラスに対応する。
    • 各列に対して、その列に対応するクラスが起きたら1、それ以外はゼロとする。
  • 主に2つのアプローチがある。
    • マクロ
      • ラベル行列の各列に対して二値スコアを計算し、そのスコアを平均する。
      • 平均は、クラスごとに相対的な発生数でウェイト付けできる。
    • ミクロ
      • ラベル行列の全ての列を積み重ね(ひとつの列に)、組み合わせた二値スコアを計算する。

不均衡クラス

ニアミス (p41)

  • ニアミス (Near-Miss) アルゴリズムは多数派のクラスをアンダーサンプリングする。
  • サンプル選択における3つの一般的なヒューリスティックス:
    • バージョン1:少数派クラスの近いインスタンス k 個までの平均距離が小さくなるように多数派クラスのサンプルを選ぶ。
    • バージョン2:少数派クラスの遠いインスタンス k 個までの平均距離が小さくなるように多数派クラスのサンプルを選ぶ。
    • バージョン3:以下の2ステップで選択する。
      • ステップ1:各少数派クラスのインスタンスに対して、近いインスタンスM個を保存。
      • 近いインスタンスN個までの平均距離が大きくなるように、多数派クラスのインスタンスを選択する。

SMOTE (p42)

  • SMOTE (Synthetic Minority Oversampling Technique) は少数派クラスをオーバーサンプリングする。
  • クラス分布をバランスさせるために、少数派クラスの例を複製することによってランダムに増加させる。
  • SMOTEは既存の少数派インスタンスの間に、新たな少数派インスタンスを合成で作る。
    • 少数派クラスの線形補間で仮想的な訓練レコードを生成する。
    • これら人工的な訓練レコードは、少数派クラスの各インスタンスに対して、最も近い k 個のインスタンスからランダムにいくつか選択することによって生成する。
    • オーバーサンプリング過程の後、データが再構成され、生成されたデータに対して分類モデルを適用する。

訳者補足

k を増やすほど、自分から遠いサンプルとの間で線形補間するので、アグレッシブに少数派データを増やしていることになる。