交差検定後に分類器を選択する方法は?


12

k倍交差検証を行う場合、テストの精度が最も高い分類器を使用する必要がありますか?クロス検証から分類器を取得する際の一般的な最善のアプローチは何ですか?


この質問は、「最適なアプローチ」を決定するために使用されるメトリックに大きく依存すると思います。かなり多くの人が精度を使用していますが、データセットによっては、F1-スコアなどの調和平均などの他のメトリックを使用できます。したがって、メトリックの選択も同様に重要です。
ネイサンマッコイ

@NathanMcCoyは、精度を選択すると仮定して、最高のテスト精度を持つ分類器を選択しますか?
アーモンサファイ

承知しました!考えてみてください:)
ネイサンマッコイ

回答:


15

次の2つのいずれかを実行する場合は、相互検証を行います。

  • モデル選択
  • モデルの誤差推定

モデルの選択にはさまざまなシナリオがあります。

  • 特定の問題/データセットに対して1つのアルゴリズムと他のアルゴリズムを選択する
  • 特定の問題/データセットに対する特定のアルゴリズムのハイパーパラメーターの選択

(アルゴリズムを選択する場合(モデルと呼ぶ方が良い)とハイパーパラメーター検索を実行する場合は、ネストされた相互検証を実行する必要があることに注意してください。ネストされたCVは本当に必要ですか?

交差検証により、誤差推定がそのモデルの一般化誤差として可能な限り最も近いことがある程度保証されます(ただし、これは概算が非常に困難です)。フォールド間の平均誤差を観察すると、完全なデータセットに基づいて構築されたモデルの予想誤差を適切に予測できます。また、予測の分散を観察することも重要です。これは、フォールドごとにエラーがどれだけ変化するかです。変動が大きすぎる場合(かなり異なる値)、モデルは不安定になる傾向があります。ブートストラップは、この意味で適切な近似を提供するもう1つの方法です。ELS-Standfordから無料で入手できる「統計学習の要素」ブックのセクション7を注意深く読むことをお勧めします。

前に述べたように、どのモデルでも構築されたモデルを使用してはいけません。代わりに、完全なデータセット(フォールドに分割されたデータセット)でモデルを再構築する必要があります。分離されたテストセットがある場合は、それを使用してこの最終モデルを試して、CVで取得したものと同様の(そして確実にそれ以上の)エラーを取得できます。ただし、CVプロシージャによって与えられる推定誤差に依存する必要があります。

さまざまなモデル(アルゴリズムの組み合わせなど)でCVを実行した後、フォールド間のエラーとその分散に関してパフォーマンスの良いものを選択しました。データセット全体でモデルを再構築する必要があります。ここでよくある混乱があります:モデルはデータ上に構築された予測可能なモデルであると考えて、モデルの選択を一般的に参照しますが、この場合は、適用するアルゴリズム+前処理手順の組み合わせを指します。したがって、予測/分類を行うために必要な実際のモデルを取得するには、データセット全体で勝者の組み合わせを使用してモデルを構築する必要があります。

最後に注意することは、何らかの種類の前処理を適用する場合、クラス情報(機能選択、LDA次元削減など)を使用する場合、これはデータではなくすべてのフォールドで実行する必要があることです。これは重要な側面です。データの直接情報(PCA、正規化、標準化など)を含む前処理方法を適用する場合、同じことを行う必要があります。ただし、データに依存しない前処理を適用することができます(専門家の意見に従って変数を削除しますが、これは明らかです)。このビデオは、その方向であなたを助けることができます:CV正しい方法と間違った方法

ここで、主題に関する最後の良い説明:CVとモデル選択


本当に、個別のテストデータが必要なのでしょうか、それとも既にクロス検証を行い、モデルのおおよそのテストエラーを取得しているので、あなたが持っているすべてのデータの100%で分類器を訓練するだけですか?
アーモンサファイ

「エラーとフォールド間の分散に関してパフォーマンスの良い方を選択してください」の場合は+1 。モデルを選択するとき、誰もがフォールド間の分散を無視するようです。
stmax

CVエラーだけが重要な場合、テストエラーを気にする必要があるのはなぜですか?「本当にCVプロシージャによって与えられた推定誤差について」と書いたので、私は尋ねました。
HelloWorld

別の質問。CVの最適なモデルがデータセット全体に対して構築されたときに最適なモデルではない場合はどうなりますか?
HelloWorld

1
データの100%でモデルを構築します。これは、相互検証に使用されるデータの100%で行われます。以前にトレーニングとさらなるテストのために元のデータを80%〜20%に分割した場合、80%でCVを実行し、モデルを選択して80%全体で再トレーニングします。この場合のテストセット(20%)を使用すると、新しい不可視データでの動作を確認することができます(将来利用可能になったデータと考えることができます)が、使用するエラーの推定はCVからの推定です。良いモデル(その20%、または実際に新しいデータ)である場合、新しいデータで同様のエラーが生成されることを願っています。@ArmonSafai
Javierfdr

8

いいえ。k分割交差検証中に構築されたk分類器は選択しません。まず、相互検証の目的は、予測モデルを作成することではなく、実際に予測モデルがどれだけ正確に実行されるかを評価することです。第二に、議論のために、k = 10でk分割交差検証を使用して、3つの異なる分類アルゴリズムのいずれが特定の分類問題を解決するのに最も適しているかを見つけたとします。その場合、データは同じサイズのk個の部分にランダムに分割されます。パーツの1つはテスト用に予約されており、残りのk-1パーツはトレーニングに使用されます。交差検証プロセスはk(フォールド)回繰り返されるため、反復ごとに異なる部分がテストに使用されます。交差検証を実行した後、各フォールドの結果を見て、どの分類アルゴリズム(トレーニングされたモデルではない!)が最適かを考えます。特定の反復のテストデータに非常に簡単な例が含まれていることがランダムに発生したため、高いテスト精度につながる可能性があるため、10回の反復のいずれかでテスト精度が最も高いアルゴリズムを選択する必要はありません。あなたがしたいことは、最高の精度を生み出したアルゴリズムを選択することです これにより、高いテスト精度が得られます。あなたがしたいことは、最高の精度を生み出したアルゴリズムを選択することです これにより、高いテスト精度が得られます。あなたがしたいことは、最高の精度を生み出したアルゴリズムを選択することですすべてのk分割で平均化されます。アルゴリズムを選択したので、トレーニングデータ全体を使用してアルゴリズムをトレーニングし、実際に予測を開始できます。

これはこの質問の範囲を超えていますが、選択したアルゴリズムを最大限に活用するために、モデルのハイパーパラメーター(存在する場合)も最適化する必要があります。通常、人々は相互検証を使用してハイパーパラメーター最適化を実行します。


トレーニングデータには10種類のセットがあるため、k分割交差検証ではk個の異なるモデルが作成されると考えました。
アーモンサファイ

更新された回答をご覧ください。質問をより直接的に扱い、例を使ってよりよく説明するために、それを改良しました。
-tuomastik

私はあなたが最終的にあなたの分類器を訓練するときに、参照、あなたはクロスバリデーションからあなたのアルゴリズムを選択した後で分類器を訓練するために、すべてのデータを使用してください
アルモンSafai

はい、ハイパーパラメーター最適化などのさらなる分析を行いたくない場合、ネストされたクロス検証が必要です。内部CVループがハイパーパラメーター調整を処理し、外部CVループが独立したデータセットのモデルパフォーマンスを最適に評価しますハイパーパラメーター。
tuomastik

1

したがって、トレーニングとして80%を使用し、検証データとして20%を使用しているトレーニングがあると仮定します。80%でトレーニングし、残りの20%でテストできますが、実際のテストデータと20%が実際のテストデータと類似しておらず、パフォーマンスが悪い可能性があります。そのため、これを防ぐために、k分割交差検証を使用できます。

したがって、異なるモデルがあり、データセットでどれがより良いパフォーマンスを発揮したいかを知りたいとしましょう。k-foldcross validationはうまく機能します。k検証パフォーマンスの検証エラーを把握し、それに基づいてより適切なモデルを選択できます。これは通常、k分割交差検証の目的です。

1つのモデルにのみアクセスし、k分割交差検定でチェックしている場合、テストデータのおおよその誤差を取得できますが、when you are actually training it finally, you can use the complete training dataここでは、データ全体がその一部よりも優れたパフォーマンスを発揮すると想定されているためです時々そうではないかもしれませんが、これは一般的な仮定です)


相互検証を行うとき、最高のテスト精度を持つモデルを選択するだけですか?
アーモンサファイ

テストと言うとき、検証データセットのテストを意味しますか?
ヒマヴァルシャ

そうだ

クロス検証を使用してパフォーマンスの良いモデルを選択すると(たとえば、2つのモデル-線形回帰またはニューラルネットワークがある場合)、すべてのデータでそのモデル(線形回帰またはニューラルネットワーク)をトレーニングします
Himaヴァルシャ

1
@HimaVarshaだから、平均を取ると決めたら、どのようにして「平均分類器」を選択するのでしょうか?
アーモンサファイ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.