マルチクラス分類評価アルゴリズムは、3つ以上のクラスを含む分類問題を処理するために使用されるモデルの分類効率を評価するために使用される。 アルゴリズムは、精度、再現率、F1スコア、および混同行列などの複数のメトリックを提供して、各クラスの分類精度を定量化するのに役立ちます。 混同行列は、モデルによって予測されたクラスと実際のクラスとの間の関係を表示する。 他のメトリックは、各クラスの分類結果が正しいかどうかを判断するのに役立つ情報を提供します。 これらのメトリックは、各クラスでモデルがどのように機能するかを理解するのに役立ち、その後のモデル最適化に使用できます。
コンポーネントの設定
方法1: パイプラインページでコンポーネントを設定する
Platform for AI (PAI) コンソールのMachine Learning Designerのパイプラインページで、[マルチクラス分類評価] コンポーネントのパラメーターを設定します。 下表に、各パラメーターを説明します。
タブ | パラメーター | 説明 |
フィールド設定 | 元の分類結果列 | このパラメータには、元のラベル列を選択できます。 最大1,000のクラスがサポートされています。 |
予測分類結果列 | 予測された分類結果の列。 ほとんどの場合、このパラメーターはprediction_resultに設定されます。 | |
高度なオプション | [詳細オプション] を選択した場合、[予測分類結果列] パラメーターは有効です。 | |
予測結果の確率列 | モデルの対数損失の計算に使用される列。 ほとんどの場合、このパラメーターはprediction_detailに設定されます。 このパラメーターは、ランダムフォレストモデルに対してのみ有効です。 このパラメーターを他のモデルに設定すると、エラーが報告される可能性があります。 | |
チューニング | コア | コアの数。 デフォルトでは、システムが値を決定します。 このパラメーターは、[コアあたりのメモリサイズ] パラメーターと共に使用する必要があります。 |
コアあたりのメモリサイズ | 各コアのメモリサイズ。 単位:MB。 デフォルトでは、システムが値を決定します。 |
方法2: PAIコマンドを使用する
PAIコマンドを使用して、[マルチクラス分類評価] コンポーネントのパラメーターを設定します。 SQLスクリプトコンポーネントを使用してPAIコマンドを呼び出すことができます。 詳細については、「シナリオ4: SQLスクリプトコンポーネント内でPAIコマンドを実行する」をご参照ください。
PAI -name MultiClassEvaluation -project algo_public
-DinputTableName="test_input"
-DoutputTableName="test_output"
-DlabelColName="label"
-DpredictionColName="prediction_result"
-Dlifecycle=30;
パラメーター | 必須 | デフォルト値 | 説明 |
inputTableName | 可 | デフォルト値なし | 入力テーブルの名前。 |
inputTablePartitions | 不可 | フルテーブル | トレーニング用に入力テーブルから選択されたパーティション。 |
outputTableName | 可 | デフォルト値なし | 出力テーブルの名前。 |
labelColName | 可 | デフォルト値なし | 入力テーブルの元のラベル列の名前。 |
predictionColName | 可 | デフォルト値なし | 予測結果のラベル列の名前。 |
predictionDetailColName | 不可 | デフォルト値なし | 予測結果の確率列の名前。 例: |
ライフサイクルの設定 (Set lifecycle) | 不可 | デフォルト値なし | 出力テーブルのライフサイクル。 |
coreNum | 不可 | システムによって決定される | コアの数。 |
memSizePerCore | 不可 | システムによって決定される | 各コアのメモリサイズ。 |
例:
SQLスクリプトコンポーネントをノードとしてキャンバスに追加し、次のSQL文を実行してトレーニングデータを生成します。
drop table if exists multi_esti_test; create table multi_esti_test as select * from ( select '0' as id,'A' as label,'A' as prediction,'{"A": 0.6, "B": 0.4}' as detail union all select '1' as id,'A' as label,'B' as prediction,'{"A": 0.45, "B": 0.55}' as detail union all select '2' as id,'A' as label,'A' as prediction,'{"A": 0.7, "B": 0.3}' as detail union all select '3' as id,'A' as label,'A' as prediction,'{"A": 0.9, "B": 0.1}' as detail union all select '4' as id,'B' as label,'B' as prediction,'{"A": 0.2, "B": 0.8}' as detail union all select '5' as id,'B' as label,'B' as prediction,'{"A": 0.1, "B": 0.9}' as detail union all select '6' as id,'B' as label,'A' as prediction,'{"A": 0.52, "B": 0.48}' as detail union all select '7' as id,'B' as label,'B' as prediction,'{"A": 0.4, "B": 0.6}' as detail union all select '8' as id,'B' as label,'A' as prediction,'{"A": 0.6, "B": 0.4}' as detail union all select '9' as id,'A' as label,'A' as prediction,'{"A": 0.75, "B": 0.25}' as detail )tmp;
SQLスクリプトコンポーネントをノードとしてキャンバスに追加し、次のPAIコマンドを実行してモデルをトレーニングします。
drop table if exists ${o1}; PAI -name MultiClassEvaluation -project algo_public -DinputTableName="multi_esti_test" -DoutputTableName=${o1} -DlabelColName="label" -DpredictionColName="prediction" -Dlifecycle=30;
SQLスクリプトコンポーネントを右クリックし、[データの表示]> [SQLスクリプトの出力] を選択してトレーニング結果を表示します。
| result | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | { "ActualLabelFrequencyList": [5, 5], "ActualLabelProportionList": [0.5, 0.5], "ConfusionMatrix": [[4, 1], [2, 3]], "LabelList": ["A", "B"], "LabelMeasureList": [{ "Accuracy": 0.7, "F1": 0.7272727272727273, "FalseDiscoveryRate": 0.3333333333333333, "FalseNegative": 1, "FalseNegativeRate": 0.2, "FalsePositive": 2, "FalsePositiveRate": 0.4, "Kappa": 0.3999999999999999, "NegativePredictiveValue": 0.75, "Precision": 0.6666666666666666, "Sensitivity": 0.8, "Specificity": 0.6, "TrueNegative": 3, "TruePositive": 4}, { "Accuracy": 0.7, "F1": 0.6666666666666666, "FalseDiscoveryRate": 0.25, "FalseNegative": 2, "FalseNegativeRate": 0.4, "FalsePositive": 1, "FalsePositiveRate": 0.2, "Kappa": 0.3999999999999999, "NegativePredictiveValue": 0.6666666666666666, "Precision": 0.75, "Sensitivity": 0.6, "Specificity": 0.8, "TrueNegative": 4, "TruePositive": 3}], "LabelNumber": 2, "OverallMeasures": { "Accuracy": 0.7, "Kappa": 0.3999999999999999, "LabelFrequencyBasedMicro": { "Accuracy": 0.7, "F1": 0.696969696969697, "FalseDiscoveryRate": 0.2916666666666666, "FalseNegative": 1.5, "FalseNegativeRate": 0.3, "FalsePositive": 1.5, "FalsePositiveRate": 0.3, "Kappa": 0.3999999999999999, "NegativePredictiveValue": 0.7083333333333333, "Precision": 0.7083333333333333, "Sensitivity": 0.7, "Specificity": 0.7, "TrueNegative": 3.5, "TruePositive": 3.5}, "MacroAveraged": { "Accuracy": 0.7, "F1": 0.696969696969697, "FalseDiscoveryRate": 0.2916666666666666, "FalseNegative": 1.5, "FalseNegativeRate": 0.3, "FalsePositive": 1.5, "FalsePositiveRate": 0.3, "Kappa": 0.3999999999999999, "NegativePredictiveValue": 0.7083333333333333, "Precision": 0.7083333333333333, "Sensitivity": 0.7, "Specificity": 0.7, "TrueNegative": 3.5, "TruePositive": 3.5}, "MicroAveraged": { "Accuracy": 0.7, "F1": 0.7, "FalseDiscoveryRate": 0.3, "FalseNegative": 3, "FalseNegativeRate": 0.3, "FalsePositive": 3, "FalsePositiveRate": 0.3, "Kappa": 0.3999999999999999, "NegativePredictiveValue": 0.7, "Precision": 0.7, "Sensitivity": 0.7, "Specificity": 0.7, "TrueNegative": 7, "TruePositive": 7}}, "PredictedLabelFrequencyList": [6, 4], "PredictedLabelProportionList": [0.6, 0.4], "ProportionMatrix": [[0.8, 0.2], [0.4, 0.6]]} |
付録
パイプラインページでマルチクラス分類評価コンポーネントを実行する場合は、マルチクラス分類評価コンポーネントを右クリックし、[視覚分析] を選択して結果を表示できます。