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