kaggle——房屋信贷违约风险竞争1

andy注:每个Kaggle竞赛中都遵守着一个基本的模版,本文基于https://www.kaggle.com/willkoehrsen/start-here-a-gentle-introduction所写

1.了解问题和数据

2.数据清理和格式化

3.探索性数据分析

4.基准模型

5.改进的模型

6.模型解释

1.了解问题和数据

列出竞赛数据并了解

竞赛的基本数据出来,对这些数据进行理解,在本次竞赛中,有7个基本数据

数据:

application_train/application_test:家庭信贷中关于每个贷款申请的主要训练和测试数据。每个贷款都有自己的行,由“SK_ID_CURR”特性标识。训练申请数据带有“目标”,表示0:贷款已偿还或1:贷款未偿还。

bureau:客户以前在其他金融机构的信用数据。每个以前的信贷在局里有自己的行,但是申请数据中的一个贷款可以有多个以前的信贷。

bureau_balance:关于以前在bureau的学分的月度数据。每行是前一个信用记录的一个月,一个前一个信用记录可以有多个行,每个月一个信用记录的长度。

previous_application:在申请数据中有贷款的客户之前的家庭信贷贷款申请。应用程序数据中的每个当前贷款都可以有多个以前的贷款。以前的每个应用程序都有一行,由“SK_ID_PREV”特性标识。

POS_CASH_BALANCE:每月的数据,关于以前的销售点或现金贷款客户有住房信贷。每行是前一个销售点或现金贷款的一个月,而前一个贷款可以有许多行。

credit_card_balance:每月关于以前信用卡客户使用家庭信用的数据。每行是信用卡余额的一个月,而一张信用卡可以有很多行。

installments_payment:先前在Home Credit的贷款付款历史。每一笔已付款都有一行,每一笔未付款都有一行。

以下这个图片是解释这些数据的相关:

数据相关

2.数据清理和格式化


在比赛中,我们无可避免的总会遇到一些缺失值,那我们该如何处理这些缺失值呢?

在这个比赛中,我们用XGBoost等模型来处理缺失值。另一个选择是删除具有高百分比缺失值的列,可能这些列对我们的模型有帮助,但我们无法提前知道。因此,我们暂时保留所有列。

决策树、RF、xgboost如何处理缺失值?:https://blog.csdn.net/qq_19446965/article/details/81637199

(1)判断提交数据的评估标准

在will Koehrsen的文章中,他使用了ROC 和 AUC曲线,在他的解释中,认为这两个曲线可以更加直观并比较出各个学习器的基本性能,他认为ROC AUC是模型性能的较好表征。

ROC在上图中,图上的一条直线表示单个模型的曲线,沿直线移动表示改变用于划分正实例的阈值。

阈值从右上端的0开始到左下端的1。

左边的曲线和另一条曲线上方的曲线表明了更好的模型。

例如,蓝色模型优于红色模型,红色模型优于黑色对角线,黑色对角线表示幼稚的随机猜测模型。而AUC表示的是在ROC曲线下的面积,在这个指标中,更加细化比较了各个学习器的得分。

(2)对数据进行读取操作,然后训练基本数据,探查这些数据的异常值

3.探索性数据分析(EDA)

我个人理解,探究性数据分析第一步将数据可视化,然后从图中理解数据的趋势,数据异常等问题,再对数据进行处理,例如数据清洗等操作。

在will Koehsen的操作中

第一步:检查各个数据的异常值:

检查目标的分布->检查缺失值->检查列类型->结果可视化

结果可视化后,我们可以从中了解到,我们需要对哪些异常问题进行处理。

第二步:对数据进行编码操作(处理分类变量)

因为机器学习模型不能处理分类变量(除了LightGBM等一些模型)。因此,在将这些变量传递给模型之前,我们必须找到一种方法将这些变量编码(表示)为数字。这个过程主要有两种方式:标签编码独热编码(使用独热编码后需要进行降维操作)

对于具有2个唯一类别的任何类别变量(dtype == object),我们将使用标签编码,对于具有2个以上唯一类别的任何类别变量,我们将使用one-hot编码。

第三步:对异常值处理

处理异常取决于确切的情况,没有固定的规则。最安全的方法之一就是将异常值设置为缺失值,然后在机器学习之前将其填充(使用赋值)。在本例中,由于所有的异常值都完全相同,我们希望用相同的值来填充它们,以防所有这些贷款都有共同之处。异常值似乎有一定的重要性,所以我们想告诉机器学习模型如果我们真的填了这些值。作为解决方案,我们将使用非数字填充异常值(np.nan),然后创建一个新的布尔列,指示该值是否为异常。

在做EDA时我们总是希望注意的一个问题是数据中的异常。这些可能是由于错误输入的数字,测量设备的错误,或者它们可能是有效的,但极端的测量。

在这个比赛中,异常的违约率较低。如下图所示:

如何处理异常?

处理异常取决于具体情况,没有设定规则。最安全的方法之一就是将异常设置为缺失值,然后在机器学习之前填充它们(使用Imputation)。在这种情况下,由于所有异常都具有完全相同的值,我们希望用相同的值填充它们,以防所有这些贷款共享一些共同点。

接下来,我们我们要查找一下要素与目标之间的相关性。

从图中可以看出DAYS_BIRTH是最正相关的。(TARGET除外,因为变量与其自身的相关性始终为1!)

第四步:相关性

现在我们已经处理了分类变量和离群值,让我们继续处理EDA。一种尝试和理解数据的方法是在特征和目标之间寻找相关性。我们可以使用。校正 dafaframe法计算每个变量与目标之间的[Pearson相关系数]

第五步:建立特征工程

特征工程的好处::特征工程比模型构建和超参数调优有更大的投资回报。

在在will koehrsen的文章中只尝试了两种简单的多项式特征添加特定的领域知识

添加的领域知识他使用的是由Aguiar的这个脚本启发的5个特性:

CREDIT_INCOME_PERCENT:信用金额相对于客户的收入的百分比

ANNUITY_INCOME_PERCENT:贷款年金相对于客户收入的百分比

CREDIT_TERM:以月份为单位的付款期限(因为年金是每月应付金额

DAYS_EMPLOYED_PERCENT:相对于客户的年龄,被雇佣的天数的百分比

4.基准模型

为了获得基线,我们将在编码分类变量之后使用所有的特性。

我们将通过填充缺失值(赋值)和规范化特征的范围(特征缩放)对数据进行预处理。

对于基准模型,先可以考虑使用逻辑回归,这个比较直观的学习模型

【知识点】什么是基线模型?为什么从基线模型开始?

答案:https://baijiahao.baidu.com/s?id=1600230352380900553&wfr=spider&for=pc


5.改进模型:随机森林

为什么使用随机森林,而不使用GBDT等呢?

Bagging与Boosting的区别:二者的主要区别是取样方式不同。Bagging采用均匀取样,而Boosting根据错误率来取样,因此Boosting的分类精度要优于Bagging。

Bagging的训练集的选择是随机的,各轮训练集之间相互独立,而Boostlng的各轮训练集的选择与前面各轮的学习结果有关;Bagging的各个预测函数没有权重,而Boosting是有权重的;Bagging的各个预测函数可以并行生成,而Boosting的各个预测函数只能顺序生成。对于象神经网络这样极为耗时的学习方法。Bagging可通过并行训练节省大量时间开销。

而随机森林属于bagging类比较出色的,所以在当前这种我个人认为在这种数据多的情况下可以选用随机森林。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容