使用数据集噪声平滑曲线:实用指南
噪声数据集的平滑曲线是数据分析中的常见挑战。为了解决这个问题,考虑一个由于噪声而有 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