MetaCost
概要
このメタ分類子は、指定されたコストマトリックスを使用して分類コストに従ってラベル予測を計算することにより、基本分類子のコストを重視します。
詳細
MetaCostオペレーターは、 コストマトリックスパラメーターで指定されたコストマトリックスを使用して、基本分類子のコストを区別します。この演算子で使用される方法は、Pedro Domingos(1999)で説明されているMetaCostの方法に似ています。
MetaCost演算子は、ネストされた演算子です。つまり、サブプロセスがあります。サブプロセスには、学習者、つまりExampleSetを予期してモデルを生成する演算子が必要です。この演算子は、サブプロセスで提供される学習器を使用して、より良いモデルを構築しようとします。この演算子を適用するには、サブプロセスの基本的な理解が必要です。サブプロセスの基本的な理解については、サブプロセス演算子のドキュメントをご覧ください。
ほとんどの分類アルゴリズムは、すべてのエラーに同じコストがあると想定していますが、これはめったにありません。たとえば、データベースマーケティングでは、非回答者への郵送のコストは非常に小さいですが、応答するだれかに郵送しないコストは、失われた利益全体です。一般に、誤分類コストは任意のコスト行列Cで記述できます。C(i、j)は、実際にクラスjに属する場合に、クラスiに属する例を予測するコストです。各分類学習者を個別にコストに敏感にすることは面倒であり、しばしば自明ではありません。 MetaCostは、コストを最小化する手順をラップすることにより、任意の分類子をコスト重視にするための原則的な方法です。このプロシージャは、基礎となる分類子をブラックボックスとして扱い、その機能の知識や変更を必要としません。 MetaCostは、任意の数のクラスおよび任意のコストマトリックスに適用できます。
入力
- トレーニングセット (IOObject)この入力ポートには、ExampleSetが必要です。これは、添付のプロセス例のRetrieveオペレーターの出力です。他の演算子の出力も入力として使用できます。
出力
- モデル(MetaCost Model)メタモデルはこの出力ポートから配信され、ラベル属性の予測のために、見えないデータセットに適用できるようになりました。
- サンプルセット(IOObject)入力として指定されたExampleSetは、このポートを介して出力に変更せずに渡されます。これは通常、別の演算子で同じExampleSetを再利用するため、または結果ワークスペースでExampleSetを表示するために使用されます。
パラメーター
- cost_matrixこのパラメーターは、コストマトリックスを指定するために使用されます。コストマトリックスの構造は混同マトリックスに似ています。これは、ある次元にクラスを予測し、他の次元に実際のクラスを持っているためです。したがって、コストマトリックスは、考えられるすべての分類結果(予測ラベルと実際のラベル)のコストを表すことができます。実際、このマトリックスは誤分類コストのマトリックスです。これは、他のクラスとして誤分類された特定のクラスに異なる重みを指定できるためです。重みを正しい分類に割り当てることもできますが、通常は0に設定されます。マトリックス内のクラスには、クラス1、クラス2などのラベルが付けられ、クラスは内部マッピングの順序に従って番号が付けられます。 範囲:文字列
- use_subset_for_trainingこのパラメーターは、トレーニングに使用するサンプルの割合を指定します。その値は0より大きくなければならず(例はゼロ)、1以下(データセット全体)でなければなりません。 範囲:実数
- iterationsこのパラメーターは、MetaCostアルゴリズムの最大反復回数を指定します。 範囲:整数
- sampling_with_replacementこのパラメーターは、置換によるサンプリングを使用する必要があるかどうかを示します。置換を伴うサンプリングでは、すべてのステップですべての例が選択される確率が等しくなります。サンプルに対してサンプルが選択されると、そのサンプルは選択の候補として残り、他の今後のステップで再び選択できます。したがって、置換のあるサンプルは、同じ例を複数回持つことができます。 範囲:ブール
- use_local_random_seedこのパラメーターは、ランダム化にローカルランダムシードを使用する必要があるかどうかを示します。同じ値のローカルランダムシードを使用すると、同じサンプルが生成されます。このパラメーターの値を変更すると、例のランダム化方法が変更されるため、サンプルの値のセットが異なります。 範囲:ブール
- local_random_seedこのパラメータは、 ローカルランダムシードを指定します。このパラメーターは、 ローカルシードの使用パラメーターがtrueに設定されている場合にのみ使用できます。 範囲:整数
チュートリアルプロセス
より良いデシジョンツリーを生成するためのMetaCost演算子の使用
「ソナー」データセットは、検索演算子を使用してロードされます。分割検証演算子は、分類モデルのトレーニングとテストのために適用されます。 MetaCostオペレーターは、Split Validationオペレーターのトレーニングサブプロセスで適用されます。決定木演算子は、MetaCost演算子のサブプロセスで適用されます。 MetaCostオペレーターの反復パラメーターは10に設定されているため、そのサブプロセスは10回反復されます。 MetaCostオペレーターのコストマトリックスパラメーターで指定されたコストマトリックスを見てください。誤分類コストが等しくないことがわかります。モデルの適用演算子は、MetaCost演算子によって生成されたモデルを適用するためのテストサブプロセスで使用されます。結果のラベル付きExampleSetは、モデルのパフォーマンスを測定するためにパフォーマンス(分類)演算子によって使用されます。分類モデルとそのパフォーマンスベクトルは出力に接続されており、結果ワークスペースで確認できます。 MetaCost演算子が各反復で新しいモデルを生成したことがわかります。このモデルの精度は約82%です。 MetaCost演算子を使用せずに同じプロセスを繰り返した場合、つまりサブツリーのトレーニングでデシジョンツリー演算子のみを使用した場合、そのモデルの精度は約66%になります。したがって、MetaCostは、コストマトリックスを使用して分類コストに従ってラベル予測を計算することにより、基本学習器(決定ツリー)のパフォーマンスを改善しました。