2014-11-24 2 views
3

Я использую pandas.DataFrame.resample, чтобы перепрограммировать случайные события до 1-часовых интервалов и вижу очень стохастические результаты, которые, похоже, не уходят, если я увеличиваю интервал до 2 или 4 часов. Это заставляет меня задаться вопросом, имеет ли Pandas какой-либо метод для создания сглаженного ядра плотности, такого как метод плотности ядра Гаусса, с регулируемой шириной полосы для управления сглаживанием. Я ничего не вижу в документации, но думал, что отправлю сюда, прежде чем публиковать на сервере разработчиков, поскольку это их предпочтение. Scikit-Learn имеет precisely the Gaussian kernel density function that I want, поэтому я постараюсь использовать его, но это было бы фантастическим дополнением к Pandas.Сглаживание плотности ядра Gaussian для pandas.DataFrame.resample?

Любая помощь очень ценится!

hourly[0][344:468].plot() 

enter image description here

ответ

2

Я обнаружил, что это опция доступна в pandas.stats.moments.ewma и она работает достаточно хорошо. Вот результаты:

from pandas.stats.moments import ewma 

hourly[0][344:468].plot(style='b') 
ewma(hourly[0][344:468], span=35).plot(style='k') 

enter image description here

+2

экспоненциальное взвешенное скользящее среднее в режиме реального время (только ретроспективный фильтр), и это не то же самое, что и Гауссово ядром, которое мнимое время (смотрит вперед и назад). – kb0

3

Панды имеет возможность применять агрегацию через катящийся окно. Параметр win_type управляет формой окна. Параметр center может быть установлен для того, чтобы метки были установлены в центре окна вместо правого края. Для гауссова сглаживания:

hrly = pd.Series(hourly[0][344:468]) 
smooth = hrly.rolling(window=5, win_type='gaussian', center=True).mean(std=0.5) 

http://pandas.pydata.org/pandas-docs/stable/computation.html#rolling

 Смежные вопросы

  • Нет связанных вопросов^_^