Ini adalah praktik umum untuk menerapkan PCA (analisis komponen utama) sebelum algoritma pengelompokan (seperti k-means). Diyakini bahwa ini meningkatkan hasil pengelompokan dalam praktik (pengurangan kebisingan).
Namun saya tertarik pada studi komparatif dan mendalam tentang hubungan antara PCA dan k-means. Sebagai contoh, Chris Ding dan Xiaofeng He, 2004, K-means Clustering melalui Principal Component Analysis menunjukkan bahwa "komponen utama adalah solusi berkelanjutan untuk indikator keanggotaan cluster diskrit untuk K-means clustering". Namun, saya kesulitan memahami makalah ini, dan Wikipedia sebenarnya mengklaim itu salah .
Juga, hasil dari dua metode agak berbeda dalam arti bahwa PCA membantu mengurangi jumlah "fitur" sambil mempertahankan varians, sedangkan pengelompokan mengurangi jumlah "data-poin" dengan merangkum beberapa poin dengan harapan / cara mereka. (dalam hal k-means). Jadi jika dataset terdiri dari titik dengan masing-masing fitur , PCA bertujuan untuk mengompresi fitur sedangkan pengelompokan bertujuan untuk mengompresi titik dataT T N
Saya mencari penjelasan orang awam tentang hubungan antara kedua teknik ini + beberapa makalah teknis lainnya yang menghubungkan kedua teknik ini.
sumber
Jawaban:
Memang benar bahwa K-means clustering dan PCA tampaknya memiliki tujuan yang sangat berbeda dan pada pandangan pertama tampaknya tidak terkait. Namun, seperti yang dijelaskan dalam makalah Ding & He 2004 K-means Clustering via Principal Component Analysis , ada hubungan yang mendalam di antara mereka.
Intinya adalah bahwa PCA berusaha untuk mewakili semua vektor data sebagai kombinasi linear dari sejumlah kecil vektor eigen, dan melakukannya untuk meminimalkan kesalahan rekonstruksi mean-squared. Sebaliknya, K-means berusaha untuk mewakili semua data vektor melalui sejumlah kecil cluster centroid, yaitu untuk merepresentasikannya sebagai kombinasi linear dari sejumlah kecil vektor centroid cluster di mana bobot kombinasi linear harus semuanya nol kecuali untuk satu . Ini juga dilakukan untuk meminimalkan kesalahan rekonstruksi mean-squared.n 1n n 1
Jadi K-means dapat dilihat sebagai PCA super-jarang.
Apa kertas Ding & He lakukan, itu untuk membuat koneksi ini lebih tepat.
Sayangnya, kertas Ding & He mengandung beberapa formulasi yang ceroboh (paling-paling) dan dapat dengan mudah disalahpahami. Misalnya, sepertinya Ding & He mengklaim telah membuktikan bahwa kluster centroid dari solusi klaster K-means terletak pada subruang PCA -dimensi:(K−1)
Untuk ini akan menyiratkan bahwa proyeksi pada sumbu PC1 akan selalu negatif untuk satu cluster dan positif untuk cluster lain, yaitu sumbu PC2 akan memisahkan cluster dengan sempurna.K=2
Ini bisa merupakan kesalahan atau tulisan yang ceroboh; dalam kasus apa pun, secara harfiah, klaim khusus ini salah.
Mari kita mulai dengan melihat beberapa contoh mainan dalam 2D untuk . Saya menghasilkan beberapa sampel dari dua distribusi normal dengan matriks kovarians yang sama tetapi beragam cara. Saya kemudian menjalankan K-means dan PCA. Gambar berikut ini menunjukkan plot pencar data di atas, dan data yang sama diwarnai sesuai dengan solusi K-means di bawah ini. Saya juga menunjukkan arah utama pertama sebagai garis hitam dan centroid kelas yang ditemukan oleh K-means dengan salib hitam. Sumbu PC2 ditunjukkan dengan garis hitam putus-putus. K-means diulang kali dengan biji acak untuk memastikan konvergensi ke optimal global.100K=2 100
Orang dapat dengan jelas melihat bahwa meskipun centroid kelas cenderung cukup dekat dengan arah PC pertama, mereka tidak jatuh tepat di atasnya. Selain itu, meskipun sumbu PC2 memisahkan cluster dengan sempurna di subplot 1 dan 4, ada beberapa titik di sisi yang salah dalam subplot 2 dan 3.
Jadi perjanjian antara K-means dan PCA cukup baik, tetapi tidak tepat.
Jadi apa yang Ding & Dia buktikan? Untuk kesederhanaan, saya hanya akan mempertimbangkan kasus. Biarkan jumlah poin yang ditetapkan untuk masing-masing cluster menjadi dan dan jumlah total poin . Mengikuti Ding & He, mari kita tentukan vektor indikator cluster sebagai berikut: jika poin ke- milik cluster 1 dan jika itu milik cluster 2. Vektor indikator cluster memiliki panjang unit dan "terpusat", yaitu elemen-elemennya dijumlahkan ke nol .n 1 n 2 n = n 1 + n 2 q ∈ R n q i = √K=2 n1 n2 n=n1+n2 q∈Rn iqi=-√qi=n2/nn1−−−−−−√ i qi=−n1/nn2−−−−−−√ ∥q∥=1 ∑qi=0
Ding & He menunjukkan bahwa fungsi kehilangan K-means (algoritma K-means diminimalkan) dapat secara setara ditulis ulang sebagai , di mana adalah matriks Gram produk skalar di antara semua poin: , di mana adalah matriks data dan adalah matriks data terpusat.∑k∑i(xi−μk)2 −q⊤Gq G n×n G=X⊤cXc X n×2 Xc
(Catatan: Saya menggunakan notasi dan terminologi yang sedikit berbeda dari makalah mereka tetapi saya merasa lebih jelas).
Jadi solusi K-means adalah vektor satuan terpusat yang memaksimalkan . Sangat mudah untuk menunjukkan bahwa komponen utama pertama (ketika dinormalisasi untuk memiliki satuan jumlah kuadrat) adalah vektor eigen terkemuka dari matriks Gram, yaitu juga merupakan vektor satuan terpusat memaksimalkan . Satu-satunya perbedaan adalah bahwa juga dibatasi hanya memiliki dua nilai yang berbeda sedangkan tidak memiliki batasan ini.q q⊤Gq p p⊤Gp q p
Dengan kata lain, K-means dan PCA memaksimalkan fungsi tujuan yang sama , dengan satu-satunya perbedaan adalah bahwa K-means memiliki kendala "kategorikal" tambahan.
Cukup beralasan bahwa sebagian besar solusi K-means (constrained) dan PCA (unconstrained) akan cukup dekat satu sama lain, seperti yang kita lihat di atas dalam simulasi, tetapi kita seharusnya tidak mengharapkannya identik. Mengambil dan mengatur semua elemen negatifnya menjadi sama dengan dan semua elemen positifnya ke umumnya tidak akan memberikan secara tepat .p −n1/nn2−−−−−−√ n2/nn1−−−−−−√ q
Ding & He tampaknya memahami ini dengan baik karena mereka merumuskan teorema mereka sebagai berikut:
Perhatikan bahwa kata-kata "solusi berkelanjutan". Setelah membuktikan teorema ini, mereka juga berkomentar bahwa PCA dapat digunakan untuk menginisialisasi iterasi K-means yang masuk akal karena kita berharap dekat dengan . Tetapi orang masih perlu melakukan iterasi, karena mereka tidak identik.q p
Namun, Ding & He kemudian mengembangkan pengobatan yang lebih umum untuk dan akhirnya merumuskan Teorema 3.3 sebagaiK>2
Saya tidak membaca matematika dari Bagian 3, tetapi saya percaya bahwa teorema ini sebenarnya juga merujuk pada "solusi kontinu" dari K-means, yaitu pernyataannya harus membaca "cluster centroid space dari solusi kontinu dari K-means adalah membentang [...] ".
Namun Ding & He, tidak membuat kualifikasi penting ini, dan terlebih lagi menulis dalam abstrak mereka itu
Kalimat pertama benar-benar benar, tetapi yang kedua tidak. Tidak jelas bagi saya apakah ini tulisan yang sangat ceroboh atau kesalahan asli. Saya telah dengan sangat sopan mengirim email kepada kedua penulis yang meminta klarifikasi. (Pembaruan dua bulan kemudian: Saya belum pernah mendengar kabar dari mereka.)
Kode simulasi Matlab
sumber
kmeans
fungsi dengan 100 replikasi: ia memilih inisialisasi acak yang berbeda setiap kali dan kemudian memilih solusi terbaik, sehingga diharapkan dapat memastikan bahwa optimum global tercapai.PCA dan K-means melakukan hal yang berbeda.
PCA digunakan untuk pengurangan dimensi / pemilihan fitur / pembelajaran representasi misalnya ketika ruang fitur mengandung terlalu banyak fitur yang tidak relevan atau berlebihan. Tujuannya adalah untuk menemukan dimensi intrinsik data.
Berikut adalah contoh dua dimensi yang dapat digeneralisasi ke ruang dimensi yang lebih tinggi. Dataset memiliki dua fitur, dan , setiap lingkaran adalah titik data.x y
Pada gambar memiliki besaran lebih besar dari . Ini adalah vektor Eigen. Dimensi data dikurangi dari dua dimensi menjadi satu dimensi (tidak banyak pilihan dalam kasus ini) dan ini dilakukan dengan memproyeksikan arah vektor (setelah rotasi di mana menjadi sejajar atau tegak lurus terhadap salah satu sumbu) . Ini karena ortogonal dengan arah varian terbesar. Salah satu cara untuk memikirkannya, adalah kehilangan minimal informasi. (Masih ada kerugian karena satu sumbu koordinat hilang).v1 v2 v2 v2 v2
K-means adalah algoritma pengelompokan yang mengembalikan pengelompokan alami dari titik data, berdasarkan kesamaan mereka. Ini adalah kasus khusus dari Model Campuran Gaussian .
Pada gambar di bawah ini dataset memiliki tiga dimensi. Dapat dilihat dari plot 3D di sebelah kiri bahwa dimensi dapat 'dijatuhkan' tanpa kehilangan banyak informasi. PCA digunakan untuk memproyeksikan data ke dua dimensi. Pada gambar di sebelah kiri, bidang proyeksi juga ditampilkan. Kemudian, K-means dapat digunakan pada data yang diproyeksikan untuk memberi label pada kelompok yang berbeda, pada gambar di sebelah kanan, diberi kode dengan warna yang berbeda.X
PCA atau teknik pengurangan dimensi lainnya digunakan sebelum metode yang tidak diawasi atau diawasi dalam pembelajaran mesin. Selain alasan yang diuraikan oleh Anda dan yang saya sebutkan di atas, ini juga digunakan untuk tujuan visualisasi (proyeksi ke 2D atau 3D dari dimensi yang lebih tinggi).
Mengenai artikel ini, saya tidak percaya ada koneksi apa pun, PCA tidak memiliki informasi mengenai pengelompokan data secara alami dan beroperasi pada seluruh data, bukan subset (grup). Jika beberapa kelompok dapat dijelaskan oleh satu vektor eigen (hanya karena gugus tertentu tersebar di sepanjang arah itu) hanya kebetulan dan tidak boleh dianggap sebagai aturan umum.
Memang, kompresi adalah cara intuitif untuk berpikir tentang PCA. Namun, dalam K-means, untuk menggambarkan setiap titik relatif terhadap Anda masih memerlukan setidaknya jumlah informasi yang sama (misalnya dimensi) , di mana adalah jarak dan disimpan bukannya . Dan Anda juga perlu menyimpan untuk mengetahui apa yang terkait dengan delta. Anda tentu saja dapat menyimpan dan namun Anda tidak akan dapat mengambil informasi aktual dalam data.xi=d(μi,δi) d δi xi μi d i
Clustering benar-benar menambah informasi. Saya menganggapnya sebagai membagi data menjadi kelompok alami (yang tidak harus dipisahkan) tanpa mengetahui apa arti label untuk setiap kelompok (well, sampai Anda melihat data dalam kelompok).
sumber
Adalah umum untuk memutihkan data sebelum menggunakan k-means. Alasannya adalah bahwa k-means sangat sensitif terhadap skala, dan ketika Anda memiliki atribut campuran, tidak ada skala "benar" lagi. Maka Anda harus menormalkan, menstandarkan, atau memutihkan data Anda. Tidak ada yang sempurna, tetapi pemutihan akan menghilangkan korelasi global yang terkadang dapat memberikan hasil yang lebih baik. PCA / whitening adalah karena Anda beroperasi pada matriks kovarians.O(n⋅d2+d3)
Menurut pemahaman saya, hubungan k-means dengan PCA bukan pada data asli . Ini adalah untuk menggunakan PCA pada matriks jarak (yang memiliki entri, dan melakukan PCA penuh dengan demikian adalah - yaitu mahal, khususnya dibandingkan dengan k-means yang merupakan mana adalah satu-satunya istilah besar), dan mungkin hanya untuk . K-means adalah masalah optimisasi kuadrat-terkecil, demikian juga PCA. k-means mencoba menemukan partisi kuadrat-terkecil dari data. PCA menemukan vektor keanggotaan cluster kuadrat-terkecil.n2 O(n2⋅d+n3) O(k⋅n⋅i⋅d) n k=2
Vektor Eigen pertama memiliki varian terbesar, oleh karena itu pemisahan pada vektor ini (yang menyerupai keanggotaan cluster, bukan input data koordinat!) Berarti memaksimalkan antara varian cluster . Dengan memaksimalkan antar varian klaster, Anda juga meminimalkan varians dalam-kluster.
Tetapi untuk masalah nyata, ini tidak berguna. Ini hanya kepentingan teoretis.
sumber
Memecahkan k-means pada pendekatan tingkat rendah O (k / epsilon) -nya (yaitu, memproyeksikan pada rentang vektor tunggal terbesar pertama seperti dalam PCA) akan menghasilkan perkiraan (1 + epsilon) dalam hal kesalahan multiplikasi.
Khususnya, Memproyeksikan pada vektor k-terbesar akan menghasilkan 2-aproksimasi.
Faktanya, jumlah jarak kuadrat untuk SETIAP pusat k dapat diperkirakan dengan proyeksi ini. Kemudian kita dapat menghitung coreset pada data tereduksi untuk mengurangi input ke titik poli (k / eps) yang mendekati jumlah ini.
Lihat: Dan Feldman, Melanie Schmidt, Christian Sohler: Mengubah data besar menjadi data kecil: Core ukuran konstan untuk k-means, PCA, dan pengelompokan projektif. SODA 2013: 1434-1453
sumber
Hubungan intuitif PCA dan KMeans
Analisis dimensi PCA secara teoritis (penahan dimensi K pertama mengatakan 90% varians ... tidak perlu memiliki hubungan langsung dengan kluster K Means), namun nilai penggunaan PCA berasal dari a) pertimbangan praktis mengingat sifat benda yang kami menganalisis cenderung secara alami mengelompok sekitar / berevolusi dari (segmen tertentu) komponen utama mereka (usia, jenis kelamin ..) b) PCA menghilangkan dimensi varians rendah (kebisingan), sehingga itu sendiri menambah nilai (dan membentuk rasa yang mirip dengan pengelompokan) ) dengan berfokus pada dimensi kunci tersebut. Secara sederhana, ini seperti sumbu XY yang membantu kita menguasai konsep matematika abstrak tetapi dengan cara yang lebih maju.
Berarti K mencoba meminimalkan jarak keseluruhan dalam sebuah cluster untuk K yang diberikan
Memilih kelompok berdasarkan / di sepanjang CP dapat dengan nyaman mengarah pada mekanisme alokasi yang nyaman
Yang ini bisa menjadi contoh jika x adalah PC pertama sepanjang sumbu X: (........... CC1 ............... CC2 ..... ....... sumbu X CC3) di mana sumbu X mengatakan menangkap lebih dari 9X% dari varians dan katakan adalah satu-satunya PC
6. Akhirnya PCA juga digunakan untuk memvisualisasikan setelah K Berarti dilakukan (Ref 4)
Jika PCA menampilkan * hasil pengelompokan K kami menjadi ortogonal atau dekat, maka itu adalah tanda bahwa pengelompokan kami adalah suara, yang masing-masing menunjukkan karakteristik unik
(* karena menurut definisi PCA mencari / menampilkan dimensi utama tersebut (1D ke 3D) sedemikian rupa sehingga mengatakan K (PCA) akan menangkap mungkin lebih dari sebagian besar varian.
Jadi PCA berguna dalam memvisualisasikan dan mengkonfirmasi pengelompokan yang baik, serta elemen yang secara intrinsik berguna dalam menentukan pengelompokan K Berarti - yang akan digunakan sebelum setelah K Berarti.
Referensi:
sumber