房屋信贷违约风险竞争--kaggle

2018-08-24  本文已影响183人  DouMarK

每个Kaggle竞赛中都遵守着一个基本的模版
1.了解问题和数据
2.数据清理和格式化
3.探索性数据分析
4.基准模型
5.改进的模型
6.模型解释
在房屋信贷违约风险竞争--will Koehsen的解释中

1.了解问题和数据

列出竞赛数据并了解

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

数据:

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


数据相关

2.数据清理和格式化

(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。一种尝试和理解数据的方法是在特征和目标之间寻找相关性。我们可以使用。校正 dafaframe法计算每个变量与目标之间的[Pearson相关系数]

第五步:建立特征工程

特征工程的好处::特征工程比模型构建和超参数调优有更大的投资回报。
在在will koehrsen的文章中只尝试了两种简单的多项式特征添加特定的领域知识
添加的领域知识他使用的是由Aguiar的这个脚本启发的5个特性:

4.基准模型

为了获得基线,我们将在编码分类变量之后使用所有的特性。
我们将通过填充缺失值(赋值)和规范化特征的范围(特征缩放)对数据进行预处理。
对于基准模型,一般都会使用逻辑回归,这个是最简单直观的学习模型

5.改进模型:随机森林

为什么使用随机森林,而不使用GBDT等呢?
Bagging与Boosting的区别:二者的主要区别是取样方式不同。Bagging采用均匀取样,而Boosting根据错误率来取样,因此Boosting的分类精度要优于Bagging。
Bagging的训练集的选择是随机的,各轮训练集之间相互独立,而Boostlng的各轮训练集的选择与前面各轮的学习结果有关;Bagging的各个预测函数没有权重,而Boosting是有权重的;Bagging的各个预测函数可以并行生成,而Boosting的各个预测函数只能顺序生成。对于象神经网络这样极为耗时的学习方法。Bagging可通过并行训练节省大量时间开销。
而随机森林属于bagging类比较出色的,所以在当前这种我个人认为在这种数据多的情况下可以选用随机森林。

上一篇 下一篇

猜你喜欢

热点阅读