RapidMiner(ラピッドマイナー)はデータ可視化、データ加工、モデル作成、評価、運用まで一括サポートする機械学習プラットフォームです。KSKアナリティクスはRapidMinerの正規販売代理店です。

Split Validation

概要

この演算子は単純な検証を実行します。つまり、ExampleSetをトレーニングセットとテストセットにランダムに分割し、モデルを評価します。この演算子は、学習演算子のパフォーマンスを推定するために分割検証を実行します(通常は表示されないデータセットで)。これは主に、モデル(特定の学習オペレーターが学習)が実際にどの程度正確に実行されるかを推定するために使用されます。

詳細

分割検証演算子は、ネストされた演算子です。トレーニングサブプロセスとテストサブプロセスの2つのサブプロセスがあります。トレーニングサブプロセスは、モデルの学習または構築に使用されます。トレーニングされたモデルは、テストサブプロセスに適用されます。モデルのパフォーマンスもテスト段階で測定されます。

入力ExampleSetは2つのサブセットに分割されます。 1つのサブセットはトレーニングセットとして使用され、もう1つのサブセットはテストセットとして使用されます。 2つのサブセットのサイズは、異なるパラメーターで調整できます。モデルはトレーニングセットで学習され、テストセットで適用されます。これは、テストおよびトレーニングの目的で異なるサブセットを使用して何度も反復する相互検証演算子と比較して、単一の反復で実行されます。

通常、学習プロセスは、可能な限りモデルをトレーニングデータに適合させるために、モデルパラメーターを最適化します。その後、テストデータの独立したサンプルを取得すると、通常、モデルはテストデータに適合せず、トレーニングデータにも適合します。これは「過剰適合」と呼ばれ、トレーニングデータセットのサイズが小さい場合、またはモデル内のパラメーターの数が多い場合に特に発生しやすくなります。スプリット検証は、明示的なテストセットが利用できない場合に、仮想テストセットに対するモデルの適合を予測する方法です。 Split Validationオペレーターは、1つのデータセットのトレーニングと、別の明示的なテストデータセットのテストも可能にします。

入力

  • トレーニングサンプルセット (IOObject)この入力ポートは、モデルをトレーニングするためのExampleSet(トレーニングデータセット)を想定しています。他のデータセットが提供されていない場合、モデルをテストするためのテストサブプロセス中に同じExampleSetが使用されます。

出力

  • モデル(モデル)トレーニングサブプロセスは、入力ExampleSetでトレーニングされたモデルを返す必要があります。完全な入力ExampleSetで構築されたモデルは、このポートから配信されることに注意してください。
  • トレーニングサンプルセット(IOObject)トレーニング入力ポートで入力として与えられたExampleSetは、このポートを介して出力に変更されることなく渡されます。これは通常、別の演算子で同じExampleSetを再利用するため、または結果ワークスペースでExampleSetを表示するために使用されます。
  • averagable(パフォーマンスベクトル)テストサブプロセスはパフォーマンスベクトルを返す必要があります。これは通常、モデルを適用し、そのパフォーマンスを測定することにより生成されます。このようなポートは2つ提供されますが、必要に応じてさらに多くのポートを使用できます。この推定スキームによって計算されるパフォーマンスは、完全な配信データセットに基づいて構築されたモデルで達成されるパフォーマンスの推定値(正確な計算ではなく)にすぎないことに注意してください。

パラメーター

  • splitこのパラメーターは、ExampleSetの分割方法を指定します
    • relative:相対的な分割が必要な場合、トレーニングセットの相対的なサイズをsplit ratioパラメーターで指定する必要があります。その後、テストセットの相対サイズは、1から分割比の値を引くことにより自動的に計算されます。
    • absolute:絶対分割が必要な場合、トレーニングセットサイズパラメーターまたはテストセットサイズパラメーターでトレーニングまたはテストセットで使用するサンプルの正確な数を指定する必要があります。これらのパラメーターのいずれかが-1に設定されている場合、その値は他のパラメーターを使用して自動的に計算されます。

    範囲:選択

  • split_ratioこのパラメーターは、 splitパラメーターが「relative」に設定されている場合にのみ使用できます。トレーニングセットの相対的なサイズを指定します。 1から0の間である必要があります。1は、ExampleSet全体がトレーニングセットとして使用されることを意味します。 範囲:実数
  • training_set_sizeこのパラメーターは、 splitパラメーターが「absolute」に設定されている場合にのみ使用できます。トレーニングセットとして使用するサンプルの正確な数を指定します。 -1に設定されている場合、 テストサイズセットのサンプル数がテストセットに使用され、残りのサンプルはトレーニングセットとして使用されます。 範囲:整数
  • test_set_sizeこのパラメーターは、 splitパラメーターが「absolute」に設定されている場合にのみ使用できます。テストセットとして使用するサンプルの正確な数を指定します。 -1に設定した場合、 トレーニングサイズセットの例の数がトレーニングセットに使用され、残りのサンプルがテストセットとして使用されます。 範囲:整数
  • sampling_type Split Validationオペレーターは、サブセットを構築するためにいくつかのタイプのサンプリングを使用できます。次のオプションが利用可能です。
    • linear_sampling:線形サンプリングは、サンプルの順序を変更せずに、単にExampleSetをパーティションに分割します。つまり、連続したサンプルを持つサブセットが作成されます。
    • shuffled_sampling:シャッフルサンプリングは、ExampleSetのランダムなサブセットを構築します。例は、サブセットを作成するためにランダムに選択されます。
    • stratified_sampling:階層化サンプリングはランダムなサブセットを構築し、サブセット内のクラス分布がExampleSet全体と同じであることを保証します。たとえば、二項分類の場合、層化サンプリングでは、各サブセットにクラスラベルの2つの値のほぼ同じ割合が含まれるように、ランダムなサブセットが構築されます。
    • automatic:自動モードでは、デフォルトで層別サンプリングが使用されます。適用できない場合、たとえばExampleSetに名義ラベルが含まれていない場合、シャッフルサンプリングが代わりに使用されます。

    範囲:選択

  • use_local_random_seedサブセットの例をランダム化するためにローカルランダムシードを使用する必要があるかどうかを示します。同じ値のローカルランダムシードを使用すると、同じサブセットが生成されます。このパラメーターの値を変更すると、サンプルのランダム化方法が変更されるため、サブセットには異なるサンプルセットが含まれます。このパラメーターは、シャッフルサンプリングまたは成層サンプリングが選択されている場合にのみ使用できます。ランダムサンプリングを必要としないため、線形サンプリングには使用できません。例は順番に選択されます。 範囲:ブール
  • local_random_seedこのパラメータは、 ローカルランダムシードを指定します。このパラメーターは、 ローカルシードの使用パラメーターがtrueに設定されている場合にのみ使用できます。 範囲:整数

チュートリアルプロセス

分割検証を使用したモデルの検証

「ゴルフ」データセットは、検索演算子を使用してロードされます。 Generate ID演算子がそれに適用され、例を一意に識別します。これは、このプロセスを簡単に理解できるようにするためです。それ以外の場合、ここではIDは不要です。 Split Validationオペレーターが開始する前にデータをプレビューできるように、このオペレーターの後にブレークポイントが追加されます。 Split Validation演算子をダブルクリックすると、トレーニングとテストのサブプロセスが表示されます。デシジョンツリー演算子は、トレーニングサブプロセスで使用されます。トレーニングされたモデル(決定ツリー)は、モデルポートを介してテストサブプロセスに渡されます。テストサブプロセスは、テストポートからテストデータを受け取ります。

次に、Split Validation演算子のパラメーターを見てみましょう。 splitパラメーターは ‘absolute’に設定されています。トレーニングセットサイズパラメーターは10に設定され、テストセットサイズパラメーターは-1に設定されます。 「ゴルフ」データセットには合計14の例があるため、テストセットには残りの4つの例が自動的に取得されます。サンプリングタイプパラメーターは、線形サンプリングに設定されます。残りのパラメーターにはデフォルト値があります。したがって、「ゴルフ」データセットの2つのサブセットが作成されます。後で、これら2つのサブセットが作成されることを確認します。トレーニングセット:ID 1〜10の例(10例)テストセット:ID 11〜14の例(4例)

サブセット内のすべての例が連続している(つまり、IDが連続している)ことがわかります。これは、線形サンプリングが使用されるためです。

プロセスを理解するためにブレークポイントが挿入されます。プロセスを実行すると、次のようになります。まず、ID属性を使用して一意に識別されたすべての行を含む「ゴルフ」データセットが表示されます。 IDが1〜14の14行があります。緑色の[実行]ボタンを押して続行します。決定ツリーが表示されます。これは、「ゴルフ」データセットのトレーニングセットからトレーニングされました。 [実行]ボタンをクリックして続行します。デシジョンツリーがテストデータに適用されました。ここでは、ディシジョンツリーモデルの適用後の結果を見ることができます。ここでテストデータのIDを見てください。それらは11〜14です。ラベルと予測の列を比較すると、4つのうち2つだけが正しいことがわかります(ID 1と3だけが正しい予測です)。もう一度[実行]ボタンを押します。デシジョンツリーのパフォーマンスベクトルが表示されます。 4つの予測のうち2つだけが正しいため、精度は50%です。もう一度[実行]ボタンを押します。これで、別のデシジョンツリーを表示できます。完全な「ゴルフ」データセットでトレーニングされたため、前の決定木とは異なります。

サンプリングタイプパラメータの異なる値で同じプロセスを実行できます。サンプルプロセスのように線形サンプリングを使用すると、サブセット内のサンプルのIDは連続した値になることがわかります。シャッフルサンプリングを使用すると、サブセット内の例のIDがランダムな値になることがわかります。層別サンプリングを使用すると、サブセットの例のIDはランダムな値になりますが、サブセットのクラス分布は「ゴルフ」データセット全体とほぼ同じになります。

ポートを使用してオブジェクトが渡される方法を理解するには、相互検証演算子のプロセス例を検討してください。

API認証に失敗しました メールまたはパスワードが正しくありません メールアドレスは必須です パスワードは必須です
キャンセル