特徴の選択と分類において、3つのデータセット全体で2つのアルゴリズムを統計的に比較する方法は?


8

問題の背景:私の研究の一環として、データセット(がん患者の遺伝子発現データ)から特徴のセットを選択できる2つのアルゴリズムを作成しました。次に、これらの機能をテストして、見えないサンプルをどれだけ癌または非癌として分類できるかを確認します。アルゴリズムの実行ごとに、ソリューション(一連の機能)が生成され、Z個の非表示サンプルでテストされます。ソリューションのパーセンテージ精度は、次のように計算されます(correct classifications / Z) * 100

アルゴリズムは2つあります:アルゴリズムXとアルゴリズムY

データセットA、データセットB、データセットCの3つの別々の(異なる癌)データセットがあります。これらのデータセットは互いに非常に異なります。サンプルごとに同じ数のサンプルや同じ数の測定(機能)はありません。

各データセットで各アルゴリズムを10回実行しました。したがって、アルゴリズムXには、データセットAから10件、データセットBから10件、データセットCから10件の結果があります。全体として、アルゴリズムXには30件の結果があります。

私の問題: 3つすべてのデータセットにわたるアルゴリズムXの合計パフォーマンスが、アルゴリズムYの合計パフォーマンスと統計的に有意に異なるかどうかを確認したいと思います。

各データセットのアルゴリズムXの結果を単一の結果セットに結合することは可能ですか?このようにして、アルゴリズムXの30の標準化された結果とアルゴリズムYの30の標準化された結果を取得します。t検定を使用して、2つの方法の間に有意差があるかどうかを確認できます。

編集-これらは進化的アルゴリズムであるため、実行するたびに少し異なるソリューションを返します。ただし、存在する場合にサンプルを癌または非癌のいずれかに強く分類できるサンプルの機能がある場合、アルゴリズムが実行されるたびにその機能が選択されます。

私が得る少し以下の理由により10回ごとに異なる結果を:

  • これらのアルゴリズムはランダムにシードされます。
  • 私は繰り返しランダムサブサンプリング検証を使用します(10回の繰り返し)。
  • 私が使用しているデータセット(DNAマイクロアレイとプロテオミクス)は、アルゴリズムが行き詰まる可能性のある多くの局所最適値があるという意味で操作するのが非常に困難です。
  • 検出したい機能間およびサブセット間の相互作用がたくさんあります。
  • 私は50の染色体を訓練し、それらは特定の長さに制限されていません。それらは自由に成長したり収縮したりします(ただし、選択圧によって長さが短くなります)。これはまた、最終結果にいくつかのバリエーションをもたらします。

そうは言っても、アルゴリズムはほとんど常に機能の特定のサブセットを選択します!

これが私の結果のサンプルです(ここでは、アルゴリズムごとに10のうち4つだけが示されています)。

データセット/実行アルゴリズムXアルゴリズムY
A 1 90.91 90.91
A 2 90.91 95.45
A 3 90.91 90.91
A 4 90.91 90.91

B 1 100 100
B 2 100 100
B 3 95.65 100
B 4 95.65 86.96

C 1 90.32 87.10
C 2 70.97 80.65
C 3 96.77 83.87
C 4 80.65 83.87

ご覧のとおり、3つのデータセットの2つのアルゴリズムの結果をまとめました。このデータでクラスカル・ウォリス検定を実行できますが、有効ですか?私はこれを尋ねます:

  • さまざまなデータセットの精度が相応なものかどうかはわかりません。そうでない場合、私が行ったようにそれらをまとめることは意味がなく、それらに対して行われた統計的検定も意味がありません。
  • このように精度を組み合わせると、全体的な結果が外れ値の影響を受けやすくなります。あるデータセットでのあるアルゴリズムの優れたパフォーマンスは、別のデータセットでの平均的なパフォーマンスを覆い隠す可能性があります。

この場合もt検定を使用できません。これは次の理由によります。

  • 整合性-t検定は、データセットの違いが整合的である場合にのみ意味があります。
  • t検定では、比較される2つのアルゴリズムの違いが正規分布であることを必要とします。私の場合、この条件を保証する方法はありません(少なくとも私は認識しています)。
  • t-testは、外れ値の影響を受け、テスト統計を歪め、推定標準誤差を大きくしてテストの検出力を低下させます。

どう思いますか?この場合、アルゴリズムXとYを比較するにはどうすればよいですか?


あなたのアルゴリズムはある種のランダム性を含んでいますか、それともなぜすべてのデータセットでそれぞれ10回それらを実行するのですか?
Stephan Kolassa、2013

はい!それらは進化的アルゴリズム(確率的アルゴリズム)です。したがって、毎回異なる結果が生成されます。ただし、強い特徴(遺伝子/サンプルからの単一の値)がある場合は、選択される頻度が高くなります。アルゴリズムの目的は、特定のクラス(卵巣癌など)に強く相関する遺伝子を選択して、将来の癌の早期診断/予測に使用できるようにすることです。
2013

回答:


8

アルゴリズムのパフォーマンスに大きな違いがなく、テストケースの数が非常に多い場合を除いて、パフォーマンスを見ただけでは違いを検出できません。

ただし、対になったデザインを利用できます。

  • データセットのまったく同じトレイン/テストスプリットで3つすべてのアルゴリズムを実行します。
  • テスト結果を正しい%に集約せず、単一のテストケースレベルで正しいか間違っているかを維持します。

比較のために、マクネマーの検定を見てください。ここでペアの設計を利用する背後にある考え方は、両方のアルゴリズムが正しく動作した場合と両方が正しく動作しなかった場合のすべてがアルゴリズムの区別に役立つわけではないということです。しかし、あるアルゴリズムが他のアルゴリズムよりも優れている場合、多くの場合、より良いアルゴリズムが正しくなったが悪くはない場合が多く、より悪い方法では正しく予測されたが、より良い方法では誤ったものはほとんどありません。

また、CawleyとTalbot:モデル選択の過剰適合とパフォーマンス評価における後続の選択バイアスについて、JMLR、2010、1、2079-2107。関連性が高い。

アルゴリズムにはランダムな側面があるため、同じデータセットの同じ分割を複数回チェックすることもできます。それから、他の点では等しい異​​なる実行間の変動を推定できます。選択した変数のセットがどの程度異なるかを判断するのは難しい場合があります。しかし、最終的な目標が予測パフォーマンスである場合は、異なる実行中の同じテストケースの予測間の変動を使用して、結果のモデルの安定性を測定することもできます。

次に、データセットのさまざまな分割による変動を(上記のように)確認し、これを最初の変動との関係に入れます。

分数(%正しく認識されたサンプルのような)は通常、二項分布であると想定されます。特定のケースでは通常の近似が可能ですが、広いデータマトリックスを持つフィールドでは、これの小さな印刷はほとんど満たされません。これにより、少数のテストケースでは信頼区間が非常に大きくなります。Rでは、binom::binom.confint与えられた真の比率の信頼区間を計算します。テストといいえ。成功の。

最後に、分光データの遺伝的最適化に関する私の経験(ドイツ語での私のDiplom論文)は、トレーニングエラーもチェックする必要があることを示唆しています。GAは非常に速くオーバーフィットする傾向があり、非常に低いトレーニングエラーが発生します。低いトレーニングエラーは楽観的すぎるだけでなく、GAが同様に完全であると思われる多くのモデルを区別できないという結果にもなります。(GAが内部的に無作為にサブセットのトレーニングと内部テストセットを使用している場合は、問題が少ない可能性があります)。

英語の論文:


優れた分析をありがとう!ペアデザインでやってみます。あなたはオーバーフィッティングに関してスポットしています。私の研究の次の段階では、トレーニング中に過剰適合を回避することに集中します。私の最終目標は、腫瘍医が癌の早期診断に使用できるように完全に自動化されたアルゴリズムを作成することであるため、これは本当に重要です。私はあなたの論文を読むことに本当に興味がありますが、ドイツ語を読むことはできません。英語版があるかどうか教えてください。詳しいご入力ありがとうございます。
取り消し2013

@revolusions:情報はいくつかの論文に少し広がっています。しかし、GA変数の選択に関する2つのリストと、分類エラー率の測定における不確実性に関する1つのリストを追加しました。質問がある場合(または論文にアクセスできない場合)は、メールを送ってください。
cbeleitesは2013

ありがとうございました!私は最後の論文をなんとかダウンロードできましたが、最初の2つは入手できないようです。明日は大学のコンピュータから試してみますが、ダウンロードできた場合はお知らせします。
2013

1

GAでfeatuer selectionを10回実行しており、毎回異なる出力が得られます!!

まず、同じシードから開始する場合は、常に同じ選択されたfeatuerサブセットを取得する必要があります。ただし、ランダムシードを使用している場合は、ほとんどの場合、ほぼ同じ選択機能を取得する必要があります。同じ選択されたfeatuerを取得する理由の1つは、投稿に記載されています。また、公平な比較のために、Bの実験のためにAの実行で同じシードを使用できます。

次に、比較のために相互検証またはブートストラップを使用できます。これにより、より代表的な比較を行うことができます。この場合、変動の原因、つまりランダムシードよりも強いように見えるランダムトレーニングサンプルがあります。したがって、比較により、どのアルゴリズムが本当に優れているかが明らかになる場合があります。

最後に、提案したとおりにt検定を使用するか、Kruskal-Wallis検定などのいくつかのノンパラメトリック検定を直接使用できます。


お返事ありがとうございます!私はいくつかのことを明確にしたいと思います、そしておそらく私はまだ比較について混乱しているのでもう一度後であなたの意見を得るでしょう、あなたが助けてくれることを願っています!あなたは言った:<blockquote>また、公平な比較のために、Bの実験のためにAの実行で同じシードを使用できます</ blockquote>これは非常に良い点です、ありがとう。あなたが提起したポイントに対処するために質問を編集しました。ご覧になって、ご意見をお聞かせいただければ幸いです。
2013

すべてのデータセットの分類子を個別に比較できます。最初に、平均と標準偏差を確認します。すべてのデータセットの場合、1つの分類子が他の分類子に勝ります。これで完了です。それ以外の場合は、「アンサンブル」のアイデアを使用できます。新しいサンプルを確認し、それがデータセットAに属している場合は、より適切な分類子などを使用します。ただし、このケースについて私が認識していない、ペアのビューに基づくいくつかの統計的検定があるかもしれません。
soufanom 2013

再度ご入力いただき、誠にありがとうございます。私はあなたが提案したことをしました、そして明確な勝者はありません。これが私がすべてを組み合わせて勝者があるかどうかを確認することにした理由です。この「アンサンブル」のアイデアは面白そうですね。これについてもっと読むことができる場所はありますか?ご協力いただきありがとうございます。
取り消し2013

もう1つ、感度と仕様を比較することを検討してください。アンサンブルソースについては、私の投稿stats.stackexchange.com/questions/47075/…に
soufanom
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.