Misalkan saya ingin membangun classifier biner. Saya memiliki beberapa ribu fitur dan hanya beberapa sampel. Dari pengetahuan domain, saya punya alasan kuat untuk percaya bahwa label kelas dapat diprediksi secara akurat hanya dengan menggunakan beberapa fitur, tetapi saya tidak tahu yang mana . Saya juga ingin aturan keputusan akhir mudah ditafsirkan / dijelaskan, lebih lanjut memerlukan sejumlah fitur. Subset tertentu dari fitur saya sangat berkorelasi, jadi memilih beberapa yang paling prediktif secara independen tidak akan berfungsi. Saya juga ingin dapat melakukan pengujian hipotesis secara bermakna pada fitur saya.
Apakah prosedur regresi bertahap berikut ini masuk akal dalam kondisi ini:
Mengingat fitur yang sudah ada dalam model (atau hanya memotong pada iterasi pertama), pilih fitur yang menghasilkan rasio kemungkinan log terbesar ketika ditambahkan ke model. Gunakan uji rasio kemungkinan chi-square untuk menghitung nilai-P nominal untuk setiap tes hipotesis yang dilakukan dalam seleksi ini. Nol di sini adalah bahwa menambahkan variabel tambahan ke model tidak memberikan kemampuan prediksi tambahan. Alternatifnya adalah meningkatkan kemampuan prediksi
Perlakukan hipotesis yang diuji pada Langkah 1 dari setiap iterasi sebagai keluarga dan hitung laju penemuan palsu untuk nilai-P terkecil (untuk fitur yang dipilih) menggunakan sesuatu seperti Benjamini-Hochberg.
Goto 1 kecuali beberapa kriteria berhenti dipenuhi.
Laporkan laju penemuan palsu untuk fitur individu, tetapi bukan nilai-P untuk model secara keseluruhan (karena ini akan meningkat secara besar-besaran). Masing-masing dari beberapa pengujian ini mengoreksi P-nilai mewakili signifikansi statistik dari fitur yang diberikan semua fitur yang sebelumnya ditambahkan ke model.
Apakah melakukan sesuatu seperti ini dalam keadaan ini berhasil menghindari semua kritik khas regresi bertahap? Apakah tingkat penemuan yang salah dihitung dengan cara ini masuk akal?
Jawaban:
Saya tidak akan merekomendasikan Anda menggunakan prosedur itu. Rekomendasi saya adalah: Abaikan proyek ini. Hanya menyerah dan berjalan pergi. Anda tidak memiliki harapan ini berfungsi.
sumber untuk gambar
Mengesampingkan masalah standar dengan pemilihan bertahap (lih., Di sini ), dalam kasus Anda, Anda kemungkinan besar memiliki prediksi sempurna karena pemisahan dalam ruang dimensi tinggi.
Saya tidak memiliki rincian tentang situasi Anda, tetapi Anda menyatakan bahwa Anda memiliki "hanya beberapa sampel". Mari kita beramal dan mengatakan Anda memiliki 90. Selanjutnya Anda mengatakan Anda memiliki "beberapa ribu fitur". Bayangkan Anda 'hanya' punya 2.000. Demi kesederhanaan, katakanlah semua fitur Anda adalah biner. Anda "percaya bahwa label kelas dapat diprediksi secara akurat hanya menggunakan beberapa fitur", katakanlah Anda akan mencari set hingga hanya 9 fitur maks. Terakhir, mari kita bayangkan bahwa hubungan itu deterministik, sehingga hubungan yang sebenarnya akan selalu hadir dengan sempurna dalam data Anda. (Kita dapat mengubah angka-angka dan asumsi-asumsi ini, tetapi itu hanya akan membuat masalah menjadi lebih buruk.) Sekarang, seberapa baik Anda dapat memulihkan hubungan itu dalam kondisi (murah hati) ini? Artinya, seberapa sering set yang benar menjadi satu-satunya set yang menghasilkan akurasi sempurna? Atau, dengan kata lain, berapa banyak set sembilan fitur juga akan cocok secara kebetulan saja?
Beberapa (terlalu) matematika dan simulasi sederhana harus memberikan beberapa petunjuk untuk pertanyaan ini. Pertama, dengan 9 variabel, masing-masing bisa 0 atau 1, jumlah pola yang bisa ditunjukkan oleh pengamatan adalah , tetapi Anda akan memiliki hanya 90 pengamatan. Dengan demikian, sangat mungkin bahwa, untuk serangkaian 9 variabel biner, setiap pengamatan memiliki nilai prediktor yang berbeda — tidak ada ulangan. Tanpa ulangan dengan nilai prediktor yang sama di mana beberapa memiliki y = 0 dan beberapa y = 1, Anda akan memiliki pemisahan yang lengkap dan prediksi sempurna dari setiap pengamatan akan dimungkinkan.29=512
Di bawah ini, saya memiliki simulasi (dikodekan dalam R) untuk melihat seberapa sering Anda mungkin tidak memiliki pola nilai x dengan 0s dan 1s. Cara kerjanya adalah saya mendapatkan satu set angka dari 1 hingga 512, yang mewakili pola yang mungkin, dan melihat apakah ada pola di 45 pertama (yang mungkin 0s) cocok dengan salah satu pola di 45 kedua (itu mungkin 1s). Ini mengasumsikan bahwa Anda memiliki data respons yang seimbang sempurna, yang memberi Anda perlindungan sebaik mungkin terhadap masalah ini. Perhatikan bahwa memiliki beberapa vektor x yang direplikasi dengan nilai y yang berbeda tidak benar-benar membuat Anda keluar dari hutan, itu hanya berarti Anda tidak akan dapat memprediksi dengan sempurna setiap pengamatan tunggal dalam dataset Anda, yang merupakan standar I yang sangat ketat. saya gunakan di sini.
Simulasi menyarankan Anda akan memiliki masalah ini dengan sekitar 1,8% dari set 9 x-variabel. Sekarang, berapa banyak set 9 yang ada? Sebenarnya, itu akan menjadi (karena kami telah menetapkan bahwa 9 variabel penyebab deterministik yang sebenarnya ada di set Anda). Namun, banyak dari set itu akan tumpang tindih; akan ada tahun 1991 / 9 ≈ 221 non-tumpang tindih set 9 dalam partisi tertentu dari variabel Anda (dengan banyak partisi tersebut mungkin). Jadi, dalam beberapa partisi yang diberikan, kita mungkin berharap akan ada 221 ×1991 choose 9=1.3×1024 1991/9≈221 221×0.018≈4 set 9 x-variabel yang akan memprediksi dengan sempurna setiap pengamatan dalam dataset Anda.
Perhatikan bahwa hasil ini hanya untuk kasus di mana Anda memiliki dataset yang relatif lebih besar (dalam "puluhan"), jumlah variabel yang relatif lebih kecil (dalam "ribuan"), hanya mencari kasus di mana setiap pengamatan tunggal dapat diprediksi dengan sempurna ( akan ada lebih banyak set yang hampir sempurna), dll. Kasing Anda yang sebenarnya tidak mungkin bekerja dengan baik 'ini'. Selain itu, kami menetapkan bahwa hubungan tersebut sangat deterministik. Apa yang akan terjadi jika ada gangguan acak dalam hubungan tersebut? Dalam hal ini, Anda masih akan memiliki ~ 4 (nol) set yang memprediksi data Anda dengan sempurna, tetapi set yang tepat mungkin tidak ada di antara mereka .
Tl; dr , poin dasar di sini adalah bahwa set variabel Anda terlalu besar / dimensi tinggi, dan jumlah data Anda terlalu kecil, untuk memungkinkan segala sesuatu terjadi. Jika benar-benar benar bahwa Anda memiliki "puluhan" sampel, "ribuan" variabel, dan sama sekali tidak tahu di muka variabel mana yang mungkin benar, Anda tidak memiliki harapan untuk pergi ke mana pun dengan prosedur apa pun. Pergi lakukan hal lain dengan waktu Anda.
sumber
Jadi saya menyarankan mengevaluasi prediksi secara langsung, daripada rasio kemungkinan. Namun, observasi yang diprediksi tidak boleh dimasukkan dalam estimasi model (karena inilah situasi yang akan Anda hadapi ketika benar-benar menggunakan model Anda). Jadi miliki langkah baru 1) (tebal adalah perubahan yang saya sarankan). 1) Mengingat fitur yang sudah ada dalam model (atau hanya memotong pada iterasi pertama), pilih fitur yang menghasilkan prediksi terbaik ketika ditambahkan ke model.
Sekarang Anda harus memutuskan
Saya akan memberikan saran untuk masing-masing:
Langkah-langkah bisa berisiko karena Anda mungkin menemukan "maksimum lokal" daripada "global maksimum", terutama karena Anda memiliki banyak prediktor (ini adalah "ruang" besar untuk dioptimalkan, dan mungkin multi-modal - artinya ada banyak model "terbaik")
Saya pikir Anda akan menemukan ini jauh lebih mudah untuk membenarkan pilihan model akhir Anda untuk non-ahli statistik, daripada mencoba menjelaskan mengapa nilai-p menunjukkan model itu baik.
Dua komentar terakhir:
sumber