Deskripsi
Semi-supervised learning mengatasi situasi di mana dataset pelatihan berisi campuran sampel berlabel dan tak berlabel. Modul `sklearn.semi_supervised` Scikit-learn menyediakan estimator yang dirancang untuk memanfaatkan data tak berlabel ini, sehingga lebih memahami distribusi data dan meningkatkan generalisasi ke sampel baru yang belum pernah dilihat. Teknik-teknik ini sangat efektif ketika data berlabel langka, tetapi data tak berlabel melimpah.
Penting untuk dicatat bahwa algoritma semi-supervised bergantung pada asumsi tentang distribusi data untuk mencapai peningkatan kinerja. Modul ini menawarkan dua pendekatan utama: Self Training dan Label Propagation.
Self Training, berdasarkan algoritma Yarowsky, memungkinkan pengklasifikasi terawasi apa pun yang mendukung `predict_proba` untuk berfungsi secara semi-supervised. `SelfTrainingClassifier` secara iteratif memprediksi label untuk sampel tak berlabel dan menambahkan sebagian dari label tersebut ke dataset berlabel. Pemilihan sampel ini dapat didasarkan pada probabilitas prediksi, menggunakan ambang batas atau memilih k sampel terbaik. Proses ini berlanjut hingga semua sampel diberi label atau tidak ada sampel baru yang dipilih dalam satu iterasi, dengan jumlah iterasi maksimum yang dapat dikontrol melalui `max_iter`.
Label Propagation mencakup beberapa algoritma inferensi graf semi-supervised, termasuk `LabelPropagation` dan `LabelSpreading`. Model-model ini membangun graf kesamaan di antara semua titik data input. Ide intinya adalah bahwa struktur data tak berlabel konsisten dengan struktur kelas, memungkinkan label kelas menyebar ke observasi tak berlabel. `LabelPropagation` melakukan pengikatan keras (hard clamping) label input, sementara `LabelSpreading` menawarkan pendekatan yang lebih kuat dengan meminimalkan fungsi kerugian dengan properti regularisasi, membuatnya lebih tahan terhadap noise. Kedua model mendukung metode kernel bawaan seperti RBF dan KNN, yang memengaruhi skalabilitas dan kinerja. Kernel RBF membuat graf padat, berpotensi memakan banyak memori, sedangkan kernel KNN menghasilkan graf jarang, menawarkan efisiensi memori yang lebih baik dan waktu berjalan yang lebih singkat.
Metode-metode ini berharga untuk tugas-tugas di mana pelabelan manual mahal atau memakan waktu, memungkinkan pembuatan model yang lebih kuat dan akurat dengan memanfaatkan kekayaan data tak berlabel yang tersedia. Pilihan antara Self Training dan Label Propagation bergantung pada karakteristik dataset spesifik dan pendekatan yang diinginkan untuk memanfaatkan informasi tak berlabel.
Sorotan Scikit-learn Semi-supervised Learning
Mendukung klasifikasi semi-supervised
Memanfaatkan data tak berlabel untuk generalisasi yang lebih baik
Mencakup algoritma Self Training
Mendukung Label Propagation dan Label Spreading
Membangun graf kesamaan untuk propagasi label
Menawarkan metode kernel RBF dan KNN
Memungkinkan kontrol atas pengikatan label dalam propagasi
Proses pembelajaran iteratif untuk Self Training
Dapat diadaptasi ke berbagai pengklasifikasi terawasi untuk Self Training
Menangani skenario dengan data berlabel terbatas
Meningkatkan pemahaman tentang distribusi data yang mendasarinya
Memulai dengan Scikit-learn Semi-supervised Learning
Akses model: Impor estimator yang relevan dari `sklearn.semi_supervised`.
Siapkan data: Atur sampel berlabel dan tak berlabel.
Konfigurasi estimator: Buat instance `SelfTrainingClassifier` atau `LabelPropagation`/`LabelSpreading` dengan parameter yang diinginkan.
Latih model: Cocokkan estimator yang dipilih ke dataset yang disiapkan.
Prediksi label: Gunakan model yang dilatih untuk memprediksi label untuk data baru.
Evaluasi kinerja: Nilai akurasi model dan kemampuan generalisasi.
Kasus Penggunaan Scikit-learn Semi-supervised Learning
- Klasifikasi Teks
- Pengenalan Gambar
- Deteksi Penipuan
- Segmentasi Pelanggan
- Diagnosis Medis
- Pengenalan Ucapan




