元の意味を変えないために、再度表現する必要があるのは次のとおりです。まず、なぜ相互検証が必要なのかを理解する必要があります。
相互検証は、特にデータが限られている場合、または新しい未知のデータに対するモデルの一般化を評価する場合に、予測モデルのパフォーマンスと汎化能力を評価するために、機械学習と統計で一般的に使用される手法です。機能に関しては非常に価値があります。
相互検証はどのような状況で使用されますか?
- モデルのパフォーマンス評価: 相互検証は、目に見えないデータに対するモデルのパフォーマンスを推定するのに役立ちます。データの複数のサブセットでモデルをトレーニングおよび評価することにより、相互検証により、単一のトレーニングとテストの分割よりも堅牢なモデルのパフォーマンスの推定値が得られます。
- データ効率: データが限られている場合、相互検証では利用可能なすべてのサンプルが最大限に活用され、トレーニングと評価にすべてのデータを同時に使用することで、より信頼性の高いモデルのパフォーマンス評価が提供されます。
- ハイパーパラメータ調整: 相互検証は、モデルに最適なハイパーパラメータを選択するためによく使用されます。データのさまざまなサブセットに対してさまざまなハイパーパラメータ設定を使用してモデルのパフォーマンスを評価することで、全体的なパフォーマンスの観点から最も優れたパフォーマンスを発揮するハイパーパラメータ値を特定できます。
- 過学習の検出: 相互検証は、モデルがトレーニング データを過学習しているかどうかを検出するのに役立ちます。モデルのパフォーマンスが検証セットよりもトレーニング セットで大幅に優れている場合は、過学習を示している可能性があり、正則化やより単純なモデルの選択などの調整が必要です。
- 一般化能力の評価: 交差検証は、目に見えないデータを一般化するモデルの能力を評価します。複数のデータ分割でモデルを評価することにより、ランダム性や特定のトレーニングとテストの分割に依存せずに、データ内の基礎となるパターンを捕捉するモデルの能力を評価するのに役立ちます。
相互検証の一般的な考え方は、図 5 の折り重ねクロスに示されています。各反復で、新しいモデルは 4 つのサブデータセットでトレーニングされ、最後に保持されたサブデータセットで実行されます。 . すべてのデータが利用されていることを確認するためにテストします。平均スコアや標準偏差などの指標を通じて、モデルのパフォーマンスの真の尺度が提供されます。
すべては K 倍クロスオーバーから開始する必要があります。
KFold
K 分割クロス検証が Sklearn に統合されました。これは 7 分割の例です:
from sklearn.datasets import make_regressionfrom sklearn.model_selection import KFoldx, y = make_regression(n_samples=100)# Init the splittercross_validation = KFold(n_splits=7)
There一般的な操作は、分割を実行する前にシャッフルを実行することです。これにより、サンプルの元の順序が破壊され、過剰適合のリスクがさらに最小限に抑えられます。
cross_validation = KFold(n_splits=7, shuffle=True)
この方法では、 、簡単な k 分割相互検証を行うことができます。必ずソース コードを確認してください。ぜひソースコードをチェックしてみてください!ぜひソースコードをチェックしてみてください!
StratifiedKFold
StratifiedKFold は、分類問題用に特別に設計されています。
一部の分類問題では、データが複数のセットに分割された場合でも、ターゲットの分布は変わらないはずです。たとえば、ほとんどの場合、クラス比が 30 から 70 のバイナリ ターゲットは、トレーニング セットとテスト セットで同じ比率を維持する必要があります。通常の KFold では、分割前にデータがシャッフルされるため、このルールは破られます。カテゴリの比率は維持されません。
この問題を解決するために、Sklearn では分類に特化した別のスプリッター クラスが使用されています - StratifiedKFold:
from sklearn.datasets import make_classificationfrom sklearn.model_selection import StratifiedKFoldx, y = make_classification(n_samples=100, n_classes=2)cross_validation = StratifiedKFold(n_splits=7, shuffle=True, random_state=1121218)
KFold とは異なりますが、見た目は似ていますが、現在、クラスの割合はすべての分割と反復にわたって一貫しています。相互検証は非常に似ています。
論理的に言えば、異なるランダム シードを使用して複数のトレーニング/テスト セットを生成することにより、堅牢な相互検証プロセスと同様になるはずです。十分な反復で
Scikit-learn ライブラリも対応するインターフェイスを提供します:
from sklearn.model_selection import ShuffleSplitcross_validation = ShuffleSplit(n_splits=7, train_size=0.75, test_size=0.25)
#TimeSeriesSplit
データ セットが時系列の場合、従来の相互検証は使用できません。順序が完全に混乱します。この問題を解決するには、Sklearn が提供する別のスプリッター TimeSeriesSplit、
from sklearn.model_selection import TimeSeriesSplitcross_validation = TimeSeriesSplit(n_splits=7)
検証セットを参照してください。は常にトレーニング セットの最後に配置されます。ケースにインデックスを付けると、グラフが表示されます。これは、インデックスが日付であるためです。つまり、誤って将来の日付で時系列モデルをトレーニングし、前の日付の予測を行うことはできません
非独立かつ同一に分散された (非 IID) データの相互検証
上記のメソッドは、独立して同一に分散されたデータ セットに対して処理されます。つまり、データ生成プロセスには影響しません。他のサンプルによる
ただし、場合によっては、データが独立同一分布 (IID) の条件を満たしていない、つまり、いくつかのサンプル間に依存関係がある場合があります。この状況は、Google Brain Ventilator Pressure コンテストなどの Kaggle コンテストでも発生します。このデータは、数千回の呼吸 (吸気と呼気) 中の人工肺の気圧値を記録し、各呼吸のあらゆる瞬間に記録されます。各呼吸プロセスには約 80 行のデータがあり、これらの行は相互に関連しています。この場合、データの分割が「呼吸プロセスの途中」で発生する可能性があるため、従来の相互検証方法は使用できません。
これは、これらのデータを「グループ化」する必要があると理解できます。グループ内のデータは関連しているためです。たとえば、複数の患者から医療データを収集する場合、各患者には複数のサンプルがあります。ただし、これらのデータは個々の患者の違いの影響を受ける可能性が高いため、グループ化する必要もあります。
多くの場合、特定のグループでトレーニングされたモデルが他の目に見えないグループにもうまく一般化されることを期待します。相互検証では、これらのグループのデータに「タグ」を付け、それらを相互に区別する方法を伝えます。
Sklearn では、これらの状況に対処するためにいくつかのインターフェイスが提供されています。
- GroupKFold
- StratifiedGroupKFold
- LeaveOneGroupOut
- LeavePGroupsOut
- GroupShuffleSplit
相互検証の概念とその実装方法を理解することを強くお勧めします。Sklearn のソース コードを確認するのは良い方法です。さらに、独自のデータセットを明確に定義する必要があり、データの前処理が非常に重要です。
以上が相互検証の重要性は無視できません。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ねえ、忍者をコーディング!その日はどのようなコーディング関連のタスクを計画していますか?このブログにさらに飛び込む前に、コーディング関連のすべての問題について考えてほしいです。 終わり? - &#8217を見てみましょう

食品の準備を強化するAI まだ初期の使用中ですが、AIシステムは食品の準備にますます使用されています。 AI駆動型のロボットは、ハンバーガーの製造、SAの組み立てなど、食品の準備タスクを自動化するためにキッチンで使用されています

導入 Python関数における変数の名前空間、スコープ、および動作を理解することは、効率的に記述し、ランタイムエラーや例外を回避するために重要です。この記事では、さまざまなASPを掘り下げます

導入 鮮やかな絵画や彫刻に囲まれたアートギャラリーを歩くことを想像してください。さて、各ピースに質問をして意味のある答えを得ることができたらどうでしょうか?あなたは尋ねるかもしれません、「あなたはどんな話を言っていますか?

製品のケイデンスを継続して、今月MediaTekは、新しいKompanio UltraやDimenity 9400を含む一連の発表を行いました。これらの製品は、スマートフォン用のチップを含むMediaTekのビジネスのより伝統的な部分を埋めます

#1 GoogleはAgent2Agentを起動しました 物語:月曜日の朝です。 AI駆動のリクルーターとして、あなたはより賢く、難しくありません。携帯電話の会社のダッシュボードにログインします。それはあなたに3つの重要な役割が調達され、吟味され、予定されていることを伝えます

私はあなたがそうであるに違いないと思います。 私たちは皆、精神障害がさまざまな心理学の用語を混ぜ合わせ、しばしば理解できないか完全に無意味であることが多い、さまざまなおしゃべりで構成されていることを知っているようです。 FOを吐き出すために必要なことはすべてです

今週公開された新しい研究によると、2022年に製造されたプラスチックの9.5%のみがリサイクル材料から作られていました。一方、プラスチックは埋め立て地や生態系に積み上げられ続けています。 しかし、助けが近づいています。エンジンのチーム


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

WebStorm Mac版
便利なJavaScript開発ツール

SublimeText3 中国語版
中国語版、とても使いやすい

Dreamweaver Mac版
ビジュアル Web 開発ツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター
