Apa yang dapat menyebabkan PCA memperburuk hasil pengklasifikasi?

27

Saya memiliki classifier yang saya lakukan validasi silang, bersama dengan seratus atau lebih fitur yang saya lakukan seleksi maju untuk menemukan kombinasi fitur yang optimal. Saya juga membandingkan ini dengan menjalankan eksperimen yang sama dengan PCA, di mana saya mengambil fitur potensial, menerapkan SVD, mengubah sinyal asli ke ruang koordinat baru, dan menggunakan fitur atas dalam proses seleksi maju saya.k

Intuisi saya adalah bahwa PCA akan meningkatkan hasil, karena sinyal akan lebih "informatif" daripada fitur aslinya. Apakah pemahaman naif saya tentang PCA membawa saya ke masalah? Adakah yang bisa menyarankan beberapa alasan umum mengapa PCA dapat meningkatkan hasil dalam beberapa situasi, tetapi memperburuknya dalam situasi lain?

Dolan Antenucci
sumber
Bisakah pertanyaan Anda diringkas seperti ini ?: "Apa yang lebih baik - untuk membangun pengklasifikasi berdasarkan variabel asli atau pada beberapa komponen utama yang diekstraksi dari itu?"
ttnphns
1
Saya akan mengatakan lebih lanjut, "Apakah ada situasi ketika lebih baik menggunakan variabel asli vs beberapa komponen prinsip yang diekstraksi dari itu?"
Dolan Antenucci
1
Ada banyak teknik klasifikasi. Jika misalnya mengambil analisis Diskriminan, saya sarankan Anda untuk membaca posting ini (termasuk komentar saya sendiri di sana).
ttnphns
1
Apa yang Anda maksud dengan 'hasil pengklasifikasi'? Jika proporsi diklasifikasikan dengan benar, ini adalah aturan penilaian tidak terputus yang tidak terputus, yaitu skor akurasi yang dioptimalkan oleh model palsu. Saya akan menyarankan menggunakan aturan penilaian akurasi yang tepat, untuk memulai.
Frank Harrell
1
Agak terlambat untuk pesta, tetapi: hal pertama yang saya periksa adalah bahwa hasil validasi seleksi maju sebenarnya diperoleh dengan kasus independen. Kalau tidak, Anda kemungkinan akan mengalami bias optimis yang sangat besar.
cbeleites mendukung Monica

Jawaban:

29

Pertimbangkan sebuah kasus sederhana, diangkat dari artikel yang luar biasa dan undervalued "Catatan tentang Penggunaan Komponen Utama dalam Regresi" .

Misalkan Anda hanya memiliki dua fitur (diskalakan dan tidak bermakna), tunjukkan fitur dan dengan korelasi positif sama dengan 0,5, sejajar dalam , dan variabel respons ketiga yang ingin Anda klasifikasikan. Misalkan klasifikasi sepenuhnya ditentukan oleh tanda .x1x2XYYx1x2

Melakukan PCA pada menghasilkan fitur baru (dipesan berdasarkan varian) , karena . Oleh karena itu, jika Anda mengurangi dimensi Anda menjadi 1 yaitu komponen utama pertama, Anda membuang solusi yang tepat untuk klasifikasi Anda!X[x1+x2,x1x2]Var(x1+x2)=1+1+2ρ>Var(x1x2)=22ρ

Masalah terjadi karena PCA adalah agnostik ke . Sayangnya, seseorang tidak dapat memasukkan dalam PCA karena hal ini akan menyebabkan kebocoran data.YY


Kebocoran data adalah ketika matriks dibangun menggunakan prediktor target yang dimaksud, maka setiap prediksi out-of-sample tidak mungkin dilakukan.X

Misalnya: dalam rangkaian waktu keuangan, mencoba memprediksi penutupan Eropa akhir hari, yang terjadi pada pukul 11:00 EST, menggunakan penutupan Amerika akhir hari, pada pukul 16:00 EST, adalah kebocoran data sejak Amerika menutup , yang terjadi beberapa jam kemudian, telah memasukkan harga penutupan Eropa.

Cam.Davidson.Pilon
sumber
2
apa itu "kebocoran data"?
user603
@Wayne terlalu mahal haha
Cam.Davidson.Pilon
(-1) untuk menyebabkan kebingungan: (1) PCA tidak terawasi, sehingga tidak akan pernah memasukkan Y dalam mengklasifikasikan transformasi. Teknik yang diawasi yang sesuai adalah PLS, yang menggunakan X dan Y. (2) Kebocoran data (seperti dalam: pengujian dengan data yang tergantung secara statistik) tidak mengikuti penggunaan metode yang diawasi. Sebaliknya: itu akan terjadi dengan PCA sama seperti dengan PLS jika Anda tidak mematuhi aturan bahwa dari langkah analisis pertama yang menggunakan lebih dari satu kasus (misalnya pemusatan, penskalaan, proyeksi PCA / PLS) pada semua perhitungan harus dilakukan hanya pada data pelatihan (mis. harus ...
cbeleites mendukung Monica
... Dihitung ulang untuk masing-masing model pengganti. Hasil perhitungan ini kemudian dapat diterapkan pada data uji, yaitu kurangi pusat yang diperoleh dari data pelatihan, putar dengan rotasi yang diperoleh PCA pada kasus pelatihan, dll.
cbeleites mendukung Monica
Sebagai contoh: rangkaian waktu sangat sulit, karena apa yang merupakan kasus independen akan sangat tergantung pada aplikasi. Lihat misalnya stats.stackexchange.com/questions/76376/…
cbeleites mendukung Monica
23

Ada penjelasan geometris sederhana. Coba contoh berikut dalam R dan ingat bahwa komponen utama pertama memaksimalkan varians.

library(ggplot2)

n <- 400
z <- matrix(rnorm(n * 2), nrow = n, ncol = 2)
y <- sample(c(-1,1), size = n, replace = TRUE)

# PCA helps
df.good <- data.frame(
    y = as.factor(y), 
    x = z + tcrossprod(y, c(10, 0))
)
qplot(x.1, x.2, data = df.good, color = y) + coord_equal()

# PCA hurts
df.bad <- data.frame(
    y = as.factor(y), 
    x = z %*% diag(c(10, 1), 2, 2) + tcrossprod(y, c(0, 8))
)
qplot(x.1, x.2, data = df.bad, color = y) + coord_equal()

PCA Membantu PCA membantu

Arah varians maksimal adalah horizontal, dan kelas-kelas dipisahkan secara horizontal.

PCA Sakit PCA sakit

Arah varians maksimal adalah horisontal, tetapi kelas-kelas dipisahkan secara vertikal

vqv
sumber
... dan dalam contoh 2, analogon yang diawasi, PLS sebenarnya akan membantu.
cbeleites mendukung Monica
3

Saya melihat pertanyaan sudah memiliki jawaban yang diterima tetapi ingin berbagi makalah ini yang berbicara tentang penggunaan PCA untuk transformasi fitur sebelum klasifikasi .

Pesan dibawa pulang (yang divisualisasikan dengan indah dalam jawaban @ vqv) adalah:

Principal Component Analysis (PCA) didasarkan pada ekstraksi sumbu yang datanya menunjukkan variabilitas tertinggi. Meskipun PCA "menyebar" data dalam basis baru, dan dapat sangat membantu dalam pembelajaran tanpa pengawasan, tidak ada jaminan bahwa sumbu baru konsisten dengan fitur diskriminatif dalam masalah klasifikasi (diawasi).

Bagi mereka yang tertarik, jika Anda melihat Bagian 4. Hasil percobaan , mereka membandingkan akurasi klasifikasi dengan 1) fitur asli, 2) fitur yang diubah PCA, dan 3) kombinasi keduanya, yang merupakan sesuatu yang baru bagi saya.

Kesimpulan saya:

Transformasi fitur berbasis PCA memungkinkan untuk meringkas informasi dari sejumlah besar fitur menjadi sejumlah komponen, yaitu kombinasi linear dari fitur asli. Namun komponen utama seringkali sulit untuk diartikan (tidak intuitif), dan sebagai hasil empiris dalam tulisan ini menunjukkan mereka biasanya tidak meningkatkan kinerja klasifikasi.

PS: Saya perhatikan bahwa salah satu batasan dari makalah yang harus didaftar adalah kenyataan bahwa penulis membatasi penilaian kinerja pengklasifikasi hanya untuk 'akrual' saja, yang dapat menjadi indikator kinerja yang sangat bias.

Zhubarb
sumber
3

Misalkan sederhana dengan 3 variabel bebas dan output dan anggaplah sekarang bahwa dan Anda harus bisa mendapatkan model kesalahan 0. y x 3 = yx1,x2,x3yx3=y

Misalkan sekarang bahwa dalam pelatihan set variasi sangat kecil dan begitu juga variasi . x 3yx3

Sekarang jika Anda menjalankan PCA dan Anda memutuskan untuk memilih hanya 2 variabel, Anda akan mendapatkan kombinasi dan . Jadi informasi yang merupakan satu-satunya variabel yang dapat menjelaskan hilang.x 2 x 3 yx1x2x3y

Donbeo
sumber