Сглаживание кривых с помощью шума набора данных: практическое руководство
Сглаживание кривых для зашумленных наборов данных — распространенная задача при анализе данных. Чтобы решить эту проблему, рассмотрим набор данных с отклонением 20 % из-за шума:
import numpy as np x = np.linspace(0, 2*np.pi, 100) y = np.sin(x) np.random.random(100) * 0.2
В этой ситуации фильтр Савицкого-Голея является эффективным выбором. Этот фильтр работает путем подгонки полинома к окну точек данных и использования полинома для оценки значения в центре окна. Затем окно смещается вдоль данных, и процесс повторяется, в результате чего получается сглаженная кривая.
Вот как реализовать фильтр Савицкого-Голея в Python:
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