平滑資料集的曲線:探索替代方法
為了有效地平滑帶有雜訊的資料集的曲線,可以採用多種方法。本文探討了常用 UnivariateSpline 函數以外的選項。
Savitzky-Golay 濾波器
建議的替代方案是 Savitzky-Golay 濾波器,它利用多項式迴歸來估計資料移動多項式視窗內的點。此濾波器可以有效地解決雜訊訊號,即使是來自非線性或非週期性來源的雜訊訊號。
使用SciPy 在Python 中實現
在Python 中實現Savitzky-Golay 濾波器使用SciPy,請按照以下步驟操作:
<code class="python">import numpy as np from scipy.signal import savgol_filter # Define x and y data x = np.linspace(0, 2*np.pi, 100) y = np.sin(x) + np.random.random(100) * 0.2 # Apply the Savitzky-Golay filter yhat = savgol_filter(y, 51, 3) # Window size 51, polynomial order 3 # Plot the data plt.plot(x, y) plt.plot(x, yhat, color='red') plt.show()</code>
其他方法
雖然Savitzky-Golay 過濾器是一種廣泛適用的解決方案,但值得考慮其他技術:
結論
如圖所示,Savitzky-Golay 濾波器提供了一種平滑資料集曲線的有效方法,特別是在有噪音的情況下。根據具體資料特徵,其他方法也可能適用。透過考慮每種技術的優缺點,使用者可以選擇最適合其應用的方法。
以上是平滑雜訊資料集曲線的替代方法有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!