Klasifikasi bertingkat dengan hutan acak (atau klasifikasi lain)

12

Jadi, saya punya matriks sekitar 60 x 1000. Saya melihatnya sebagai 60 objek dengan 1000 fitur; 60 objek dikelompokkan menjadi 3 kelas (a, b, c). 20 objek di setiap kelas, dan kita tahu klasifikasi sebenarnya. Saya ingin melakukan pembelajaran terawasi pada set 60 contoh pelatihan ini, dan saya tertarik pada akurasi classifier (dan metrik terkait) serta pemilihan fitur pada 1000 fitur.

Pertama, bagaimana nomenklaturu?

Sekarang pertanyaan sebenarnya:

Saya bisa melempar hutan acak seperti yang dinyatakan, atau sejumlah pengklasifikasi lainnya. Tapi ada kehalusan - saya benar-benar hanya peduli tentang membedakan kelas c dari kelas a dan b. Saya dapat menggabungkan kelas a dan b, tetapi adakah cara yang baik untuk menggunakan pengetahuan a priori bahwa semua objek non-c kemungkinan membentuk dua kelompok yang berbeda? Saya lebih suka menggunakan hutan acak atau varian darinya, karena terbukti efektif pada data yang mirip dengan tambang. Tetapi saya dapat diyakinkan untuk mencoba beberapa pendekatan lain.

pengguna116293
sumber
Saya tidak melihat masalah dengan tata nama Anda. Apakah ini 60 objek yang Anda miliki? Kemudian, untuk menghitung akurasi klasifikasi, Anda perlu membagi dataset Anda menjadi set train, test (dan juga validasi). Ada berbagai cara untuk melakukan ini tetapi validasi silang adalah yang paling umum, saya pikir. k
emrea
1
Ya, hanya 60 ini. Tapi saya pikir untuk hutan acak, setiap pohon keputusan dibuat dengan subset sampel, sehingga Anda bisa mendapatkan perkiraan kesalahan generalisasi dengan menerapkan masing-masing dari 60 sampel yang ada untuk hanya pohon-pohon di dalam hutan yang tidak dapat melihat sampel itu selama konstruksi. ( stat.berkeley.edu/~breiman/RandomForests/cc_home.htm#ooberr ) Jadi mungkin diperlukan validasi silang tipikal di sini.
user116293
Anda harus sangat khawatir tentang overfitting di sini. Anda memiliki 1000 variabel dengan 60 objek, saya akan merasa jauh lebih baik jika itu qay lain di sekitar dan saya masih akan mengatakan, Anda harus khawatir tentang overfitting. Apakah ada cara logis atau semantik untuk mengulang jumlah variabel sebelum melakukan analisis?
Juli

Jawaban:

8

adakah cara yang baik untuk menggunakan pengetahuan a priori bahwa semua benda non-c kemungkinan membentuk dua kelompok yang berbeda

Jika Anda menggunakan metode berbasis pohon, saya pikir itu tidak penting karena partisi pengklasifikasi ini memiliki ruang fitur, kemudian lihat proporsi sampel di setiap kelas. Jadi yang penting adalah kemunculan relatif dari kelas c di setiap simpul terminal.

Namun jika Anda menggunakan sesuatu seperti campuran normals, LDA, dll maka menggabungkan dua kluster akan menjadi ide yang buruk (dengan asumsi kelas a dan b membentuk kluster unik). Di sini Anda perlu melestarikan struktur kelas untuk menggambarkan secara akurat ruang fitur yang memetakan ke a, b dan c. Model-model ini mengasumsikan fitur untuk setiap kelas memiliki distribusi Normal yang berbeda. Jika Anda menggabungkan a dan b, Anda akan memaksa distribusi Normal tunggal agar sesuai dengan campuran.

Singkatnya untuk pohon, tidak masalah jika Anda:

I. Buat tiga pengklasifikasi (1. a vs b, 2. a vs c dan 3. b vs c) kemudian prediksi dengan metode berbasis pemungutan suara.

II Gabungkan kelas a dan b untuk membentuk masalah dua kelas.

AKU AKU AKU. Prediksikan ketiga kelas kemudian petakan prediksi tersebut ke nilai dua kelas (mis. F (c) = c, f (a) = bukan c, f (b) = tidak c).

Namun jika Anda menggunakan metode yang pas distribusi untuk setiap kelas maka hindari II. dan uji yang I. atau III. berfungsi lebih baik untuk masalah Anda

muratoa
sumber
III kedengarannya bagus - meskipun saya pikir jika classifier mengatakan sampel adalah 0,33 a, 0,33 b, dan 0,34 c, saya mungkin harus menjumlahkan probabilitas untuk a dan b dan dengan demikian memilih 'tidak c'.
user116293
1
Untuk (I), apa prosedur yang baik untuk suara terbagi (1: a, 2: c, 3: b), atau apakah itu terlalu jarang untuk dianggap penting?
user116293
Untuk III. apa yang Anda sarankan itu benar. Untuk I. pada 3 data kelas saya tidak berpikir ada tindakan untuk membagi suara (1 untuk masing-masing) karena properti transitif harus dilanggar. Namun untuk 4+ kelas Anda dapat memiliki ikatan di bagian atas, dalam hal ini Anda dapat menggunakan jumlah numerik daripada menang / kalah; yaitu jumlah bobot yang diambil kelas berat maks.
muratoa