使用手工特征提升模型性能
通過(guò)對(duì)原始數(shù)據(jù)進(jìn)行手工的特征工程,我們可以將模型的準(zhǔn)確性和性能提升到新的水平,為更精確的預(yù)測(cè)和更明智的業(yè)務(wù)決策鋪平道路, 可以以前所未有的方式優(yōu)化模型并提升業(yè)務(wù)能力。
原始數(shù)據(jù)就像一個(gè)沒(méi)有圖片的拼圖游戲——但通過(guò)特征工程,我們可以將這些碎片拼在一起,雖然擁有大量數(shù)據(jù)確實(shí)是尋求建立機(jī)器學(xué)習(xí)模型的金融機(jī)構(gòu)的寶庫(kù),但同樣重要的是要承認(rèn)并非所有數(shù)據(jù)都提供信息。并且手工特征是人工設(shè)計(jì)出來(lái),每一步操作能夠說(shuō)出理由,也帶來(lái)了可解釋性。
特征工程不僅僅是選擇最好的特征。它還涉及減少數(shù)據(jù)中的噪音和冗余,以提高模型的泛化能力。這是至關(guān)重要的,因?yàn)槟P托枰诳床灰?jiàn)的數(shù)據(jù)上表現(xiàn)良好才能真正有用。
數(shù)據(jù)集描述
本文中描述的數(shù)據(jù)集經(jīng)過(guò)匿名處理和屏蔽,以維護(hù)客戶數(shù)據(jù)的機(jī)密性。特征可分類如下:
總共有 100 個(gè)整數(shù)特征和 100 個(gè)浮點(diǎn)特征代表過(guò)去 12 個(gè)月客戶的狀態(tài)。該數(shù)據(jù)集包含有關(guān)客戶報(bào)表的信息,從 1 到 13 不等??蛻舻拿繌埿庞每▓?bào)表之間可能有 30 到 180 天的間隔(即客戶的信用卡報(bào)表可能缺失)。每個(gè)客戶都由一個(gè)客戶 ID 表示。customer_ID=0的客戶前5條的樣本數(shù)據(jù)如下所示:
在 700 萬(wàn)個(gè) customer_ID 中,98% 的標(biāo)簽為“0”(好客戶,無(wú)默認(rèn)),2% 的標(biāo)簽為“1”(壞客戶,默認(rèn))。
數(shù)據(jù)集很大,所以我們使用cudf來(lái)加速處理,如果你沒(méi)有安裝cudf,那么使用pandas也是一樣的
特征生成方法
有數(shù)百種想法可用于生成特征;但是我們還確保這些特征有助于提高模型的性能,下圖顯示了特征工程中使用的一些基本方法:
聚合特征
聚合是理解復(fù)雜數(shù)據(jù)的秘訣。通過(guò)計(jì)算分類分組變量(如 customer_ID (C_ID) 或產(chǎn)品類別)的匯總統(tǒng)計(jì)數(shù)據(jù)或數(shù)值變量的聚合,我們可以發(fā)現(xiàn)一些不可見(jiàn)的模式和趨勢(shì)。借助均值、最大值、最小值、標(biāo)準(zhǔn)差和中值等匯總統(tǒng)計(jì)數(shù)據(jù),我們可以構(gòu)建更準(zhǔn)確的預(yù)測(cè)模型,并從客戶數(shù)據(jù)、交易數(shù)據(jù)或任何其他數(shù)值數(shù)據(jù)中提取有意義的見(jiàn)解。
可以計(jì)算每個(gè)客戶的這些統(tǒng)計(jì)屬性
均值:一個(gè)數(shù)值變量的平均值,可以給出數(shù)據(jù)集中趨勢(shì)的一般意義。平均值可以捕獲:
客戶擁有的平均銀行余額。
- 平均客戶支出。
- 兩個(gè)信用報(bào)表之間的平均時(shí)間(信用付款之間的時(shí)間)。
- 借錢的平均風(fēng)險(xiǎn)。
標(biāo)準(zhǔn)偏差 (Std):衡量數(shù)據(jù)圍繞均值的分布情況,可以深入了解數(shù)據(jù)的變異程度。余額的高度可變性表明客戶有消費(fèi)。
最小值和最大值可以捕獲客戶的財(cái)富,也可以捕獲有關(guān)客戶支出和風(fēng)險(xiǎn)的信息。
中位數(shù):當(dāng)數(shù)據(jù)高度傾斜時(shí),使用平均值并不是一個(gè)更好的主意,因此可以使用中值(可以使用數(shù)值的中間值。
最新值可能是最重要的特征,因?yàn)樗鼈儼嘘P(guān)發(fā)布給客戶的最新已知信用聲明的信息,也就表明目前客戶賬戶的最新?tīng)顟B(tài)。
獨(dú)熱編碼
對(duì)分類變量使用上述統(tǒng)計(jì)屬性是不明智的,因?yàn)橛?jì)算最小值、最大值或標(biāo)準(zhǔn)偏差并不能給我們?nèi)魏斡杏玫男畔ⅰD敲次覀儜?yīng)該怎么做呢?可以使用像count這樣的特征,和唯一的數(shù)量來(lái)計(jì)算特征,最新的值也可以使用
但是這些信息不會(huì)捕獲客戶是否被歸類到特定的類別中。所以我們通過(guò)對(duì)變量進(jìn)行獨(dú)熱編碼,然后對(duì)變量(例如均值、總和和最后)進(jìn)行聚合來(lái)實(shí)現(xiàn)。
平均值將捕獲客戶屬于該類別的總次數(shù)/銀行對(duì)帳單總數(shù)的比率??偤蛯⒅皇强蛻魧儆谠擃悇e的總次數(shù)。
基于排名的特征
在預(yù)測(cè)客戶行為方面,基于排名的特征是非常重要的。通過(guò)根據(jù)收入或支出等特定屬性對(duì)客戶進(jìn)行排名,我們可以深入了解他們的財(cái)務(wù)習(xí)慣并更好地管理風(fēng)險(xiǎn)。
使用 cudf 的 rank 函數(shù),我們可以輕松計(jì)算這些特征并使用它們來(lái)為預(yù)測(cè)提供信息。例如,可以根據(jù)客戶的消費(fèi)模式、債務(wù)收入比或信用評(píng)分對(duì)客戶進(jìn)行排名。然后這些特征可用于預(yù)測(cè)違約或識(shí)別有可能拖欠付款的客戶。
基于排名的特征還可用于識(shí)別高價(jià)值客戶、目標(biāo)營(yíng)銷工作和優(yōu)化貸款優(yōu)惠。例如,可以根據(jù)客戶接受貸款提議的可能性對(duì)客戶進(jìn)行排名,然后將排名最高的客戶作為目標(biāo)。
PCT用于是否做百分位排名??蛻舻呐琶部梢曰诜诸愄卣鱽?lái)計(jì)算。
特征組合
特征組合的一種流行方法是線性或非線性組合。這包括采用兩個(gè)或多個(gè)現(xiàn)有特征,將它們組合在一起創(chuàng)建一個(gè)新的復(fù)合特征。然后使用這個(gè)復(fù)合特征來(lái)識(shí)別單獨(dú)查看單個(gè)特征時(shí)可能不可見(jiàn)的模式、趨勢(shì)和相關(guān)性。
例如,假設(shè)我們正在分析客戶消費(fèi)習(xí)慣的數(shù)據(jù)集??梢詮膫€(gè)人特征開(kāi)始,比如年齡、收入和地點(diǎn)。但是通過(guò)以線性或非線性的方式組合這些特性,可以創(chuàng)建新的復(fù)合特性,使我們能夠更多地了解客戶??梢越Y(jié)合收入和位置來(lái)創(chuàng)建一個(gè)復(fù)合特征,該特征告訴我們某一地區(qū)客戶的平均支出。
但是并不是所有的特征組合都有用。關(guān)鍵是要確定哪些組合與試圖解決的問(wèn)題最相關(guān),這需要對(duì)數(shù)據(jù)和問(wèn)題領(lǐng)域有深刻的理解,并仔細(xì)分析創(chuàng)建的復(fù)合特征和試圖預(yù)測(cè)的目標(biāo)變量之間的相關(guān)性。
下圖展示了一個(gè)組合特征并將信息用于模型的過(guò)程。作為篩選條件,這里只選擇那些與目標(biāo)相關(guān)性大于最大值 0.9 的特征。
基于時(shí)間/日期的特征
在數(shù)據(jù)分析方面,基于時(shí)間的特征非常重要。通過(guò)根據(jù)時(shí)間屬性(例如月份或星期幾)對(duì)數(shù)據(jù)進(jìn)行分組,可以創(chuàng)建強(qiáng)大的特征。這些特征的范圍可以從簡(jiǎn)單的平均值(如收入和支出)到更復(fù)雜的屬性(如信用評(píng)分隨時(shí)間的變化)。
借助基于時(shí)間的特征,還可以識(shí)別在孤立地查看數(shù)據(jù)時(shí)可能看不到的模式和趨勢(shì)。下圖演示了如何使用基于時(shí)間的特征來(lái)創(chuàng)建有用的復(fù)合屬性。
首先,計(jì)算一個(gè)月內(nèi)的值的平均值(可以使用該月的某天或該月的某周等),將獲得的DF與原始數(shù)據(jù)合并,并取各個(gè)特征之間的差。
還可以通過(guò)使用時(shí)間作為分組變量來(lái)創(chuàng)建基于排名的特征,如下所示
滯后特征
滯后特征是有效預(yù)測(cè)金融數(shù)據(jù)的重要工具。這些特征包括計(jì)算時(shí)間序列中當(dāng)前值與之前值之間的差值。通過(guò)將滯后特征納入分析,可以更好地理解數(shù)據(jù)中的模式和趨勢(shì),并做出更準(zhǔn)確的預(yù)測(cè)。
如果滯后特征顯示客戶連續(xù)幾個(gè)月按時(shí)支付信用卡賬單,可能會(huì)預(yù)測(cè)他們將來(lái)不太可能違約。相反,如果延遲特征顯示客戶一直延遲或錯(cuò)過(guò)付款,可能會(huì)預(yù)測(cè)他們更有可能違約。
基于滾動(dòng)窗口的特性
這些特征只是取最后3(4,5,…x)值的平均值,這取決于數(shù)據(jù),因?yàn)榛跁r(shí)間的最新值攜帶了關(guān)于客戶最新?tīng)顟B(tài)的信息。
其他的特征提取方法
上面的方法已經(jīng)創(chuàng)建了足夠多的特征來(lái)構(gòu)建一個(gè)很棒的模型。但是根據(jù)數(shù)據(jù)的性質(zhì),還可以創(chuàng)建更多的特征。例如:可以創(chuàng)建像null計(jì)數(shù)這樣的特征,它可以計(jì)算客戶當(dāng)前的總null值,從而幫助捕獲基于樹(shù)的算法無(wú)法理解的特征分布。
這里可以不使用平均值,而是使用修正的平均值,如基于時(shí)間的加權(quán)平均值或 HMA(hull moving average)。
總結(jié)
在本文中介紹了一些在現(xiàn)實(shí)世界中用于預(yù)測(cè)違約風(fēng)險(xiǎn)的最常見(jiàn)的手工特性策略。但是總是有新的和創(chuàng)新的方法來(lái)設(shè)計(jì)特征,并且手工設(shè)置特征的方法是費(fèi)時(shí)費(fèi)力的,所以我們將在后面的文章中介紹如何實(shí)用工具進(jìn)行自動(dòng)的特征生成。