Algoritma klasifikasi apa yang harus digunakan setelah melihat bahwa t-SNE memisahkan kelas dengan baik?

12

Mari kita asumsikan kita memiliki masalah klasifikasi dan pada awalnya kita ingin mendapatkan beberapa wawasan dari data dan kita melakukan t-SNE. Hasil t-SNE memisahkan kelas dengan sangat baik. Ini menyiratkan bahwa adalah mungkin untuk membangun model klasifikasi yang juga akan memisahkan kelas dengan sangat baik (jika t-SNE tidak terpisah dengan baik maka itu tidak menyiratkan banyak).

Mengetahui bahwa t-SNE berfokus pada struktur lokal dan bahwa ia dapat memisahkan kelas dengan baik: Apa algoritma klasifikasi yang harus bekerja dengan baik pada masalah ini? Scikit menyarankan SVM dengan kernel Gaussian RBF, tetapi apa yang lain?

Tomek Tarczynski
sumber
3
(+1) K-tetangga terdekat bisa menjadi salah satu pilihan alami yang sangat sederhana dan mudah diterapkan.
Amoeba berkata Reinstate Monica

Jawaban:

7

Pertama, jawaban singkat, dan kemudian komentar yang lebih panjang:

Menjawab

Teknik SNE menghitung matriks kesamaan NXN di ruang data asli dan di ruang embedding dimensi rendah sedemikian rupa sehingga kesamaan membentuk distribusi probabilitas atas pasangan objek. Secara khusus, probabilitas umumnya diberikan oleh kernel Gaussian yang dinormalisasi dihitung dari input data atau dari embedding. Dalam hal klasifikasi, ini segera mengingatkan metode pembelajaran berbasis instance . Anda telah mendaftarkan salah satunya: SVM dengan RBF, dan @amoeba telah mendaftarkan kNN. Ada juga jaringan fungsi basis radial , yang saya bukan ahli.

Komentar

Karena itu, saya akan sangat berhati-hati dalam membuat kesimpulan pada dataset hanya dengan melihat plot t-SNE. t-SNE tidak harus fokus pada struktur lokal. Namun, Anda dapat menyesuaikannya dengan menyetel perplexityparameter, yang mengatur (secara longgar) bagaimana menyeimbangkan perhatian antara aspek lokal dan global dari data Anda.

Dalam konteks ini, perplexityitu sendiri adalah tikungan dalam kegelapan tentang berapa tetangga dekat masing-masing pengamatan mungkin dan disediakan pengguna. The original kertas menyatakan: “Kinerja t-SNE cukup kuat untuk perubahan kebingungan, dan nilai-nilai khas adalah antara 5 dan 50.” Namun, pengalaman saya adalah bahwa mendapatkan hasil maksimal dari t-SNE dapat berarti menganalisis beberapa plot dengan kebingungan yang berbeda.

Dengan kata lain, penyetelan learning ratedan perplexity, dimungkinkan untuk mendapatkan plot 2-d tampak sangat berbeda untuk jumlah langkah pelatihan yang sama dan menggunakan data yang sama.

Makalah Penyulingan ini Cara Menggunakan t-SNE Secara efektif memberikan ringkasan yang bagus tentang perangkap umum dari analisis t-SNE. Poin-poin ringkasannya adalah:

  1. Hyperparameter tersebut (misalnya tingkat belajar, kebingungan) sangat penting

  2. Ukuran cluster dalam plot t-SNE tidak berarti apa-apa

  3. Jarak antar cluster mungkin tidak berarti apa-apa

  4. Kebisingan acak tidak selalu terlihat acak.

  5. Anda dapat melihat beberapa bentuk, kadang-kadang

  6. Untuk topologi, Anda mungkin perlu lebih dari satu plot

Khususnya dari poin 2, 3, dan 6 di atas, saya akan berpikir dua kali tentang membuat kesimpulan tentang keterpisahan data dengan melihat plot t-SNE individu. Ada banyak kasus di mana Anda dapat 'membuat' plot yang menunjukkan kelompok yang jelas menggunakan parameter yang tepat.

Zhubarb
sumber
1
Berkmeister: Semua yang Anda tulis masuk akal. Masalah saya cukup mudah untuk dijelaskan: Saya ingin membuat model klasifikasi sebaik mungkin. Bagaimana saya dapat menggunakannya untuk meningkatkan kualitas model? Tebakan terbaik saya adalah bahwa t-SNE dapat 'menyarankan' metode mana yang mungkin relevan dengan masalah yang diberikan.
Tomek Tarczynski
2
Silakan lihat edit, metode pembelajaran berbasis instance akan kompatibel dengan petunjuk apa pun yang mungkin Anda dapatkan dari plot t-SNE.
Zhubarb
2
(+1): Terima kasih atas jawabannya, saya benar-benar mencari ini. Saya akan menerima jawabannya dalam dua hari.
Tomek Tarczynski