有關於指數的曲線的一個問題,但我沒有找到如何建立一個功率曲線擬合,像這樣的任何材料:如何在Python中進行功率曲線擬合?
y = a*x^b
有一種方法在Excel中做到這一點,但它可能在Python?
有關於指數的曲線的一個問題,但我沒有找到如何建立一個功率曲線擬合,像這樣的任何材料:如何在Python中進行功率曲線擬合?
y = a*x^b
有一種方法在Excel中做到這一點,但它可能在Python?
如果你做了一個簡單的轉換,你可以應用通常的最小二乘迴歸。
代替此方程:
y = a*x^b
取兩側的自然對數:
ln(y) = ln(a*x^b) = ln(a) + ln(x^b) = ln(a) + b*ln(x)
這是[ln(x), ln(y)]
線性方程與斜率b
和截距ln(a)
。
您可以使用適用於轉換數據的開箱即用最小二乘法。
不錯,現在我明白了,我應該將原始方程修改爲線性方程。這就說得通了! –
只要採取對數:
y = ax^b
log(y) = log(a) + b*log(x)
並使用一個線性擬合的一對log(x)
和log(y)
。這將導致斜線b
和截距log(a)
,只需取指數即可獲得參數a
。
對不起,我想duffymo是第一個。你的答案雖然有效。 –
這裏有一些很好的示例代碼:: http://scikit-learn.org/stable/auto_examples/linear_model/plot_polynomial_interpolation.html – kpie
你提供的示例是多項式的,而不是功率,不完全是我正在尋找的東西對於。 –