ホームページ  >  記事  >  テクノロジー周辺機器  >  機械学習で学ぶ必要がある 4 つの相互検証テクニック

機械学習で学ぶ必要がある 4 つの相互検証テクニック

王林
王林転載
2023-04-12 16:31:121865ブラウズ

はじめに

データセット上にモデルを作成することを検討しますが、目に見えないデータでは失敗します。
モデルをトレーニング データに適合させて、それが実際の目に見えないデータで完全に実行されるのを待つだけでは済みません。

これは過学習の例であり、モデルがトレーニング データ内のすべてのパターンとノイズを抽出しています。これを防ぐには、モデルがパターンの大部分を捕捉し、データ内のノイズをすべて拾っていないことを確認する方法 (低バイアスと低分散) が必要です。この問題に対処するための多くの手法の 1 つが相互検証です。

相互検証について理解する

特定のデータ セットに 1000 件のレコードがあり、それに対して train_test_split() が実行されるとします。 70% のトレーニング データと 30% のテスト データがあり、random_state = 0 であると仮定すると、これらのパラメーターの精度は 85% になります。ここで、random_state = 50 に設定すると、精度が 87% に向上するとします。

これは、異なるrandom_stateに対して精度値を選択し続けると、変動が発生することを意味します。これを防ぐために、相互検証と呼ばれる手法が登場します。

相互検証の種類

1 つを除外する相互検証 (LOOCV)

機械学習で学ぶ必要がある 4 つの相互検証テクニック

LOOCV では、1 を選択します。データ ポイントはテストとして使用され、残りのデータはすべて最初の反復からのトレーニング データになります。次の反復では、次のデータ ポイントをテストとして選択し、残りをトレーニング データとして選択します。これをデータセット全体に対して繰り返し、最後の反復で最後のデータ ポイントがテストとして選択されるようにします。

通常、反復相互検証手順の相互検証 R² を計算するには、各反復の R² スコアを計算し、その平均を取ります。

これにより、信頼性が高く偏りのないモデルのパフォーマンスの推定が可能になりますが、実行には計算コストがかかります。

2. K 分割相互検証

機械学習で学ぶ必要がある 4 つの相互検証テクニック

でK フォールド CV では、 データセットを k 個のサブセット (フォールドと呼ばれます) に分割し、すべてのサブセットでトレーニングしますが、モデルのトレーニング後の評価用に 1 つ (k-1) のサブセットを残します。

レコードが 1000 件あり、K=5 であると仮定します。この K 値は、反復が 5 回あることを意味します。テスト データとして考慮される最初の反復のデータ ポイントの数は、最初から 1000/5=200 です。次に、次の反復では、次の 200 データ ポイントがテストとみなされます。

全体の精度を計算するには、各反復の精度を計算し、平均を取ります。

このプロセスから得られる 最小精度は、すべての反復の中で生成される最も低い精度となり、同様に、最大精度 はすべての反復の中で生成されます。最高の精度。

#3.層別相互検証

機械学習で学ぶ必要がある 4 つの相互検証テクニック

# #Hierarchical CV は通常の k 分割相互検証の拡張ですが、特に分割が完全にランダムではなく、ターゲット クラス間の比率が各分割で完全なデータセットと同じである分類問題に適しています。

レコードが 1000 件あり、その中に 600 件の「はい」と 400 件の「いいえ」が含まれているとします。したがって、各実験では、トレーニングとテストに入力されるランダム サンプルが、各クラスの少なくとも一部のインスタンスがトレーニングとテストの分割の両方に存在するような方法で入力されることが保証されます。

4.

時系列相互検証

機械学習で学ぶ必要がある 4 つの相互検証テクニック

時系列 CV には一連のテスト セットがあり、各テスト セットには観測値が含まれています。対応するトレーニング セットには、テスト セットを形成した観測値

より前に発生した観測値のみが含まれています。 したがって、将来の観察を使用して予測を構築することはできません。

予測精度は、テスト セットを平均することによって計算されます。このプロセスは、予測の基礎となる「原点」が時間とともにロールフォワードされるため、「ローリング予測原点の評価」と呼ばれることもあります。

結論

機械学習では、通常、トレーニング セットで最高のパフォーマンスを発揮するアルゴリズムやモデルは必要ありません。代わりに、テスト セットで良好なパフォーマンスを発揮するモデル、および与えられた新しい入力データに対して一貫して良好なパフォーマンスを発揮するモデルが必要です。相互検証は、そのようなアルゴリズムやモデルを確実に特定できるようにするための重要なステップです。

以上が機械学習で学ぶ必要がある 4 つの相互検証テクニックの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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