簡體   English   中英

pandas.DataFrame.resample 的高斯核密度平滑?

[英]Gaussian kernel density smoothing for pandas.DataFrame.resample?

我正在使用pandas.DataFrame.resample將隨機事件重新采樣到 1 小時的間隔,並且看到非常隨機的結果,如果我將間隔增加到 2 或 4 小時,這些結果似乎不會消失。 這讓我想知道 Pandas 是否有任何類型的方法來生成平滑的密度內核,如具有可調帶寬的高斯內核密度方法來控制平滑。 我沒有在文檔中看到任何內容,但我想我會在發布到開發人員列表服務器之前先在這里發布,因為這是他們的偏好。 Scikit-Learn恰好具有我想要的高斯核密度函數,因此我將嘗試使用它,但這將是對 Pandas 的絕佳補充。

任何幫助是極大的贊賞!

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

在此處輸入圖片說明

Pandas 能夠在滾動窗口上應用聚合。 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

我現在發現這個選項在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')

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM