金融風控競賽筆記3 特徵工程

2021-10-09 15:12:57 字數 1707 閱讀 1007

首先查詢出資料中的物件特徵和數值特徵

然後填充缺失值:在比賽中不妨嘗試多種填充然後比較結果選擇結果最優的一種

缺失值的填充方法

把所有缺失值替換為指定的值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」:

s = '10 years'

n = np.int8(s.split()[0])

處理「sep-2002」,則是取後四位的整數。

類別特徵處理

像等級這種類別特徵,是有優先順序的可以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借款的流程來說,借款...