機械学習ノート 2 - 比較テスト

比較テスト

1. なぜ比較テストを導入する必要があるのですか?

2 人の学習者の学習パフォーマンスを比較したい場合、パフォーマンスの尺度に関する 2 つの値を見つけて、それらを定量的に比較するだけで十分ではありません。なぜなら、機械学習では、学習者のパフォーマンスの比較には多くの側面が含まれており、これらの側面が矛盾する場合があるからです。

学習パフォーマンスを評価するために考慮する必要がある主な要素は次のとおりです。

  • 一般化能力、つまり、機械学習アルゴリズムが新しいサンプルに適応する能力。たとえば、大学入学試験では、ほとんどの人が「5 月 3 日」のテストを受け、たくさんの問題に答えますが、大学入学試験では、試験で良い点を取れる学生と、そうでない学生がいます。その理由は、大学入学試験の問題は、私たちが普段訓練しているオリジナルの問題ではあり得ず、誰もやったことがないためであり、学生によって一般化能力が異なるため、1つの例から推論する能力には差が生じるからです。結局のところ、結果は人それぞれ大きく異なります。高校生が 1 つのインスタンスから他のケースを推測する能力を機械学習に適用することが、学習者の一般化能力です。
  • テスト セット、異なるサイズ、および異なるサンプルのテスト セットの選択により、異なるトレーニング結果が得られる可能性があります。
  • アルゴリズムのランダム性、機械学習はブラック ボックスであるため、特定の実行プロセスを知ることはできません。同じ学習器で同じパラメータを使用して同じテスト セットを実行すると、異なる結果が生成される可能性があります。

したがって、機械学習の比較テスト問題を具体的に研究する必要があります。

2. いくつかの比較試験方法

1. 仮説検定 - 二項検定

まず 2 つの概念を紹介します。

  • 1 つ目は汎化誤り率eeと呼ばれます。e は、通常の状況下で学習者がサンプルの分類に誤りを犯す確率を指しますが、実際の状況ではその正確な値を知ることはできません。
  • 2 番目のものはテスト誤り率e ' e'と呼ばれますe'、つまり、学習者はサイズ m のサンプルセットをテストするときにたまたまe ' m e'memのサンプルは誤分類されており、この値は通常の状況下でのみ取得できます。

2 つの違いは、一般化エラー率は取得できない理論値であるのに対し、テストエラー率は測定可能な値であることです。統計的仮説検定の方法はe ' e'を使用することですe'推定eeeの値

一般化誤り率はe ' e'ですeサイズmmをテストする学習者mのテストサンプルセットでは、正しい場合と間違っている場合の 2 つのケースのみが存在します。ここで、e ' m e'me' mは誤って分類され、残りは正しく分類されているため、これは典型的な二項分布であり、検定の誤り率分布関数を取得できます: P ( e ' ; e ) = ( me ' m ) ee '
m ( 1 − e ) m − e ′ m P(e';e)= \left(\begin{行列} m\\ e'm \end{行列}\right) e^{e'm}(1- e )^{私}P ( e' ;e )=(メートルe「ん)ee' m(1e )m em
P ( e ′ ; e ) P(e';e) P ( e' ;e ) eeについてeの一次導関数をδ P ( e ' ; e ) / δ e = 0 \delta P(e';e)/\delta e=0 としδ P ( e' ;e ) / d e=0,解得e = e ' e=e'e=e时, P ( e ′ ; e ) P(e';e) P ( e' ;e)最大; ∣ e − e ′ ∣ |e-e'| ee增大, P ( e ′ ; e ) P(e';e) P ( e' ;e )二項分布と同様に減少します。

Xigua の本は少しわかりにくいため、二項仮説テストをより簡単な方法で説明してみます。

前提条件: 分布関数の場合、それが二項分布であることはわかっていますが、この二項分布のパラメーター (二項分布には正の確率 p であるパラメーターが 1 つだけあります。この例では汎化誤差率です) は不明です。 。

仮説的な方法

  • 仮説的な方法を使用して、パラメータ値の「しきい値範囲」を人為的に指定できます。この例では、e ≤ e 0 e\leq e_0と仮定します。ee0

  • 次に、客観的なニーズまたはいくつかの計算式に基づいてテストの信頼水準α \alphaを人為的に設定します (ここでは詳細には触れません。特定の問題は詳細に分析されます)。α , この変数は明らかな誤差の標準を表します。たとえば、この二項分布で 6 より大きい確率はα \alphaα、しきい値をα \alphaα は、学習者の分類エラーの数が 6 より大きい場合、それは明らかなエラーであると考えることを意味します。この仮定は当てはまりませ

  • 逆に、1 − α 1-\alpha1αは明らかな誤差が生じない基準、すなわち信頼できる基準を表す。

ここでは、この1 − α 1-\alphaを使用します。1α 、この信頼水準の下でe 0 e_0と仮定することを推定します。e0それは合理的ですか?

仮定の妥当性を判断する

合理性を判断する方法は2つありますが、ここでは主に西果本にある方法を紹介します。

一般的な考え方は次のとおりです。設定した1 − α 1-\alphaを使用します。1αの値は、この値以下の分布曲線の積分領域を見つけるための制約として使用されます。この本の例では、棒 1 の統計グラフが使用されており、各棒の水平座標と垂直座標を乗算し、合計演算を実行すると、それは1 − α 1-\alpha以下になります。1αの最大値、そして最終的にこのときのei e_ie私は

計算式は次のようになります。
∑ i = e 0 m + 1 m ( mi ) ei ( 1 − e ) m − i < 1 − α \sum_{i=e_0m+1}^{m} \left(\ begin {行列} m\\ i \end{行列}\right) e^i(1-e)^{mi} <1-\alpha= e0m + 1メートル(メートル私は)e(1e )m i<1αとは、この棒グラフの「横軸と縦軸の面積」を左端の棒から累積し、 1−α 1-\alpha
ぎりぎり以下になるまで足していくという意味です。1αまで

この時点でiiを取り出しますi、対応する横軸は許容可能なしきい値標準であり、プリセットe 0 e_0e0e 0 e_0の場合、それと比較します。e0この閾値基準よりも小さい場合、その仮定は許容可能であり、合理的な仮定であることを意味し、そうでない場合は、不合理であり、再仮定する必要があることを意味する。

実際、結局のところ、これは「自ら作成し、自主的に行う」プロセスです。要約すると、まず二項分布の特性から大まかなしきい値を取得し、次にこの中でより正確な点を見つけます。しきい値。さまざまな学習者に対して、この方法を使用してパラメータを手動で設定し、2 つの学習者の品質を比較できます。

2. 仮説検定 - t 検定

結果の普遍性と正確性を保証するために、多くの推定テストを実行します。k 個の誤り率e 1 '、...、ek ' e_1'、....、e_k ' が得られたとします。e1ekそうすると、平均エラー率μ \muを簡単に取得できます。μと分散δ 2 \delta^2d2の:
μ = 1 k ∑ i = 1 kei ′ 、δ 2 = 1 k − 1 ∑ i = 1 k ( ei ′ − μ ) 2 。\mu=\frac{1}{k} \sum_{i=1}^{k}e_i' ,\\ \delta^2=\frac{1}{k-1} \sum_{i=1}^ {k}(e_i'-\mu)^2。メートル=k1i = 1ed2=k11i = 1( eメートル2.
推定された各検出は独立しているため、この確率分布関数は次のように書くことができます。T t = k ( μ − e 0 ) δ T_t=\frac{\sqrt{k}(\mu-e_0)}{ \
T=dk ( me0)
ここで、このe 0 e_0e0は汎化誤り率であり、正規分布を満たす関数です。

次に、二項検定と同じように信頼水準α \alphaを設定します。正規分布曲線の両側のα 、 α 2 \frac{\alpha}{2}2ある図に示すように、各位置で明らかなエラー間隔を取得します。

次に、しきい値間隔μ = e ' \mu=e'を仮定します。メートル=e'、白い画像曲線の下の定積分を計算します (棒グラフの計算方法については二項検定を参照)。e 'e'e'信頼水準α \alphaαで導入される範囲内であれば許容されます。

両側 t 検定で一般的に使用される臨界値テーブル:

この部分の全体的なプロセスは二項検定と非常によく似ていますが、式と分布曲線が異なることを除けば、残りのステップは二項検定からコピーできるため、ここでは詳しく説明しません。

3. 相互検証 t 検定

上記の 2 つの方法は、主に 1 人の学習者のパフォーマンスを測定することを目的としていますが、複数の学習者の場合は、k 分割交差検証 t 検定を使用して完了できます。

たとえば、k 回のテスト後の 2 人の学習者 A と B の誤り率は、e 1 A , ..., ek A {e_1^A,...,e_k^A} となります。e1eke 1 B , . 、ek B e_1^B、...、e_k^Be1BekB,其中 e i A , e i B e_i^A,e_i^B eeBは、k 分割トレーニング後に取得された i 番目の分割結果です。トレーニング結果とテスト結果の各セットの差を求めます: Δ i = ei A − ei B \Delta_i=e_i^A-e_i^BD私は=eeB

各テストが互いに独立していると仮定すると、Δ 1 . . . Δ k \Delta_1...\Delta_kと置くことができます。D1Dk 回の性能差の独立したサンプリング プロセスとして扱われ、このデータ セットの平均μ \muが計算されます。μと分散δ 2 \delta^2d2,因此我们有:
α は許容範囲です s 。と。T t = abs ( k μ δ ) < t α 2 \alpha~is~acceptable~~~~ st T_t=abs(\frac{\sqrt{k}\mu}{\delta})<t_{\frac{ \アルファ}{2}}α受け入れ可能です_ _ _ _ _ _ _ _ _ T      =a b s (dk メートル)<t2ある
このプロセスの考え方は、信頼水準α \alphaを設定することでもあります。α を計算し、しきい値が許容可能な信頼範囲内にあるかどうかを判断します。

実際、トレーニング/テスト セットは簡単に重複する可能性があるため、各テストは必ずしも互いに独立しているわけではありません

トレーニング セットとテスト セットが重複している場合、得られる k 分割テスト結果には、ある程度の相関性と類似性があると大まかに推測できます。それでもこれらのテスト結果が互いに独立していると仮定する場合、つまり、もともと「くっついていた」結果の束を「くっついていない」ものとして扱う場合、それは仮説の許容範囲が実際には大きすぎることを意味し、仮説が真実である確率を過大評価することになります。

したがって、「5×2 相互検証」を使用して、この問題を軽減できます。いわゆる 5×2 は、2 分割交差検証を 5 回行うことを意味します。分割が繰り返されないように、各 2 分割交差検証の前にデータを破壊する必要があります。基本的な考え方は次のとおりです。

  • 2 人の学習者 A と B について、それぞれの 2 分割交差検証により 2 セットのテスト誤り率が生成され、それらの差を計算し、最初の分割での差 Δ i 1 \Delta_i^1 を取得しますD1と 2 番目の折り目の差Δ i 2 \Delta_i^2D2

  • 最初の 2 分割検証μ '' \mu'の 2 つの結果の平均を取ります。メートル'' 、各 2 倍実験結果のδ '' 2 \delta'^{2}d' 2 、平均値はμ ' \mu'の前の最初の分割の平均ですメートル _

  • その確率分布関数は次のとおりです:
    T t ' = μ ' 0.2 ∑ i = 1 5 δ i 2 T_t'=\frac{\mu'}{\sqrt{0.2\sum_{i=1}^{5}\delta_i^ 2}}Tt=0 2i = 15d2 メートル

これにより、テスト結果間の独立性の問題が軽減されるのはなぜですか? 平均値は 1 つのテスト結果の誤り率のセットにすぎないため、これは実際には非常に簡単です。分散を計算する際、後続のすべてのテスト結果では以前の誤り率のセットが使用されるため、分散のサイズは元のデータと同じになります。 1 つ目はテストのエラー率に関するものです。しかし、最初のテストの結果がより現実的であれば、この方法はより説得力を持つものになると思います (個人的な考えを修正することは歓迎します)。

4. マクネマー検定

このテスト方法の主なアイデアは、2 つの 2 カテゴリ学習者の分類結果の分割表をリストし、2 つの学習者のパフォーマンス差のカイ二乗分布関数を導出し、仮説を実行することです。次に、この方法を大まかに説明します。

  • まず、2 人の学習者 A と B の二項分類結果の分割表をリストします。

  • 然后取 ∣ e 01 − e 10 ∣ |e_{01}-e_{10}| e0 1e1 0、この変数は正規分布に従います。この検定方法では、変数
    T x 2 = (∣ e 01 − e 10 ∣ − 1 ) 2 e 01 + e 10 T_{x^2}=\frac{(|e_{ 01 }-e_{10}|-1)^2}{e_{01}+e_{10}}Tバツ2=e0 1+e1 0( e0 1e1 01 )2

  • これは自由度 1 のカイ二乗分布です。残りの仮説検定手順は上記と同じです: 仮説の信頼水準を作成し、許容範囲を導出し、仮説のしきい値が許容範囲内にあるかどうかを検定し、結論を導き出します。 。

5. フリードマンテストとネメニ追跡テスト

交差検証 t 検定とマクネマー検定はペアごとの比較にのみ適していますが、複数のアルゴリズムの学習者を比較する場合、アルゴリズムをペアごとに比較するのは明らかに面倒なので、同じデータセットで 2 つのアルゴリズムを比較できる方法が紹介されています。複数のアルゴリズムを比較するためのテスト方法。

F テスト法の基本的な考え方は、同じデータセットのテスト結果に基づいて学習者のパフォーマンスを並べ替え、順序値があれば 1、2、3... を割り当てることです。同様に、次の図に示すように、順序値は均等に分割されます。

パフォーマンスが良いほど、割り当てられる値は小さくなり、各データセットに対する各アルゴリズムの平均順序値r r_iを計算します。r私は

ここで、表内のデータは単なる特殊なケースであることに注意してください。異なるデータセットでは、アルゴリズム A がそれほど優れていない可能性があるため、この平均順序値は、小さい順序値を持つアルゴリズムが優れている必要があることを完全に意味するわけではありません。アルゴリズム B と 2 種類の学習 このアルゴリズムでも、同じデータセットに対して同様の結果が得られる可能性があるため、推定しきい値を使用してどちらのアルゴリズムが優れているかを判断する必要があります。

k 個のアルゴリズムが N データセット、ri r_iで比較されると仮定します。r私はの平均と分散はそれぞれ(k + 1) / 2 (k+1)/2です。( k+1 ) / 2および( k 2 − 1 ) / 12 N (k^2-1)/12N( k21 ) / 1 2 N、分布関数が得られます (導出プロセスは省略します):
TX 2 = 12 N k ( k + 1 ) ( ∑ i = 1 kri 2 − k ( k + 1 ) 2 4 ) TF = ( N − 1 ) TX 2 N ( k − 1 ) − TX 2 T_{X^2}=\frac{12N}{k(k+1)}(\sum_{i=1}^{k}r_i^ 2-\frac {k(k+1)^2}{4}) \\ \\ T_F=\frac{(N-1)T_{X^2}}{N(k-1)-T_{X ^2}}Tバツ2=k ( k+1 )1 2 N(i = 1r24k ( k+1 )2)T=N ( k1 )Tバツ2( N1 ) Tバツ2
TX 2 T_{X^2}Tバツ2オリジナルのフリードマン検定分布関数TF T_Fです。Tは F 検定分布関数です。このアルゴリズムでは、Xiguashu は明確に臨界値テーブルを提供します。

受け入れ可能性のテストは上記と同じです。

すべてのアルゴリズムのパフォーマンスが同じであるという仮説が拒否された場合は、アルゴリズムをさらに比較するために後続のテストが必要になります。前のステップでは、k 個のアルゴリズムのすべてが同じパフォーマンスを持つわけではないことしか理解していなかったので、今度は、異なるパフォーマンスを持つ学習器を「見つけて」、どれが優れているかを比較する必要があります

以下に、Nemenyi テスト アルゴリズムの具体的なプロセスを紹介します。

基本原理は、2 つのアルゴリズムの平均次数値の差と CD 値を比較することであり、平均差が CD 値を超えた場合、2 つの学習器のパフォーマンスに差があることを意味します。

CD 値の計算式は次のとおりです。
CD = q α k ( k + 1 ) 6 N CD=q_\alpha \sqrt{\frac{k(k+1)}{6N}}C D=qある6N _k ( k+1 )
ここで、q α q_\alphaqある値の表は次のとおりです。

画像-20220121121425644

2 つの順序値の差が CD 値よりも大きい場合、平均順序値が小さいアルゴリズムの方が、平均順序値が大きいアルゴリズムよりもある程度優れています。

振り返ってみると、平均順序値は単なる参考要素であり、アルゴリズムの品質を測定するために平均順序値をより厳密に使用する前に、フリードマン テストとネメニ追跡テストを使用する必要もあります。

次のセクション: 機械学習ノート 3 - 線形回帰

おすすめ

転載: blog.csdn.net/qq_45882682/article/details/122618793