Performance (Costs)
概要
この演算子は、分類タスクのパフォーマンス評価のために誤分類コストを評価する機能を提供します。
詳細
パフォーマンス(コスト)演算子は、誤分類コストを評価する機能を提供します。コストマトリックスは、 コストマトリックスパラメーターで指定する必要があります。コストマトリックスの構造は混同マトリックスに似ています。これは、1つの次元でクラスを予測し、他の次元で実際のクラスを持っているためです。したがって、コストマトリックスは、考えられるすべての分類結果(予測ラベルと実際のラベル)のコストを表すことができます。実際、このマトリックスは誤分類コストのマトリックスです。これは、他のクラスとして誤分類された特定のクラスに異なる重みを指定できるためです。重みは正しい分類に割り当てることもできますが、誤分類コストの評価には考慮されません。マトリックス内のクラスには、クラス1、クラス2などのラベルが付けられており、クラスは内部マッピングの順序に従って番号が付けられています。 クラス順序定義パラメーターを使用すると、マトリックスのクラス順序を指定できます。この場合、クラスは(内部マッピングの代わりに)このパラメーターで指定された順序に従って順序付けられます。この演算子の理解を深めるために、添付のプロセス例をご覧ください。
入力
- サンプルセット (IOObject)この入力ポートには、ラベル付きのExampleSetが必要です。モデルの適用演算子は、ラベル付きデータを提供するこのような演算子の良い例です。 ExampleSetにラベルおよび予測属性があることを確認してください。属性ロールの詳細については、ロールの設定演算子を参照してください。
出力
- サンプルセット(IOObject)入力として指定されたExampleSetは、このポートを介して出力に変更せずに渡されます。これは通常、別の演算子で同じExampleSetを再利用するため、または結果ワークスペースでExampleSetを表示するために使用されます。
- パフォーマンス(パフォーマンスベクトル)このポートは、誤分類コストに関する情報を含むパフォーマンスベクトルを提供します。
パラメーター
- cost_matrixこのパラメーターは、コストマトリックスを指定するために使用されます。コストマトリックスの構造は混同マトリックスに似ています。これは、1つの次元でクラスを予測し、他の次元で実際のクラスを持っているためです。したがって、コストマトリックスは、考えられるすべての分類結果(予測ラベルと実際のラベル)のコストを表すことができます。実際、このマトリックスは誤分類コストのマトリックスです。これは、他のクラスとして誤分類された特定のクラスに異なる重みを指定できるためです。重みは正しい分類に割り当てることもできますが、誤分類コストの評価には考慮されません。マトリックス内のクラスには、クラス1、クラス2などのラベルが付けられており、クラスは内部マッピングの順序に従って番号が付けられています。 クラス順序定義パラメーターは、(内部マッピングの代わりに)マトリックスのクラス順序を指定するために使用できます。 範囲:文字列
- class_order_definition クラス順序定義パラメーターを使用すると、コストマトリックスのクラス順序を指定できます。この場合、クラスは(内部マッピングの代わりに)このパラメーターで指定された順序に従って順序付けられます。 範囲:列挙
チュートリアルプロセス
分類器の誤分類コストの測定
「ゴルフ」データセットは、検索演算子を使用してロードされます。分割検証演算子は、分類モデルのトレーニングとテストのために適用されます。 Naive Bayesオペレーターは、Split Validationオペレーターのトレーニングサブプロセスに適用されます。 Naive Bayesオペレーターは、分類モデルを訓練します。モデルの適用演算子は、テストサブプロセスでこのモデルを適用するために使用されます。ここにブレークポイントが挿入されるため、ExampleSetというラベルが表示されます。ご覧のとおり、テストデータセットの4つの例のうち1つだけが誤分類されています。誤分類の例は「class = yes」と分類されましたが、実際には「class = no」でした。
結果のラベル付きExampleSetは、モデルの誤分類コストを測定するためにパフォーマンス(コスト)演算子によって使用されます。パフォーマンス(コスト)演算子のパラメーターを見てください。クラス順序定義パラメーターは、コストマトリックス内のクラスの順序を指定します。クラス「yes」と「no」は、それぞれ1行目と2行目に配置されます。したがって、クラス「yes」はクラス1であり、クラス「no」はコストマトリックスのクラス2です。ここで、コストマトリックスパラメーターのコストマトリックスを見てみましょう。クラス2(つまり、クラス= no)がクラス1(つまり、クラス= yes)として誤って分類された場合、重みは2.0になります。クラス1(つまり、クラス=はい)がクラス2(つまり、クラス=いいえ)として誤って分類されている場合、重み1.0が与えられています。
次に、ラベル付きExampleSetの誤分類コストを評価するためにこのコストマトリックスがどのように使用されるかを見てみましょう。 4つの分類のうち1つが間違っていたため、分類コストは1/4または0.250であると予想する必要があります。ただし、この誤分類の重みは2.0であるため(class = noはclass = yesとして誤分類されるため)、この誤分類のコストは2倍になります。したがって、この場合のコストは0.500です。誤分類コストは、結果ワークスペースで確認できます。
次に、スプリット検証演算子のサンプリングタイプパラメータを「線形サンプリング」に設定し、プロセスを再実行します。モデルの適用演算子によって生成されたラベル付きのExampleSetを見てください。 4つの例のうち2つが誤分類されています。 class = noの1つの例はclass = yes(すなわち、weight = 2.0)として誤分類されており、class = yesの1つの例はclass = no(すなわちweight = 1.0)として誤分類されています。結果の誤分類コストは((1 x 1.0)+(1 x 2.0))/ 4であり、0.750になります。誤分類コストは、結果ワークスペースで確認できます。