日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习实战-微额借款用户人品预测

發(fā)布時(shí)間:2023/12/14 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习实战-微额借款用户人品预测 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

團(tuán)隊(duì)分享網(wǎng)址

1、項(xiàng)目背景

? ? ?互聯(lián)網(wǎng)金融近年來異常火熱,吸引了大量資本和人才進(jìn)入。 在金融領(lǐng)域中,無論是投資理 財(cái)還是借貸放款,風(fēng)險(xiǎn)控制永遠(yuǎn)是最為核心和重要的問題,而存目前所有的互聯(lián)網(wǎng)金融產(chǎn)品 中,微額借款,即借款金額在 500~JOOO 元的借款,由于其主要服務(wù)對(duì)象的特殊性,被企認(rèn)為 是風(fēng)險(xiǎn)最高的細(xì)分借貸領(lǐng)域。 將要進(jìn)行的實(shí)戰(zhàn)比賽的主題便是通過數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)等技 術(shù),分析小額微貸申請(qǐng)借款用戶的信用狀況,從而分析其是否會(huì)產(chǎn)生逾期行為。?

? ?比賽名稱為“微額借款用戶人品預(yù)測(cè)大賽”,由 CashBUS 現(xiàn)金巴士主辦、 DataCastle 數(shù) 據(jù)城堡承辦,比賽的官方頁面為( http: //www.pkbigdata.com/common/cmpt/微額借款用戶 人品預(yù)測(cè)大賽-競賽信息html )。 比賽提供了多個(gè) csv 文件數(shù)據(jù),注冊(cè) DataCastle 并參加比賽 后即可下載。 數(shù)據(jù)包括訓(xùn)捺數(shù)據(jù)、 測(cè)試數(shù)據(jù)、 無標(biāo)注數(shù)據(jù)三部分。? ? ?本質(zhì)上是有監(jiān)督學(xué)習(xí)中的二分類問題,即根據(jù)用戶特征分為正常用戶和逾期用戶兩類,使用 AUC 作為模型評(píng)估標(biāo)準(zhǔn)。

? ? ? 比賽的冠軍隊(duì)伍是“不得直視本王”,他們的項(xiàng)目已經(jīng)在 Github 上 開源 ( https://github.com/wepe/DataCastle-Solution ),包括全部的代碼、項(xiàng)目解決方案 PDF 、 代碼目錄及運(yùn)行說明 PDF,非常詳細(xì)地分享了他們?nèi)绾螌?shí)現(xiàn)項(xiàng)目中的每一步。 這一比賽涵蓋 了應(yīng)用機(jī)器學(xué)習(xí)所需的常用技術(shù)和基本流程,解決了互聯(lián)網(wǎng)金融這一火熱領(lǐng)域中的真實(shí)問題, 而且冠軍團(tuán)隊(duì)的完整項(xiàng)目全部開源,因此非常適合作為一個(gè)入門和鞏固的機(jī)器學(xué)習(xí)實(shí)戰(zhàn)項(xiàng)目, 以下便基于他們的解決思路來學(xué)習(xí)和復(fù)現(xiàn)一遍。

2.?數(shù)據(jù)概況?

數(shù)據(jù)地址:https://pan.baidu.com/s/1eTzH0f4密碼:66uy?

數(shù)據(jù)主要包含以下幾類:(編碼均為UTF-8)

1) 訓(xùn)練集(帶標(biāo)簽):15,000個(gè)樣本
? ? ?帶標(biāo)簽的訓(xùn)練集中共有15,000個(gè)樣本。train_x.csv中存有樣本的特征信息,uid為樣本的id,x0、x1、x2...為特征。train_y.csv中存有樣本的標(biāo)簽信息,uid為樣本的id,y為樣本的標(biāo)簽:1為正樣本(人品杠杠滴),0為負(fù)樣本(人品堪憂);

2) 測(cè)試集:5,000個(gè)樣本
? ? ?test_x.csv中存有測(cè)試集的特征信息,格式同train_x.csv。參賽者的目標(biāo)是盡可能準(zhǔn)確地區(qū)分測(cè)試集中樣本的標(biāo)簽。

3) 訓(xùn)練集(無標(biāo)簽):50,000個(gè)樣本
? ? 在微額借款的真實(shí)場景中,除了放款的客戶(人品已知),還有相當(dāng)一部分被拒絕的客戶,他們的人品是未知的。為了提高本次比賽的趣味性與挑戰(zhàn)性,我們從中挑選了50,000個(gè)樣本,存在train_unlabeled.csv中,格式同train_x.csv。供參賽者進(jìn)行semi-supervised learning的探索。

4)特征描述:
features_type.csv為本次比賽的1138個(gè)特征的類型資料;feature為特征名:x1, x2, x3...type為特征類型:numeric(數(shù)值型)或category(類別型)。
評(píng)分標(biāo)準(zhǔn)

3評(píng)分標(biāo)準(zhǔn)

評(píng)分算法
regression

4、?缺失值處

? ?首先需要進(jìn)行數(shù)據(jù)清洗等預(yù)處理操作,其中最為重要的便是處理如居中的缺失值。之前介 紹過處理缺失值的幾種方法,如直接丟棄包含缺失值的行或列、使用缺失值標(biāo)識(shí)或統(tǒng)計(jì)值進(jìn)行 補(bǔ)全、將缺失值轉(zhuǎn)換成新的特征等。 在我們的認(rèn)知中,一個(gè)可靠的借款人應(yīng)當(dāng)盡可能地完善各方面資料,因此不妨統(tǒng)計(jì)每條記錄的缺失特征數(shù)量,并生成新的特征。?

? ? ?使用 Python 中的 pandas 包可以方便地完感以上統(tǒng)計(jì),如果將訓(xùn)練集、測(cè)試集、無標(biāo)注 集中的全部記錄,按缺失特征數(shù)量由少到多排序,會(huì)’原喜地發(fā)現(xiàn)缺失特征數(shù)量呈現(xiàn)出分段特 征,如圖? 所示,其中 X軸表示排序序號(hào),一共有 70 000 條記錄, y軸表示每條記錄的 缺失特征數(shù)量。絕大多數(shù)記錄的缺失特征數(shù)量在 194 以下,因此刪除缺失特征數(shù)量大于 194 的記錄,避免可能導(dǎo)致的噪聲,并生成兩個(gè)新特征 miss_num 和 miss_group。 miss_num 即每 條記錄的缺失特征數(shù)量,將 miss_num 進(jìn)行區(qū)間化并得到 miss_group,即選擇 32, 69, 147 作為闌值,將全部記錄分為 4 類,并根據(jù)每條記錄的 miss_num 將對(duì)應(yīng)的 miss_group 設(shè)置為 L 2, 3, 4。

5? 特征工程
? ? 完成數(shù)據(jù)預(yù)處理之后,需要在已有特征的基礎(chǔ)上,φ 通過特征工程生成盡可能豐富的新特 征,這里主要從排序特征、離散特征、計(jì)數(shù)特征、類別特征編碼、交叉特征等幾個(gè)方面進(jìn)行特 征工程。
1.)排序特征?
對(duì)于清洗后的全部記錄,分別按照每一維數(shù)值特征從小到大排序,將排序后每條記錄的序 號(hào)作為該數(shù)值特征對(duì)應(yīng)的排序特征,即可由 1 045 維數(shù)值特征生成 1 045 維排序特征。 由于數(shù) 值特征可以取任意數(shù)值,因此不同記錄在同一特征上的取值之差可大可小,而排序特征只能依 次取連續(xù)的整數(shù),因此相對(duì)于數(shù)值特征而言更加穩(wěn)定、魯棒性更強(qiáng)。
2)離散特征
接下來,分別將每一維數(shù)值特征進(jìn)行區(qū)間化,可以使用按值區(qū)間化或按量區(qū)間化, 之前根 據(jù) miss_num 生成 miss_group 的過程即按值區(qū)間化。 這里使用按量區(qū)間化,按照每一維數(shù)值 特征從小到大排序后,根據(jù)排序結(jié)果將全部記錄分為 10 等份,每一份的離散特征分別取為 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,從而生成 1 045 維離散特征。 離散特征可以看作更加粗粒 度的排序特征,將特征的取值范圍從大量連續(xù)的整數(shù)限制為 1~10 十個(gè)整數(shù)之中,有助于將全 部記錄按照不同的數(shù)值特征進(jìn)行分組和聚類。

3)?計(jì)數(shù)特征
在離散特征的基礎(chǔ)上,對(duì)于每一行記錄,統(tǒng)計(jì)其 1 045 維離散特征中, 1~10 分別出現(xiàn)的 次數(shù),從而生成 10 維計(jì)數(shù)特征。 計(jì)數(shù)特征可以用于反映每條記錄的數(shù)值特征水平。 例如, 當(dāng) 一條記錄的離散特征中 10 出現(xiàn)的次數(shù)比較多時(shí),說明該記錄的 l 045 維數(shù)值特征相對(duì)其他記 錄處于較高的水平。?

4). 類別特征編碼
對(duì)于類別型特征,使用 One-Hot 編碼轉(zhuǎn)換為向量,從而可以和其他數(shù)值型特征一起參與 后續(xù)模型的訓(xùn)練。 在本項(xiàng)目中,全部記錄的 93 維類別型特征,經(jīng)過 One-Hot 編碼后可以得 到 832 維特征。
5) 交叉特征
最后,還可以嘗試已有數(shù)值型特征兩兩之間的交叉組合,例如, x+y、 x-y、 .xxy、x^2+y^2,甚至其他更復(fù)雜的組合,從而生成大量交叉特征。 交叉特征不一定都有意義,但未知 而巨大的嘗試空間也許會(huì)產(chǎn)生新的融合和可能,因此,雖然交叉特征的計(jì)算和篩選需要耗費(fèi)大 量的時(shí)間和計(jì)算,但是如果條件允許的話,仍然值得一試。
?

6特征選擇

? ? 毫無疑問,有用的特征越多,有監(jiān)督學(xué)習(xí)模型最終的性能也會(huì)越好。 對(duì)于特征工程生成的大量特征,并不是每一維特征都是有用的,不好的特征甚至?xí)o學(xué)習(xí)帶來額外的噪聲,因此需 要對(duì)特征進(jìn)行篩選和保留。?

? ?每次訓(xùn)練結(jié)束后,都可以使用 XGBoost 對(duì)當(dāng)前所用的 全部特征進(jìn)行重要性評(píng)估和排序。 這里繼續(xù)使用 XGBoost 選擇特征,即使用特征工程生成的 全部新特征,和原始特征一起訓(xùn)練、 XGBoost 二分類模型, 并使用 XGBoost 對(duì)以上特征進(jìn)行重 要性排序,僅保留排名順序靠前的部分中,對(duì)分類結(jié)果具有積極作用的特征。

7模型設(shè)計(jì)?

? ? 完成特征選擇后,接下來需要在選好的特任上訓(xùn)練模型。 首先考慮最簡單的單模型,可以使用線性回歸、隨機(jī)森林、支持向量機(jī)等,也可以訓(xùn)練一個(gè) XGBoost 二分類模型。 使用 Python 中的 XGBoost 實(shí)現(xiàn),可以達(dá)到 0.717 左右的 AUC。?

? ?可以嘗試多個(gè) XGSoost 模型的集成,即訓(xùn)練36 個(gè) XGBoost 二分類模型,并將它們?cè)跍y(cè) 試集上的預(yù)測(cè)結(jié)果加權(quán)融合。 36 個(gè) XGBoost 模型之間的差異性和多樣性主要體現(xiàn)在以下兩個(gè) 方面。?

? 特征多樣Q 每個(gè) XGBoost 使用的特征集合存在差異,分別保留前 Ni 個(gè)原始特征、前 N1.個(gè)排序特征、前N2離散特征,以及N3 個(gè)計(jì)數(shù)特征, 其中 N1.N2、 N3「分別在 300~500、 300~500、 64~100 的范圍內(nèi)隨機(jī)選取。 以上 3 個(gè)隨機(jī)范圍的選擇,也是根據(jù)各類特征的特征 重要性排序結(jié)果確定的。?

? 模型多樣。 每個(gè) XGBoost 的模型參數(shù)存在差異,使用上一節(jié)介紹的方法進(jìn)行調(diào)參后確 定每一個(gè)模型參數(shù)的最優(yōu)值。 為了實(shí)現(xiàn)模型的多樣化, 每個(gè) XGBoost 模型的各項(xiàng)參數(shù)都在對(duì) 應(yīng)的最優(yōu)值附近范圍內(nèi)隨機(jī)選取即可。

使用不同的特征集合,訓(xùn)練好不同模型參數(shù)的多個(gè) XGBoost 之后,并將它們?cè)跍y(cè)試集上 的預(yù)測(cè)結(jié)果加權(quán)融合,可以達(dá)到 0.725 左右的 AUC,即通過集成學(xué)習(xí)實(shí)現(xiàn)了將近 1%的提升。?

? ? 完成單模型的集成之后,進(jìn)一步可以嘗試多模型的融合,充分利用不同模型的原理和特點(diǎn) 進(jìn)行取長補(bǔ)短。 將 XGBoost 分別用 Python、 R、 Java 等不同語言實(shí)現(xiàn)并訓(xùn)練,將對(duì)應(yīng)的預(yù)測(cè) 結(jié)果和 SVM、 XGBoost 集成等模型進(jìn)一步融合,可以達(dá)到 0.728 左右的 AUC。

? ? ?我們已經(jīng)在模型設(shè)計(jì)上進(jìn)行了不少工作,接下來需要挖掘無標(biāo)注數(shù)據(jù)的價(jià)值,通過半監(jiān)督 學(xué)習(xí)方法擴(kuò)充訓(xùn)練集的規(guī)模。 每次從無標(biāo)注數(shù)據(jù)中選取若干條記錄,如每次 20 條,使用目前 得到的最優(yōu)模型預(yù)測(cè)這些記錄的分類結(jié)果,從而將無標(biāo)注數(shù)據(jù)轉(zhuǎn)換成有標(biāo)注數(shù)據(jù)。 嘗試將這些 生成的有標(biāo)注數(shù)據(jù)加入訓(xùn)練集中并再次訓(xùn)練最優(yōu)模型,如果能夠帶來性能提升則保留,否則將 其從訓(xùn)練集中移除。 通過以上半監(jiān)督學(xué)習(xí)方法,從 50 000 條無標(biāo)注數(shù)據(jù)中生成大量有效的有標(biāo)注數(shù)據(jù),擴(kuò)充訓(xùn)練集規(guī)模后將帶來不小的性能提升,可以達(dá)到 0.734 左右的 AUC。

?項(xiàng)目總結(jié)?

? ? ?通過本次比賽項(xiàng)目實(shí)戰(zhàn),熟悉了算法類數(shù)據(jù)比賽涉及的一些基本內(nèi)容,大賽方一般會(huì)提供 實(shí)際應(yīng)用場景中的真實(shí)數(shù)據(jù),通常會(huì)包括訓(xùn)練、集和測(cè)試多仨等,需要使用機(jī)器學(xué)習(xí)中的技術(shù)和方 法,完成分類、回歸、時(shí)序預(yù)測(cè)等一系列任務(wù)。 Python 中的 numpy、 pandas、 scikit-learn 等工具包便足以完成大部分任務(wù),主要包括數(shù)據(jù)預(yù)處理、特征工程、特征選擇、特征降維、模 型設(shè)計(jì)、模型調(diào)參、模型評(píng)估等幾個(gè)步驟。 隨著我們參與和完成越來越多的比賽和項(xiàng)目 ,會(huì)逐 步積累更多關(guān)于以上各個(gè)步驟的經(jīng)驗(yàn)和方法,在遇到新的問題時(shí),也能很快找到解決方案并快 速實(shí)現(xiàn)。 在這一節(jié)中主要討論了微額借款用戶人品預(yù)測(cè)大賽的解決思路,完整的項(xiàng)目報(bào)告、源代 碼、代碼運(yùn)行目錄和說明文件都可以在冠軍團(tuán)隊(duì)的 Github 項(xiàng)目中找 到

( https: //github.com/wepe/DataCastle-Solution ),可以參考其中的說明和代碼, 、將整個(gè)項(xiàng) 目動(dòng)手實(shí)踐一次,從而提高自己的代碼能力,鞏固對(duì)機(jī)器學(xué)習(xí)相關(guān)內(nèi)容的掌握。?

?


?

總結(jié)

以上是生活随笔為你收集整理的机器学习实战-微额借款用户人品预测的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。