Saat ini saya sedang mengerjakan model regresi logistik untuk genomik. Salah satu bidang input yang ingin saya sertakan sebagai kovariat adalah genes
. Ada sekitar 24.000 gen yang dikenal. Ada banyak fitur dengan tingkat variabilitas dalam biologi komputasi ini dan diperlukan ratusan ribu sampel.
- Jika saya
LabelEncoder()
gen 24K itu - dan kemudian
OneHotEncoder()
mereka ...
Apakah 24.000 kolom akan membuat waktu latihan keras saya tidak masuk akal untuk CPU quad-core i7 2.2 GHz?
Jika demikian, apakah ada pendekatan berbeda untuk penyandian yang dapat saya lakukan dengan ini?
Haruskah saya mencoba mendedikasikan lapisan model saya untuk fitur ini?
Apakah ini berarti saya memerlukan 24K input node?
machine-learning
keras
scikit-learn
HashRocketSyntax
sumber
sumber
Jawaban:
Ya, menggunakan pengodean satu-panas pada fitur 24k memerlukan node input 24k. Namun ini seharusnya tidak menjadi masalah bagi Keras (atau perpustakaan pembelajaran mendalam lainnya). Pemrosesan bahasa alami sering menggunakan pengkodean satu-panas pada kata-kata dengan ukuran kosa kata di stadion baseball yang sama.
Jika Anda menggunakan model "dalam", salah satu lapisan tersembunyi Anda harus berhati-hati dalam mengurangi dimensi data Anda. Langkah pra-pemrosesan terpisah biasanya tidak diperlukan.
Waktu pelatihan seharusnya tidak masuk akal.
sumber
Entity Embedding untuk Variabel Kategorikal ( pager asli ) akan menjadi pendekatan yang sangat cocok di sini. Baca di sini , atau di sini . Saya sebenarnya telah meletakkan potongan kode dari sana-sini dan membuat implementasi berjalan lengkap, lihat repo git ini. Ini dengan mudah menangani variabel kategori kardinal sangat tinggi menggunakan jaringan saraf. Saya tidak akan mendaftar pro dan kontra OHE, Anda hanya Google itu, tetapi salah satu kelemahan utamanya esp. ketika memiliki variabel kategori kardinal yang sangat tinggi, itu meningkatkan secara drastis ruang fitur Anda secara tidak perlu, yang menurut saya tidak ideal. Dan yang lebih penting OHE, setahu saya, tidak memperhitungkan hubungan semantik antar kategori jika ada hubungan seperti itu! Namun, Entity Embedding adalah konsep untuk Word Embedding di NLP, bobot yang sedang dipelajari untuk menyandikan kategori berpotensi menangkap hubungan intra-kategori.
sumber
Secara umum, jumlah gen itu harus direduksi menjadi serangkaian fitur yang jauh lebih kecil. Kemudian, set fitur yang diperkecil dapat digunakan dalam model. Sebagai contoh, Principal Component Analysis (PCA) adalah salah satu teknik reduksi yang paling umum dan telah digunakan untuk data ekspresi gen .
" Pembelajaran mesin untuk mengintegrasikan data dalam biologi dan kedokteran: Prinsip, praktik, dan peluang" oleh Zitnika et al. mencakup berbagai teknik rekayasa fitur untuk gen.
sumber