クロス検証は非常に重要です!

クロス検証は非常に重要です!

まず、クロス検証がなぜ必要なのかを理解する必要があります。

クロス検証は、予測モデルのパフォーマンスと一般化能力を評価するための機械学習と統計の一般的な手法です。クロス検証は、データが限られている場合や、新しい未知のデータに対するモデルの一般化能力を評価する場合に特に役立ちます。

では、クロス検証は具体的にいつ使用されるのでしょうか?

  • モデルのパフォーマンス評価: クロス検証は、モデルが未知のデータに対してどの程度適切に機能するかを推定するのに役立ちます。データの複数のサブセットでモデルをトレーニングおよび評価することにより、クロス検証では、単一のトレーニングとテストの分割よりも堅牢なモデル パフォーマンスの推定値が得られます。
  • データ効率: データが限られている場合、クロス検証では利用可能なすべてのサンプルを最大限に活用し、すべてのデータを同時にトレーニングと評価に使用することで、モデルのパフォーマンスをより信頼性の高い方法で評価します。
  • ハイパーパラメータの調整: クロス検証は、モデルに最適なハイパーパラメータを選択するためによく使用されます。データのさまざまなサブセットに対してさまざまなハイパーパラメータ設定を使用してモデルのパフォーマンスを評価することで、全体的なパフォーマンスが最適になるハイパーパラメータ値を特定できます。
  • 過剰適合の検出: クロス検証は、モデルがトレーニング データに過剰適合しているかどうかを検出するのに役立ちます。モデルが検証セットよりもトレーニング セットで大幅に優れたパフォーマンスを発揮する場合、過剰適合を示している可能性があり、正規化やより単純なモデルの選択などの調整が必要になります。
  • 一般化評価: クロス検証により、モデルが未知のデータに対してどの程度一般化されるかを評価します。データの複数の分割でモデルを評価することにより、ランダム性や特定のトレーニングとテストの分割に依存せずに、データ内の基本的なパターンを捕捉するモデルの能力を評価するのに役立ちます。

クロス バリデーションの一般的な考え方は、図 5 フォールド クロス バリデーションに示されています。各反復で、新しいモデルは 4 つのサブデータセットでトレーニングされ、最後に予約されたサブデータセットでテストされて、すべてのデータが利用されていることを確認します。平均スコアや標準偏差などの指標を通じてモデルのパフォーマンスの真の測定値を提供します

すべてはK折りクロスから始まります。

Kフォールド

K 倍交差が Sklearn に統合されました。ここでは 7 倍交差を例に挙げます。

 from sklearn.datasets import make_regression from sklearn.model_selection import KFold x, y = make_regression(n_samples=100) # Init the splitter cross_validation = KFold(n_splits=7)

もう 1 つの一般的な操作は、分割を実行する前にシャッフルすることです。これにより、サンプルの元の順序が破壊され、過剰適合のリスクがさらに最小限に抑えられます。

 cross_validation = KFold(n_splits=7, shuffle=True)

このようにして、単純な k 分割交差検証が実装されます。ソース コードを読むことを忘れないでください。 !

階層化Kフォールド

StratifiedKFold は分類問題用に特別に設計されています。

一部の分類問題では、データが複数のセットに分割されても、ターゲット分布は変更されないままである必要があります。たとえば、ほとんどの場合、クラス比が 30 対 70 のバイナリ ターゲットは、トレーニング セットとテスト セットで同じ比率を維持する必要があります。通常の KFold では、分割前にデータがシャッフルされるとクラス比が維持されないため、このルールは破られます。

この問題を解決するために、Sklearn では分類専用の別のスプリッター クラスである StratifiedKFold が使用されます。

 from sklearn.datasets import make_classification from sklearn.model_selection import StratifiedKFold x, y = make_classification(n_samples=100, n_classes=2) cross_validation = StratifiedKFold(n_splits=7, shuffle=True, random_state=1121218)

KFold に似ていますが、クラスの比率はすべての分割と反復にわたって一貫して維持されるようになりました。

シャッフルスプリット

場合によっては、トレーニング/テスト セットの分割プロセスを複数回繰り返すだけで済むこともあり、これはクロス検証と非常によく似ています。

論理的には、異なるランダム シードを使用して複数のトレーニング/テスト セットを生成することは、十分な反復で堅牢なクロス検証手順に似ているはずです。

Sklearn は次のインターフェースも提供します:

 from sklearn.model_selection import ShuffleSplit cross_validation = ShuffleSplit(n_splits=7, train_size=0.75, test_size=0.25)

時系列分割

データ セットが時系列の場合、従来のクロス検証は使用できず、順序が完全に乱れます。この問題を解決するために、Sklearn は別のスプリッターである TimeSeriesSplit を提供します。

 from sklearn.model_selection import TimeSeriesSplit cross_validation = TimeSeriesSplit(n_splits=7)

図に示すように、検証セットは常にトレーニング セットのインデックスの後に配置されます。インデックスは日付であるため、誤って将来の日付で時系列モデルをトレーニングし、以前の日付の予測を行うことはできません。

非IIDデータのクロス検証

上記の方法はすべて、独立した同一に分布したデータ セットを扱います。つまり、データ生成プロセスは他のサンプルの影響を受けません。

ただし、場合によっては、データが IID 条件を満たさない、つまり一部のサンプル グループ間に依存関係があることがあります。これは、何千もの呼吸プロセス (吸入と呼気) 中の人工肺の空気圧値を記録し、各呼吸のすべての瞬間を記録する Google Brain Ventilator Pressure などの Kaggle のコンペティションで発生しました。各呼吸プロセスには約 80 行のデータがあり、これらの行は相互に関連しています。この場合、分割が「呼吸プロセスのちょうど真ん中で発生する」可能性があるため、従来のクロス検証は機能しません。

これらのデータを「グループ化」する必要があるのは、グループ内のデータが関連しているためだと理解できます。たとえば、医療データが複数の患者から収集される場合、各患者には複数のサンプルがあり、これらのデータは患者間の個人差の影響を受ける可能性が高いため、グループ化も必要です。

多くの場合、特定のグループでトレーニングされたモデルが他の未知のグループにうまく一般化できることを期待するため、クロス検証を実行するときに、これらのグループ データに「タグ」を付けて、それらを区別する方法を伝えます。

Sklearn は、このような状況を処理するためのいくつかのインターフェースを提供します。

  • グループK折りたたみ
  • 階層化グループKフォールド
  • グループから退出
  • グループを退出
  • グループシャッフル分割

クロスバリデーションの考え方とその実装方法を理解することを強くお勧めします。Sklearn のソースコードを読むことは、始めるのに良い方法です。さらに、独自のデータセットを明確に定義する必要があり、データの前処理が非常に重要です。

<<: 

>>: 

推薦する

ChatGPT が処理できない 5 つのプログラミング タスク

ネイト・ロシディ翻訳者 | ブガッティレビュー | Chonglou制作:51CTO テクノロジース...

わずか6秒で、AIはあなたの声を聞くだけであなたの外見を説明できる

信じられますか?人工知能は最近、あなたの声からわずか6秒で性別、年齢、人種を判別し、さらにはあなたの...

AIが再び大学入試小論文に挑戦、強力なハードコア技術で「数秒」の文章作成を実現

昨日(6月7日)、2022年度全国大学入学試験が始まりました。午前中に中国語科目試験が終了し、中国語...

Huawei NoahのPangu Agentは、インテリジェントエージェントが構造化推論を学習するのを支援します

AI の誕生以来、複雑なタスクを解決し、適応できるマルチタスク エージェントの開発は重要な目標でした...

快手が手の姿勢推定機能を発表、電光手の秘密を公式に公開

アイアンマンは指と手のひらを回すだけで、あっという間に鎧の製作を完了した。この魔法のような技に、スク...

自動運転の運用設計領域(ODD)に関する記事

2021年4月30日、SAEはJ3016「運転自動化分類」の第4版をリリースしました。これは、201...

...

...

フェムテック:女性が期待できること

フェムテックとは、女性の健康に焦点を当てたテクノロジーツールに適用される用語です。この分野には、不妊...

中国の人工知能は現在、世界の中でどの程度のレベルにあるのでしょうか?

総じて、人工知能は世界の新世代の技術革命と産業転換の原動力となっており、その発展は我が国の産業構造の...

...

ハーバード大学の科学者がシャコの「バネ仕掛けの拳」機構を模倣したマイクロロボットを開発

海外メディアの報道によると、シャコは世界で最も速い動物種の一つだが、シャコがどのようにしてこのような...

ソラの影に隠れ、不安を抱える中国AI

「ついていけない人は排除されるかもしれない」ソラのデモ動画を見て、10年以上の経験を持つアニメプロ...

上場企業上位500社を調査し、人工知能の7つの主要トレンドをまとめました。

近年、人工知能技術の研究が継続的に進歩するにつれて、資本は熱い傾向を示し、さまざまな業界が人工知能に...