ฉันกำลังใช้การแยกตัวของเวคเตอร์เอกพจน์บนเมทริกซ์และรับเมทริกซ์ U, S และ Vt ณ จุดนี้ฉันพยายามเลือกเกณฑ์สำหรับจำนวนมิติข้อมูลที่จะเก็บไว้ ฉันแนะนำให้ดูที่แปลงหินกรวด แต่ฉันสงสัยว่าจะไปเกี่ยวกับการวางแผนในจำนวนมาก ขณะนี้ฉันกำลังทำสิ่งต่อไปนี้โดยใช้ไลบรารี numpy และ scipy ใน python:
U, S, Vt = svd(A)
ข้อเสนอแนะใด ๆ
@shabbychef: คุณหมายถึงเอาผลรวมสะสมแล้วหารด้วยผลรวมของค่าทั้งหมดใช่ไหม
—
ตำนาน
ใช่. ใน matlab มันจะเป็น
—
shabbychef
[U,S,V] = svd(X);S = cumsum(sort(diag(S).^2,1,'descend'));S = S ./ S(end);plot(S);
S
, ถ้ามันไม่ได้เป็นแนวทแยง, กำลังสองมัน, เรียงมันตามลำดับที่ลดลง, หาผลรวมสะสม, หารด้วยค่าสุดท้าย, แล้วพล็อตมัน