Apakah masuk akal untuk menggabungkan PCA dan LDA?


25

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:

  1. mentransformasikan dataset melalui PCA dan memproyeksikannya ke subruang 2D baru
  2. mentransformasikan (sudah diubah PCA) dataset melalui LDA untuk maks. pemisahan di dalam kelas

atau

  1. melewatkan langkah PCA dan menggunakan 2 komponen teratas dari LDA.

atau kombinasi lain yang masuk akal.


2
Tidak ada yang universal 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.
ttnphns

@SebastianRaschka: Saya ingin tahu apakah jawaban saya di sini bermanfaat, atau apakah Anda memiliki pertanyaan lebih lanjut tentang masalah ini?
Amoeba berkata Reinstate Monica

@amoeba maaf, itu tidak melihat jawabannya sampai sekarang - entah bagaimana itu pasti lolos, terima kasih!

Jawaban:


44

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).ΣW1ΣBΣWΣBNNΣ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,ΣWN1ΣWNΣ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:

Overfitting dalam LDA

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 di LDA dan regularisasi dengan PCA

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:


Itu jawaban yang bagus, serius! Dan sambil menjelaskan teori yang mendasarinya Anda memiliki penjelasan praktis yang bagus di sana juga, jawaban bagus lain untuk koleksi referensi saya. Terima kasih banyak!

Saya tidak mengerti alur kedua, menurut saya kelas-kelas tidak dipisahkan dengan PCA sebelum LDA (baris bawah)
PierreE

@PierreE, pada plot kedua kelas dihasilkan sedemikian rupa sehingga mereka hampir tidak terpisah. Pemisahannya kecil. Di baris bawah Anda dapat melihat sedikit pemisahan ini, tetapi Anda perlu melihat lebih dekat: fokus pada kelas biru dan merah dan Anda akan melihat bahwa satu digeser ke kiri dan yang lain ke kanan.
Amuba kata Reinstate Monica

Ok aku paham. Saya lupa bahwa pemisahan kelas yang kita lihat di baris atas sebenarnya overfitting. Terima kasih
PierreE

1

Jika Anda memiliki masalah dua kelas maka LDA akan membawa Anda ke 1 dimensi. Tidak ada alasan untuk melakukan PCA terlebih dahulu.


1
Hm, saya tidak mengikuti alasan Anda di sini: Saya cukup yakin bahwa LDA TIDAK membawa Anda ke 1-dimensi kecuali Anda memilih untuk. Itu tergantung pada berapa banyak vektor eigen yang ingin Anda pertahankan setelah mengurutkan nilai eigen dengan menurunkan nilai. Mungkin saya kehilangan sesuatu di sini ... tapi saya tidak menyebutkan jumlah kelas. Mari kita asumsikan kita memiliki 3 kelas dengan masing-masing 20 fitur, dan saya ingin memproyeksikannya ke subruang 3D.

1
Satu-satunya alasan untuk melakukan PCA pertama adalah jika matriks kovarians dalam kelas singular. Jika Anda memiliki 20 fitur dan tiga kelas maka itu tidak tunggal jadi jangan lakukan PCA terlebih dahulu.
Aaron

4
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).
ttnphns

@Sebastian Jumlah fungsi diskriminan yang Anda pilih dari LDA tergantung pada apa yang ingin Anda lakukan dengannya. Sebagai transformasi ruang, itu hampir seperti PCA "diawasi" dan Anda memilih sebanyak yang Anda inginkan. Sebagai metode klasifikasi pemisahan hyperplane , hyperplane adalah, menurut definisi, dimensi N-1. Saya mungkin mengajukan pertanyaan tentang topik itu untuk informasi tambahan, karena saya masih tidak mengerti dari mana min(num_groups-1,num_features)
datangnya

1
@Matthieu Saya percaya itu karena di antara matriks kelas pencar, Anda membuatnya dengan menambahkan c (c = jumlah kelas) matriks yang memiliki peringkat 1 atau kurang. Jadi, Anda hanya dapat memiliki c-1 nilai eigen nol di maks.
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.