Komponen utama pertama tidak memisahkan kelas, tetapi PC lain melakukannya; bagaimana mungkin?

11

Saya menjalankan PCA pada 17 variabel kuantitatif untuk mendapatkan serangkaian variabel yang lebih kecil, yaitu komponen utama, yang akan digunakan dalam pembelajaran mesin yang diawasi untuk mengklasifikasikan instance ke dalam dua kelas. Setelah PCA, PC1 menyumbang 31% dari varians dalam data, PC2 menyumbang 17%, PC3 menyumbang 10%, PC4 menyumbang 8%, PC5 menyumbang 7%, dan PC6 menyumbang 6%.

Namun, ketika saya melihat perbedaan rata-rata antara PC di antara dua kelas, yang mengejutkan, PC1 bukanlah pembeda yang baik antara kedua kelas. PC yang tersisa adalah diskriminator yang baik. Selain itu, PC1 menjadi tidak relevan ketika digunakan dalam pohon keputusan yang berarti bahwa setelah pemangkasan pohon itu bahkan tidak ada di pohon. Pohon itu terdiri dari PC2-PC6.

Apakah ada penjelasan untuk fenomena ini? Mungkinkah ada yang salah dengan variabel turunan?

Frida
sumber
5
Baca stats.stackexchange.com/q/79968/3277 pertanyaan terbaru ini dengan tautan lebih lanjut di dalamnya. Karena PCA tidak tahu tentang keberadaan kelas-kelas itu, itu tidak menjamin bahwa PC mana pun akan benar-benar pembeda yang baik; Apalagi PC1 akan menjadi pembeda yang baik. Lihat juga dua gambar sebagai contoh di sini .
ttnphns
2
Lihat juga Apa yang dapat menyebabkan PCA memperburuk hasil pengklasifikasi? , khususnya angka dalam jawaban oleh @vqv.
amoeba

Jawaban:

14

Itu juga bisa terjadi jika variabel tidak diskalakan untuk memiliki unit varians sebelum melakukan PCA. Misalnya, untuk data ini (perhatikan bahwa skala hanya naik dari ke sedangkan pergi dari ke ):y-0,51x-33

masukkan deskripsi gambar di sini

PC1 kira-kira dan menyumbang hampir semua varians, tetapi tidak memiliki kekuatan diskriminatif, sedangkan PC2 adalah dan membedakan dengan sempurna antara kelas-kelas.xy

Flounderer
sumber
Hai, terima kasih atas jawaban Anda! Bagaimana penskalaan harus dilakukan? (x-mean) / sd?
Frida
Ya, di RI digunakan prcomp(x, center=T, scale=T)yang sama dengan melakukan (x-mean) / sd. Dalam contoh ini, Anda akan menemukan bahwa komponen utama tidak merupakan pembeda yang baik antara kelas; ini hanya berfungsi jika keduanya digunakan bersama.
Flounderer
Saya mengerti bahwa PC itu saling melengkapi tetapi apakah ada penjelasan di balik ini? Sejujurnya, ini adalah pertama kalinya saya mendapatkan PC1 yang lebih lemah dibandingkan dengan yang lain.
Frida
@Frida: komentar ttnphns tepat sasaran. Lihat en.wikipedia.org/wiki/Linear_discriminant_analysis paragraf ketiga. Dalam beberapa hal beruntung bahwa PCA ternyata sangat berguna.
Wayne
6

Saya berasumsi bahwa jawaban dan contoh yang diberikan oleh @Flounderer menyiratkan ini, tapi saya pikir itu layak dieja. Analisis komponen utama (PCA) adalah label (klasifikasi) acuh tak acuh. Yang dilakukannya hanyalah mengubah beberapa data dimensi tinggi ke ruang dimensi lain. Ini mungkin membantu dalam upaya klasifikasi, misalnya, menciptakan kumpulan data yang lebih mudah dipisahkan dengan metode tertentu. Namun, ini hanya produk sampingan (atau efek samping) dari PCA.

Boris Gorelik
sumber
1

Ketika kami melakukan analisis Komponen Utama, komponen utama sesuai dengan arah variabilitas maksimum, mereka tidak menjamin diskriminasi maksimum atau pemisahan antar kelas.

Jadi komponen ke-2 memberi Anda klasifikasi yang baik berarti data ke arah itu memberi Anda diskriminasi yang lebih baik antar kelas. Ketika Anda melakukan Analisis Linier Linier (LDA), ini memberi Anda komponen arah ortogonal terbaik yang memaksimalkan jarak antar kelas dan meminimalkan jarak antar kelas.

Jadi jika Anda melakukan LDA pada data dan bukan PCA mungkin salah satu komponen pertama akan lebih dekat ke PC6 daripada PC1. Semoga ini membantu.

Santanu_Pattanayak
sumber