คำถามติดแท็ก numerics

หรือที่เรียกว่าการวิเคราะห์เชิงตัวเลข Numerics มีวัตถุประสงค์เพื่อจัดหาวิธีการและอัลกอริทึมสำหรับการคำนวณเชิงตัวเลข

6
ขั้นตอนวิธีใดที่ใช้ในการถดถอยเชิงเส้น
ฉันมักจะได้ยินเกี่ยวกับ "กำลังสองน้อยที่สุดธรรมดา" นั่นเป็นอัลกอริทึมที่ใช้กันอย่างแพร่หลายที่สุดสำหรับการถดถอยเชิงเส้นหรือไม่? มีเหตุผลที่จะใช้อันอื่นหรือไม่?

4
ทำไม Andrew Ng จึงต้องการใช้ SVD และไม่ใช่ EIG ของความแปรปรวนร่วมเพื่อทำ PCA
ฉันกำลังศึกษา PCA จากหลักสูตร Coursera ของ Andrew Ng และสื่ออื่น ๆ ในการมอบหมายครั้งแรกของ Stanford NLP แน่นอน cs224n และในวิดีโอการบรรยายจาก Andrew Ngพวกเขาทำการสลายตัวของค่าเอกพจน์แทนการสลายตัว eigenvector ของเมทริกซ์ความแปรปรวนร่วมและ Ng บอกว่า SVD มีความเสถียรเชิงตัวเลขมากกว่า eigendecomposition จากความเข้าใจของฉันสำหรับ PCA เราควรทำ SVD ของเมทริกซ์ข้อมูล(m,n)ขนาดไม่ใช่เมทริกซ์ความแปรปรวนร่วมของ(n,n)ขนาด และการสลายตัวของไอเก็นเวกเตอร์ของเมทริกซ์ความแปรปรวนร่วม ทำไมพวกเขาถึงทำ SVD ของเมทริกซ์ความแปรปรวนร่วมไม่ใช่เมทริกซ์ข้อมูล?

2
วิธีคำนวณ SVD ของเมทริกซ์กระจัดกระจายขนาดใหญ่?
วิธีที่ดีที่สุดในการคำนวณการแยกย่อยค่าเอกเทศ (SVD) ของเมทริกซ์เชิงบวกที่มีขนาดใหญ่มาก (65M x 3.4M) คือที่ที่ข้อมูลกระจัดกระจายมาก? เมทริกซ์น้อยกว่า 0.1% ไม่ใช่ศูนย์ ฉันต้องการวิธีที่: จะพอดีกับหน่วยความจำ (ฉันรู้ว่ามีวิธีการออนไลน์อยู่) จะถูกคำนวณในเวลาที่เหมาะสม: 3,4 วัน จะแม่นยำ แต่ความแม่นยำไม่ใช่ประเด็นหลักของฉันและฉันต้องการที่จะควบคุมปริมาณทรัพยากรที่ฉันใส่เข้าไป มันจะดีถ้ามี Haskell, Python, C # และไลบรารี่ที่ใช้มัน ฉันไม่ได้ใช้ mathlab หรือ R แต่ถ้าจำเป็นฉันสามารถไปกับ R ได้
26 svd  numerics 

3
ความสัมพันธ์แปลก ๆ ในผลลัพธ์ SVD ของข้อมูลแบบสุ่ม พวกเขามีคำอธิบายทางคณิตศาสตร์หรือเป็นข้อบกพร่อง LAPACK?
ฉันสังเกตพฤติกรรมที่แปลกประหลาดมากในผลลัพธ์ SVD ของข้อมูลแบบสุ่มซึ่งฉันสามารถทำซ้ำได้ทั้งใน Matlab และ R ดูเหมือนว่าปัญหาตัวเลขในห้องสมุด LAPACK ใช่ไหม? ผมวาดn=1000n=1000n=1000ตัวอย่างจากk=2k=2k=2มิติแบบเกาส์กับศูนย์เฉลี่ยและเอกลักษณ์ของความแปรปรวน: X∼N(0,I)X∼N(0,I)X\sim \mathcal N (0, \mathbf I) ) ฉันรวบรวมพวกเขาใน1000×21000×21000 \times 2 Data Matrix XXX\mathbf X(ฉันสามารถเลือกศูนย์XX\mathbf Xหรือไม่ก็ไม่ได้มีผลต่อการต่อไป.) แล้วฉันจะดำเนินการสลายตัวมูลค่าเอกพจน์ (SVD) เพื่อให้ได้X=USV⊤X=USV⊤\mathbf X=\mathbf{USV}^\top ⊤ ลองหาองค์ประกอบสองอย่างของUU\mathbf Uเช่นU11U11U_{11}และและขอให้สิ่งที่เป็นความสัมพันธ์ระหว่างพวกเขาข้ามที่แตกต่างกันดึงของX ผมจะคาดหวังว่าถ้าจำนวน N R อีพีของดึงมีขนาดใหญ่พอสมควรแล้วทั้งหมดความสัมพันธ์ดังกล่าวควรจะเป็นรอบศูนย์ (เช่นความสัมพันธ์ของประชากรควรจะเป็นศูนย์และความสัมพันธ์ของกลุ่มตัวอย่างจะมีขนาดเล็ก)U22U22U_{22}XX\mathbf XNrepNrepN_\mathrm{rep} แต่ผมสังเกตเห็นบางความสัมพันธ์ที่แข็งแกร่งวิจิตรพิสดาร (ประมาณ ) ระหว่างU 11 , U 12 , U 21และU 22และเฉพาะระหว่างองค์ประกอบเหล่านี้ …

5
เอกสารสำคัญเกี่ยวกับการย่อยสลายเมทริกซ์
ฉันเพิ่งอ่านหนังสือของ Skillicorn เกี่ยวกับการย่อยสลายเมทริกซ์และผิดหวังเล็กน้อยเนื่องจากเป็นเป้าหมายสำหรับผู้ชมระดับปริญญาตรี ฉันต้องการรวบรวม (สำหรับตัวฉันเองและคนอื่น ๆ ) โดยสังเขปสั้น ๆ เกี่ยวกับเอกสารสำคัญ (การสำรวจ แต่ยังรวมถึงเอกสารที่ก้าวหน้า) เกี่ยวกับการย่อยสลายเมทริกซ์ สิ่งที่ฉันมีอยู่ในใจเป็นหลักคือบางสิ่งบางอย่างใน SVD / PCA (และตัวแปรที่แข็งแกร่ง / กระจัดกระจาย) และ NNMF เนื่องจากมีการใช้งานมากที่สุด คุณมีคำแนะนำ / ข้อเสนอแนะหรือไม่? ฉันถือของฉันไม่อคติคำตอบ ฉันขอให้ จำกัด คำตอบให้กับกระดาษ 2-3 ข้อ PS: ผมหมายถึงทั้งสอง decompositions เป็นที่ใช้มากที่สุดในการวิเคราะห์ข้อมูล แน่นอนว่า QR, Cholesky, LU และ polar มีความสำคัญมากในการวิเคราะห์เชิงตัวเลข นั่นไม่ใช่จุดเน้นของคำถามของฉัน

1
การอัพเดตการแยกย่อย SVD หลังจากเพิ่มหนึ่งแถวใหม่ในเมทริกซ์
สมมติว่าผมมีความหนาแน่นเมทริกซ์ของขนาดที่มีการสลายตัว SVDในฉันสามารถคำนวณ SVD ได้ดังนี้: .AA \textbf{A}m × nม.×nm \times nA = U S V⊤.A=ยูSV⊤.\mathbf{A}=\mathbf{USV}^\top.Rsvd(A) หากมีการเพิ่ม -th ใหม่ลงในสามารถคำนวณการแยกย่อย SVD ใหม่ตามแบบเก่า (เช่นโดยใช้ , , และ ) โดยไม่ต้องคำนวณใหม่ SVD ตั้งแต่ต้น?( m + 1 )(ม.+1)(m+1)AA\mathbf Aยูยู\mathbf USS\mathbf SVV\mathbf V

1
อัลกอริธึมที่มีประสิทธิภาพในการคำนวณการแยกค่าเอกเทศ (SVD) คืออะไร
บทความ Wikipedia เกี่ยวกับการวิเคราะห์องค์ประกอบหลักระบุว่า อัลกอริธึมที่มีประสิทธิภาพมีอยู่ในการคำนวณ SVD ของโดยไม่ต้องสร้างเมทริกซ์ดังนั้นการคำนวณ SVD จึงเป็นวิธีมาตรฐานในการคำนวณการวิเคราะห์องค์ประกอบหลักจากเมทริกซ์ข้อมูลXXXXTXXTXX^TX มีคนบอกฉันว่าอัลกอริทึมที่มีประสิทธิภาพซึ่งบทความกำลังพูดถึงคืออะไร ไม่มีการอ้างอิงที่ได้รับ (URL หรือการอ้างอิงถึงบทความที่เสนอวิธีการคำนวณแบบนี้น่าจะดี)
17 pca  algorithms  svd  numerics 

3
มีอัลกอริธึมที่รวดเร็วสำหรับการคำนวณ SVD ที่ถูกตัดทอนหรือไม่
อาจจะปิดหัวข้อที่นี่ แต่มีอยู่หลายคน ( หนึ่ง , สอง ) คำถามที่เกี่ยวข้องแล้ว สำรวจวรรณกรรม (หรือการค้นหา google สำหรับ Truncated SVD Algorithms) เปิดเอกสารจำนวนมากที่ใช้ SVD ที่ถูกตัดทอนในรูปแบบต่าง ๆ และเรียกร้อง (น่าหงุดหงิดมักไม่มีการอ้างอิง) ว่ามีอัลกอริธึมที่รวดเร็วสำหรับการคำนวณ แต่ไม่มีใคร ดูเหมือนว่าจะชี้ไปที่อัลกอริธึมเหล่านั้น สิ่งเดียวที่ฉันสามารถหาเป็นหนึ่งในขั้นตอนวิธีการสุ่มที่ใช้ในห้องสมุด redSVD สิ่งที่ฉันต้องการเห็นคือชุดของอัลกอริธึมที่แน่นอนและไม่แน่นอนเหมาะสำหรับการทำความเข้าใจว่าระบบทำงานอย่างไร ใครบ้างมีการอ้างอิงที่ดีสำหรับสิ่งนี้หรือไม่?

1
เครื่องมือเพิ่มประสิทธิภาพ lme4 เริ่มต้นต้องการการวนซ้ำจำนวนมากสำหรับข้อมูลมิติสูง
TL; DR: lme4การเพิ่มประสิทธิภาพที่ดูเหมือนจะเป็นเชิงเส้นในจำนวนของพารามิเตอร์แบบโดยค่าเริ่มต้นและเป็นวิธีที่ช้ากว่าเทียบเท่าglmรุ่นด้วยตัวแปรดัมมี่สำหรับกลุ่ม มีอะไรที่ฉันสามารถทำได้เพื่อเร่งความเร็วหรือไม่ ฉันพยายามจัดวางโมเดล logit แบบลำดับชั้นที่ค่อนข้างใหญ่ (ประมาณ 50k แถว, 100 คอลัมน์, 50 กลุ่ม) การปรับโมเดล logit ปกติให้เข้ากับข้อมูล (ด้วยตัวแปรดัมมี่สำหรับกลุ่ม) ทำงานได้ดี แต่โมเดลลำดับชั้นดูเหมือนจะติดขัด: ขั้นตอนการปรับให้เหมาะสมครั้งแรกจะเสร็จสมบูรณ์ดี แต่ครั้งที่สองผ่านการทำซ้ำจำนวนมาก . แก้ไข:ฉันสงสัยว่าปัญหาส่วนใหญ่คือฉันมีพารามิเตอร์มากมายเพราะเมื่อฉันพยายามตั้งค่าmaxfnที่ต่ำกว่าจะให้คำเตือน: Warning message: In commonArgs(par, fn, control, environment()) : maxfun < 10 * length(par)^2 is not recommended. อย่างไรก็ตามการประมาณพารามิเตอร์ไม่ได้เปลี่ยนแปลงตลอดเวลาของการปรับให้เหมาะสมดังนั้นฉันยังคงสับสนเกี่ยวกับสิ่งที่ต้องทำ เมื่อฉันพยายามตั้งค่าmaxfnในตัวควบคุมเครื่องมือเพิ่มประสิทธิภาพ (แม้จะมีคำเตือน) ดูเหมือนว่าจะหยุดทำงานหลังจากการปรับให้เหมาะสมเสร็จแล้ว นี่คือรหัสบางส่วนที่สร้างปัญหาให้กับข้อมูลสุ่ม: library(lme4) set.seed(1) SIZE <- 50000 …

2
Kullback-Leibler Divergence สำหรับสองตัวอย่าง
ฉันพยายามใช้การประมาณเชิงตัวเลขของ Kullback-Leibler Divergence สำหรับสองตัวอย่าง การแก้ปัญหาการดำเนินการวาดตัวอย่างจากสองการแจกแจงปรกติและ(1,2)N(0,1)N(0,1)\mathcal N (0,1)N(1,2)N(1,2)\mathcal N (1,2) สำหรับการประมาณแบบง่ายฉันได้สร้างฮิสโทแกรมสองกราฟและพยายามประมาณอินทิกรัลเชิงตัวเลข ฉันติดอยู่กับการจัดการส่วนต่าง ๆ ของฮิสโตแกรมที่ซึ่งช่องเก็บของฮิสโตแกรมนั้นมีค่าเป็นศูนย์ซึ่งฉันจะสิ้นสุดด้วยการหารด้วยศูนย์หรือลอการิทึมของศูนย์ ฉันจะจัดการปัญหานี้ได้อย่างไร คำถามที่เกี่ยวข้องอยู่ในใจของฉัน: จะคำนวณ KL-Divergence ระหว่างการแจกแจงเครื่องแบบที่แตกต่างกันสองแบบได้อย่างไร ฉันต้อง จำกัด อินทิกรัลกับการรวมกันของการสนับสนุนของการแจกแจงทั้งสองหรือไม่?

3
วิธีการและตัวอย่างของการจัดกลุ่มกราฟใน“ R”
ฉันกำลังมองหาการจัดกลุ่ม / ผสานโหนดในกราฟโดยใช้การจัดกลุ่มกราฟใน 'r' นี่คือรูปแบบของเล่นที่น่าทึ่งของปัญหาของฉัน มี "กลุ่ม" สอง มี "สะพาน" เชื่อมต่อกับกลุ่ม นี่คือเครือข่ายผู้สมัคร: เมื่อฉันดูระยะการเชื่อมต่อ "hopcount" ถ้าคุณต้องการฉันจะได้เมทริกซ์ต่อไปนี้: mymatrix <- rbind( c(1,1,2,3,3,3,2,1,1,1), c(1,1,1,2,2,2,1,1,1,1), c(2,1,1,1,1,1,1,1,2,2), c(3,2,1,1,1,1,1,2,3,3), c(3,2,1,1,1,1,1,2,3,3), c(3,2,1,1,1,1,1,2,2,2), c(2,1,1,1,1,1,1,1,2,2), c(1,1,1,2,2,2,1,1,1,1), c(1,1,2,3,3,2,2,1,1,1), c(1,1,2,3,3,2,2,1,1,1)) ความคิดที่นี่: โชคหรือเนื่องจากความเรียบง่ายของของเล่นเมทริกซ์มีแพทช์ที่เห็นได้ชัดนี่ไม่ใช่กรณีในเมทริกซ์ (ใหญ่มาก) ถ้าฉันสุ่มความสัมพันธ์ระหว่างจุดกับแถวมันจะไม่สะอาด ฉันอาจจะผิดหนึ่ง - ดังนั้นถ้าฉันพิมพ์ผิดแจ้งให้ฉันทราบ Hop-count ที่นี่คือจำนวน hops ที่สั้นที่สุดเพื่อเชื่อมต่อจุดบนแถว i กับจุดบนคอลัมน์ j การกระโดดด้วยตัวเองยังคงเป็นการกระโดดดังนั้นเส้นทแยงมุมจึงเป็นเส้นโค้งทั้งหมด ดังนั้นในเมทริกซ์นี้ระยะทางที่มากขึ้น (ฮ็อพ) มีจำนวนมาก ถ้าฉันต้องการเมทริกซ์ที่แสดง "การเชื่อมต่อ" แทนระยะทางฉันสามารถทำ dot-inverse …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.