ตกลงเมื่อคุณพูด SVD สันนิษฐานว่าคุณกำลังพูดถึงตัดทอน SVD (ที่คุณจะให้ค่าเอกพจน์ที่ใหญ่ที่สุด) มีสองวิธีที่แตกต่างกันในการดู SVD ที่ถูกตัดทอนของเมทริกซ์ หนึ่งคือคำจำกัดความมาตรฐาน:k
ก่อนอื่นคุณทำการ SVD: โดยที่UและVคือเมทริกซ์การหมุน, และΣมีค่าเอกพจน์ตามแนวทแยงมุม จากนั้นคุณเลือกค่าเอกพจน์kอันดับสูงสุดลบส่วนที่เหลือออกจากศูนย์แล้วตัดออกจากแถวและคอลัมน์ที่ไม่เกี่ยวข้องเพื่อสร้างค่าประมาณk -rank ให้เป็นค่าดั้งเดิม: X ≈ ˜ X = ˜ U n × k k × kXn × m= Un × nΣn × mVTm × mยูVΣkkX≈ X~= U~n × kΣ~k × kV~Tk × m
นี่คือทั้งหมดที่ดีและสวยงาม (และใช้งานง่ายใน R หรือ matlab) แต่มันก็ไม่สมเหตุสมผลเมื่อพูดถึงเมทริกซ์ที่มีค่าที่หายไป อย่างไรก็ตามมีคุณสมบัติที่น่าสนใจของ -truncated SVD - มันเป็นค่าประมาณk -rank ที่ดีที่สุดสำหรับต้นฉบับ! นั่นคือ:kk
X~= a r gm ฉันnB : r a n k ( B ) = kΣฉัน, J( Xฉันเจ- ขฉันเจ)2
ดูเหมือนว่าคุณสมบัตินี้จะง่ายต่อการสรุปกรณีที่ขาดหายไป โดยทั่วไปคุณกำลังมองหาเมทริกซ์ -rank ที่ลดข้อผิดพลาดกำลังสองของค่าเฉลี่ยองค์ประกอบที่ชาญฉลาดในรายการที่รู้จักของเมทริกซ์ดั้งเดิม นั่นคือเมื่อคุณกำลังฝึกอบรมระบบคุณจะไม่สนใจค่าที่หายไปทั้งหมด (สำหรับเคล็ดลับเกี่ยวกับวิธีการที่คุณจริงอาจจะไปเกี่ยวกับการหาk -Rank ประมาณที่นี่มีบางตำแหน่งที่จะดู)kk
จากนั้นเมื่อคุณได้ค่า -rank ที่ใกล้เคียงกับต้นฉบับแล้วคุณจะใช้มันเพื่อเติมค่าที่หายไป นั่นคือถ้าX ฉันเจหายไปแล้วคุณกรอก~ Xฉันเจ Tada! คุณทำเสร็จแล้วkXฉันเจX~ฉันเจ