Asumsikan saya memiliki dataset untuk tugas klasifikasi statistik terawasi, misalnya, melalui pengklasifikasi Bayes. Dataset ini terdiri dari 20 fitur dan saya ingin meringkasnya menjadi 2 fitur melalui teknik pengurangan dimensionalitas seperti Principal Component Analysis (PCA) dan / atau Linear Discriminant Analysis (LDA).
Kedua teknik memproyeksikan data ke subruang fitur yang lebih kecil: dengan PCA, saya akan menemukan arah (komponen) yang memaksimalkan varians dalam dataset (tanpa mempertimbangkan label kelas), dan dengan LDA saya akan memiliki komponen yang memaksimalkan antara - pemisahan kelas.
Sekarang, saya bertanya-tanya apakah, bagaimana, dan mengapa teknik ini dapat dikombinasikan dan apakah itu masuk akal.
Sebagai contoh:
- mentransformasikan dataset melalui PCA dan memproyeksikannya ke subruang 2D baru
- mentransformasikan (sudah diubah PCA) dataset melalui LDA untuk maks. pemisahan di dalam kelas
atau
- melewatkan langkah PCA dan menggunakan 2 komponen teratas dari LDA.
atau kombinasi lain yang masuk akal.
sumber
best practice
. PCA dan LDA, sebagai teknik pengurangan dimensionalitas, sangat berbeda. Kadang-kadang orang melakukan PCA sebelum LDA, tetapi memiliki risiko untuk membuang (dengan PC yang dibuang) dimensi diskriminatif penting. Pertanyaan yang Anda ajukan sebenarnya telah ditanyakan dalam beberapa bentuk di situs ini beberapa kali. Silakan cari "PCA LDA", untuk membaca apa yang orang katakan padanya.Jawaban:
Ringkasan: PCA dapat dilakukan sebelum LDA untuk mengatur masalah dan menghindari pemasangan yang berlebihan.
Ingatlah bahwa proyeksi LDA dihitung melalui komposisi eigend dari , di mana dan berada di dalam dan di antara matriks kovarian kelas. Jika ada kurang dari titik data (di mana adalah dimensi ruang Anda, yaitu jumlah fitur / variabel), maka akan tunggal dan karenanya tidak dapat dibalik. Dalam hal ini tidak ada cara untuk melakukan LDA secara langsung, tetapi jika seseorang menggunakan PCA terlebih dahulu, itu akan berhasil. @ Harun membuat komentar ini di komentar untuk jawabannya, dan saya setuju dengan itu (tetapi tidak setuju dengan jawabannya secara umum, seperti yang akan Anda lihat sekarang).Σ−1WΣB ΣW ΣB N N ΣW
Namun, ini hanya sebagian dari masalah. Gambaran yang lebih besar adalah bahwa LDA sangat mudah untuk menyesuaikan data. Perhatikan bahwa matriks kovarians di dalam kelas akan dibalik dalam perhitungan LDA; untuk inversi matriks dimensi tinggi adalah operasi yang sangat sensitif yang hanya dapat dilakukan dengan andal jika perkiraan benar-benar baik. Tetapi dalam dimensi tinggi , benar-benar sulit untuk mendapatkan perkiraan yang tepat dari , dan dalam praktiknya orang sering harus memiliki lebih banyak daripada titik data untuk mulai berharap bahwa perkiraan itu baik. Kalau tidak,ΣW N≫1 ΣW N ΣW akan hampir singular (yaitu beberapa nilai eigen akan sangat rendah), dan ini akan menyebabkan pemasangan yang berlebihan, yaitu pemisahan kelas yang hampir sempurna pada data pelatihan dengan kinerja kebetulan pada data uji.
Untuk mengatasi masalah ini, seseorang perlu mengatur masalah. Salah satu cara untuk melakukannya adalah menggunakan PCA untuk mengurangi dimensi terlebih dahulu. Ada yang lain, yang bisa dibilang lebih baik, misalnya metode LDA (rLDA) teratur yang hanya menggunakan dengan kecil alih-alih (ini disebut estimator penyusutan ), tetapi melakukan PCA pertama secara konseptual merupakan pendekatan yang paling sederhana dan seringkali berfungsi dengan baik.(1−λ)ΣW+λI λ ΣW
Ilustrasi
Berikut adalah ilustrasi masalah yang terlalu pas. Saya menghasilkan 60 sampel per kelas dalam 3 kelas dari distribusi Gaussian standar (rata-rata nol, varian unit) dalam ruang 10-, 50-, 100-, dan 150-dimensi, dan menerapkan LDA untuk memproyeksikan data pada 2D:
Perhatikan bagaimana seiring dengan pertumbuhan dimensi, kelas menjadi lebih baik dan lebih baik dipisahkan, sedangkan pada kenyataannya tidak ada perbedaan antara kelas.
Kita dapat melihat bagaimana PCA membantu mencegah overfitting jika kita membuat kelas sedikit terpisah. Saya menambahkan 1 ke koordinat pertama dari kelas pertama, 2 ke koordinat pertama dari kelas kedua, dan 3 ke koordinat pertama dari kelas ketiga. Sekarang mereka sedikit terpisah, lihat subplot kiri atas:
Overfitting (baris atas) masih jelas. Tetapi jika saya pra-proses data dengan PCA, selalu menjaga 10 dimensi (baris bawah), overfitting menghilang sementara kelas tetap terpisah secara optimal.
PS. Untuk mencegah kesalahpahaman: Saya tidak mengklaim bahwa PCA + LDA adalah strategi regularisasi yang baik (sebaliknya, saya akan menyarankan untuk menggunakan rLDA), saya hanya menunjukkan bahwa itu adalah strategi yang mungkin .
Memperbarui. Topik yang sangat mirip telah dibahas sebelumnya di utas berikut dengan jawaban yang menarik dan komprehensif yang disediakan oleh @cbeleites:
Lihat juga pertanyaan ini dengan beberapa jawaban yang bagus:
sumber
Jika Anda memiliki masalah dua kelas maka LDA akan membawa Anda ke 1 dimensi. Tidak ada alasan untuk melakukan PCA terlebih dahulu.
sumber
assume we have 3 classes
. @SebastianRaschka: Kemudian LDA akan memungkinkan Anda maksimal 2 fungsi diskriminan. Jumlah nilai eigen di LDA adalah min (num_groups-1, num_features).min(num_groups-1,num_features)