機械学習分類器のパフォーマンスを統計的に比較する方法は?


29

推定された分類精度に基づいて、ある分類子が別の分類子よりもベースセットで統計的に優れているかどうかをテストします。各分類子について、トレーニングとテストのサンプルを基本セットからランダムに選択し、モデルをトレーニングして、モデルをテストします。これを各分類子に対して10回行います。したがって、各分類器について10個の推定分類精度測定値があります。ベースデータセットで、がよりも優れた分類器であるかどうかを統計的にテストするにはどうすればよいですか。どのt検定を使用するのが適切ですか?classifier1classifier2


同じサンプルで分類器をテストしましたか?すなわち、sample1、c1(sample1)、c2(sample1)?または、分類器ごとに異なるサンプルを使用しましたか?
ジョンモーラー

このシナリオでは、ペアのt検定が適切です。
GEL

1
@lewellen:精度は比例です。通常、t検定は適切ではありません
cbeleitesは、モニカをサポートしています

3
@JohnMoeller:「プロポーションの差」は、私たちがまだ知らない独立または依存の検索用語になります。ペアになっている場合:McNemarのテスト。私は、t検定がかなり小さなサンプルサイズを意味すると推測しているので、おそらく通常の近似は良い考えではありません。私はのために行くだろう料金とプロポーションのための統計的手法の詳細をルックアップします。
cbeleitesは、モニカをサポートしています

2
@JohnMoeller:それぞれの精度は比例であると言っています。それらを比較する場合は、「比率の差」の方法を使用します。無限のコメントを防ぐために、これを回答に拡張しました。
cbeleitesは、モニカをサポートしています

回答:


14

Dietterich氏は、次のように述べています。「二項分布は、妥当な値の正規分布によって近似することができます。これまでのところ、合理的なnを持っているとは言わなかった。@JohnMoellerの30のケースは、(少なくともp 1p 2についての知識がなくても)通常の近似ではなくIMHO です。nnp1p2
cbeleitesサポートモニカ

基本データセットでは、クラスごとに少なくとも4000レコードを使用できるため、選択するサンプルはこれよりも小さくなります。比率検定の最大の欠点は、「学習アルゴリズムの内部変動」を無視することです。これは、私が使用しているニューラルネットワークなどの分類器にとって重要だと思います。
エントロピー

まあ、それはJohnMoellerが思いついたものとは全く異なる状況です。「内部変動」によってモデルの不安定性を意味する場合:これを測定できます。回答を更新します。
cbeleitesは、モニカをサポートしています

明確にするために、30はテスト/トレーニングパーティションセットを選択した回数であり、選択したテストポイントの数ではありません
ジョンモーラー

@JohnMoeller:申し訳ありませんが、私はそれを完全に誤解していました(「サンプル」が何らかの物理的標本である分野から来ました)。
cbeleitesは、Monicaをサポートしています

10

私は手にフリースの本を持っていないので、これはすべてIIRCです。

現在のコメントで@JohnMoellerの質問に答える:元の質問は、私見では答えられません。

したがって、30個のサンプルがあり、各サンプルでc1とc2をテストし、各サンプルでそれぞれの精度を記録するとします。

これを行うと、分類器1が正しい/間違っていることに対して分類器1が正しい/間違っていることを示す2 x 2分割表になります。これがMcNemarのテストの出発点です。したがって、これは「独立した」比率(同じ有限サンプルからランダムに描画した場合に完全に独立していない)を比較するよりも強力なペア比較用です。

マクネマーの「小さな活字」は今は調べられませんが、30個のサンプルはそれほど多くありません。そのため、McNemarから二項確率を計算するFisherの正確なテスト(または他の何か)に切り替える必要さえあります。


比率の平均:
同じ分類子を10のテストケースで10xテストするか、100のケースすべてで1回テストするかは問題ではありません(2 x 2のテーブルはすべてのテストケースをカウントします)。

元の質問の各分類子の精度の10の推定値がランダムホールドアウト、10倍交差検証、または10倍のブートストラップ外から取得された場合、通常、各分類子に対して計算された10個の代理モデルは同等であると仮定されます(=同じ精度を持っている)、テスト結果をプールすることができます*。10倍交差検定では、テストサンプルのサイズがテストサンプルの総数と等しいと仮定します。他の方法については確信が持てません。同じケースを複数回テストしても構いません。データ/問題/アプリケーションによっては、これは新しいケースをテストするほど多くの情報になりません。

k

knp^=knσ2p^=σ2kn=p1pn


ああ、わかった。少なくとも私にとっては、それが問題を解決する最後のビットです。ありがとう。
ジョンモーラー

回答ありがとうございます。従うべき手順を明確にしないでください。単一のデータセットでプリフォーム10倍交差検証を行うと言います。ホールドアウトサンプルの精度を測定します。つまり、2x2の混同行列を計算します。10個の2x2混同行列を合計します。集約された2x2混同行列でMcNemarの検定を事前に作成します。
エントロピー

@entropy:1. 2x2分割表は混同行列ではありません。2.毎回新しいサンプルと同じテストデータで両方の分類子をテストする場合:ペアテストはより強力です(ここでは可能です)。更新された回答を参照してください。
cbeleitesは、モニカをサポートしています

申し訳ありませんが、はい、分割表です。McNemarのテストは複数クラスの問題にも直接変換すると言ってもいいですか。
エントロピー

@cbeleitesは応答にとても感謝しています!!! あなたは私の質問に正確に答えたと思います。しかし、私はまだ従うべき正確な手順を理解していません。最後の段落について詳しく説明していただけますか。
エントロピー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.