Evaluasi dan laporan

Metrik jujur dan analisis error untuk laporan akhir.

Daftar isi

Evaluasi dan laporan menutup kampanye dengan pengukuran yang sekali dan jujur pada data test, analisis kekeliruan yang menunjuk letak kelemahannya, dan laporan yang menerjemahkan semuanya bagi penerima manfaat. Topik ini menetapkan protokol evaluasi akhir, menjalankan perhitungan metrik lengkap beserta analisis errornya, dan merapinya menjadi struktur laporan yang siap dibaca. Setelah selesai, proyek tidak berhenti pada angka terbaiknya, melainkan pada pemahaman yang menyertainya.

Protokol evaluasi akhir#

Evaluasi akhir berjalan sekali pada data test yang selama ini disimpan tanpa disentuh, dan protokolnya ditetapkan sebelum menjalankannya. Kandidat final dipilih dari validasi sebagaimana kampanye menetapkan, mode evaluasinya dipastikan eval() tanpa gradien, dan metrik yang dihitung dituliskan lebih dahulu bersama ambang keberhasilannya dari dokumen pemilihan masalah. Protokol ini mencegah dua penyalahan yang halus, yaitu memilih metrik setelah melihat hasil, dan mengukur ulang test dengan konfigurasi yang berbeda sampai angkanya memuaskan.

Satu pelaksanaan test yang lulus menghasilkan tiga keluaran yang dilaporkan bersama, yaitu metrik utama beserta selisihnya terhadap baseline, metrik pendukung per kelas, dan rentang variansi dari benih ganda pelatihan final. Angka tunggal tanpa rentangnya selalu terlihat lebih pasti dari kenyataan, dan rentang yang lebar adalah informasi yang dilaporkan, bukan disembunyikan.

Metrik lengkap dan matriks kekeliruan#

Metrik yang dipilih pada pemilihan masalah kini dihitung dari matriks kekeliruannya, dan perhitungannya dilakukan dari keluaran model sungguhan pada test yang sintetis agar setiap angkanya dapat dilacak ke matriksnya.

python Contoh: matriks kekeliruan, presisi, recall, dan F1
import torch

torch.manual_seed(0)
keluar_model = torch.tensor([
    [2.0, -1.0, -1.5], [-2.0, 1.5, -1.0], [-1.0, -1.0, 2.0], [1.8, -1.2, -0.8],
    [-2.0, 1.8, -1.0], [0.5, 0.8, -1.0], [-1.5, -0.5, 1.9], [-1.0, 2.0, -1.2]])
target = torch.tensor([0, 1, 2, 0, 1, 1, 2, 2])
prediksi = keluar_model.argmax(dim=1)

n_kelas = 3
matriks = torch.zeros(n_kelas, n_kelas, dtype=torch.int64)
for p, t in zip(prediksi, target):
    matriks[t, p] += 1
print("matriks (baris=target, kolom=prediksi):")
print(matriks.tolist())

presisi, recall, f1 = [], [], []
for k in range(n_kelas):
    benar = float(matriks[k, k])
    presisi.append(benar / float(matriks[:, k].sum()))
    recall.append(benar / float(matriks[k, :].sum()))
    f1.append(0 if presisi[k] + recall[k] == 0 else 2 * presisi[k] * recall[k] / (presisi[k] + recall[k]))
print("prediksi :", prediksi.tolist())
print("presisi  :", [round(v, 3) for v in presisi])
print("recall   :", [round(v, 3) for v in recall])
print("F1       :", [round(v, 3) for v in f1])
text Keluaran
matriks (baris=target, kolom=prediksi):
[[2, 0, 0], [0, 3, 0], [0, 1, 2]]
prediksi : [0, 1, 2, 0, 1, 1, 2, 1]
presisi  : [1.0, 0.75, 1.0]
recall   : [1.0, 1.0, 0.667]
F1       : [1.0, 0.857, 0.8]

Matriksnya membaca tiga kejadian yang tidak terlihat oleh akurasi rata-rata. Prediksi kelas satu pada baris terakhir masuk ke kelas satu meski targetnya kelas dua, dan sel diagonal yang kosong pada kombinasi lain menunjukkan kekeliruan yang menumpuk di pasangan tertentu. Presisi dan recall per kelasnya terpisah jelas, sehingga kelompok yang dirugikan dari topik Etika dan keamanan tidak dapat bersembunyi di balik rata-rata, dan F1 menggabungkan keduanya untuk perbandingan antar kelas.

Analisis error yang runtut#

Analisis error adalah tahap yang mengubah angka menjadi pemahaman, dan prosedurnya empat langkah yang berulang. Pertama, kumpulkan seluruh contoh yang keliru dari data validasi, karena test hanya disentuh sekali dan analisisnya boleh jalan berulang di validasi. Kedua, kelompokkan kekeliruannya menurut pola yang nyata, yaitu kelas yang saling tertukar, kelompok data yang dilanggarnya, panjang masukan, atau sumber pengumpulannya. Ketiga, periksa sampel dari setiap kelompok dengan tangan, karena pola yang terlihat pada tabel sering menjelaskan dirinya setelah sepuluh contoh dibaca. Keempat, tuliskan tindak lanjutnya untuk setiap kelompok besar, yaitu data tambahan, penyeimbangan, fitur baru, atau penerimaan yang dinyatakan jujur dalam laporan.

Ukuran kelompok menentukan urutan tindakannya, karena kelompok yang menutupi separuh kekeliruan berbeda dampaknya dengan yang menutupi lima persen. Analisis yang berhenti pada jumlah kekeliruan tanpa membaca contohnya menghasilkan tindakan yang menunjuk pada pola yang keliru, dan inilah alasan langkah ketiga tidak pernah dilewati.

Struktur laporan dan penerjemahannya#

Laporan akhir menutup proyek dengan struktur yang tetap, dan tujuh bagiannya mengikuti alur keputusan dari awal jalur ini. Ringkasan eksekutif yang menyebut metrik utama, selisih dari baseline, dan batas penggunaannya. Masalah dan metriknya sebagaimana ditetapkan pada dokumen satu halaman. Data beserta asal-usul dan pembagiannya. Hasil evaluasi akhir beserta rentang variansinya. Analisis error beserta kelompok dan tindak lanjutnya. Batas dan risiko penggunaan, termasuk kelompok yang kinerjanya terukur lebih rendah. Rencana pemantauan sebagaimana ditetapkan mode kegagalan produksi.

Penerjemahan ke bahasa penerima manfaat dilakukan pada ringkasan eksekutifnya, dan bentuknya menghindari istilah teknis yang tidak dibutuhkan. Kalimat yang menyatakan recall 0,85 pada kategori keluhan prioritas diterjemahkan menjadi delapan dari sepuluh keluhan prioritas tertangkap otomatis, dan sisanya tetap masuk antrian manusia. Laporan yang baik juga menyatakan apa yang tidak dicapainya, karena batas yang diketahui lebih bernilai daripada angka yang menimbulkan kepercayaan berlebih.

Ringkasan#

  • Evaluasi akhir berjalan sekali pada test dengan protokol yang ditetapkan lebih dahulu, dan hasilnya dilaporkan bersama rentang variansinya.
  • Matriks kekeliruan membedah kinerja per kelas, dan presisi, recall, serta F1 per kelas menunjuk kelompok yang dirugikan.
  • Analisis error berjalan empat langkah pada validasi, dari pengumpulan, pengelompokan, pembacaan contoh, sampai tindak lanjut per kelompok.
  • Laporan tujuh bagiannya menerjemahkan angka ke bahasa penerima manfaat, dan menyatakan batas penggunaannya secara jujur.

Referensi#