使用資料集雜訊平滑曲線:實用指南
雜訊資料集的平滑曲線是資料分析中的常見挑戰。為了解決這個問題,考慮一個由於雜訊而有 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 濾波器的方法:
import numpy as np
import matplotlib.pyplot as plt
yhat = savgol_filter(y, 51, 3) # window size 51, polynomial order 3
plt.plot(x, y)
plt.plot(x, yhat, color='red')
plt.show()
產生的曲線將比原始曲線更平滑,同時仍保留底層訊號。
注意:如果您沒有 savgol_filter 函數可用,您可以使用以下命令安裝它:
pip install scipy
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3