วิธีรับ "ค่าลักษณะเฉพาะ" (เปอร์เซ็นต์ของความแปรปรวนที่อธิบาย) ของเวกเตอร์ที่ไม่ใช่ PCA eigenvectors


10

ฉันต้องการที่จะเข้าใจว่าฉันจะได้รับเปอร์เซ็นต์ความแปรปรวนของชุดข้อมูลไม่ใช่ในพื้นที่พิกัดที่จัดทำโดย PCA แต่เทียบกับเวกเตอร์ (หมุน) ชุดที่แตกต่างกันเล็กน้อย

ป้อนคำอธิบายรูปภาพที่นี่

set.seed(1234)
xx <- rnorm(1000)
yy <- xx * 0.5 + rnorm(1000, sd = 0.6)
vecs <- cbind(xx, yy)
plot(vecs, xlim = c(-4, 4), ylim = c(-4, 4))
vv <- eigen(cov(vecs))$vectors
ee <- eigen(cov(vecs))$values
a1 <- vv[, 1]
a2 <- vv[, 2]
theta = pi/10
rotmat <- matrix(c(cos(theta), sin(theta), -sin(theta), cos(theta)), 2, 2)
a1r <- a1 %*% rotmat
a2r <- a2 %*% rotmat
arrows(0, 0, a1[1], a1[2], lwd = 2, col = "red")
arrows(0, 0, a2[1], a2[2], lwd = 2, col = "red")
arrows(0, 0, a1r[1], a1r[2], lwd = 2, col = "green3")
arrows(0, 0, a2r[1], a2r[2], lwd = 2, col = "green3")
legend("topleft", legend = c("eigenvectors", "rotated"), fill = c("red", "green3"))

โดยพื้นฐานแล้วฉันรู้ว่าความแปรปรวนของชุดข้อมูลตามแกนสีแดงแต่ละอันที่กำหนดโดย PCA นั้นมีค่าลักษณะเฉพาะแทน แต่วิธีการที่ฉันจะได้รับความแปรปรวนเทียบเท่ารวมเป็นเงินเหมือนกัน แต่คาดว่าทั้งสองแตกต่างกันแกนสีเขียวซึ่งเป็นที่มีการหมุนโดยปี่ / 10 ของแกนองค์ประกอบหลัก IE ได้รับเวกเตอร์หน่วยสองมุมฉากจากจุดกำเนิดฉันจะได้ความแปรปรวนของชุดข้อมูลตามแต่ละแกน (แต่มุมฉาก) เหล่านี้โดยพลการได้อย่างไร PCA)


ที่เกี่ยวข้องมาก: stats.stackexchange.com/questions/8630
อะมีบา

คำตอบ:


7

หากเวกเตอร์เป็นมุมฉากคุณก็สามารถหาความแปรปรวนของการฉายสเกลาร์ของข้อมูลลงบนเวกเตอร์แต่ละตัวได้ บอกว่าเรามีข้อมูลเมทริกซ์ (จุด xมิติ) และชุดของเวกเตอร์คอลัมน์ orthonormal\} สมมติว่าข้อมูลอยู่กึ่งกลาง ความแปรปรวนของข้อมูลตามทิศทางของแต่ละเวกเตอร์จะได้รับจากv_i)Xnd{v1,...,vk}viVar(Xvi)

หากมีเวกเตอร์จำนวนมากเท่ากับมิติดั้งเดิม ( ) ผลรวมของความแปรปรวนของเส้นโครงจะเท่ากับผลรวมของความแปรปรวนตามมิติเดิม แต่ถ้ามีเวกเตอร์น้อยกว่าขนาดดั้งเดิม ( ) โดยทั่วไปผลรวมของความแปรปรวนจะน้อยกว่าสำหรับ PCA วิธีคิดอย่างหนึ่งของ PCA คือมันเพิ่มปริมาณให้มากที่สุดนี้ (ขึ้นอยู่กับข้อ จำกัด ที่เวกเตอร์เป็นมุมฉาก)k=dk<d

คุณอาจต้องการคำนวณ (ส่วนของความแปรปรวนอธิบาย) ซึ่งมักใช้ในการวัดว่ามิติ PCA ที่ระบุจำนวนเท่าใดแสดงข้อมูลได้ดีเพียงใด ให้แทนผลรวมของความแปรปรวนตามมิติข้อมูลดั้งเดิมแต่ละมิติ แล้ว:R2S

R2=1Si=1kVar(Xvi)

นี่เป็นเพียงอัตราส่วนของผลต่างรวมของประมาณการและผลต่างรวมตามมิติเดิม

อีกวิธีในการคิดเกี่ยวกับคือมันวัดความดีของความพอดีถ้าเราพยายามสร้างข้อมูลใหม่จากประมาณการ จากนั้นใช้รูปแบบที่คุ้นเคยที่ใช้กับโมเดลอื่น ๆ (เช่นการถดถอย) บอกว่า TH จุดข้อมูลเป็นแถวเวกเตอร์{(i)} เก็บแต่ละของเวกเตอร์พื้นฐานพร้อมคอลัมน์ของเมทริกซ์วีประมาณการของจุดข้อมูล TH บนเวกเตอร์ทั้งหมดในจะได้รับโดยV เมื่อมีเวกเตอร์น้อยกว่าขนาดเดิม (R2ix(i)ViVp(i)=x(i)Vk<d) เราสามารถคิดว่านี่เป็นการจับคู่ข้อมูลเชิงเส้นลงในพื้นที่ที่มีมิติลดลง เราประมาณสามารถสร้างจุดข้อมูลที่ได้จากการเป็นตัวแทนมิติในระดับต่ำโดยการทำแผนที่กลับเข้ามาในพื้นที่ข้อมูลเดิม: T ความคลาดเคลื่อนกำลังสองเฉลี่ยคือระยะทางแบบยุคลิดแบบสแควร์ระหว่างจุดข้อมูลดั้งเดิมแต่ละจุดกับการสร้างใหม่:x^(ผม)=พี(ผม)VT

E=1nx(ผม)-x^(ผม)2

ความดีของความพอดีถูกกำหนดเช่นเดียวกับรุ่นอื่น ๆ (เช่นหนึ่งลบด้วยค่าความแปรปรวนที่ไม่ได้อธิบาย) เมื่อพิจารณาถึงความคลาดเคลื่อนกำลังสองเฉลี่ยของแบบจำลอง ( ) และความแปรปรวนรวมของปริมาณแบบจำลอง ( ),{}} ในบริบทของการฟื้นฟูข้อมูลของเราข้อผิดพลาดกำลังสองเฉลี่ยคือ (ข้อผิดพลาดการสร้างใหม่) ความแปรปรวนทั้งหมดคือ (ผลรวมของผลต่างตามแต่ละมิติข้อมูล) ดังนั้น: MSE Var ผลรวม R 2 = 1 - MSE / Var ผลรวม E SR2MSEvarรวมR2=1-MSE/varรวมES

R2=1-ES

R 2Sก็เท่ากับค่าเฉลี่ยระยะทางแบบยุคลิดกำลังสองจากจุดข้อมูลแต่ละจุดกับค่าเฉลี่ยของจุดข้อมูลทั้งหมดดังนั้นเราจึงสามารถคิดเมื่อเปรียบเทียบข้อผิดพลาดในการสร้างใหม่กับ 'ตัวแบบกรณีเลวร้ายที่สุด' ที่ส่งกลับค่า หมายถึงการฟื้นฟูR2

สองนิพจน์สำหรับเทียบเท่ากัน ดังกล่าวข้างต้นหากมีเวกเตอร์จำนวนมากเท่ากับขนาดดั้งเดิม ( ) ดังนั้นจะเป็นหนึ่ง แต่ถ้า ,โดยทั่วไปจะน้อยกว่า PCA อีกวิธีในการคิดเกี่ยวกับ PCA คือลดข้อผิดพลาดในการสร้างใหม่กำลังสองน้อยที่สุด k = d R 2 k < d R 2R2k=dR2k<dR2


+1 คำอธิบายที่ชัดเจนมาก ฉันต้องการพูดถึงเพียงเพื่อความสมบูรณ์ว่าคือสิ่งที่คุณเขียนมันก็ต่อเมื่อ " " เราเข้าใจการสร้างใหม่ผ่านเดียวกับที่ใช้สำหรับการฉาย โดยทั่วไปสำหรับพลฉายเวกเตอร์จะมีการฟื้นฟูที่ดีกว่าที่ให้ผลผลิตสูง 2 ผมมีคำตอบที่ผมอธิบายในรายละเอียด ฉันยอมรับว่าสำหรับคำถามนี้สิ่งที่คุณเขียนนั้นเป็นสิ่งที่จำเป็น V v R 2R2try[ing] to reconstruct the data from the projectionsVโวลต์R2
อะมีบา

ใช่นั่นเป็นจุดที่ดีและเป็นคำอธิบายที่ดี
user20160

ถ้าฉันไม่มีเมทริกซ์ข้อมูล แต่เป็นเมทริกซ์ความแปรปรวนร่วม? ผลรวมของเส้นทแยงมุมของเมทริกซ์ความแปรปรวนร่วมจะให้ความแปรปรวนทั้งหมดกับฉัน, และถ้าฉันใช้ PCA กับเมทริกซ์ความแปรปรวนร่วมนั้น, ค่าลักษณะเฉพาะนั้นจะให้ความแปรปรวนตามทิศทางใหม่แต่ละทิศทาง, เพื่อให้ความแปรปรวนอธิบายเป็น แต่เวกเตอร์ของฉันคืออะไร?
สับสนเมื่อ

... เท่าที่ฉันจะบอกได้ว่าถ้าเราเริ่มด้วยเมทริกซ์ความแปรปรวนร่วมCดังนั้นในกรณีนี้เราต้องใช้| Cv_i | / sum (diag ( C )) เพื่อรับ% ความแปรปรวนอธิบาย
สับสน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.