Top Parallax Ads
Scroll to continue reading
Training, Testing, dan Evaluasi Model AI: Memahami Akurasi dan Kesalahan
Floating Ads
Close
Billboard Ads

Training, Testing, dan Evaluasi Model AI: Memahami Akurasi dan Kesalahan

Model AI tidak otomatis menjadi akurat hanya karena berhasil dilatih menggunakan banyak data. Sebuah model dapat memberikan hasil yang sangat baik selama proses pelatihan, tetapi gagal ketika menerima data baru yang belum pernah dilihat sebelumnya. Untuk memahami kualitas sistem kecerdasan buatan, kita perlu mengetahui bagaimana training, testing, dan evaluasi model bekerja sebagai satu rangkaian proses.

Dalam machine learning, ketiga proses tersebut memiliki tujuan berbeda. Training digunakan untuk mempelajari pola dari data, testing membantu mengukur kemampuan model pada data yang tidak digunakan selama pelatihan, sedangkan evaluasi digunakan untuk menafsirkan hasil pengujian berdasarkan metrik yang sesuai dengan tujuan sistem.

Artikel ini membahas proses evaluasi machine learning secara bertahap, mulai dari pembagian dataset, perhitungan akurasi, analisis kesalahan, hingga contoh implementasi Python yang dapat kamu gunakan sebagai dasar pengembangan model AI sendiri.

Memahami Training, Testing, dan Evaluasi Model AI

Sebelum membahas algoritma dan metrik, penting untuk memahami bahwa model machine learning dikembangkan melalui beberapa tahapan yang saling berkaitan. Setiap tahap memiliki fungsi khusus untuk mencegah kesimpulan yang keliru mengenai kemampuan model.

Tahapan Tujuan Hasil yang Diharapkan
Training Mempelajari pola dari data pelatihan. Model dengan parameter yang telah dipelajari.
Validation Membandingkan konfigurasi dan memilih model. Konfigurasi yang sesuai untuk tujuan penggunaan.
Testing Mengukur kemampuan model pada data yang tidak digunakan dalam training atau pemilihan model. Perkiraan kinerja pada data baru yang sejenis.
Evaluasi Menganalisis hasil berdasarkan metrik dan kebutuhan nyata. Gambaran tentang kekuatan, kelemahan, dan risiko model.

Training, validation, dan testing bukanlah tiga istilah yang dapat dipertukarkan. Validation merupakan bagian dari proses pengembangan, sedangkan test set sebaiknya disimpan sampai keputusan pengembangan model selesai. Dengan demikian, hasil testing tidak digunakan berulang kali untuk mengarahkan pemilihan model.

1. Apa Itu Training Model AI?

Training model AI adalah proses ketika algoritma mempelajari hubungan atau pola dari data agar dapat menghasilkan prediksi terhadap masukan baru. Cara model belajar bergantung pada jenis algoritma dan pendekatan machine learning yang digunakan.

Sebagai contoh, bayangkan kita ingin membuat model yang memprediksi harga rumah berdasarkan luas bangunan, jumlah kamar, dan lokasi. Kita menyediakan data rumah yang sudah diketahui karakteristik dan harga jualnya. Model kemudian mempelajari hubungan antara fitur-fitur tersebut dengan harga yang menjadi target prediksi.

Dalam supervised learning, proses training secara umum melibatkan beberapa langkah berikut:

  1. Menyiapkan dataset. Kumpulkan data yang relevan, periksa nilai kosong, hilangkan duplikasi yang tidak semestinya, dan pastikan label atau targetnya benar.

  2. Menentukan fitur dan target. Fitur merupakan informasi yang digunakan model untuk membuat prediksi, sedangkan target merupakan nilai yang ingin diprediksi.

  3. Memilih algoritma. Gunakan algoritma yang sesuai dengan masalah, misalnya regresi linear untuk memprediksi nilai numerik atau logistic regression untuk klasifikasi.

  4. Melatih model. Algoritma menyesuaikan parameter berdasarkan data training untuk mengurangi kesalahan sesuai fungsi objektif yang digunakan.

  5. Memeriksa hasil pelatihan. Amati loss, metrik yang relevan, dan perilaku model untuk mengetahui apakah proses belajar berjalan dengan baik.

Training tidak berarti model memahami dunia seperti manusia. Model mempelajari pola statistik atau struktur tertentu dari data berdasarkan algoritma yang digunakan. Kemampuan generalisasinya tetap harus diperiksa menggunakan data yang tidak dipakai untuk melatihnya.

Bagaimana model belajar dari kesalahan?

Dalam banyak algoritma machine learning, model menghasilkan prediksi, lalu membandingkannya dengan target yang benar. Selisih tersebut digunakan untuk menghitung nilai loss atau fungsi kerugian. Algoritma kemudian berusaha menyesuaikan parameternya agar loss berkurang.

Pada neural network, misalnya, proses ini umumnya melibatkan forward propagation untuk menghasilkan prediksi, perhitungan loss, backpropagation untuk menghitung gradien, dan optimizer untuk memperbarui parameter. Rangkaian tersebut diulang selama sejumlah iterasi atau epoch.

Hal penting: nilai loss yang semakin kecil pada data training belum membuktikan bahwa model semakin baik untuk data baru. Model bisa saja menghafal karakteristik data pelatihan tanpa mempelajari pola yang dapat digeneralisasikan.

2. Apa Itu Validation dan Mengapa Dibutuhkan?

Validation adalah proses menggunakan dataset terpisah untuk membantu pengambilan keputusan selama pengembangan model. Data ini dapat digunakan untuk membandingkan algoritma, memilih hyperparameter, menentukan jumlah epoch, atau memilih model yang paling sesuai.

Misalnya, kita mencoba dua model untuk mengklasifikasikan pesan sebagai spam atau bukan spam. Model pertama memiliki kompleksitas rendah, sedangkan model kedua lebih kompleks. Kita dapat membandingkan performa keduanya pada validation set untuk menentukan konfigurasi yang lebih menjanjikan.

Hyperparameter merupakan pengaturan yang ditentukan sebelum atau selama proses pengembangan, seperti learning rate, kedalaman pohon keputusan, atau jumlah tetangga pada algoritma K-Nearest Neighbors. Hyperparameter berbeda dari parameter internal yang dipelajari langsung selama training.

Validation set tidak sepenuhnya independen dari keputusan pengembangan karena hasilnya digunakan untuk memilih model. Oleh karena itu, data testing tetap diperlukan untuk memperoleh penilaian akhir yang lebih objektif.

3. Apa Itu Testing Model AI?

Testing adalah pengujian model menggunakan data yang tidak digunakan untuk training maupun pemilihan model. Tujuannya adalah memperkirakan bagaimana model akan bekerja ketika menghadapi data baru yang berasal dari kondisi penggunaan yang sebanding.

Jika seluruh data digunakan untuk training, kita tidak mempunyai pengukuran independen yang memadai untuk mengetahui kemampuan generalisasi model. Model mungkin menghasilkan prediksi yang terlihat bagus karena sudah mempelajari contoh-contoh tersebut.

Karena itu, test set harus dipisahkan sejak awal dan tidak digunakan untuk terus-menerus memilih algoritma atau mengubah konfigurasi. Jika hasil test set digunakan berulang kali untuk mengambil keputusan pengembangan, data tersebut secara tidak langsung ikut memengaruhi proses pemilihan model.

Perbandingan hasil training dan testing

Kondisi Training Testing Interpretasi
A 99% 97% Performa terlihat baik dan perbedaannya relatif kecil, tetapi masih perlu diperiksa dengan metrik lain.
B 99% 68% Perbedaan besar dapat mengindikasikan overfitting atau perbedaan distribusi data.
C 75% 74% Performa relatif serupa, tetapi mungkin masih rendah untuk kebutuhan penggunaan.

Angka di atas merupakan ilustrasi, bukan hasil eksperimen tertentu. Persentase tersebut juga mengasumsikan bahwa metrik yang dibandingkan sama dan memang dinyatakan dalam bentuk persentase.

Perbedaan antara training dan testing tidak boleh ditafsirkan secara terpisah dari kualitas data, ukuran dataset, kompleksitas model, serta ketidakpastian pengukuran. Hasil yang berdekatan belum tentu menunjukkan model layak digunakan, terutama jika kedua hasil tersebut sama-sama buruk.

4. Memahami Pembagian Dataset

Dataset perlu dibagi dengan cara yang sesuai dengan karakteristik masalah. Pembagian acak sering digunakan untuk data independen, tetapi tidak selalu tepat untuk data deret waktu, data yang memiliki kelompok terkait, atau dataset yang mengandung banyak salinan dari sumber yang sama.

Salah satu pembagian yang sering digunakan adalah 70% untuk training, 15% untuk validation, dan 15% untuk testing. Alternatif lainnya adalah 80% untuk training dan 20% untuk testing, terutama ketika dataset tidak terlalu besar dan validasi dilakukan dengan teknik lain.

Bagian Contoh Proporsi Penggunaan
Training set 70% Mempelajari parameter model.
Validation set 15% Memilih konfigurasi dan membandingkan model.
Test set 15% Evaluasi akhir setelah keputusan pengembangan selesai.

Proporsi tersebut bukan aturan universal. Dataset kecil dapat memerlukan cross-validation agar penggunaan data lebih efisien. Dataset yang besar mungkin cukup menggunakan satu validation set dan satu test set yang representatif.

Contoh pembagian dataset dengan Python

Library scikit-learn menyediakan fungsi train_test_split() untuk membagi dataset. Contoh berikut membagi data menjadi 70% training dan 30% data sementara, kemudian membagi bagian sementara menjadi validation dan testing dengan proporsi yang sama.

from sklearn.model_selection import train_test_split

# X berisi fitur, sedangkan y berisi label atau target.
# Contoh ini mengasumsikan setiap baris merupakan sampel independen.

X_train, X_temp, y_train, y_temp = train_test_split(
    X,
    y,
    test_size=0.30,
    random_state=42,
    stratify=y
)

X_val, X_test, y_val, y_test = train_test_split(
    X_temp,
    y_temp,
    test_size=0.50,
    random_state=42,
    stratify=y_temp
)

print("Training:", len(X_train))
print("Validation:", len(X_val))
print("Testing:", len(X_test))

Parameter random_state=42 membantu menghasilkan pembagian yang dapat direproduksi. Sementara itu, stratify=y berusaha mempertahankan proporsi kelas pada setiap bagian dataset, sehingga cocok untuk banyak kasus klasifikasi dengan jumlah sampel yang memadai pada setiap kelas.

Perhatian: kode tersebut bukan untuk semua jenis data. Jangan menggunakan pembagian acak biasa untuk memprediksi masa depan dari data deret waktu. Untuk data dari pengguna, pasien, perangkat, atau sumber yang saling terkait, gunakan pembagian berdasarkan kelompok jika diperlukan agar informasi dari satu kelompok tidak bocor ke kelompok lain.

5. Apa Itu Evaluasi Machine Learning?

Evaluasi machine learning adalah proses mengukur dan menafsirkan performa model dengan metrik yang sesuai dengan tujuan penggunaannya. Evaluasi tidak berhenti pada satu angka karena setiap metrik menjelaskan aspek performa yang berbeda.

Model klasifikasi, seperti sistem deteksi spam, memerlukan metrik yang berbeda dari model regresi yang memprediksi harga rumah. Bahkan dua model klasifikasi dapat memerlukan ukuran keberhasilan berbeda jika dampak kesalahan prediksinya tidak sama.

Sebagai contoh, model untuk mengidentifikasi transaksi mencurigakan perlu memperhatikan transaksi berisiko yang terlewat. Sebaliknya, jika sistem terlalu sering menandai transaksi normal sebagai mencurigakan, pengguna yang sah dapat mengalami gangguan. Kedua jenis kesalahan perlu diukur dan dipertimbangkan.

6. Akurasi Model: Pengertian dan Cara Menghitungnya

Akurasi model atau accuracy adalah proporsi prediksi yang benar dibandingkan dengan seluruh prediksi pada dataset evaluasi. Metrik ini mudah dipahami dan berguna ketika distribusi kelas serta biaya kesalahan mendukung penggunaannya.

Rumus accuracy adalah:

Accuracy = Prediksi benar / Jumlah seluruh prediksi

Dalam klasifikasi biner, accuracy dapat dihitung sebagai (TP + TN) / (TP + TN + FP + FN).

Keterangan:

  • TP (True Positive): model memprediksi positif dan prediksi tersebut benar.
  • TN (True Negative): model memprediksi negatif dan prediksi tersebut benar.
  • FP (False Positive): model memprediksi positif padahal kondisi sebenarnya negatif.
  • FN (False Negative): model memprediksi negatif padahal kondisi sebenarnya positif.

Contoh perhitungan akurasi

Misalnya, sebuah model diuji menggunakan 200 pesan. Model mengklasifikasikan 180 pesan dengan benar dan membuat 20 kesalahan. Akurasinya adalah:

Accuracy = 180 / 200 = 0,90 = 90%

Artinya, model menghasilkan prediksi yang benar pada 90% sampel pengujian tersebut.

Angka 90% tidak berarti model pasti benar pada 90% pesan yang akan diterimanya di masa depan. Hasil aktual dapat berubah ketika karakteristik pesan, distribusi kelas, atau kondisi penggunaan berubah.

7. Mengapa Akurasi Tinggi Belum Tentu Berarti Model Bagus?

Masalah utama accuracy muncul ketika dataset memiliki distribusi kelas yang tidak seimbang. Dalam kondisi ini, model dapat memperoleh angka akurasi tinggi dengan hanya memprediksi kelas yang paling banyak muncul.

Bayangkan sebuah dataset berisi 1.000 transaksi, dengan 990 transaksi normal dan 10 transaksi penipuan. Model yang selalu memprediksi semua transaksi sebagai normal akan mendapatkan accuracy sebesar 99%.

Namun, model tersebut tidak mendeteksi satu pun transaksi penipuan. Jika tujuan sistem adalah mendeteksi penipuan, hasil tersebut jelas tidak memadai meskipun akurasinya terlihat tinggi.

Jangan terpaku pada satu metrik. Accuracy perlu dilengkapi dengan precision, recall, F1-score, confusion matrix, atau metrik lain sesuai karakteristik masalah. Pada aplikasi tertentu, biaya kesalahan dan kebutuhan operasional bahkan lebih penting daripada persentase akurasi keseluruhan.

8. Confusion Matrix: Melihat Jenis Kesalahan Model

Confusion matrix adalah tabel yang membandingkan label sebenarnya dengan hasil prediksi model. Untuk klasifikasi biner, tabel ini membantu kita mengetahui berapa banyak prediksi positif dan negatif yang benar maupun salah.

Misalnya, dari 1.000 transaksi terdapat 990 transaksi normal dan 10 transaksi penipuan. Model memberikan hasil seperti berikut:

Label Sebenarnya Prediksi Normal Prediksi Penipuan
Normal 985 (TN) 5 (FP)
Penipuan 2 (FN) 8 (TP)

Dari tabel tersebut, kita dapat melihat bahwa model mengidentifikasi 8 dari 10 transaksi penipuan. Dua transaksi penipuan terlewat, sedangkan lima transaksi normal salah ditandai sebagai penipuan.

Accuracy model tersebut adalah (985 + 8) / 1.000 = 99,3%. Meskipun angka ini tinggi, kita tetap perlu memeriksa jenis kesalahannya untuk menilai apakah model layak digunakan.

Precision: seberapa tepat prediksi positif?

Precision mengukur proporsi prediksi positif yang benar-benar positif. Dalam contoh di atas, model menandai 13 transaksi sebagai penipuan, tetapi hanya 8 yang benar.

Precision = TP / (TP + FP)

Precision = 8 / (8 + 5) = 61,54%.

Precision yang lebih tinggi berarti lebih sedikit prediksi positif yang keliru, relatif terhadap seluruh prediksi positif. Metrik ini penting ketika false positive menimbulkan biaya besar, misalnya transaksi normal yang tertahan atau pesan sah yang masuk ke folder spam.

Recall: seberapa banyak kasus positif ditemukan?

Recall mengukur proporsi kasus positif sebenarnya yang berhasil ditemukan model. Pada contoh yang sama, terdapat 10 transaksi penipuan dan model berhasil menemukan 8 di antaranya.

Recall = TP / (TP + FN)

Recall = 8 / (8 + 2) = 80%.

Recall yang lebih tinggi berarti lebih sedikit kasus positif yang terlewat. Metrik ini penting pada masalah ketika false negative memiliki dampak besar, seperti mendeteksi aktivitas berbahaya atau melakukan penyaringan awal untuk pemeriksaan lebih lanjut.

F1-score: menyeimbangkan precision dan recall

F1-score adalah rata-rata harmonik precision dan recall. Metrik ini berguna ketika kita ingin menilai keseimbangan antara ketepatan prediksi positif dan kemampuan menemukan kasus positif.

F1 = 2 × (Precision × Recall) / (Precision + Recall)

Dengan precision 61,54% dan recall 80%, F1-score model tersebut sekitar 69,57%.

F1-score tidak memperhitungkan true negative secara langsung. Oleh karena itu, metrik ini tidak selalu menjadi pilihan terbaik untuk semua masalah. Pada klasifikasi dengan banyak kelas, kita juga perlu memahami perbedaan macro-F1, micro-F1, dan weighted-F1.

9. Metrik Evaluasi untuk Model Regresi

Tidak semua model AI menghasilkan kategori. Model regresi memprediksi nilai numerik, seperti harga rumah, konsumsi energi, atau waktu pengiriman. Untuk masalah seperti ini, accuracy klasifikasi bukan metrik yang sesuai.

Metrik Makna Hal yang Perlu Diperhatikan
MAE Rata-rata nilai absolut kesalahan prediksi. Mudah ditafsirkan dalam satuan target.
MSE Rata-rata kuadrat kesalahan. Kesalahan besar mendapat penalti lebih tinggi.
RMSE Akar kuadrat dari MSE. Menggunakan satuan yang sama dengan target.
R² Membandingkan kemampuan model menjelaskan variasi target dengan baseline rata-rata. Nilai tinggi tidak selalu berarti kesalahan prediksi cukup kecil untuk kebutuhan nyata.

Misalnya, model memprediksi harga tiga rumah sebesar Rp300 juta, Rp450 juta, dan Rp500 juta, sedangkan harga sebenarnya adalah Rp320 juta, Rp430 juta, dan Rp550 juta.

Kesalahan absolut masing-masing prediksi adalah Rp20 juta, Rp20 juta, dan Rp50 juta. Dengan demikian, MAE-nya adalah (20 + 20 + 50) / 3, yaitu Rp30 juta.

MAE membantu menjelaskan rata-rata besar kesalahan dalam satuan yang mudah dipahami. Akan tetapi, nilai tersebut tetap perlu dibandingkan dengan rentang harga, baseline sederhana, dan toleransi kesalahan yang dapat diterima.

10. Overfitting dan Underfitting dalam Evaluasi Model

Evaluasi training dan validation juga membantu mengenali dua masalah penting dalam machine learning, yaitu overfitting dan underfitting.

Overfitting

Overfitting terjadi ketika model terlalu menyesuaikan diri dengan karakteristik data training sehingga kinerjanya menurun pada data baru. Model yang terlalu kompleks, dataset terbatas, noise, atau kebocoran informasi dapat berkontribusi terhadap masalah ini.

Gejala yang umum adalah performa training sangat baik, sedangkan performa validation jauh lebih buruk. Namun, pola tersebut bukan bukti tunggal overfitting karena perubahan distribusi data atau perbedaan kualitas dataset juga dapat menyebabkan hasil serupa.

Beberapa pendekatan untuk mengurangi overfitting meliputi penggunaan regularisasi, pembatasan kompleksitas model, penambahan data berkualitas, augmentasi yang sesuai, dan early stopping berdasarkan validation set.

Underfitting

Underfitting terjadi ketika model belum mampu mempelajari pola yang diperlukan. Kondisi ini dapat terlihat ketika performa training dan validation sama-sama buruk dibandingkan dengan baseline atau standar kebutuhan.

Solusinya mungkin berupa pemilihan model yang lebih sesuai, perbaikan fitur, peningkatan kualitas data, atau penyesuaian proses training. Menambah kompleksitas model tidak selalu menjadi jawaban karena masalahnya bisa berasal dari fitur yang tidak informatif atau label yang keliru.

Kondisi Training Validation Pendekatan Awal
Overfitting Baik Jauh lebih buruk Periksa kompleksitas, kebocoran data, dan regularisasi.
Underfitting Buruk Buruk Periksa fitur, model, kualitas data, dan proses training.
Generalisasi menjanjikan Baik Baik Lanjutkan evaluasi dan uji pada test set yang belum digunakan.

11. Data Leakage: Kesalahan yang Membuat Evaluasi Tidak Valid

Data leakage terjadi ketika informasi yang seharusnya tidak tersedia pada saat prediksi masuk ke proses training atau pemilihan model. Akibatnya, performa evaluasi dapat terlihat lebih baik daripada kemampuan model ketika benar-benar digunakan.

Contohnya, kita ingin memprediksi apakah pelanggan akan berhenti berlangganan bulan depan. Jika fitur yang digunakan mencakup informasi pembatalan yang baru tercatat setelah pelanggan berhenti, model memperoleh petunjuk yang tidak tersedia pada waktu prediksi sebenarnya.

Contoh lainnya adalah melakukan normalisasi atau pemilihan fitur menggunakan seluruh dataset sebelum memisahkan data training dan testing. Statistik dari test set dapat ikut memengaruhi proses pengembangan, meskipun label test set tidak digunakan secara langsung.

Untuk mencegah kebocoran data, pisahkan dataset sesuai kebutuhan terlebih dahulu. Pelajari parameter preprocessing dari training set, lalu terapkan transformasi yang sama pada validation dan testing. Pipeline dari scikit-learn dapat membantu menjaga urutan proses ini.

Perhatian: untuk data deret waktu, pembagian harus menghormati urutan waktu. Untuk data yang memiliki hubungan antarsampel, seperti beberapa catatan dari pengguna yang sama, gunakan strategi pembagian yang mencegah informasi dari kelompok terkait bocor ke test set.

12. Praktik Langsung: Training dan Evaluasi Model Klasifikasi dengan Python

Sekarang kita akan membuat model klasifikasi sederhana menggunakan dataset Breast Cancer Wisconsin yang tersedia melalui scikit-learn. Contoh ini digunakan untuk mempelajari alur training, validation, testing, dan evaluasi, bukan sebagai model diagnosis medis yang siap digunakan.

Dataset tersebut berisi fitur numerik yang dihitung dari citra inti sel, dengan label kategori jinak dan ganas. Kita akan menggunakan logistic regression sebagai model klasifikasi, standardisasi fitur, serta metrik accuracy, precision, recall, F1-score, dan confusion matrix.

Persiapan lingkungan

Pastikan Python dan scikit-learn tersedia. Jika library belum terpasang, jalankan perintah berikut melalui terminal:

python -m pip install scikit-learn

Kode lengkap training dan evaluasi

Simpan kode berikut sebagai evaluasi_model.py, kemudian jalankan menggunakan Python. Contoh ini memisahkan data menjadi training, validation, dan testing. Validation digunakan untuk pemeriksaan awal, sedangkan test set hanya digunakan pada evaluasi akhir.

from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import (
    accuracy_score,
    precision_score,
    recall_score,
    f1_score,
    confusion_matrix,
    classification_report
)

# 1. Memuat dataset contoh.
data = load_breast_cancer()
X = data.data
y = data.target

# 2. Memisahkan 20% data untuk pengujian akhir.
X_train_val, X_test, y_train_val, y_test = train_test_split(
    X,
    y,
    test_size=0.20,
    random_state=42,
    stratify=y
)

# 3. Memisahkan data training dan validation.
# Validation mencakup 20% dari seluruh dataset.
X_train, X_val, y_train, y_val = train_test_split(
    X_train_val,
    y_train_val,
    test_size=0.25,
    random_state=42,
    stratify=y_train_val
)

# 4. Membuat pipeline.
# Scaler dipelajari hanya dari data yang dipakai untuk fit.
model = make_pipeline(
    StandardScaler(),
    LogisticRegression(max_iter=5000, random_state=42)
)

# 5. Training model.
model.fit(X_train, y_train)

# 6. Evaluasi awal pada validation set.
val_pred = model.predict(X_val)

print("=== VALIDATION ===")
print(f"Accuracy : {accuracy_score(y_val, val_pred):.4f}")
print(f"Precision: {precision_score(y_val, val_pred):.4f}")
print(f"Recall   : {recall_score(y_val, val_pred):.4f}")
print(f"F1-score : {f1_score(y_val, val_pred):.4f}")

# 7. Evaluasi akhir pada test set.
# Test set tidak digunakan untuk memilih model.
test_pred = model.predict(X_test)

print("\\n=== TESTING ===")
print(f"Accuracy : {accuracy_score(y_test, test_pred):.4f}")
print(f"Precision: {precision_score(y_test, test_pred):.4f}")
print(f"Recall   : {recall_score(y_test, test_pred):.4f}")
print(f"F1-score : {f1_score(y_test, test_pred):.4f}")

print("\\nConfusion Matrix:")
print(confusion_matrix(y_test, test_pred))

print("\\nClassification Report:")
print(
    classification_report(
        y_test,
        test_pred,
        target_names=data.target_names,
        zero_division=0
    )
)

Memahami alur kode

  1. Memuat dataset. Fungsi load_breast_cancer() menyediakan fitur dan label untuk eksperimen klasifikasi.

  2. Membagi data. Dataset dibagi menjadi 60% training, 20% validation, dan 20% testing. Proporsi ini merupakan pilihan demonstrasi, bukan standar wajib.

  3. Membuat pipeline. StandardScaler menyesuaikan skala fitur berdasarkan training set. Pipeline mencegah scaler mempelajari statistik dari validation atau test set.

  4. Melatih model. fit() mempelajari parameter logistic regression menggunakan data training.

  5. Memeriksa validation. Metrik validation membantu memahami performa model selama pengembangan.

  6. Menguji model. Test set digunakan setelah keputusan pengembangan selesai untuk mengukur performa akhir pada data yang ditahan.

Nilai metrik yang dihasilkan bergantung pada versi library, pembagian dataset, konfigurasi model, dan proses eksperimen. Karena itu, jangan menganggap angka tertentu sebagai hasil universal. Jalankan kode untuk memperoleh hasil aktual di lingkunganmu sendiri.

Catatan interpretasi label: pada dataset ini, label positif untuk fungsi metrik di atas adalah kelas dengan nilai target 1, yaitu benign atau jinak. Jika tujuan evaluasi adalah mendeteksi kelas ganas, definisi kelas positif perlu diubah secara eksplisit agar precision dan recall menjawab pertanyaan yang tepat.

13. Bagaimana Menentukan Model AI yang Layak Digunakan?

Model dengan nilai accuracy tertinggi belum tentu menjadi pilihan terbaik. Pemilihan model harus mempertimbangkan tujuan sistem, biaya kesalahan, kualitas data, kebutuhan operasional, serta kemampuan model menghadapi data yang berubah.

Gunakan beberapa pertanyaan berikut sebelum memutuskan bahwa model siap diterapkan:

  1. Apakah metrik sesuai dengan masalah? Gunakan precision dan recall ketika jenis kesalahan memiliki dampak berbeda. Untuk regresi, pertimbangkan MAE, RMSE, atau metrik lain yang sesuai.

  2. Apakah model mengalahkan baseline? Bandingkan dengan pendekatan sederhana, seperti selalu memprediksi kelas mayoritas atau menggunakan rata-rata untuk regresi. Baseline harus ditentukan sesuai kebutuhan masalah.

  3. Apakah evaluasi bebas dari kebocoran data? Pastikan preprocessing, pemilihan fitur, dan pembagian dataset dilakukan dengan benar.

  4. Apakah test set mewakili penggunaan nyata? Data pengujian yang tidak mencerminkan kondisi operasional dapat menghasilkan kesimpulan yang menyesatkan.

  5. Apakah model stabil? Jika memungkinkan, periksa variasi performa melalui cross-validation atau pengujian pada beberapa kelompok data yang relevan.

  6. Apakah risiko kesalahan dapat diterima? Pertimbangkan dampak prediksi yang salah, kebutuhan pemeriksaan manusia, privasi, dan mekanisme penanganan kegagalan.

Untuk sistem yang berisiko tinggi, satu hasil evaluasi offline tidak cukup. Model juga perlu diuji dalam kondisi operasional yang terkendali, dipantau setelah diterapkan, dan dievaluasi kembali ketika distribusi data atau kebutuhan pengguna berubah.

14. Checklist Evaluasi Model AI Sebelum Deployment

Checklist berikut dapat digunakan sebagai pemeriksaan praktis sebelum model dipindahkan dari lingkungan eksperimen ke aplikasi yang digunakan pengguna.

Checklist pengembangan
  • Tujuan prediksi dan target model sudah didefinisikan.
  • Dataset telah diperiksa dari kesalahan label, duplikasi, dan nilai yang tidak wajar.
  • Training, validation, dan testing dipisahkan sesuai karakteristik data.
  • Preprocessing dipelajari hanya dari data training.
  • Metrik dipilih berdasarkan kebutuhan penggunaan.
  • Hasil model dibandingkan dengan baseline yang relevan.
  • Confusion matrix atau analisis residual telah diperiksa.
  • Potensi overfitting dan data leakage telah dievaluasi.
  • Hasil test set dicatat setelah keputusan pengembangan selesai.
  • Risiko kesalahan, privasi, dan rencana pemantauan telah dipertimbangkan.

Checklist tersebut bukan sertifikasi bahwa model pasti aman atau benar. Fungsinya adalah membantu pengembang menjalankan proses evaluasi secara sistematis dan mengurangi kesalahan yang sebenarnya dapat dicegah.

Kesimpulan

Training, testing, dan evaluasi model AI merupakan bagian penting dalam membangun sistem machine learning yang dapat diandalkan. Training membantu model mempelajari pola, validation membantu menentukan konfigurasi selama pengembangan, dan testing memberikan penilaian akhir menggunakan data yang tidak digunakan untuk melatih atau memilih model.

Akurasi model merupakan metrik yang mudah dipahami, tetapi tidak selalu cukup untuk menilai kualitas prediksi. Precision, recall, F1-score, confusion matrix, MAE, RMSE, dan metrik lain memberikan sudut pandang berbeda sesuai jenis masalah yang diselesaikan.

Seorang pengembang AI tidak cukup hanya membuat model yang berhasil berjalan. Ia juga perlu mengetahui kapan model membuat kesalahan, mengapa kesalahan tersebut terjadi, seberapa besar dampaknya, dan apakah hasil evaluasinya benar-benar mencerminkan kondisi penggunaan.

Dengan memahami prinsip-prinsip ini, kamu dapat membangun fondasi yang lebih kuat untuk proyek machine learning berikutnya, mulai dari klasifikasi sederhana menggunakan Python hingga sistem AI yang terintegrasi ke dalam aplikasi web.

Post a Comment
300 x 600
Side Column Ads (Left)
300 x 600
Side Column Ads (Right)