データ セットをトレーニング セットに分解すると、モデルを理解するのに役立ちます。これは、モデルを新しい未知のデータに一般化する方法にとって非常に重要です。モデルが過剰適合している場合、新しい未確認のデータに対して適切に一般化できない可能性があります。したがって、良い予測はできません。
適切な検証戦略を持つことは、適切な予測を作成し、AI モデルのビジネス価値を活用するための最初のステップです。この記事では、一般的なデータ分割戦略をいくつかまとめました。
データセットをトレーニングと検証の 2 つの部分に分割し、80% のトレーニングと 20% の検証を使用します。これは、Scikit のランダム サンプリングを使用して行うことができます。
まず、ランダム シードを修正する必要があります。修正しないと、同じデータ分割を比較できず、デバッグ中に結果を再現できません。データセットが小さい場合、検証分割がトレーニング分割と相関関係がないという保証はありません。データのバランスが取れていない場合、同じ分割比は得られません。
したがって、単純な分割は開発とデバッグに役立つだけです。実際のトレーニングは十分に完璧ではないため、次の分割方法はこれらの問題を解決するのに役立ちます。
データセットを k 個のパーティションに分割します。以下の画像では、データセットは 5 つのパーティションに分割されています。
#1 つのパーティションを検証データ セットとして選択し、他のパーティションをトレーニング データ セットとして選択します。これにより、異なるパーティションのセットごとにモデルがトレーニングされます。
最終的に、K 個の異なるモデルが取得され、これらのモデルは、後で推論および予測するときに統合手法を使用して一緒に使用されます。
K は通常 [3,5,7,10,20] に設定されます。
低バイアスのモデルのパフォーマンスを確認したい場合は、より高い K [20] を使用します。変数選択用のモデルを構築している場合は、低い k [3,5] を使用すると、モデルの分散が小さくなります。
利点:
質問:
は、各フォールド内の異なるクラス間の比率を保持できます。データセットが不均衡な場合、たとえば、Class1 には 10 個のサンプルがあり、Class2 には 100 個のサンプルがあります。 Stratified-kFold は、元のデータセットと同じ比率で各折り畳み分類を作成します。
この考え方は K 分割交差検証と似ていますが、各折り畳みの比率は元のデータセットと同じです。
各分割では、クラス間の初期比率が保持されます。データセットが大きい場合、K 分割の相互検証でも比率が維持される可能性がありますが、これは確率的であるのに対し、Stratified-kFold は決定論的であり、小さなデータセットで使用できます。
ブートストラップとサブサンプリングは K 分割交差検証に似ていますが、固定された分割はありません。データセットからいくつかのデータをランダムに選択し、他のデータを検証として使用し、
#Bootstrap=交互サンプリングを n 回繰り返します。これについては、以前の記事で詳しく紹介しました。 彼をいつ使用するか?ブートストラップとサブサンプリングは、推定メトリック誤差の標準誤差が大きい場合にのみ使用できます。これは、データセット内の外れ値が原因である可能性があります。 概要通常、機械学習では、k 分割交差検証が開始点として使用されます。データセットが不均衡な場合は、Stratified-kFold が使用されます。外れ値が多い場合は、ブートストラップまたはその他の方法が使用可能 データ分割の改善。以上がデータセットを正しく分割するにはどうすればよいでしょうか? 3 つの一般的な方法のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。