Memprediksi dengan fitur berkelanjutan dan kategorikal

26

Beberapa teknik pemodelan prediktif lebih dirancang untuk menangani prediktor berkelanjutan, sementara yang lain lebih baik untuk menangani variabel kategorikal atau diskrit. Tentu saja ada teknik untuk mengubah satu jenis ke yang lain (diskritisasi, variabel dummy, dll.). Namun, apakah ada teknik pemodelan prediktif yang dirancang untuk menangani kedua jenis input pada saat yang sama tanpa hanya mengubah jenis fitur? Jika demikian, apakah teknik pemodelan ini cenderung bekerja lebih baik pada data yang lebih cocok untuk mereka?

Hal terdekat yang saya tahu adalah bahwa biasanya pohon keputusan menangani data diskrit dengan baik dan mereka menangani data terus menerus tanpa memerlukan diskritisasi di muka . Namun, ini bukan yang saya cari karena secara efektif pemisahan pada fitur yang terus-menerus hanyalah bentuk diskritisasi dinamis.

Untuk referensi, berikut adalah beberapa pertanyaan terkait, non-duplikat:

Michael McGowan
sumber
1
Bisakah Anda mengatakan lebih banyak tentang apa yang ingin Anda lakukan? Tentu saja, Anda dapat menggunakan regresi berganda dengan kovariat berkelanjutan & kategoris untuk membangun model prediksi. Ini agak dasar. Apakah maksud Anda memprediksi beberapa variabel respons sebagai gantinya (di mana ada beberapa cont & some cat, misalnya)?
gung - Reinstate Monica
@ung Bagaimana Anda melakukan regresi berganda yang melibatkan kovariat kategoris tanpa mengubah konversi prediktor kategorik menjadi angka dalam beberapa hal?
Michael McGowan
1
'Angka' tidak berarti apa-apa - mereka tidak benar-benar numerik . Dalam hal caranya, Anda menggunakan skema pengkodean; coding sel referensi (biasanya disebut 'coding dummy') adalah yang paling umum, tetapi ada banyak skema. Ini adalah sumber yang bagus untuk belajar tentang berbagai skema yang mungkin. Dalam R, misalnya, Anda sebenarnya tidak harus melakukan itu, jika Anda memasukkan data vektor atau karakter (yaitu, nama), itu akan menangani semuanya untuk Anda.
gung - Pasang kembali Monica
2
Saya khawatir saya masih tidak mengikuti dorongan di balik pertanyaan (saya agak lambat). Variabel kategorikal tidak "diubah" atau "dikonversi" menjadi variabel numerik; mereka diwakili oleh 1, tetapi 1 itu tidak benar-benar numerik. Prediktor kualitatif tidak lebih numerik dalam regresi berganda daripada di pohon keputusan (yaitu, CART), misalnya. Dari perspektif teoretis, tidak ada apa-apa di sana; dari perspektif praktis, jika Anda mencoba untuk menyimpan beberapa baris kode, misalnya, perangkat lunak (R, misalnya) akan sering melakukannya untuk Anda.
gung - Reinstate Monica
1
Cukup adil, dapatkah Anda menjelaskan apa yang menurut Anda ada di sana (dari perspektif teoretis)? Bagaimana pengkodean dummy mengubah variabel kategorikal menjadi variabel yang bermakna numerik? Bagaimana mungkin apa yang CART lakukan memungkinkan variabel mempertahankan 'kategori-ness', tetapi pengkodean dummy tidak? Saya bingung untuk mengetahui apa jawaban dari pertanyaan-pertanyaan ini dari pertanyaan Anda di atas, & Saya tidak melihat posting Anda sebelumnya.
gung - Reinstate Monica

Jawaban:

6

Sejauh yang saya tahu, dan saya telah meneliti masalah ini secara mendalam di masa lalu, tidak ada teknik pemodelan prediktif (di samping pohon, XgBoost, dll.) Yang dirancang untuk menangani kedua jenis input pada saat yang sama tanpa hanya mengubah jenis fitur.

Perhatikan bahwa algoritma seperti Random Forest dan XGBoost menerima input fitur campuran, tetapi mereka menerapkan beberapa logika untuk menanganinya selama pemisahan node. Pastikan Anda memahami logika "di balik tenda" dan bahwa Anda setuju dengan apa pun yang terjadi di kotak hitam.

Namun, model berbasis jarak / kernel (misalnya, K-NN, regresi NN, mesin vektor dukungan) dapat digunakan untuk menangani ruang fitur tipe campuran dengan mendefinisikan fungsi jarak "khusus". Sehingga, untuk setiap fitur, menerapkan metrik jarak yang sesuai (misalnya, untuk fitur numerik kami akan menghitung jarak Euclidean dari 2 angka sedangkan untuk fitur kategorikal kami akan dengan mudah menghitung jarak tumpang tindih dari 2 nilai string). Jadi, jarak / kesamaan antara pengguna dan pada fitur , sebagai berikut: jika fitur adalah kategoris, jika fituru1u2fid(u1,u2)fi=(discategorical(u1,u2)fifid(u1,u2)fi=disnumeric(u1,u2)fifi numerik. dan 1 jika fitur tidak didefinisikan dalam atau .fiu1u2

Beberapa fungsi jarak yang dikenal untuk fitur-fitur kategorikal:

  • Jarak Levenshtien (atau segala bentuk "edit jarak")

  • Metrik urutan umum terpanjang

  • Jarak Gower
  • Dan lebih banyak metrik di sini
Serendipity
sumber
5

Saya tahu ini sudah lama sejak pertanyaan ini diposting, tetapi jika Anda masih melihat masalah ini (atau yang serupa) Anda mungkin ingin mempertimbangkan untuk menggunakan model aditif umum (GAM). Saya bukan ahli, tetapi model ini memungkinkan Anda untuk menggabungkan model yang berbeda untuk membuat prediksi tunggal. Proses yang digunakan untuk menemukan koefisien untuk model yang Anda masukkan sekaligus untuk semuanya, sehingga Anda dapat mengirim model aditif umum model favorit Anda untuk prediktor kategori dan model favorit Anda untuk prediktor kontinu dan mendapatkan model tunggal yang meminimalkan RSS atau kriteria kesalahan apa pun lainnya yang ingin Anda gunakan.

Dari atas kepala saya, satu-satunya paket perangkat lunak yang saya tahu memiliki implementasi GAM adalah bahasa R, tapi saya yakin ada yang lain.

Forrest Cinelli
sumber
SAS memiliki prosedur yang disebut Proc Gam.
Alph.
1
Sebagian besar paket statistik utama (misalnya Stata) mungkin dapat mengimplementasikan GAM. Lebih penting lagi, GAM akan menggunakan kode dummy untuk mewakili variabel kategori sebagai prediktor. Tidak jelas apa yang diinginkan OP dalam mencari model yang menggunakan prediktor kategoris sebagai kategorikal tetapi tidak mewakili mereka dengan kode dummy, tetapi ini tidak mungkin terjadi.
gung - Reinstate Monica
Selamat Datang di CV. Perhatikan bahwa nama pengguna, identitas, & tautan ke halaman pengguna Anda secara otomatis ditambahkan ke setiap posting yang Anda buat, jadi tidak perlu menandatangani posting Anda. Faktanya, kami lebih suka Anda tidak melakukannya.
gung - Reinstate Monica
4

Sementara diskritisasi mengubah data kontinu menjadi data diskrit, sulit dikatakan bahwa variabel dummy mengubah data kategorikal menjadi data kontinu. Memang, karena algoritma dapat dijalankan pada komputer, hampir tidak ada algoritma classificator yang TIDAK mengubah data kategorikal menjadi variabel dummy.

Dalam arti yang sama, classificator pada akhirnya mengubah prediktornya menjadi variabel diskrit yang menunjukkan kelas yang dimiliki (bahkan jika itu menghasilkan probabilitas kelas, Anda akhirnya memilih cutoff). Secara de facto banyak pengklasifikasi seperti regresi logistik, hutan acak, pohon keputusan dan SVM semuanya bekerja dengan baik dengan kedua jenis data.

Saya menduga akan sulit untuk menemukan algoritma yang bekerja dengan data kontinu tetapi tidak dapat menangani data kategorikal sama sekali. Biasanya saya cenderung menemukannya membuat lebih banyak perbedaan pada tipe data apa yang Anda miliki di sisi kiri model Anda.

Erik
sumber
2
Tidak, maksud saya adalah bahwa regresi logistik dan lain-lain tidak "bekerja" dalam arti saya jelaskan dengan kedua jenis data. Mereka mengharuskan Anda, setidaknya dalam beberapa hal, memperlakukan semua prediktor sebagai angka atau tidak ada yang sebagai angka. Saya tahu, misalnya, bahwa seseorang sering dapat memperoleh hasil yang bagus dengan regresi logistik dengan mengkodekan sesuatu seperti "jenis kelamin" sebagai 1 untuk "pria" dan 0 untuk "wanita." Namun, saya bertanya-tanya apakah jenis proses ini dapat dihindari dengan paradigma pemodelan yang dikenal.
Michael McGowan
1

Ini adalah pertanyaan filosofis yang mendalam yang biasanya ditangani dari sisi statistik dan pembelajaran mesin. Beberapa mengatakan, kategorisasi lebih baik untuk indikator diskrit ke kategorikal, sehingga paket dapat dengan mudah mencerna input model. Yang lain mengatakan, bahwa binning dapat menyebabkan kehilangan informasi, tetapi bagaimanapun variabel kategori dapat / harus dikonversi ke variabel indikator {1,0} meninggalkan kelas terakhir untuk residual model.

Buku - regresi linier Terapan (Kutner et al.) Menyebutkan tentang logika memperkenalkan variabel indikator dalam model dalam beberapa bab pertama. Mungkin ada teks serupa lainnya juga.

Pendapat saya tentang ini mungkin agak terlalu dibuat-buat: Jika kita membayangkan variabel kategori seperti blok dalam desain eksperimental, variabel indikator adalah ekstensi alami untuk analisis data berbasis non-eksperimen. Sehubungan dengan algoritma penambangan data (keluarga pohon keputusan), kategorisasi tidak dapat dihindari (baik secara manual atau otomatis-binning) yang harus dimasukkan ke model.

Oleh karena itu, mungkin tidak ada model yang dikhususkan untuk variabel numerik dan variabel dengan cara yang sama (tanpa binning-numerik atau menggunakan indikator-kategori).

Karthik
sumber