Saya bekerja dengan kode hutan acak Breiman ( http://stat-www.berkeley.edu/users/breiman/RandomForests/cc_manual.htm#c2 ) untuk klasifikasi data satelit (supervised learning). Saya menggunakan dataset pelatihan dan tes yang memiliki ukuran sampel 2000 dan ukuran variabel 10. Data diklasifikasikan ke dalam dua kelas, A dan B. Dalam mode pembelajaran terawasi, algoritma berkinerja baik dengan kesalahan klasifikasi yang sangat rendah (<2%) . Sekarang saya ingin mencoba klasifikasi tanpa pengawasan tanpa label kelas di set data uji dan melihat bagaimana algoritma dapat memprediksi kelas. Apakah ada cara untuk menerapkan klasifikasi tanpa pengawasan menggunakan kode Breiman? Apakah kesalahan dari metode ini akan lebih tinggi daripada klasifikasi yang diawasi? Data dan menjalankan pengaturan parameter dalam algoritma diberikan di bawah ini
DATA DESCRIBE 1 mdim = 10, ntrain = 2000, nclass = 2, maxcat = 1, 1 ntest = 2000, label = 1, labeltr = 1,
SET PARUNETER LARI 2 mtry0 = 3, ndsize = 1, jbt = 500, look = 100, lookcls = 1, 2 jclasswt = 0, mdim2nd = 0, mselect = 0,
Jawaban:
Mengingat bahwa model Anda menunjukkan akurasi yang baik, Anda dapat menggunakannya untuk memprediksi label kelas catatan dalam dataset tidak berlabel. Namun, Anda tidak dapat mengevaluasi kinerja data yang tidak berlabel.
Hati-hati bahwa Anda harus menilai kualitas model Anda pada data berlabel dengan validasi silang. Tidak cukup untuk memeriksa tingkat kesalahan pelatihan.
Jika model Anda tidak cukup akurat, Anda mungkin berpikir tentang pembelajaran semi-diawasi . Data yang tidak berlabel digunakan untuk meningkatkan kualitas model Anda melalui pembelajaran induktif. Akurasi harus selalu dihitung dengan validasi silang pada data berlabel Anda.
Lihatlah [Crimisini et al. Hutan Keputusan: Kerangka Kerja Terpadu untuk Klasifikasi, Regresi, Estimasi Kepadatan, Manifold Learning, dan Pembelajaran Semi-Supervisi] Bab 7 tentang pembelajaran semi-diawasi dan 7.4 tentang induksi dengan pembelajaran semi-diawasi.
sumber
Saya ragu bahwa tanpa pengawasan akan bekerja lebih baik tetapi bisa menjadi latihan yang keren untuk dicoba. Pembelajaran tanpa pengawasan dengan hutan acak dilakukan dengan membangun distribusi bersama berdasarkan variabel independen Anda yang secara kasar menggambarkan data Anda. Kemudian simulasikan sejumlah pengamatan menggunakan distribusi ini. Misalnya, jika Anda memiliki 1000 pengamatan, Anda dapat mensimulasikan 1000 lebih. Kemudian Anda memberi label, misalnya 1: = pengamatan nyata, 0: = pengamatan simulasi. Setelah ini, Anda menjalankan pengelompokan hutan acak yang biasa mencoba untuk membedakan pengamatan nyata dari yang disimulasikan. Perhatikan bahwa Anda harus mengaktifkan opsi kalkulasi kedekatan. Keluaran nyata yang bermanfaat persis seperti ini, deskripsi kedekatan antara pengamatan Anda berdasarkan apa yang dilakukan Random Forest ketika mencoba menetapkan label ini. Anda sekarang memiliki deskripsi bagaimana " Maksud saya tetap bersatu pengamatan yang lebih dekat dari ambang batas tertentu. Pilihan lain yang mudah adalah melakukan clustering hierarkis tetapi menggunakan matriks jarak khusus ini. Jika Anda dapat bekerja dengan R, sebagian besar paket pengelompokan hierarkis memungkinkan Anda untuk memberi makan matriks jarak fungsi kustom. Anda kemudian memilih titik cutoff, Anda dapat memvisualisasikannya sebagai dendrogram dan seterusnya dan seterusnya. Maksud saya tetap bersatu pengamatan yang lebih dekat dari ambang batas tertentu. Pilihan lain yang mudah adalah melakukan clustering hierarkis tetapi menggunakan matriks jarak khusus ini. Jika Anda dapat bekerja dengan R, sebagian besar paket pengelompokan hierarkis memungkinkan Anda untuk memberi makan matriks jarak fungsi kustom. Anda kemudian memilih titik cutoff, Anda dapat memvisualisasikannya sebagai dendrogram dan seterusnya dan seterusnya.
Ini dulunya adalah tutorial yang sangat bagus tentang pengelompokan Hutan Acak dan mereka berbagi beberapa fungsi R bermanfaat yang mereka tulis untuk tujuan ini tetapi tautannya tampaknya sudah mati sekarang. Mungkin nanti akan muncul kembali. Mereka juga menulis paket acak glm R yang sangat rapi (yang analog dengan hutan acak tetapi berdasarkan duh ... glms) jika Anda ingin memeriksanya. Anda selalu bisa menulis kepada penulis dan meminta materi untuk klasifikasi Hutan Acak yang dulu tersedia di tautan mati. Saya memiliki kode R tetapi terlalu besar untuk disisipkan di sini, saya dapat mengirimkannya kepada Anda jika Anda mengirimi saya pesan pribadi.
sumber
Jika Anda ingin menggunakan hutan acak dalam pengaturan yang tidak diawasi, Anda akan fokus pada metrik jarak yang diperoleh dalam apa yang Breiman sebut sebagai "perkiraan". Ini harus berupa matriks NxN yang menunjukkan waktu-waktu dimana sampel muncul bersamaan di terminal node. Dalam randomForest R, ini diperoleh melalui (Saya tidak pernah menggunakan Breiman tapi saya yakin itu tersedia):
Sekarang, dalam pengaturan tanpa pengawasan, hutan acak tidak tahu berapa kelas yang harus ada, sehingga itu akan menjadi pekerjaan Anda. Ini dapat dilakukan dengan berbagai cara, misalnya, KNN, PAM, dll., Di mana Anda memilih k = 2.
Seperti yang dapat Anda bayangkan, ini adalah hutan acak terawasi yang agak berbeda, jadi membandingkan akurasi klasifikasi antara kedua prosedur mungkin tidak mencerahkan.
sumber