首先查詢出資料中的物件特徵和數值特徵
然後填充缺失值:在比賽中不妨嘗試多種填充然後比較結果選擇結果最優的一種
缺失值的填充方法
把所有缺失值替換為指定的值0
向用缺失值上面的值替換缺失值
data_train = data_train.fillna(axis=0,method='ffill')
縱向用缺失值下面的值替換缺失值,且設定最多隻填充兩個連續的缺失值
data_train = data_train.fillna(axis=0,method='bfill',limit=2)
用平均數替換數值型,用眾數替換類別型
處理類別型變數
時間格式的處理:pd.to_datetime()
「10 years」 變成 「10.0」:
處理「sep-2002」,則是取後四位的整數。s = '10 years'
n = np.int8(s.split()[0])
類別特徵處理
像等級這種類別特徵,是有優先順序的可以labelencode或者自對映
型別數在2之上,又不是高維稀疏的,且純分類特徵,直接使用get_dummies()
當你發現異常值後,一定要先分清是什麼原因導致的異常值,然後再考慮如何處理。首先,如果這一異常值並不代表一種規律性的,而是極其偶然的現象,或者說你並不想研究這種偶然的現象,這時可以將其刪除。其次,如果異常值存在且代表了一種真實存在的現象,那就不能隨便刪除。
檢測方法:
均方差:三個標準差範圍外的(>m+3d或者boxplots(箱型圖)
得到特徵的異常值後可以進一步分析變數異常值和目標變數的關係
最後將異常值刪除data_train = data_train.copy()
for fea in numerical_fea:
data_train = find_outliers_by_3segama(data_train,fea)
print(data_train[fea+'_outliers'].value_counts())
print(data_train.groupby(fea+'_outliers')['isdefault'].sum())
print('*'*10)
從模型效果上來看,特徵分箱主要是為了降低變數的複雜性,減少變數噪音對模型的影響,提高自變數和因變數的相關度。從而使模型更加穩定。
如何分箱?
將連續變數離散化
將多狀態的離散變數合併成少狀態
分箱還有很多其他優點。
基本原則:
(1)最小分箱佔比不低於5%
(2)箱內不能全部是好客戶
(3)連續箱單調
具體方法:
固定寬度分箱
分位數分箱
卡方分箱
互動特徵的構造非常簡單,使用起來卻代價不菲。如果線性模型中包含有互動特徵對,那它的訓練時間和評分時間就會從 o(n) 增加到 o(n2),其中 n 是單一特徵的數量。
跟get_dummies有什麼區別?
特徵選擇的方法:
總結:官方給出的解釋太少了,相當一部分**沒有看懂。
本文基於
金融風控學習筆記 5
stacking模型本質上是一種分層的結構,這裡簡單起見,只分析二級stacking。假設我們有3個基模型m1 m2 m3。基模型m1,對訓練集train訓練,然後用於 train和test的標籤列,將 的訓練集和測試集的結果 即 出的y 分別作為p1,t1 對於m2和m3,重複相同的工作,這樣也得...
金融風控專案
一 問題定義 金融的核心是風險控制。自然而然地,ai的主戰場也變成了如何使用ai技術精準的做風險控制。在風控領域,有乙個很重要的問題是 如何通過使用者的資訊來判斷使用者的逾期與否?我們通過收集使用者的基本資訊 地域資訊 社交資訊等來判斷乙個人的逾期概率。資料如下 二 roc與auc 特徵工程 第一 ...
金融風控模型
工作中暫時未涉及。此處為有幸得到的ppt。記錄學習內容,還有些心得,有錯誤請指出,感激 什麼是欺詐風險 網路借款人是否是本人 網路借款人提交的資料是否真實 什麼是信用風險 網路借款人是否有還款的能力 是否是沒有還款意願的老賴,多次違約 貸款公司如何防範以上兩種風險 針對乙個p2p借款的流程來說,借款...