相互検証の重要性は無視できません。
元の意味を変えないために、再度表現する必要があるのは次のとおりです。まず、なぜ相互検証が必要なのかを理解する必要があります。
相互検証は、特にデータが限られている場合、または新しい未知のデータに対するモデルの一般化を評価する場合に、予測モデルのパフォーマンスと汎化能力を評価するために、機械学習と統計で一般的に使用される手法です。機能に関しては非常に価値があります。
相互検証はどのような状況で使用されますか?
- モデルのパフォーマンス評価: 相互検証は、目に見えないデータに対するモデルのパフォーマンスを推定するのに役立ちます。データの複数のサブセットでモデルをトレーニングおよび評価することにより、相互検証により、単一のトレーニングとテストの分割よりも堅牢なモデルのパフォーマンスの推定値が得られます。
- データ効率: データが限られている場合、相互検証では利用可能なすべてのサンプルが最大限に活用され、トレーニングと評価にすべてのデータを同時に使用することで、より信頼性の高いモデルのパフォーマンス評価が提供されます。
- ハイパーパラメータ調整: 相互検証は、モデルに最適なハイパーパラメータを選択するためによく使用されます。データのさまざまなサブセットに対してさまざまなハイパーパラメータ設定を使用してモデルのパフォーマンスを評価することで、全体的なパフォーマンスの観点から最も優れたパフォーマンスを発揮するハイパーパラメータ値を特定できます。
- 過学習の検出: 相互検証は、モデルがトレーニング データを過学習しているかどうかを検出するのに役立ちます。モデルのパフォーマンスが検証セットよりもトレーニング セットで大幅に優れている場合は、過学習を示している可能性があり、正則化やより単純なモデルの選択などの調整が必要です。
- 一般化能力の評価: 交差検証は、目に見えないデータを一般化するモデルの能力を評価します。複数のデータ分割でモデルを評価することにより、ランダム性や特定のトレーニングとテストの分割に依存せずに、データ内の基礎となるパターンを捕捉するモデルの能力を評価するのに役立ちます。
相互検証の一般的な考え方は、図 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 サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









画像の注釈は、ラベルまたは説明情報を画像に関連付けて、画像の内容に深い意味と説明を与えるプロセスです。このプロセスは機械学習にとって重要であり、画像内の個々の要素をより正確に識別するために視覚モデルをトレーニングするのに役立ちます。画像に注釈を追加することで、コンピュータは画像の背後にあるセマンティクスとコンテキストを理解できるため、画像の内容を理解して分析する能力が向上します。画像アノテーションは、コンピュータ ビジョン、自然言語処理、グラフ ビジョン モデルなどの多くの分野をカバーする幅広い用途があり、車両が道路上の障害物を識別するのを支援したり、障害物の検出を支援したりするなど、幅広い用途があります。医用画像認識による病気の診断。この記事では主に、より優れたオープンソースおよび無料の画像注釈ツールをいくつか推奨します。 1.マケセンス

機械学習とデータ サイエンスの分野では、モデルの解釈可能性が常に研究者や実務家に焦点を当ててきました。深層学習やアンサンブル手法などの複雑なモデルが広く適用されるようになったことで、モデルの意思決定プロセスを理解することが特に重要になってきました。 Explainable AI|XAI は、モデルの透明性を高めることで、機械学習モデルに対する信頼と自信を構築するのに役立ちます。モデルの透明性の向上は、複数の複雑なモデルの普及や、モデルを説明するための意思決定プロセスなどの方法によって実現できます。これらの方法には、特徴重要度分析、モデル予測間隔推定、ローカル解釈可能性アルゴリズムなどが含まれます。特徴重要度分析では、入力特徴に対するモデルの影響度を評価することで、モデルの意思決定プロセスを説明できます。モデルの予測間隔の推定

平たく言えば、機械学習モデルは、入力データを予測された出力にマッピングする数学関数です。より具体的には、機械学習モデルは、予測出力と真のラベルの間の誤差を最小限に抑えるために、トレーニング データから学習することによってモデル パラメーターを調整する数学関数です。機械学習には、ロジスティック回帰モデル、デシジョン ツリー モデル、サポート ベクター マシン モデルなど、多くのモデルがあります。各モデルには、適用可能なデータ タイプと問題タイプがあります。同時に、異なるモデル間には多くの共通点があったり、モデル進化の隠れた道が存在したりすることがあります。コネクショニストのパーセプトロンを例にとると、パーセプトロンの隠れ層の数を増やすことで、それをディープ ニューラル ネットワークに変換できます。パーセプトロンにカーネル関数を追加すると、SVM に変換できます。これです

この記事では、学習曲線を通じて機械学習モデルの過学習と過小学習を効果的に特定する方法を紹介します。過小適合と過適合 1. 過適合 モデルがデータからノイズを学習するためにデータ上で過学習されている場合、そのモデルは過適合していると言われます。過学習モデルはすべての例を完璧に学習するため、未確認の新しい例を誤って分類してしまいます。過適合モデルの場合、完璧/ほぼ完璧なトレーニング セット スコアとひどい検証セット/テスト スコアが得られます。若干修正: 「過学習の原因: 複雑なモデルを使用して単純な問題を解決し、データからノイズを抽出します。トレーニング セットとしての小さなデータ セットはすべてのデータを正しく表現できない可能性があるため、2. 過学習の Heru。」

1950 年代に人工知能 (AI) が誕生しました。そのとき、研究者たちは、機械が思考などの人間と同じようなタスクを実行できることを発見しました。その後、1960 年代に米国国防総省は人工知能に資金を提供し、さらなる開発のために研究所を設立しました。研究者たちは、宇宙探査や極限環境での生存など、多くの分野で人工知能の応用を見出しています。宇宙探査は、地球を超えた宇宙全体を対象とする宇宙の研究です。宇宙は地球とは条件が異なるため、極限環境に分類されます。宇宙で生き残るためには、多くの要素を考慮し、予防策を講じる必要があります。科学者や研究者は、宇宙を探索し、あらゆるものの現状を理解することが、宇宙の仕組みを理解し、潜在的な環境危機に備えるのに役立つと信じています。

C++ の機械学習アルゴリズムが直面する一般的な課題には、メモリ管理、マルチスレッド、パフォーマンスの最適化、保守性などがあります。解決策には、スマート ポインター、最新のスレッド ライブラリ、SIMD 命令、サードパーティ ライブラリの使用、コーディング スタイル ガイドラインの遵守、自動化ツールの使用が含まれます。実践的な事例では、Eigen ライブラリを使用して線形回帰アルゴリズムを実装し、メモリを効果的に管理し、高性能の行列演算を使用する方法を示します。

翻訳者 | Li Rui によるレビュー | 今日、人工知能 (AI) および機械学習 (ML) モデルはますます複雑になっており、これらのモデルによって生成される出力はブラックボックスになっており、関係者に説明することができません。 Explainable AI (XAI) は、利害関係者がこれらのモデルがどのように機能するかを理解できるようにし、これらのモデルが実際に意思決定を行う方法を確実に理解できるようにし、AI システムの透明性、信頼性、およびこの問題を解決するための説明責任を確保することで、この問題を解決することを目指しています。この記事では、さまざまな説明可能な人工知能 (XAI) 手法を検討して、その基礎となる原理を説明します。説明可能な AI が重要であるいくつかの理由 信頼と透明性: AI システムが広く受け入れられ、信頼されるためには、ユーザーは意思決定がどのように行われるかを理解する必要があります

MetaFAIR はハーバード大学と協力して、大規模な機械学習の実行時に生成されるデータの偏りを最適化するための新しい研究フレームワークを提供しました。大規模な言語モデルのトレーニングには数か月かかることが多く、数百、さらには数千の GPU を使用することが知られています。 LLaMA270B モデルを例にとると、そのトレーニングには合計 1,720,320 GPU 時間が必要です。大規模なモデルのトレーニングには、これらのワークロードの規模と複雑さにより、特有のシステム上の課題が生じます。最近、多くの機関が、SOTA 生成 AI モデルをトレーニングする際のトレーニング プロセスの不安定性を報告しています。これらは通常、損失スパイクの形で現れます。たとえば、Google の PaLM モデルでは、トレーニング プロセス中に最大 20 回の損失スパイクが発生しました。数値的なバイアスがこのトレーニングの不正確さの根本原因です。
