前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在数据竞赛中脱颖而出-见解、技术及策略

如何在数据竞赛中脱颖而出-见解、技术及策略

作者头像
用户7623498
发布2020-08-04 16:16:36
2780
发布2020-08-04 16:16:36
举报

您的关注就是我们的动力!

用智能技术让世界更加美好!

今天,我们分享一些关于数据竞赛的经验与技术,以及一些可以确保你取胜的技术策略。本文选取的数据来自Vidhya上的“贷款预测”竞赛。

直观的观察数据

成功的数据分析的一个先决条件是要深入的挖掘数据细节,否则很难提出(或解答)正确的问题。

在本例中,训练集的数据形式如下。

其中,Loan_Status是最终要预测的标签。

初始数据分析

pandas库的describe() 函数是一个非常有用的工具。它可以很方便的对连续数据的一些关键指标进行概览。可以看到,贷款预测的数据集样本数非常少(仅614个)。所以每个样本都会对最终模型产生较大的影响。

Credit_history很明显是一个非常重要的特征。没有信用卡记录的申请者被拒绝的概率是92%,而有信用卡记录的则仅为20%。

如何处理缺失数据是个很关键的问题,本竞赛中训练集中有50个样本没有信用卡记录数据(测试集中缺失样本数为26个)。因为样本数据量很小(640个),因此对于这些缺失数据的处理要尤其关注。

其他比较重要的特征是:资产所在区域、教育水平和婚姻状况。

利用Orange软件可以很方便的在三维向量空间中显示个特征的重要程度。

财务状况当然也是贷款申请的一个关键指标。

因为银行通常会以家庭为单位进行贷款审批,因此一个合理的策略是将家庭总收入(或人均收入)作为一个新特征进行分析。

缺失数据处理

处理缺失数据的一个常用方法是直接略过或删除缺失的样本。当数据集的数据量很大或者缺失的数据量相对较小时,该策略有些非常有效。

本竞赛的缺失数据占数据集的比重较大,因此需要采用其他更有效的方法。比如,对于数值型数据可以采用线性回归处理并对缺失的数值进行预测。

由于竞赛数据中缺失的不仅有数值数据,同时还有分类型数据(0或1),因此我们提出的策略是:k-NN方法,即检测缺失数据的最近的k个紧邻(k-Nearest Neighbors)。

对于缺失的数值数据,我们采用k阶近邻的平均值替代;对于缺失的分类数据,则选取最近的近邻数据替代。

特征工程-添加有用的信息

前面我们已经围绕收入指标引入了一些新的特征。同样对于LoanAmout和Loan_Amount_Term,我们可以计算出Loan_Amount_per_Term,即每月的贷款偿还率。

采用随机森林或神经网络可以从数据中提取出这些信息,使其变得显性并具有更高的权重。

检测异常值

另一个有效的方法是计算每月月供和收入的比值:

接下来,我们检测一下几个异常值(月供大于收入的100%),然后仔细研究它们。异常值往往会对数据的指标判断产生影响,比如对平均值异常敏感,从而影响模型的精度。

特征选择

特征选择在数据挖掘过程中扮演了非常重要的角色。通过应用基于树的算法(如决策树、随机森林等),可以判断出哪些特征贡献最大。本文应用了Rlief算法。

可以看到,我们引入的新特征对贷款预测的表现非常好,甚至比一些给定的的初始特征效果都要好。

模型选择

本竞赛是一个二值分类问题。我们可以应用不同的监督学习算法进行训练,比如逻辑回归、神经网络、支持向量机(SVM),基于树的模型。

因为样本的数据量很小,因此我们采用了多随机森林模型,该模型结合了线性回归的特点。

训练结果通过K-Fold(k=20)进行交叉验证,最终在训练集上取得了分类准确率0.810的成绩(竞赛冠军得分为0.821)。

结 论

挖掘新特征、填充缺失值、处理异常值和特征选择,这些都是数据挖掘过程的核心步骤。这些过程往往是非线性的,从而需要高效的迭代处理。

建立高效的处理流程(在Jupter,RStudio或Orange等中),并根据结果随时进行调整,也是训练过程中关键的环节。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 决策智能与机器学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档