Saya ingin banyak algoritma yang melakukan tugas yang sama dengan regresi logistik. Itu adalah algoritma / model yang dapat memberikan prediksi untuk respon biner (Y) dengan beberapa variabel penjelas (X).
Saya akan senang jika setelah Anda menyebutkan algoritma, jika Anda juga akan menunjukkan cara mengimplementasikannya dalam R. Berikut adalah kode yang dapat diperbarui dengan model lain:
set.seed(55)
n <- 100
x <- c(rnorm(n), 1+rnorm(n))
y <- c(rep(0,n), rep(1,n))
r <- glm(y~x, family=binomial)
plot(y~x)
abline(lm(y~x), col='red', lty=2)
xx <- seq(min(x), max(x), length=100)
yy <- predict(r, data.frame(x=xx), type='response')
lines(xx, yy, col='blue', lwd=5, lty=2)
title(main='Logistic regression with the "glm" function')
r
regression
logistic
classification
predictive-models
Tal Galili
sumber
sumber
Jawaban:
Populer saat ini adalah randomForest dan gbm (disebut MART atau Gradient Boosting dalam literatur pembelajaran mesin), rpart untuk pohon sederhana. Yang juga populer adalah bayesglm, yang menggunakan MAP dengan prior untuk regularisasi.
sumber
Sebenarnya, itu tergantung pada apa yang ingin Anda peroleh. Jika Anda melakukan regresi logistik hanya untuk prediksi, Anda dapat menggunakan metode klasifikasi terawasi yang cocok untuk data Anda. Kemungkinan lain: analisis diskriminan (lda () dan qda () dari paket MASS)
Di sisi lain, jika Anda memerlukan interval kepercayaan di sekitar prediksi Anda atau kesalahan standar pada perkiraan Anda, sebagian besar algoritma klasifikasi tidak akan membantu Anda. Anda bisa menggunakan model aditif umum (campuran), yang tersedia sejumlah paket. Saya sering menggunakan paket mgcv dari Simon Wood. Model aditif umum memungkinkan lebih banyak fleksibilitas daripada regresi logistik, karena Anda dapat menggunakan splines untuk memodelkan prediktor Anda.
Ada banyak lagi yang harus dilakukan:
...
Saya akan merekomendasikan buku Simon Wood tentang Generalized Additive Models
sumber
Saya setuju dengan Joe, dan akan menambahkan:
Setiap metode klasifikasi pada prinsipnya dapat digunakan, meskipun itu akan tergantung pada data / situasi. Misalnya, Anda juga bisa menggunakan SVM, mungkin dengan model C-SVM yang populer. Berikut adalah contoh dari kernlab menggunakan fungsi kernel basis radial:
sumber
Ada sekitar 100 model klasifikasi dan regresi yang dapat dilatih melalui paket caret . Model klasifikasi mana pun akan menjadi pilihan bagi Anda (sebagai lawan dari model regresi, yang memerlukan respons berkelanjutan). Misalnya untuk melatih hutan acak:
Lihat sketsa pelatihan model caret yang disertai dengan distribusi untuk daftar lengkap model yang tersedia. Ini dibagi menjadi model penggunaan ganda dan klasifikasi (keduanya dapat Anda gunakan) dan hanya regresi (yang Anda tidak bisa). caret akan secara otomatis melatih parameter untuk model yang Anda pilih untuk Anda.
sumber
Naif Bayes adalah metode pelatihan data sederhana yang bagus untuk menemukan respons biner.
sumber
Ada dua variasi regresi logistik yang belum diuraikan. Pertama, regresi logistik memperkirakan probabilitas menggunakan fungsi logistik yang merupakan distribusi logistik kumulatif (juga dikenal sebagai sigmoid). Anda juga dapat memperkirakan probabilitas menggunakan fungsi-fungsi yang berasal dari distribusi lain. Cara yang paling umum terlepas dari regresi logistik adalah regresi probit yang berasal dari distribusi normal. Untuk diskusi lebih rinci antara perbedaan probit dan logit, silakan kunjungi situs berikut.
Perbedaan antara model logit dan probit
Alternatif kedua menunjukkan seminggu sekali fungsi logistik yang Anda laksanakan. Jika Anda memiliki ukuran sampel kecil dan / atau nilai yang hilang, fungsi logistik tidak disarankan. Oleh karena itu regresi logistik yang tepat adalah model yang lebih baik. Peluang log dari hasil dimodelkan sebagai kombinasi linear dari variabel prediktor.
Selanjutnya ada alternatif lain yang ingin disebutkan:
Komentar akhir: Regresi logistik sama dengan jaringan saraf kecil tanpa lapisan tersembunyi dan hanya satu titik di lapisan akhir. Oleh karena itu Anda dapat menggunakan implementasi paket jaringan saraf seperti
nnet
di R.Sunting:
Beberapa minggu kemudian saya menyadari bahwa ada juga algoritma Winnow dan Perceptron . Keduanya adalah pengklasifikasi yang juga berfungsi untuk klasifikasi menjadi dua kelompok, tetapi keduanya tidak disukai dalam 15 tahun terakhir.
sumber