我正在尋找一個「方法」來得到一個公式,它來自擬合一組數據(3000點)。我使用的是勒讓德多項式,但對於> 20點,它給出的不是確切的值。我可以編寫chi2測試,但算法需要花費大量時間來計算N個參數,並且在開始時我不知道函數的外觀如何,因此需要時間。我在想花鍵...也許...大型數據集,插值
所以輸入爲:3000品脫
輸出:F(X)= ...的東西
我想有從擬合公式。什麼是在Python中做到這一點的最佳方式?
讓力量與我們同在! Nykon
我正在尋找一個「方法」來得到一個公式,它來自擬合一組數據(3000點)。我使用的是勒讓德多項式,但對於> 20點,它給出的不是確切的值。我可以編寫chi2測試,但算法需要花費大量時間來計算N個參數,並且在開始時我不知道函數的外觀如何,因此需要時間。我在想花鍵...也許...大型數據集,插值
所以輸入爲:3000品脫
輸出:F(X)= ...的東西
我想有從擬合公式。什麼是在Python中做到這一點的最佳方式?
讓力量與我們同在! Nykon
如何多項式擬合:
http://docs.scipy.org/doc/numpy/reference/generated/numpy.polyfit.html
或一些其他插值方案:
http://docs.scipy.org/doc/scipy/reference/tutorial/interpolate.html
這是很難推薦一個合適的方法,無需更多地瞭解數據集還有一些關於如何合適的要求。
唯一的公式將是階多項式3000
有多麼出色的配合需要呢?你期望什麼類型的配方?
除了樣條不會給你一個「公式」,至少除非你有必要處理所有分段段。即使那樣,它也不會輕易寫下來,或者給你任何可看的東西。
一個簡單樣條給你一個插值。更糟糕的是,對於3000個點,插值樣條線會給你大致那麼多的立方塊!你之前說過插值。當然,這個高階的插值多項式無論如何都是完整的,所以不要以爲你可以回到那裏。
如果你需要的只是一個可以在任何點提供精確插值的工具,而且你不需要明確的公式,那麼插值樣條是一個不錯的選擇。
或者你真的想要一個近似值?一個功能,將近似適合您的數據,平滑任何噪音?事實是,很多時候,不知道自己在做什麼的人說的是「插值」,他們確實意味着近似,平滑。當然,這是可能的,但是關於曲線擬合的主題是經驗數據的建模。你的第一個目標就是選擇一個智能模型,它將代表這些數據。當然,最好的情況是,如果你通過物理理解研究中的關係來進行模型的智能選擇,那麼你可以使用非線性迴歸方案來估計該模型的參數,其中有很多可以找到的參數。
如果您沒有模型,並且不願意選擇一個大致具有適當形狀的模型,那麼您將留下具有樣條線形式的泛型模型,這些模型可以用迴歸方法擬合,也可以用高階多項式模型,我對此沒有多少尊重。
我的觀點是你需要做出一些選擇,並對模型的選擇做一些研究。
您可以對您的觀察點進行採樣(隨機最好),並對此樣本擬合一個三次樣條(如果重複此過程,則可以創建樣條曲線的分佈)。將樣條擬合到3000點有點多,但是根據樣本生成樣條的分佈可以讓您瞭解該函數的外觀。正如Josh上面提到的,http://docs.scipy.org/doc/scipy/reference/tutorial/interpolate.html是開始搜索的好地方。
我同意Josh在他的回答中的評論:沒有看到數據的散點圖,很難提出數據擬合策略,更不用說Python中的實現。 – las3rjock 2011-02-16 21:04:33