使用資料集雜訊平滑曲線:實用指南
雜訊資料集的平滑曲線是資料分析中的常見挑戰。為了解決這個問題,考慮一個由於雜訊而有 20% 變化的資料集:
import numpy as np x = np.linspace(0, 2*np.pi, 100) y = np.sin(x) + np.random.random(100) * 0.2
對於這種情況,Savitzky-Golay 濾波器是一個有效的選擇。此濾波器的工作原理是將多項式擬合到資料點窗口,並使用多項式來估計窗口中心的值。然後視窗沿著資料移動,重複該過程,得到平滑的曲線。
以下是如何在Python 中實作Savitzky-Golay 過濾器:
<code class="python">import numpy as np import matplotlib.pyplot as plt</code>
<code class="python">yhat = savgol_filter(y, 51, 3) # window size 51, polynomial order 3</code>
<code class="python">plt.plot(x, y) plt.plot(x, yhat, color='red') plt.show()</code>
產生的曲線將比原始曲線更平滑,同時仍保留基礎訊號。
注意:如果您沒有savgol_filter 功能可用,您可以使用以下命令安裝它:
pip install scipy
以上是處理雜訊資料集時如何有效平滑曲線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!