Wrapper-X-Validation
概要
この演算子は、特徴の重み付けまたは選択スキームのパフォーマンスを評価するために相互検証を実行します。主に、実際にスキームがどの程度正確に実行されるかを推定するために使用されます。
詳細
Wrapper-X-Validation演算子は、ネストされた演算子です。これには、属性重み付けサブプロセス、モデル作成サブプロセス、モデル評価サブプロセスの3つのサブプロセスがあります。属性重み付けサブプロセスには、評価するアルゴリズムが含まれています。それは、トレーニングデータセットに適用される属性重みベクトルを返す必要があります。モデル作成サブプロセスは、各反復で新しいモデルをトレーニングするために使用されます。このモデルは、最初のサブプロセスで使用されたのと同じトレーニングデータセットでトレーニングされます。ただし、このサブプロセスのトレーニングデータセットには、最初のサブプロセスの重みベクトルに重み0を持つ属性が含まれていません。その後、トレーニングされたモデルが適用され、モデル評価サブプロセスで評価されます。モデルはテストデータセットでテストされます。このサブプロセスはパフォーマンスベクトルを返す必要があります。このパフォーマンスベクトルは、実際のアルゴリズムのパフォーマンスインジケータとして機能します。
入力ExampleSetは、同じサイズのk個のサブセットに分割されます。 k個のサブセットのうち、単一のサブセットがテストデータセット(つまり、3番目のサブプロセスの入力)として保持され、残りのk -1個のサブセットがトレーニングデータセット(つまり、最初の2つのサブプロセスの入力)として使用されます。次に、交差検証プロセスがk回繰り返され、 k個のサブセットのそれぞれがテストデータとして1回だけ使用されます。次に、 k回の反復から得られたkの結果を平均(または結合)して、単一の推定値を生成できます。値kは、検証パラメーターの数を使用して調整できます。詳細については、添付のプロセス例をご覧ください。
学習と同様に、前処理中に過適合が発生する可能性もあります。前処理メソッドの一般化パフォーマンスを推定するために、RapidMinerは前処理ステップのいくつかの検証演算子をサポートしています。基本的な考え方は他のすべての検証演算子と同じですが、わずかな違いがあります:最初の内部演算子は変換されたサンプルセットを生成し、2番目はこの変換されたデータセットからモデルを生成し、3番目の演算子はこのパフォーマンスベクトルを生成する必要があります同じ方法で変換されたテストセットのモデル。
入力
- 設定された例(IOObject)この入力ポートには、ExampleSetが必要です。このExampleSetのサブセットは、トレーニングおよびテストデータセットとして使用されます。
出力
- パフォーマンスベクトル出力(パフォーマンスベクトル)モデル評価サブプロセスは、各反復でパフォーマンスベクトルを返す必要があります。これは通常、モデルを適用し、そのパフォーマンスを測定することにより生成されます。このようなポートは2つ提供されますが、必要に応じてさらに多くのポートを使用できます。この推定スキームによって計算される統計的性能は、完全な配信データセットに基づいて構築されたモデルで達成される性能の(正確な計算ではなく)推定にすぎないことに注意してください。
- 属性の重み(平均ベクトル)属性の重み付けサブプロセスは、各反復で属性の重みベクトルを返す必要があります。完全な入力ExampleSetで構築された属性重みベクトルは、このポートから配信されることに注意してください。
パラメーター
- leave_one_out名前が示すように、 leave one out交差検証では、テストデータとして元のExampleSetの1つの例を使用し、残りをトレーニングデータとして使用します。これを繰り返して、ExampleSetの各例をテストデータとして1回使用します。したがって、「n」回繰り返されます。「n」は、ExampleSet内のサンプルの総数です。これは、元のExampleSetのサンプルの数に等しい検証パラメータの数を設定してBatch-X-Validation演算子を適用するのと同じです。これは通常、トレーニングプロセスが多数回(例の回数)繰り返されるため、計算の観点から大きなExampleSetの場合は非常に高価です。 trueに設定されている場合、 検証パラメーターの数は無視されます。 範囲:ブール
- number_of_validationsこのパラメーターは、ExampleSetを分割するサブセットの数を指定します(各サブセットには同数のサンプルがあります)。また、同じ回数の反復が行われます。これがExampleSetのサンプルの総数に等しく設定されている場合、 leave one outパラメーターをtrueに設定したBatch-X-Validationオペレーターと同等です。 範囲:整数
- sampling_type Batch-X-Validationオペレーターは、サブセットの構築にいくつかのタイプのサンプリングを使用できます。次のオプションが利用可能です。
- linear_sampling:線形サンプリングは、サンプルの順序を変更せずに、単にExampleSetをパーティションに分割します。つまり、連続したサンプルを持つサブセットが作成されます。
- shuffled_sampling:シャッフルサンプリングは、ExampleSetのランダムなサブセットを構築します。例は、サブセットを作成するためにランダムに選択されます。
- stratified_sampling:階層化サンプリングはランダムなサブセットを構築し、サブセット内のクラス分布がExampleSet全体と同じであることを保証します。たとえば、二項分類の場合、層化サンプリングでは、各サブセットにクラスラベルの2つの値のほぼ同じ割合が含まれるように、ランダムなサブセットが構築されます。
範囲:選択
- use_local_random_seedこのパラメーターは、サブセットの例をランダム化するためにローカルランダムシードを使用する必要があるかどうかを示します。 ローカルランダムシードの同じ値を使用すると、同じサブセットが生成されます。このパラメーターの値を変更すると、サンプルのランダム化方法が変更されるため、サブセットには異なるサンプルセットが含まれます。このパラメーターは、シャッフルサンプリングまたは成層サンプリングが選択されている場合にのみ使用できます。ランダムサンプリングを必要としないため、線形サンプリングには使用できません。例は順番に選択されます。 範囲:ブール
- local_random_seedこのパラメータは、 ローカルランダムシードを指定します。このパラメーターは、 ローカルシードの使用パラメーターがtrueに設定されている場合にのみ使用できます。 範囲:整数
チュートリアルプロセス
属性選択スキームの評価
このサンプルプロセスは、ExampleSetを提供するSubprocessオペレーターで始まります。 ExampleSetを見ることができるように、ブレークポイントがここに挿入されます。 id属性によって一意に識別される60の例があることがわかります。 ExampleSetには6つの属性があります。 Wrapper-X-Validation演算子は、属性選択スキームを評価するためにこのExampleSetに適用されます。評価されるスキームは、Wrapper-X-Validationオペレーターの属性重み付けサブプロセスに配置されます。このプロセス例では、選択の最適化演算子が使用されています。ここでは、簡単にするためにそのサブプロセスについては説明しません。
Wrapper-X-Validationオペレーターのパラメーターをご覧ください。検証パラメーターの数は6に設定され、サンプリングタイプパラメーターは「線形サンプリング」に設定されます。したがって、指定されたExampleSetは6つのサブセットに線形に分割されます(つまり、各サブセットには連続した例があります)。 Wrapper-X-Validationオペレーターには、6回の反復があります。すべての反復で、6つのサブセットのうち5つがトレーニングデータセットとして機能し、残りのサブセットがテストサブセットとして機能します。
すべての反復で次の手順が実行されます。属性重み付けサブプロセスは、トレーニングデータセットを使用して属性選択スキームをトレーニングします。モデル作成サブプロセスは、トレーニングデータセットを受け取りますが、最初のサブプロセスの結果の重みベクトルにゼロ以外の重みを持つ属性のみが含まれます。モデルは、このデータセットを使用してトレーニングされます。モデル評価サブプロセスは、テストデータセットでこのモデルをテストし、パフォーマンスベクトルを提供します。
ブレークポイントは、プロセスの次の場所に挿入されます。反復のトレーニングデータセットを確認できるように、属性の重み付けサブプロセスの前。属性の重みのサブプロセスの後、属性の重みのベクトルを確認できます。モデル作成のサブプロセスの前。モデルのトレーニングに使用されるトレーニングデータセット(重みが0の属性なし)を表示できます。反復のテストデータセットを確認できるように、モデル評価サブプロセスの前。