資料探勘比賽之「滑窗法」

2021-08-15 14:01:12 字數 2299 閱讀 1804

作為參加資料比賽已經有8個月的一名新人,最近閱讀了幾位kaggle maser開源的**,發現其中有一些有意思的內容,記錄一些對於這些問題的思考。

一:問題描述

題目中涉及到嚴格的時間概念,例如:**未來n天的流量(**,銷售等),**未來n天內的使用者-物件對(使用者-商品等)的問題等,都可以利用滑窗法解決。諸如類似形式的問題,尤其是要有嚴格的時間概念的問題。

二:基本方法

假設:題目描述為**未來n天的流量資訊,其中n的取值為大於等於1。基本諸如此種問題,題目會給出前x天的詳細資訊。這樣,我們就知道,其完整的資料為 x+n 的形式,其中 n 是需要我們**的部分,其真實值未知。

具體題目:recruit-restaurant-visitor-forecasting

通過機器學習的方法解決此類問題,需要構造與問題描述類似的樣本格式。

我們需要在 x 中構造出與 x+n 格式一致的樣本,這種情況下,切分x為兩個部分,[x-m,m],其中m=n的長度。這樣,就擁有了帶有標籤的資料,其中m是我們線下**的部分其本質是符合線上的n的部分,而x-m類似於在[x,n]中的x部分。

線上**部分:[x,n]

線下模擬部分:[x-m,m]

在這種情況下,由於僅僅劃分了一部分的x為線下模擬部分,其資料量太小。因此,我們可以通過 滑窗法 增加更大部分的樣本,以覆蓋盡可能多的資料達到能夠讓我們的模型學習到更多的情況。

我們對於x-m進一步分割為 [x-m-l,l] 其中l=m=n

現在的資料格式

線上**部分:[x,n]

線下模擬部分:[x-m,m],[x-m-l,l]

通過一次又一次的對資料的形式劃分,可以得到充足的資料。

其中,對於l,m,n其數值也可以不等。

例如n=39,l=28,n=14,這種情況下,針對具體問題,需要通過驗證的方式去除錯。

劃分好了類似的資料,這樣我們需要明確哪些資料可以進行統計,同時也要知道那些資料作為需要**的y。

回顧問題,我們要**n,那麼n天內的銷量就是我們待**y_pred,這樣我們已經線下劃分了不同的子區間,那麼根據對應關係,其m就可以提取出真實的y,而在x-m對應於在[x,n]區間的x,這個部分可以盡情的做資料的統計。

普遍在**實現時,在[x-m,m]區間中,我們會首先提取m中的真實值y和唯一標識id,之後再x-m中不停的統計,最後通過唯一標識id拼接到這個m中。

這樣就把[x-m,m]轉化為乙個帶有y的data。

梳理一下最後的結果

[x,n]最後為不帶y的data,

[x-m,m]帶有y的data,

[x-m-l,l]帶有y的data.

假設我們提取了很多資料,我們可以自己劃分train,valid

train 為

val 為 [x-m,m]

之後可以通過模型訓練並進行對[x,n]的**。

特徵的提取需要結合具體題目,沒有一定的套式。

諸如此種方式逐步可以增加更多的資料,其資料基本格式模擬線上的基本形式。 

這個問題可以通過乙個假設,假設人為定義乙個長度14天+1天的視窗,將視窗的最後乙個位置標記為紅色,前面14個位置標記為藍色。這樣,我們可以在資料上移動這個視窗,隨意停到乙個位置,都會有14個藍色和1個紅色,這樣紅色的部分認為是需要**的部分,14個藍色的部分認為是構造歷史特徵的部分。當然,這14個藍色的歷史特徵部分,也可以繼續劃分為距離紅色的格仔前1天,3天,5天這樣的統計特徵,還可以細化在某種條件下的特徵構建等。

例如,剛剛結束的天池,杭州地鐵**,這種方法可以構造出許多樣本,進行訓練和**。詳情,可以方位天池大資料官網。

三:u-i-rank問題

假設:某寶購物平台要**一天的使用者購買情況,這種情況下也是乙個和時間有關的問題,不過這個問題中,我們既要**使用者買不買,同時也要**買啥。

問題轉換:這個問題,我們可以同時提取user-item對,轉化為使用者-產品對的形式,理解為:將user-item作為唯一標識,最終選擇user-item**概率最大的topn作為結果。

注意:這類問題可以建立為兩個模型,當你選擇好歷史行為區間和目標**區間後,可以構造出u-i**和u**兩個情況,分別**使用者是否購買和使用者是否購買這個商品等。

關於天池新人賽的題目在csdn上面有很多人分享了思路,可以作為參考。

四:總結

對比以上所說的兩類問題,都是和時間有密切關係且都是**未來n天的一些label值,都可以採取這類方式做最基本的處理。

這裡簡單描述了針對時間嚴格的問題的一種方案,我也是初學者,如有不足或者問題,請指出。

c語言 滑窗法 滑窗演算法

滑窗演算法 與跳窗演算法 類似,滑窗 moving window 演算法也是通過限制各個時間視窗內所能接 收的最大信元數對業務量進行控制。區別是,在滑窗演算法中,時間視窗不是向前跳,而 是每過乙個信元時間向前滑動一次,滑動的長度是乙個信元的時間。以下是幾種 upc演算法。信元一旦被 upc判定是違約...

資料探勘 筆記 閱讀之資料探勘比賽基本流程

乾貨 kaggle 資料探勘比賽經驗分享 資料分析,資料清洗,特徵工程,模型訓練和驗證等四個大的模組 離散值 目標變數的分布 離散值 某個id上面不平衡 變數之間的分布和相關度,發現高相關和共線性的特徵 預處理 特徵缺失值的處理 連續值 偏正態分佈用均值代替,保持資料均值 長尾分布用中值代替,避免受...

c語言 滑窗法 滑動視窗濾波演算法

滑動視窗協議 在tcp通訊中的一種流量控制協議。先握手確定每次發2條記錄,在網路擁堵時,接收方反饋調整接收的大小,傳送方按照這個新調整的大小來發資料。滑動 遞推 平均演算法 維護一定長佇列,每在隊尾插入乙個元素就在佇列頭部刪除乙個元素,然後對其求出均值。滑動視窗濾波演算法 方法一 前提先要獲得一組資...