Komponen Evaluasi Klasifikasi Multikelas mengevaluasi performa model pada tugas klasifikasi dengan lebih dari dua kelas. Komponen ini menghitung metrik seperti akurasi, recall, skor F1, dan matriks kebingungan untuk mengukur ketepatan klasifikasi model pada setiap kelas. Matriks kebingungan menunjukkan hubungan antara label prediksi dan label aktual, sedangkan metrik lainnya memberikan informasi rinci mengenai performa klasifikasi per kelas. Metrik-metrik tersebut membantu Anda memahami performa model pada masing-masing kelas dan melakukan optimasi lebih lanjut.
Konfigurasi komponen
Metode 1: Console
Di Designer, tambahkan komponen Multiclass Classification Evaluation ke alur kerja Anda dan konfigurasikan parameternya di panel sebelah kanan.
|
Jenis parameter |
Parameter |
Deskripsi |
|
Fields Setting |
Original Classification Result Column |
Pilih kolom yang berisi label aktual. Jumlah kelas tidak boleh melebihi 1.000. |
|
Predicted Classification Result Column |
Pilih kolom yang berisi label prediksi. Secara default, kolom ini bernama |
|
|
Advanced Options |
Pilih kotak centang Advanced Options untuk mengaktifkan parameter Prediction Result Probability Column. |
|
|
Prediction Result Probability Column |
Menentukan kolom untuk menghitung log loss model. Parameter ini hanya berlaku untuk model random forest dan dapat menyebabkan error jika digunakan dengan model lain. Secara default, kolom ini bernama |
|
|
Tuning |
Number of Cores |
Bekerja bersama Memory per Core. Secara default, sistem secara otomatis mengalokasikan sumber daya. |
|
Memory per Core |
Jumlah memori untuk setiap core, dalam satuan MB. Secara default, sistem secara otomatis mengalokasikan sumber daya. |
Metode 2: Perintah PAI
Untuk mengonfigurasi komponen SQL Script component menggunakan perintah PAI, jalankan perintah tersebut di dalam komponen SQL Script component. Untuk informasi selengkapnya, lihat Skenario 4: Menjalankan perintah PAI di komponen SQL Script.
PAI -name MultiClassEvaluation -project algo_public
-DinputTableName="test_input"
-DoutputTableName="test_output"
-DlabelColName="label"
-DpredictionColName="prediction_result"
-Dlifecycle=30;
|
Parameter |
Wajib |
Default |
Deskripsi |
|
inputTableName |
Ya |
Tidak ada |
Nama tabel input. |
|
inputTablePartitions |
Tidak |
Seluruh tabel |
Partisi yang akan digunakan dari tabel input. |
|
outputTableName |
Ya |
Tidak ada |
Nama tabel output. |
|
labelColName |
Ya |
Tidak ada |
Nama kolom yang berisi label aktual. |
|
predictionColName |
Ya |
Tidak ada |
Nama kolom yang berisi label prediksi. |
|
predictionDetailColName |
Tidak |
Kosong |
Kolom yang berisi probabilitas kelas prediksi. Contohnya: |
|
lifecycle |
Tidak |
Tidak ada |
Siklus hidup tabel output, dalam satuan hari. |
|
coreNum |
Tidak |
Ditentukan sistem |
Jumlah core untuk pekerjaan. |
|
memSizePerCore |
Tidak |
Ditentukan sistem |
Jumlah memori untuk setiap core, dalam satuan MB. |
Contoh penggunaan
-
Tambahkan Komponen Skrip SQL dan masukkan pernyataan SQL berikut untuk menghasilkan data pelatihan.
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; -
Tambahkan komponen SQL Script component lain dan masukkan perintah PAI berikut untuk menjalankan evaluasi.
drop table if exists ${o1}; PAI -name MultiClassEvaluation -project algo_public -DinputTableName="multi_esti_test" -DoutputTableName=${o1} -DlabelColName="label" -DpredictionColName="prediction" -Dlifecycle=30; -
Klik kanan komponen dari langkah sebelumnya dan pilih View Data > SQL Script's Output untuk melihat hasil evaluasi.
| 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]]} |
Lampiran
Jika Anda menjalankan komponen dalam mode visual, Anda dapat mengklik kanan komponen tersebut dan memilih Visual Analysis untuk melihat hasil detail. Di daftar node visual di sebelah kiri, pilih node Multiclass Classification Evaluation-1 dan buka tab Metrics di sebelah kanan untuk melihat hasilnya. Metrik utama meliputi: akurasi = 0,7 dan Kappa ≈ 0,4. Metrik rata-rata makro adalah: skor F1 ≈ 0,697, presisi ≈ 0,708, sensitivitas = 0,7, spesifisitas = 0,7, laju positif palsu = 0,3, laju negatif palsu = 0,3, true positive = 3,5, dan true negative = 3,5.
Halaman hasil berisi tiga tab: Metrics, Confusion Matrix, dan Distribution Statistics. Di tab Confusion Matrix, hasil prediksi untuk setiap kelas ditampilkan sebagai heatmap. Sumbu vertikal merepresentasikan kelas aktual, dan sumbu horizontal merepresentasikan kelas prediksi. Arahkan kursor ke suatu sel di matriks untuk melihat nilai spesifiknya (Value) dan proporsinya (Ratio).
Tab Distribution Statistics di halaman hasil menampilkan metrik evaluasi klasifikasi untuk setiap kelas dalam bentuk tabel, termasuk true positive (TP), true negative (TN), false positive (FP), false negative (FN), sensitivitas, spesifisitas, presisi, akurasi, skor F1, dan Kappa. Sebagai contoh, untuk kelas A, metriknya adalah: TP=4, TN=3, FP=2, FN=1, sensitivitas=0,8, spesifisitas=0,6, presisi=0,6667, akurasi=0,7, skor F1=0,7273, dan Kappa=0,4. Untuk kelas B, metriknya adalah: TP=3, TN=4, FP=1, FN=2, sensitivitas=0,6, spesifisitas=0,8, presisi=0,75, akurasi=0,7, skor F1=0,6667, dan Kappa=0,4.