私たちは常にCVをするべきですか?


9

私の質問:比較的大きなデータセットでもCVを実行する必要がありますか?

比較的大きなデータセットを持っているので、そのデータセットに機械学習アルゴリズムを適用します。

私のPCは高速ではないため、CV(およびグリッド検索)に時間がかかりすぎることがあります。特に、SVMは多くのチューニングパラメータのために終了することはありません。したがって、CVを実行する場合、比較的小さなデータを選択する必要があります。

一方、検証セットも大きくなければならないので、トレーニングセットと同じ(またはより大きい)サイズの検証セットを使用することをお勧めします。(つまり、CVの代わりに、パラメーター調整に大規模な検証セットを使用します。)

ですから、少なくとも2つの選択肢があります。

  1. 小さなデータセットでCVを実行します。
  2. CVなしで比較的大きなトレーニングセットと検証セットを使用します。
  3. 他のアイデア。

最高のアイデアは何ですか?理論的または実際的な意見はどちらも歓迎します。


1
この質問は明らかにCWである必要があります。
H. Shindoh 2016年

1
何が大きい?いくつの観察?機能/変数/リグレッサはいくつありますか?
ジム

1
PCによって異なります。つまり、数台のコンピュータを必要とする「ビッグデータ」については考えていません。
H. Shindoh

回答:


3

一般に、常に相互検証を使用する必要はありません。CVのポイントは、1つのテストセットのみを使用する場合よりも、分類子の一般化可能性のより安定した推定値を取得することです。データセットが膨大な場合はCVを使用する必要はありません。したがって、トレーニングセットにデータを追加してもモデルはあまり改善されず、ランダムセットによるテストセットの誤分類がほとんどなくても、パフォーマンスメトリックは実際には変更されません。 。

小さなトレーニングセットと大きなテストセットを使用することで、推定が偏ります。したがって、より多くのデータが正則化を必要としないため、より大きなデータセットでは異なるトレーニングデータと最適なハイパーパラメータを使用する場合に得られる結果よりもおそらく悪くなります。

ただし、最適なハイパーパラメーターを取得することはとにかく重要な部分ではなく、パフォーマンスが劇的に向上することはありません。問題を理解し、優れた機能を作成し、データを適切な形にするために、エネルギーを集中させる必要があります。

速度を上げるために考慮できることをいくつか次に示します。

  1. より少ない機能でトレーニングします。特徴選択や次元削減を使用して、問題のサイズを小さくします
  2. SVMにプリキャッシュカーネルを使用する
  3. グリッドでハイパーパラメーターを選択する必要のないアルゴリズムを使用します。特に、リッジ/ラッソ/弾性ネットペナルティを伴うロジスティック回帰のような線形のもの、または線形SVMです。実装に応じて、これらの分類子は、選択したパスのすべてのハイパーパラメータのモデルを1つだけ当てはめるコストで当てはめることができます
  4. 問題の種類に応じてより高速な実装を使用します(グーグルする必要があります)

遅いコンピュータでも、次のことができます。

  1. より多くのコアを使用する
  2. GPUを使用する

2

交差検証は、データのランダム性(そして、それが決定論的でない場合はおそらく学習アルゴリズム)によるパフォーマンスメトリックの分散を推定するツールです。

したがって、1つのスプリットのみを使用する場合(例:80%トレイン+ 20%テスト)、この単一の実験からパフォーマンスメトリックを報告すると、まったく同じパラメーターを使用して実験を再現しようとする人が異なるパフォーマンス数値を見つける可能性が高くなります(場合によっては非常に異なる)。もちろん、同じ正確な分割を提供しない限り、意味がありません。

質問に戻るには、CVを使用してパフォーマンス報告する必要があります(たとえば、CVを10倍にして、パフォーマンスメトリックの平均と標準偏差を報告します)。アルゴリズムを調整するために、トレーニングセットからサンプリングされたはるかに小さい検証セットを使用できます(テストセットに含まれていないことを確認してください)。

小さなセットを使用しても最適なハイパーパラメーターが見つからない場合は、アルゴリズムをデータセットの詳細に適合させすぎている可能性があります。すべてのフォールドの中で妥当なパフォーマンスを提供する小さなサンプルを使用して構成を見つけることができない場合、アルゴリズムはおそらく実際にはあまり役に立ちません。

また、一部のアルゴリズムは単純に遅すぎる、または一部の構成では適切にスケーリングされないことに注意してください。これも実用的なモデルの選択の一部です。

SVMについて言及しているので、もちろんグリッド検索によって非線形カーネルのパラメーターを見つけようとすると、ほとんどの実装は遅くなります。グリッド検索は指数関数的に複雑であるため、非常に少ないパラメーターで使用します。また、ほとんどのライブラリは適切なデフォルトパラメータを提供していることにも注意してください(少なくとも1つのパラメータを設定し、他のパラメータを設定するためのヒューリスティックがあります)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.