Apakah pengurangan dimensi selalu kehilangan beberapa informasi?

10

Seperti judulnya, apakah pengurangan dimensi selalu kehilangan beberapa informasi? Pertimbangkan misalnya PCA. Jika data yang saya miliki sangat jarang, saya akan menganggap "pengkodean yang lebih baik" dapat ditemukan (apakah ini terkait dengan peringkat data?), Dan tidak ada yang akan hilang.

bertanya-tanya
sumber
7
Tidak, tentu saja tidak: beberapa nilai singular dalam PCA bisa bernilai nol, misalnya. Ini kurang terkait dengan "jarangnya" data daripada apakah mereka "mengisi" dimensi yang digunakan untuk merekamnya.
whuber
1
Ok aku paham. Bisakah Anda menulis komentar sebagai jawaban singkat (mungkin bahkan dengan contoh kecil, jika Anda punya waktu)?
bertanya
1
Pertimbangkan kasus di mana Anda memiliki data dua dimensi, di mana nilai y untuk setiap titik adalah '0'. Komponen prinsip pertama Anda akan menjadi sumbu X, dan Anda tidak akan kehilangan apa pun dengan memproyeksikan data Anda ke dalam dimensi tunggal ini karena sudah efektif satu dimensi.
David Marx

Jawaban:

9

Pengurangan dimensi tidak selalu kehilangan informasi. Dalam beberapa kasus, dimungkinkan untuk merepresentasikan kembali data dalam ruang dimensi yang lebih rendah tanpa membuang informasi apa pun.

Misalkan Anda memiliki beberapa data di mana setiap nilai yang diukur dikaitkan dengan dua kovariat yang dipesan. Sebagai contoh, misalkan Anda mengukur kualitas sinyal (ditunjukkan oleh warna putih = baik, hitam = buruk) pada kisi padat posisi x dan y relatif terhadap beberapa emitor. Dalam hal ini, data Anda mungkin terlihat seperti plot sebelah kiri [* 1]:Qxy

demo rata-rata radial

Setidaknya, secara dangkal, sepotong data dua dimensi: . Namun, kita mungkin tahu apriori (berdasarkan fisika yang mendasarinya) atau menganggap bahwa itu hanya bergantung pada jarak dari titik asal: r = Q(x,y) . (Beberapa analisis eksplorasi mungkin juga mengarahkan Anda ke kesimpulan ini jika bahkan fenomena yang mendasarinya tidak dipahami dengan baik). Kami kemudian dapat menulis ulang data kami sebagaiQ(r),bukanQ(x,y), yang secara efektif akan mengurangi dimensi ke dimensi tunggal. Jelas, ini hanya lossless jika data simetris radial, tetapi ini adalah asumsi yang masuk akal untuk banyak fenomena fisik.x2+y2Q(r)Q(x,y)

Transformasi adalah non-linear (ada akar kuadrat dan dua kuadrat!), Jadi agak berbeda dari jenis pengurangan dimensi yang dilakukan oleh PCA, tapi saya pikir itu contoh yang bagus tentang bagaimana Anda kadang-kadang dapat menghapus dimensi tanpa kehilangan informasi apa pun.Q(x,y)Q(r)

Untuk contoh lain, misalkan Anda melakukan dekomposisi nilai singular pada beberapa data (SVD adalah sepupu dekat dengan - dan seringkali merupakan nyali yang mendasari - analisis komponen utama). SVD mengambil matriks data Anda dan faktor-faktor itu menjadi tiga matriks sehingga M = U S V T . Kolom U dan V adalah vektor kiri dan kanan tunggal, masing-masing, yang membentuk satu set basis ortonormal untuk M . Unsur-unsur diagonal S (yaitu, S i , i ) adalah nilai singular, yang secara efektif menimbang berdasarkan set ke- i yang dibentuk oleh kolom U danM.M.=USVTM.SSsaya,saya)sayaU (sisa S adalah nol). Dengan sendirinya, hal ini tidak memberikan pengurangan dimensi (pada kenyataannya, sekarang ada 3 N x N matriks bukan single N x N matriks Anda mulai dengan). Namun, terkadang beberapa elemen diagonal S adalah nol. Ini berarti bahwa pangkalan yang sesuai di U dan V tidak diperlukan untuk merekonstruksi M , dan agar dapat dijatuhkan. Sebagai contoh, misalkan Q ( x , y )VSNxNNxNSUVM.Q(x,y)matriks di atas berisi 10.000 elemen (yaitu, 100x100). Ketika kami melakukan SVD di atasnya, kami menemukan bahwa hanya satu pasang vektor singular memiliki nilai bukan nol [* 2], sehingga kami dapat merepresentasikan kembali matriks asli sebagai produk dari dua vektor elemen 100 (200 koefisien, tetapi Anda sebenarnya dapat melakukan sedikit lebih baik [* 3]).

Untuk beberapa aplikasi, kita tahu (atau setidaknya berasumsi) bahwa informasi yang berguna ditangkap oleh komponen utama dengan nilai singular tinggi (SVD) atau memuat (PCA). Dalam kasus ini, kita dapat membuang vektor tunggal / basis / komponen utama dengan pembebanan yang lebih kecil bahkan jika mereka bukan nol, berdasarkan teori bahwa ini mengandung kebisingan yang mengganggu daripada sinyal yang bermanfaat. Saya kadang-kadang melihat orang menolak komponen tertentu berdasarkan bentuknya (misalnya, menyerupai sumber suara tambahan yang diketahui) terlepas dari pemuatannya. Saya tidak yakin apakah Anda akan menganggap ini sebagai kehilangan informasi atau tidak.

Ada beberapa hasil yang rapi tentang optimalitas informasi-teori PCA. Jika sinyal Anda Gaussian dan rusak dengan noise Gaussian aditif, maka PCA dapat memaksimalkan informasi timbal balik antara sinyal dan versi pengurangan dimensionalitasnya (dengan asumsi noise memiliki struktur kovarian mirip identitas).


Catatan kaki:

  1. Ini model yang murahan dan benar-benar non-fisik. Maaf!
  2. Karena ketidaktepatan floating point, beberapa dari nilai-nilai ini tidak akan menjadi nol.
  3. US
Matt Krause
sumber
saya(r)
r=(x2+y2)
1
Matt, pertanyaan saya benar-benar sebesar ini: Anda menunjukkan kepada kami gambar tanpa deskripsi atau referensi dan menyebutnya sebagai "data": Saya ingin tahu dalam hal apa Anda memikirkannya sebagai data. Komentar Anda membingungkan masalah ini, karena representasi "peta panas" biasanya bukan data, tetapi sesuatu yang dibuat dari data. Jika itu adalah data titik 2D yang tidak teratur, misalnya, dan Anda cocok dengan kepadatan simetris radial dengan mereka, maka gambar dapat ditafsirkan sebagai satu dimensi, seperti yang Anda katakan, tetapi itu tidak akan menjadi pengurangan dimensionalitas data yang hilang .
whuber
1
Mungkin saya seharusnya mengatakan 'gridded' atau 'raster' sebagai gantinya. Saya membayangkan situasi di mana data dikumpulkan pada kisi-kisi dan setiap titik kisi dikaitkan dengan nilai (skalar), tetapi nilai tersebut tidak harus intensitas cahaya seperti pada gambar (fotografi). Yang mengatakan, saya jelas tidak mengguncang jawaban ini - izinkan saya mencoba menyuntingnya menjadi sesuatu yang lebih masuk akal!
Matt Krause
2
+1: hasil edit membuat poin Anda lebih jelas. Terima kasih atas upaya ekstra!
whuber
4

Saya pikir pertanyaan di balik pertanyaan Anda adalah "apa yang membuat informasi?". Ini adalah pertanyaan yang bagus.

Teknis tata bahasa:

Apakah PCA selalu kehilangan informasi? Nggak. Apakah kadang - kadang kehilangan informasi? Anda betcha. Anda dapat merekonstruksi data asli dari komponen. Jika selalu kehilangan informasi maka ini tidak mungkin.

Ini berguna karena sering tidak kehilangan informasi penting ketika Anda menggunakannya untuk mengurangi dimensi data Anda. Ketika Anda kehilangan data, seringkali data frekuensi yang lebih tinggi dan sering yang kurang penting. Skala besar, tren umum, ditangkap dalam komponen yang terkait dengan nilai eigen yang lebih besar.

EngrStudent
sumber
4

n×hal

Dalam kasus yang paling mudah, jika satu dimensi adalah kombinasi linear dari yang lain, mengurangi dimensi dengan satu dapat dilakukan tanpa kehilangan informasi apa pun - karena dimensi yang jatuh dapat dibuat kembali jika perlu dari apa yang tersisa.

Pertimbangkan kasus tiga dimensi ini di mana x3 adalah kombinasi linear yang tepat dari x1 dan x2. Tidak jelas dari melihat data asli, meskipun jelas x3 terkait dengan dua lainnya:

masukkan deskripsi gambar di sini

Tetapi jika kita melihat komponen utama, yang ketiga adalah nol (dalam kesalahan numerik).

masukkan deskripsi gambar di sini

Plot dari dua komponen utama pertama adalah sama dengan plot x1 terhadap x2, hanya diputar (ok, tidak sejelas yang saya maksud, saya akan mencoba menjelaskan lebih baik nanti) :

masukkan deskripsi gambar di sini

Kami telah mengurangi dimensi dengan satu namun menyimpan semua informasi, dengan definisi yang masuk akal.

Ini juga melampaui pengurangan dimensi linier, meskipun secara alami menjadi lebih kompleks untuk digambarkan. Intinya adalah bahwa jawaban keseluruhan adalah "tidak", bukan ketika beberapa dimensi adalah fungsi dari kombinasi yang lain.

Kode R:

library(GGally)


n <- 10^3
dat <- data.frame(x1=runif(n, 0, 3), x2=rnorm(n))
dat$x3 <- with(dat, x1 + x2)

ggpairs(dat)

pc <- princomp(dat)
plot(pc)

par(mfrow=c(1,2))
with(dat, plot(dat$x1, dat$x2, col="red", main="Original data", bty="l"))
with(pc, plot(scores[,1], scores[,2], col="blue", main="Scores from principal components(\n(rotated)", bty="l"))
Peter Ellis
sumber