如何在C/C++中實施最小二乘迴歸因子分析?C/C++中的最小二乘迴歸問題
回答
這個黃金標準是LAPACK。你想要的,特別是,xGELS
。
這是一個FORTRAN解決方案,雖然很好。然而,這一點是有效的,因爲現有的庫和統計軟件包比使用自己的庫更容易使用。 – captncraig 2010-02-04 06:00:10
@Captn:有LAPACK的C/C++端口。 KennyTM說什麼? – kennytm 2010-02-04 06:02:40
大多數提供LAPACK的平臺也提供C接口。 – 2010-02-04 15:29:37
當我不得不處理大數據集和大參數集用於非線性參數擬合時,我使用了RANSAC和Levenberg-Marquardt的組合。我正在談論成千上萬個數據點的數千個參數。
RANSAC是一種可靠的算法,用於通過使用簡化數據集來最小化異常值造成的噪音。它不是嚴格的最小二乘法,但可以應用於許多擬合方法。
Levenberg-Marquardt是一種非常有效的解決非線性最小二乘數值的方法。 大多數情況下的收斂速度在最速下降和牛頓法之間,不需要計算二階導數。我發現它在我檢查過的案例中比共軛梯度更快。
我這樣做的方法是在LM方法周圍設置RANSAC外環。這非常強大但很慢。如果你不需要額外的健壯性,你可以使用LM。
看起來像dmckee提到的GSL庫支持Levenberg-Marquardt。如果你想要走這條路線,這將是一個很好的起點。我認爲GSL可能因其GPL許可證而無法使用。 – 2010-02-04 06:30:43
+1提到RANSAC,因爲它是一個漂亮的算法,沒有得到它所接受的曝光度 – Kena 2010-02-05 15:04:42
如果你想自己實現一個優化算法Levenberg-Marquard似乎很難實現。如果不需要真正的快速收斂,請查看Nelder-Mead單純形優化算法。它可以在幾個小時內從頭開始實施。
我使用TNT/JAMA線性最小二乘估計。這不是很複雜,但相當快捷+容易。
- 1. 計算y_pred最小二乘迴歸(R)?
- 2. 稀疏最小二乘迴歸
- 3. 用Numpy最小二乘迴歸矩陣
- 4. 最小但快速的加權 - 最小二乘迴歸
- 5. scipy最小二乘法中的正交回歸擬合
- 6. 一個命令中有多個最小二乘線性迴歸?
- 7. 在java中求解最小二乘迴歸
- 8. MATLAB實現的靈活最小二乘(FLS)迴歸
- 9. 繪製偏最小二乘迴歸(PLSR)雙標圖與GGPLOT2
- 10. 在R中的最小二乘迴歸圖中繪製垂直偏移圖
- 11. 最小二乘:Python的
- 12. 如何獲得MATLAB中最小二乘迴歸直線的斜率和截距?
- 13. 如何在SPSS中運行具有滯後的廣義最小二乘迴歸
- 14. 如何在插入符中使用stats :: nls非線性最小二乘迴歸?
- 15. 廣播lstsq(最小二乘)
- 16. 最小二乘方表示
- 17. 最小二乘C#庫
- 18. 最小二乘法3D
- 19. Octave中的魯棒最小二乘法
- 20. R中的兩級最小二乘法
- 21. matlab中的最小二乘svm
- 22. 遞歸最小二乘(RLS)算法的複雜性
- 23. 帶有生物反應變量的兩階段最小二乘迴歸
- 24. 求解非負最小二乘問題「xA = b」
- 25. 最小化MATLAB中公式的誤差(最小二乘?)
- 26. 乘法迴歸
- 27. 使用普通最小二乘(OLS)
- 28. 約束最小二乘在python
- 29. SPSS和普通最小二乘法
- 30. 求解最小二乘使用MATLAB
你是什麼意思的「實施」?你是在尋找一個現有的軟件包嗎?或者你是否正在嘗試爲一個應用程序編寫一些軟件,而不需要額外的功能(例如作業分配)? – gary 2010-02-10 19:16:51