Lima pengklasifikasi teratas untuk dicoba terlebih dahulu

25

Selain itu karakteristik classifier jelas seperti

  • biaya komputasi,
  • tipe data yang diharapkan dari fitur / label dan
  • kesesuaian untuk ukuran dan dimensi set data tertentu,

apa lima (atau 10, 20?) pengklasifikasi teratas untuk dicoba pertama kali pada kumpulan data baru yang belum diketahui banyak orang (mis. semantik dan korelasi fitur individual)? Biasanya saya mencoba Naive Bayes, Nearest Neighbor, Decision Tree dan SVM - meskipun saya tidak memiliki alasan yang baik untuk pemilihan ini selain saya mengenal mereka dan kebanyakan mengerti bagaimana mereka bekerja.

Saya kira kita harus memilih pengklasifikasi yang mencakup pendekatan klasifikasi umum yang paling penting . Pilihan mana yang akan Anda rekomendasikan, sesuai dengan kriteria itu atau karena alasan lain?


PEMBARUAN: Formulasi alternatif untuk pertanyaan ini bisa berupa: "Pendekatan umum apa yang ada untuk klasifikasi dan metode spesifik mana yang paling penting / populer / menjanjikan?"

Oben Sonne
sumber
Saya pikir ini adalah duplikat dari ( stats.stackexchange.com/questions/3458/… ). Satu-satunya nilai tambahan dari pertanyaan di sini adalah "kriteria untuk memilih pengklasifikasi" (yang akan menjadikan pertanyaan itu sangat umum). Jika itu duplikat, pilih untuk tutup, pilih yang lain untuk cw;)
steffen
@steffen: Pertanyaan Anda yang dirujuk sangat membantu, meskipun, saya pikir itu bukan duplikat. Memang pertanyaan saya agak umum. Saya tidak mencari solusi untuk masalah tertentu tetapi untuk alasan umum mengapa menggunakan pelajar mana - saya akan memperbarui pertanyaan saya sesuai.
Oben Sonne

Jawaban:

21

Hutan Acak

Cepat, kuat, akurasi yang baik, dalam banyak kasus tidak ada yang perlu disetel, tidak memerlukan normalisasi, kebal terhadap collinearity, menghasilkan perkiraan kesalahan yang cukup baik dan peringkat kepentingan yang berguna sebagai efek samping dari pelatihan, paralel paralel, yang diprediksi dalam sekejap mata.

Kelemahan: lebih lambat daripada metode sepele seperti kNN atau NB, paling baik digunakan dengan kelas yang sama, akurasi lebih buruk daripada SVM untuk masalah yang sangat membutuhkan trik kernel, kotak hitam yang sulit, tidak menghasilkan kopi.

pengguna88
sumber
1
@mbq (+1) Tentang ketidakseimbangan kelas, kita masih bisa mengandalkan pengambilan sampel bertingkat selama pengemasan.
chl
3
@ MBb, tidak membuat kopi? Itu adalah pemecah kesepakatan di sana.
kardinal
Terima kasih atas petunjuknya pada Random Forests . Tetapi apakah Anda akan mencoba hanya mereka? Bagaimana jika Anda tidak puas dengan hasilnya? Pengklasifikasi mana yang akan Anda coba lagi? Atau, apa yang akan Anda jawab jika seseorang bertanya: "Mengapa Anda tidak mencoba metode lain?"
Oben Sonne
@ Ben Yah, saya mengerti Anda membuat semacam kolam satu-classifier-per-jawaban.
@ MBb: Tidak juga, tapi ternyata kolam seperti itu. Mungkin saya tidak membuat diri saya cukup jelas dalam pertanyaan itu. Sebenarnya saya ingin tahu set classifiers mana yang harus dicoba dulu, untuk mencakup metode klasifikasi umum yang berbeda (dengan kekuatan dan kelemahan yang berbeda). Saya selalu bertanya pada diri sendiri apakah saya tidak boleh mencoba lebih banyak pengklasifikasi. Mengetahui bahwa yang saya coba sudah mewakili pendekatan yang paling khas / menjanjikan akan membantu di sini. Tapi untuk itu saya perlu tahu untuk set classifier mana ini benar. (Saya jauh dari menjadi ahli statistik, jadi beri tahu saya jika pikiran saya agak bengkok di sini)
Oben Sonne
7

Penggolong proses Gaussian (tidak menggunakan pendekatan Laplace), lebih disukai dengan marginalisasi daripada optimasi parameter-hiper. Mengapa?

  1. karena mereka memberikan klasifikasi probabilistik
  2. Anda dapat menggunakan fungsi kernel yang memungkinkan Anda untuk beroperasi secara langsung pada data non-vektor dan / atau menggabungkan pengetahuan ahli
  3. mereka berurusan dengan ketidakpastian dalam menyesuaikan model dengan benar, dan Anda dapat menyebarkan ketidakpastian itu melalui proses pengambilan keputusan
  4. kinerja prediksi umumnya sangat baik.

Kerugian

  1. lambat
  2. membutuhkan banyak memori
  3. tidak praktis untuk masalah skala besar.

Pilihan pertama meskipun akan diatur regresi logistik atau regresi punggungan [tanpa pemilihan fitur] - untuk sebagian besar masalah, algoritma yang sangat sederhana bekerja lebih baik dan lebih sulit untuk salah (dalam prakteknya perbedaan dalam kinerja antara algoritma lebih kecil daripada perbedaan dalam kinerja antara operator yang menggerakkan mereka).

pengguna88
sumber
1

Sendiri saat Anda mendekati kumpulan data baru, Anda harus mulai memperhatikan seluruh masalah. Pertama-tama dapatkan distribusi untuk fitur-fitur kategorikal dan mean dan standar deviasi untuk setiap fitur kontinu. Kemudian:

  • Hapus fitur dengan lebih dari X% nilai yang hilang;
  • Hapus fitur kategorikal ketika nilai tertentu mendapat lebih dari 90-95% dari frekuensi relatif;
  • Hapus fitur berkelanjutan dengan CV = std / mean <0,1;
  • Dapatkan peringkat parameter, misalnya ANOVA untuk kontinu dan Chi-kuadrat untuk kategorikal;
  • Dapatkan subset fitur yang signifikan;

Kemudian saya biasanya membagi teknik klasifikasi dalam 2 set: teknik kotak putih dan kotak hitam. Jika Anda perlu tahu 'bagaimana cara kerja pengklasifikasi', Anda harus memilih di set pertama, misalnya Pengklasifikasi Berbasis Keputusan atau Aturan.

Jika Anda perlu mengklasifikasikan catatan baru tanpa membuat model, Anda harus memperhatikan pembelajar yang bersemangat, misalnya KNN.

Setelah itu saya pikir lebih baik untuk memiliki ambang batas antara akurasi dan kecepatan: Neural Network sedikit lebih lambat dari SVM.

Ini adalah teknik klasifikasi lima besar saya:

  1. Pohon Keputusan;
  2. Pengklasifikasi berbasis aturan;
  3. SMO (SVM);
  4. Naif Bayes;
  5. Jaringan Saraf Tiruan.
Simone
sumber
4
-1 Alur kerja yang benar-benar salah untuk p kecil n besar, overfitting FS dijamin.
1
bukankah kNN pembelajar yang malas daripada yang bersemangat (karena Anda tidak benar-benar melakukan apa pun sampai Anda benar-benar harus ketika pola untuk mengklasifikasikan datang)? Setiap pra-pemrosesan yang Anda lakukan sebelum menerapkan pengklasifikasi cenderung memiliki efek yang lebih besar pada kinerja daripada perbedaan antara pengklasifikasi; pemilihan fitur sangat sulit (mudah menyebabkan over-fitting), dan metode seperti SVM dengan regularisasi biasanya berkinerja lebih baik tanpa pemilihan fitur. Saya tentu tidak akan merekomendasikan jaringan saraf, terlalu banyak potensi jebakan.
Dikran Marsupial