ホームページ  >  記事  >  テクノロジー周辺機器  >  データセットを正しく分割するにはどうすればよいでしょうか? 3 つの一般的な方法のまとめ

データセットを正しく分割するにはどうすればよいでしょうか? 3 つの一般的な方法のまとめ

WBOY
WBOY転載
2023-04-08 18:51:071449ブラウズ

データ セットをトレーニング セットに分解すると、モデルを理解するのに役立ちます。これは、モデルを新しい未知のデータに一般化する方法にとって非常に重要です。モデルが過剰適合している場合、新しい未確認のデータに対して適切に一般化できない可能性があります。したがって、良い予測はできません。

適切な検証戦略を持つことは、適切な予測を作成し、AI モデルのビジネス価値を活用するための最初のステップです。この記事では、一般的なデータ分割戦略をいくつかまとめました。

単純なトレーニングとテストの分割

データセットをトレーニングと検証の 2 つの部分に分割し、80% のトレーニングと 20% の検証を使用します。これは、Scikit のランダム サンプリングを使用して行うことができます。

データセットを正しく分割するにはどうすればよいでしょうか? 3 つの一般的な方法のまとめ

まず、ランダム シードを修正する必要があります。修正しないと、同じデータ分割を比較できず、デバッグ中に結果を再現できません。データセットが小さい場合、検証分割がトレーニング分割と相関関係がないという保証はありません。データのバランスが取れていない場合、同じ分割比は得られません。

したがって、単純な分割は開発とデバッグに役立つだけです。実際のトレーニングは十分に完璧ではないため、次の分割方法はこれらの問題を解決するのに役立ちます。

K 分割相互検証

データセットを k 個のパーティションに分割します。以下の画像では、データセットは 5 つのパーティションに分割されています。

データセットを正しく分割するにはどうすればよいでしょうか? 3 つの一般的な方法のまとめ

#1 つのパーティションを検証データ セットとして選択し、他のパーティションをトレーニング データ セットとして選択します。これにより、異なるパーティションのセットごとにモデルがトレーニングされます。

最終的に、K 個の異なるモデルが取得され、これらのモデルは、後で推論および予測するときに統合手法を使用して一緒に使用されます。

K は通常 [3,5,7,10,20] に設定されます。

低バイアスのモデルのパフォーマンスを確認したい場合は、より高い K [20] を使用します。変数選択用のモデルを構築している場合は、低い k [3,5] を使用すると、モデルの分散が小さくなります。

利点:

  • モデル予測を平均化することにより、同じ分布から抽出された目に見えないデータに対するモデルのパフォーマンスを向上させることができます。
  • これは、優れた製品モデルを取得するために広く使用されている方法です。
  • さまざまな統合手法を使用して、データ セット内の各データの予測を作成し、これらの予測を使用してモデルを改善できます。これは OOF (アウトフォールド予測) と呼ばれます。

質問:

  • 不均衡なデータセットがある場合は、Stratified-kFold を使用します。
  • すべてのデータセットでモデルを再トレーニングした場合、そのパフォーマンスを k-Fold でトレーニングされたモデルと比較することはできません。このモデルはデータセット全体ではなく、k-1 でトレーニングされるためです。

Stratified-kFold

は、各フォールド内の異なるクラス間の比率を保持できます。データセットが不均衡な場合、たとえば、Class1 には 10 個のサンプルがあり、Class2 には 100 個のサンプルがあります。 Stratified-kFold は、元のデータセットと同じ比率で各折り畳み分類を作成します。

この考え方は K 分割交差検証と似ていますが、各折り畳みの比率は元のデータセットと同じです。

データセットを正しく分割するにはどうすればよいでしょうか? 3 つの一般的な方法のまとめ

各分割では、クラス間の初期比率が保持されます。データセットが大きい場合、K 分割の相互検証でも比率が維持される可能性がありますが、これは確率的であるのに対し、Stratified-kFold は決定論的であり、小さなデータセットで使用できます。

ブートストラップとサブサンプリング

ブートストラップとサブサンプリングは K 分割交差検証に似ていますが、固定された分割はありません。データセットからいくつかのデータをランダムに選択し、他のデータを検証として使用し、

#Bootstrap=交互サンプリングを n 回繰り返します。これについては、以前の記事で詳しく紹介しました。

彼をいつ使用するか?ブートストラップとサブサンプリングは、推定メトリック誤差の標準誤差が大きい場合にのみ使用できます。これは、データセット内の外れ値が原因である可能性があります。

概要

通常、機械学習では、k 分割交差検証が開始点として使用されます。データセットが不均衡な場合は、Stratified-kFold が使用されます。外れ値が多い場合は、ブートストラップまたはその他の方法が使用可能 データ分割の改善。

以上がデータセットを正しく分割するにはどうすればよいでしょうか? 3 つの一般的な方法のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。