Algoritma apa yang membutuhkan penskalaan fitur, selain dari SVM?

17

Saya bekerja dengan banyak algoritma: RandomForest, DecisionTrees, NaiveBayes, SVM (kernel = linear dan rbf), KNN, LDA dan XGBoost. Semuanya cukup cepat kecuali untuk SVM. Saat itulah saya mengetahui bahwa perlu penskalaan fitur untuk bekerja lebih cepat. Kemudian saya mulai bertanya-tanya apakah saya harus melakukan hal yang sama untuk algoritma lainnya.

Aizzaac
sumber

Jawaban:

21

Secara umum, algoritma yang mengeksploitasi jarak atau kesamaan (misalnya dalam bentuk produk skalar) antara sampel data, seperti k-NN dan SVM, sensitif terhadap transformasi fitur.

Pengklasifikasi berbasis model grafis, seperti Fisher LDA atau Naive Bayes, serta Pohon keputusan dan metode ansambel berbasis Pohon (RF, XGB) tidak berbeda dengan penskalaan fitur, tetapi mungkin masih merupakan ide yang baik untuk mengubah skala / standartize data Anda .

berteriak
sumber
3
+1. Perhatikan bahwa XGBoost sebenarnya mengimplementasikan algoritma kedua juga, berdasarkan peningkatan linear. Penskalaan akan membuat perbedaan di sana.
usεr11852 mengatakan Reinstate Monic
1
Bisakah Anda menguraikan lebih lanjut tentang mengubah ukuran / standarisasi data untuk RF dan XGB? Saya tidak melihat bagaimana itu dapat mempengaruhi kualitas model.
Tomek Tarczynski
17

Berikut adalah daftar yang saya temukan di http://www.dataschool.io/comparing-supervised-learning-algorithms/ yang mengindikasikan classifier mana yang membutuhkan penskalaan fitur :

masukkan deskripsi gambar di sini

Tabel lengkap:

masukkan deskripsi gambar di sini

Dalam k-means clustering, Anda juga perlu menormalkan input Anda .

Selain mempertimbangkan apakah classifier mengeksploitasi jarak atau kesamaan seperti yang disebutkan Yell Bond, Stochastic Gradient Descent juga sensitif terhadap penskalaan fitur (karena laju pembelajaran dalam persamaan pembaruan Stochastic Gradient Descent adalah sama untuk setiap parameter {1}):

masukkan deskripsi gambar di sini


Referensi:

Franck Dernoncourt
sumber
Apa yang kurang dari jawaban ini adalah beberapa penjelasan mengapa !! Lihat jawaban saya untuk itu.
kjetil b halvorsen
2
@ kjetilbhalvorsen saya jelaskan untuk k-means dan SGD, tetapi ada banyak algoritma dan model lainnya. Ada batasan 30k-char di Stack Exchange :)
Franck Dernoncourt
Agak terkait: stats.stackexchange.com/questions/231285/…
kjetil b halvorsen
@ FranckDernoncourt Bisakah saya mengajukan pertanyaan tentang hal ini? Saya memiliki dataset data kategoris dan kontinu, yang untuknya saya membangun SVM. Data kontinu sangat miring (ekor panjang). Untuk transformasi terus menerus yang harus saya lakukan log transformation / Box-Coxdan kemudian juga normalise the resultant data to get limits between 0 and 1? Jadi saya akan menormalkan nilai log. Kemudian hitung SVM pada data kontinyu dan kategoris (0-1) bersama? Terima kasih atas bantuan yang Anda berikan.
Chuck
7

Yi=β0+β1xi+β2zi+ϵi
i=1,,n
xi=(xix¯)/sd(x)zi=(ziz¯)/sd(z)
Yi=β0+β1xi+β2zi+ϵi
β1,2β^1,2
β0=β0β1x¯sd(x)β2z¯sd(z),β1=β1sd(x),β2=β2sd(z)

Dan diskusi untuk kasus regresi linier ini memberi tahu Anda apa yang harus Anda perhatikan dalam kasus-kasus lain: Apakah ada invarian, atau bukan? Secara umum, metode yang tergantung pada ukuran jarak di antara para prediktor tidak akan menunjukkan invarian , jadi standardisasi itu penting. Contoh lain adalah pengelompokan.

kjetil b halvorsen
sumber
1
Dapatkah Anda secara eksplisit menunjukkan bagaimana seseorang menghitung satu set beta dari yang lain dalam contoh pengukuran tertentu yang telah Anda terapkan?
Mathews24
@ kjetil Bisakah saya mengajukan pertanyaan kepada Anda tentang hal ini? Saya memiliki dataset data kategoris dan kontinu, yang untuknya saya membangun SVM. Data kontinu sangat miring (ekor panjang). Untuk transformasi pada kontinu haruskah saya melakukan transformasi log / Box-Cox dan kemudian juga menormalkan data yang dihasilkan untuk mendapatkan batas antara 0 dan 1? Jadi saya akan menormalkan nilai log. Kemudian hitung SVM pada data kontinyu dan kategoris (0-1) bersama? Sorak-sorai atas bantuan yang Anda berikan
Chuck
1
Bisakah Anda menambahkan ini sebagai pertanyaan baru? dengan referensi kembali ke sini!
kjetil b halvorsen