Trick 機器學習特徵工程處理(一)

2021-08-15 02:58:48 字數 1257 閱讀 2692

儲存格式

(一)時間戳/時間段/時間記錄標準

對於同類屬性,比如時間屬性,表達形式不同,但要採取同樣的記錄格式,一般來講,通過網路爬蟲爬取的web資料,通常這類屬性較為整齊,不需要做過多的處理,但生成或人工記錄的資料,可能會出現不同差異,比如時間屬性的記錄,像r語言本身會以2023年1月1日00:00作為時間戳記錄現在時間距離上述時間的秒數,而認為設定的時間記錄標準可能為:年-月-日、月-日-年、按星期記錄、12小時制(am、pm)、24小時制等等,當這類資料生成之後,處理時候就會非常麻煩,解決這類資料的最好方法就是扼殺在萌芽之中,即同乙個專案,盡量採取相同的相似屬性記錄方式,這樣,在以後的屬性轉換、預處理中都會極大的簡化處理過程。

(二)行為記錄/行為群記錄

這個好理解,就是單個屬性的多個行為記錄,要麼分條列出來,要麼整體列出來,舉個例子,我再之前進行資料爬取時,

這部分在之前的那個部落格中介紹的非常詳細,其中涉及很多清洗方法。

在實際的建模過程中,經常會遇到需要進行資料取樣的問題,很多情況下正負樣本是不均衡的,比如電商中使用者購買/未購買過的商品;電信使用者中流失/保留的使用者量等等,大多數模型對正負樣本的量是敏感的,比如lr,如果不進行樣本取樣,就會嚴重影響模型效果。

資料不均勻問題很常見,也很容易被忽視掉,資料不均勻會導致模型精度下降,需要重視,假設有乙個資料集,是乙個二分類資料集,包含的正負樣本的比例為10:1,可以採用如下中的一種進行處理:

(1)從正樣本中隨機抽取十分之一與負樣本組成訓練集。這種情況需要注意:一定要保證是在資料量足夠大的情況下,如果資料本身就很少,這樣做反而會更加麻煩。

(2)賦予負樣本十倍於正樣本權重。由於負樣本比較少,這時增加負樣本權重,會彌補由於負樣本數量少帶來的影響。

(3)將負樣本資料額外複製9份,並新增極小雜訊。

下面是乙個例項介紹資料不均勻會帶來的影響,可能有點極端,但用來解釋這個問題很合適。資料集:正樣本:9900個,負樣本100個,合計10000個樣本點,用來進行二分類研究,如果直接進行建模,可能出現的一種情況是:模型將所有輸入都**為正樣本,最終依舊會得到很高(99%)的準確率,而對於負樣本的召回率為0,如果只是對模型精度進行判斷根本檢查不出異常,但這樣的模型又是萬萬不能在實際中應用的。

總結一下樣本不平衡的處理方法:

(1)正樣本》負樣本,並且樣本量比較大的情況下,進行下取樣。

(2)正樣本》負樣本,並且樣本量都不大的情況下:

a)增加資料

b)下取樣,如深度學習中的影象旋轉

c)修改損失函式

roguesir的部落格:資料預處理的常用方法

機器學習 特徵工程 特徵預處理

定義 將原始資料轉換為更好地代表 模型的潛在問題的特徵的過程,從而提高了對未知資料的 準確性。內容 主要有三部分 1 特徵抽取 2 特徵預處理 3 資料的降維 特徵預處理 通過特定的統計方法 數學方法 將資料轉換成演算法要求的資料。1 包含內容 2 sklearn特徵處理api sklearn.pr...

機器學習特徵工程之特徵預處理

通過特定的統計方法 數學方法 講資料轉換成演算法要求的資料。數值型資料 歸一化標準化 缺失值類別型資料 one hot編碼 時間型別 時間的切分 在對資料進行異常值 缺失值 資料轉換等處理後,我們需要從當前資料集中選出有意義的特徵,然後輸入到演算法模型中進行訓練。對資料集進行特徵選擇主要基於以下幾方...

機器學習 特徵工程

老師有多年的網際網路從業經驗,所以講解的過程中結合了很多任務業界的應用,更加的深入淺出。資料採集 資料採集前需要明確採集哪些資料,一般的思路為 哪些資料對最後的結果 有幫助?資料我們能夠採集到嗎?線上實時計算的時候獲取是否快捷?舉例1 我現在要 使用者對商品的下單情況,或者我要給使用者做商品推薦,那...