Kaggle竞赛介绍: Home Credit default risk(三)

请点击上方“AI公园”,关注公众号


本文选自Kaggle

作者:Will Koehrsen

编译:ronghuaiyang

Kaggle的信用卡违约风险预测竞赛,非常有参考价值,做风控和大数据挖掘的同学可以参考一下,非常详细,非常适合入门,从数据处理到模型的构建,非常全面,文章比较长,分几次发出来,这是第三部分,主要讲特征工程。

特征工程

Kaggle比赛获胜都是通过特征工程获胜的:能创造出最有用的特征的人才能获胜。就像吴恩达说的:“应用机器学习基本上就是在做特征工程。”

选择正确的模型和最佳的设置非常重要,模型只能从数据中学习给到的内容。需要保证数据是和最终的任务是有关系的,这是数据科学家的工作。

特征工程指的是一个广泛的操作,可以包括在特征的建设:加入新的特征,和特征的选择:选择最重要的特征,或者降维方法。还有些方法可以同时创建特征和选择特征。

我们会做很多的特征工程的工作,但在这里,我会尝试两个简单的特征建设的方法:

  • 多项式特征

  • 领域知识特征

多项式特征

一个简单的特征建设的方法叫做多项式特征。这个方法中,我们会对特征进行平方以及让特征两两组合相乘。比如,我们创建变量EXT_SOURCE_1^2EXT_SOURCE_2^2,还有 EXT_SOURCE_1 x EXT_SOURCE_2, EXT_SOURCE_1 x EXT_SOURCE_2^2, EXT_SOURCE_1^2 x EXT_SOURCE_2^2等。独立的特征的乘积组成的特征称作相互关系项,因为获取的是变量之间的相互关系。换句话说,两个变量本身可能对target的影响不是很大,组合了之后可能会对target有比较大的影响。相互关系项在统计模型中非常常用,但是在机器学习中用的不多。不管怎样,我们可以试试看。

下面的代码中,我们使用 EXT_SOURCEDAYS_BIRTH 创建了多项式特征。Scikit-Learn中有个很有用的类叫做PolynomialFeatures,可以创建特定阶的多项式特征,我们可以试试3阶的效果,特征的数量和阶数是指数的关系,可能会遇到过拟合的问题。

In [31]:


In [32]:



这个方法创建了客观的特征数量。为了获取名字,我们使用了多项式特征的 get_feature_names 方法。

In [33]:


Out[33]:


有35个特征,有特征的3次方,还有3阶的相互组合。现在我们看看这些新的特征和target的相关性。

In [34]:



有一些新的特征的相关性要比原始的特征要大。当我们创建机器学习模型的时候,我们可以试试使用或者不使用这些特征。在机器学习中,很多时候想知道一个方法是不是有效的唯一方法就是试试看!

In [35]:



领域知识特征

可能叫“领域知识”并不是很合适,因为我不是一个征信专家,也许可以叫“尝试应用有限的金融知识”。这种思想就是我们可以组合一些我们认为是重要的特征,收到了 Aguiar 的 this script 的启发,这里我们使用了5个特征:

  • CREDIT_INCOME_PERCENT: 客户收入相对于信用额度比例

  • ANNUITY_INCOME_PERCENT: 客户收入对于养老金的比例

  • CREDIT_TERM: 偿还的时长,按月算。

  • DAYS_EMPLOYED_PERCENT: 客户年龄相对于受雇佣天数的比例

再次感谢 Aguiar 探索了这些特征。

In [36]:


In [37]:


新变量可视化

我们可以可视化领域知识变量,我们同样会做一个KDE和target的图。

In [38]:

Kaggle竞赛介绍: Home Credit default risk(三)_第1张图片

很难事先说这些新的特征是不是有用,只有试过之后才知道。

(未完待续)


本文可以任意转载,转载时请注明作者及原文地址。


640?wx_fmt=jpeg

请长按或扫描二维码关注我们


你可能感兴趣的:(Kaggle竞赛介绍: Home Credit default risk(三))