交差検証とは機械学習モデルの比較

公開: 2021-07-21

交差検証は、データ サイエンティストにとって非常に貴重なツールです。

より正確な構築に役立ちます  機械学習  モデルを作成し、独立したテスト データセットでそれらがどれだけうまく機能するかを評価します。

相互検証は理解しやすく実装しやすいため、さまざまなモデルの予測能力 (またはスキル) を比較して最適なものを選択するための頼りになる方法です。 利用可能なデータの量が限られている場合に有益であり、予測モデルが実際にどのように機能するかを確認する優れた方法です。

交差検証は、特に利用可能なデータの量が限られている場合に、モデルを過剰適合から保護するために使用されます。 これは回転推定またはサンプル外テストとも呼ばれ、主にモデルのターゲットが予測である設定で使用されます。

知ってますか? モデルがトレーニング データを適切にモデル化し、新しいデータでのパフォーマンスに悪影響を与える場合、そのモデルは「オーバーフィット」と見なされます。

このリサンプリング手順は、さまざまな機械学習モデルを比較し、特定の問題を解決するためにどの程度うまく機能するかを判断するためにも使用されます。 つまり、交差検証は、機械学習モデルのスキルを評価するために使用される方法です。

簡単に言えば、相互検証の過程で、元のデータ サンプルがランダムにいくつかのサブセットに分割されます。 機械学習モデルは、1 つを除くすべてのサブセットでトレーニングします。 トレーニング後、モデルは残りのサブセットで予測を行うことによってテストされます。

多くの場合、異なるサブセットを使用して複数回の交差検証が実行され、それらの結果が平均化されて、どのモデルが適切な予測子であるかが判断されます。

交差検証が重要な理由

クロスバリデーションは、利用可能なデータ量が限られている場合に重要です。

自転車のタイヤがパンクする可能性を予測する必要があるとします。 このために、既存のタイヤに関するデータ (タイヤの使用年数、走行距離、ライダーの体重、以前にパンクしたかどうか) を収集しました。

予測モデルを作成するには、この (履歴) データを使用します。 このデータで行う必要があることは 2 つあります。アルゴリズムのトレーニングとモデルのテストです。

知ってますか? 機械学習では、アルゴリズムとモデルは同じではありません。 モデルは、機械学習アルゴリズムによって学習されるものです。

限られた量のデータしか利用できないため、アルゴリズムのトレーニングにすべてのデータを使用するのは単純です。 それを行うと、モデルをテストまたは評価するためのデータが残りません。

トレーニング セットをテスト セットとして再利用することは、トレーニングされていないデータでモデルの精度を評価する必要があるため、良い考えではありません。 これは、トレーニングの背後にある主な目的が、実世界のデータで動作するようにモデルを準備することだからです。 また、トレーニング データ セットに、モデルが遭遇する可能性のあるすべてのデータ ポイントが含まれている可能性はほとんどありません。

データの最初の 75 パーセント (3 ブロック) をトレーニング データ セットとして使用し、最後の 25 パーセント (1 ブロック) をテスト データ セットとして使用することをお勧めします。 これにより、さまざまなアルゴリズムがテスト データをどの程度適切に分類したかを比較できます。

しかしもちろん、データの最初の 75% をトレーニング セットとして使用し、残りの 25% をテスト セットとして使用することが最善の方法であると、どのように判断できますか?

代わりに、データの最初の 25% をテストに使用できます。 または、データの 3 番目のブロックをテスト データ セットとして使用し、残りをトレーニング データセットとして使用できます。

ヒント:機械学習ソフトウェアを使用してタスクを自動化し、正確な予測を行います。

その結果、 k 分割交差検証と呼ばれる種類の交差検証では、データ セットのすべて (4 つ) の部分を一度に 1 つずつテスト データとして使用し、結果を要約します。

たとえば、交差検証では、データの最初の 3 つのブロックを使用してアルゴリズムをトレーニングし、最後のブロックを使用してモデルをテストします。 次に、モデルがテスト データでどの程度うまく機能したかを記録します。

パフォーマンスまたは精度を記録した後、データの 1 番目、2 番目、4 番目のブロックをトレーニングに使用し、3 番目のブロックをテストに使用します。 このプロセスは、すべてのブロックがテスト データとして 1 回使用されるまで続きます。 モデルのパフォーマンスを評価するために、すべての結果の平均が計算されます。

上記の例では、データは 4 つのブロックに分割されています。 したがって、この交差検証は4 分割交差検証と呼ばれます。 10 個のブロックに分割すると、10 分割交差検証になります。

つまり、クロス検証はモデルの選択に役立ち、モデルが新しいデータにどの程度一般化されているかを簡単に調べることができます。

つまり、モデルの予測誤差を判断するのに役立ちます。 また、サポート ベクター マシン (SVM)、K 最近傍点 (KNN)、線形回帰、ロジスティック回帰などのさまざまな機械学習手法のパフォーマンスや精度を比較するためにも使用されます。

データ サイエンティストが交差検証を好むその他の理由を次に示します。

  • サブセットを犠牲にすることなく、すべてのデータを使用できるようにします (ホールドアウト メソッドには無効です)。
  • データとアルゴリズムの一貫性を明らかにする
  • オーバーフィッティングとアンダーフィッティングの回避に役立ちます

クロスバリデーションは、   ハイパーパラメータ  ランダム化されたグリッド検索の交差検証と呼ばれる手法による機械学習モデルの。

交差検証の種類

相互検証方法は、網羅的方法と非網羅的方法の 2 つのカテゴリに大きく分類できます。

名前が示すように、徹底的な交差検証法は、元のデータ サンプルをトレーニング セットとテスト セットに分割するために考えられるすべての方法をテストしようとします。 一方、非網羅的な方法では、元のデータをトレーニング セットと評価セットに分割するすべての方法が計算されるわけではありません。

以下は、交差検証の 5 つの一般的なタイプです。

1.ホールドアウト法

ホールドアウト法は、元のデータセットをトレーニング データとテスト データの 2 つの部分に分割する基本的な相互検証アプローチの 1 つです。 これは網羅的な方法ではなく、予想どおり、モデルはトレーニング データセットでトレーニングされ、テスト データセットで評価されます。

ほとんどの場合、トレーニング データセットのサイズはテスト データセットの 2 倍です。つまり、元のデータセットは 80:20 または 70:30 の比率で分割されます。 また、データはトレーニング セットと検証セットに分割される前にランダムにシャッフルされます。

ただし、この相互検証方法にはいくつかの欠点があります。 モデルはさまざまなデータ ポイントの組み合わせでトレーニングされるため、トレーニングのたびにさまざまな結果が示される可能性があります。 さらに、選択したトレーニング データセットがデータセット全体を表していると完全に確信することはできません。

元のデータ サンプルが大きすぎない場合、トレーニング データに含まれていないため、モデルが認識できない重要な情報がテスト データに含まれている可能性もあります。

ただし、大規模なデータセットがあり、モデルのトレーニングとテストを急いでいる場合は、ホールドアウト クロス検証手法が理想的です。

2. K 分割交差検証

k 分割交差検証法は、ホールドアウト法の改良版です。 トレーニングおよびテスト データセットの選択方法に依存しないため、モデルのスコアに一貫性がもたらされます。

これは非網羅的な交差検証法であり、その名前が示すように、データセットを k 個の分割に分割し、ホールドアウト法を k 回実行します。

たとえば、k の値が 2 に等しい場合、同じサイズのサブセットが 2 つ存在します。 最初の反復では、モデルは 1 つのサブサンプルでトレーニングされ、もう 1 つのサブサンプルで検証されます。 2 回目の反復では、前の反復で検証に使用されたサブセットでモデルがトレーニングされ、別のサブセットでテストされます。 このアプローチは、 2 分割交差検証と呼ばれます。

同様に、k の値が 5 に等しい場合、このアプローチは5 分割交差検証法と呼ばれ、5 つのサブセットと 5 回の反復が必要になります。 また、k の値は任意です。 通常、k の値は 10 に設定されます。値の選択について混乱している場合は、同じ値をお勧めします。

k 分割交差検証手順は、元のデータセットを k 個の分割またはサブセットにランダムに分割することから始まります。 各反復で、モデルはデータセット全体の k-1 サブセットでトレーニングされます。 その後、モデルは k 番目のサブセットでテストされ、そのパフォーマンスがチェックされます。

このプロセスは、すべての k 分割が評価セットとして機能するまで繰り返されます。 各反復の結果は平均化され、交差検証精度と呼ばれます。 交差検証の精度は、さまざまなモデルの効率を比較するためのパフォーマンス メトリックとして使用されます。

k 分割交差検証手法では、通常、元のデータセットのすべてのデータ ポイントがトレーニング セットとテスト セットの両方に表示されるため、偏りの少ないモデルが生成されます。 この方法は、データ量が限られている場合に最適です。

ただし、予想どおり、アルゴリズムはゼロから k 回再実行する必要があるため、このプロセスには時間がかかる可能性があります。 これは、ホールドアウト法よりも k-1 倍の計算が必要であることも意味します。

3. 階層化された k 分割交差検証

データをランダムにシャッフルし、k 分割交差検証で折り畳みに分割しているため、最終的に不均衡なサブセットになる可能性があります。 これにより、トレーニングに偏りが生じ、モデルが不正確になる可能性があります。

たとえば、2 種類のクラス ラベルのそれぞれが元のデータの 50% を構成するバイナリ分類問題のケースを考えてみましょう。 これは、2 つのクラスが元のサンプルに同じ比率で存在することを意味します。 簡単にするために、2 つのクラスに A と B という名前を付けましょう。

データをシャッフルしてフォールドに分割する際に、データ ポイントの大部分がクラス A からのものであり、クラス B からのデータ ポイントがわずかしかないフォールドになる可能性が高いです。このようなサブセットは、不均衡なサブセットと見なされ、不正確な分類子の作成につながります。

このような状況を回避するために、階層化 と呼ばれるプロセスを使用して折り目を階層化します。 階層化では、各サブセットがデータセット全体を適切に表現するように、データが再配置されます。

上記のバイナリ分類の例では、元のサンプルを分割して、フォールド内のデータ ポイントの半分がクラス A からのものになり、残りがクラス B からのものになるようにする方がよいことを意味します。

4. Leave-p-out 交差検証

Leave-p-out cross-validation (LpOCV)は、n で表されるデータ サンプルの総数から p 個のデータ ポイントを取り出す網羅的な方法です。

モデルは np データ ポイントでトレーニングされ、後で p データ ポイントでテストされます。 元のサンプルからの p のすべての可能な組み合わせに対して、同じプロセスが繰り返されます。 最後に、各反復の結果が平均化され、交差検証の精度が達成されます。

5. Leave-one-out 交差検証

Leave-one-out 交差検証 (LOOCV)アプローチは、LpOCV の簡略化されたバージョンです。 この相互検証手法では、p の値は 1 に設定されます。 したがって、この方法はそれほど網羅的ではありません。 ただし、この方法の実行には、モデルを n 回適合させる必要があるため、費用と時間がかかります。

反復ランダム サブサンプリング検証、ネストされた交差検証、時系列交差検証など、他の交差検証手法があります。

交差検証の適用

交差検証の主な用途は、機械学習モデルのパフォーマンスを評価することです。 これは、機械学習の方法を比較し、特定の問題を解決するのに最適な方法を判断するのに役立ちます。

たとえば、光学式文字認識を実行するためにk 最近傍 (KNN) または主成分分析 (PCA)を検討しているとします。 この場合、交差検証を使用して、各方法で誤分類された文字数に基づいて 2 つを比較できます。

交差検証は、予測出力に最も寄与する特徴を選択するために、特徴選択にも使用できます。

交差検証の制限

交差検証の主な課題は、特に k 分割 CV などの方法で、過剰な計算リソースが必要になることです。 アルゴリズムは最初から k 回再実行する必要があるため、評価には k 倍の計算が必要です。

もう 1 つの制限は、目に見えないデータを取り囲む制限です。 相互検証では、テスト データセットは、モデルのパフォーマンスを評価するために使用される目に見えないデータセットです。 理論的には、これは実際のアプリケーションでモデルがどのように機能するかを確認するための優れた方法です。

しかし、目に見えないデータの包括的なセットが実際に存在することは決してありません。また、モデルが将来遭遇する可能性のあるデータの種類を予測することもできません。

個人が特定の感染症にかかるリスクを予測するモデルが構築されているとします。 モデルが特定の集団グループ (20 代半ばの女性など) のみを対象とした調査研究のデータでトレーニングされている場合、それを一般集団に適用すると、交差検証の精度と比較して予測性能が劇的に異なる可能性があります。 .

さらに、クロス検証は、元のサンプル セットで人間のバイアスが制御されている場合にのみ意味のある結果を生成します。

救助への相互検証

交差検証済みのモデル構築は、精度やパフォーマンスが向上した機械学習アプリケーションを作成するための優れた方法です。 k 分割交差検証などの交差検証手法を使用すると、テスト分割を犠牲にすることなくモデルのパフォーマンスを推定できます。

また、不均衡なデータ分割が原因で発生する問題も解消されます。 つまり、データ サイエンティストは運に頼るよりも反復に頼ることができます。

人間の脳の機能を模倣しようとする機械学習のサブセットがあります。 それは深層学習と呼ばれ、汎用人工知能は、可能であれば意思決定能力を必要とするでしょう。