干货!百度面试机器学习,除了泰坦尼克,还有银行贷款?

点上方蓝色“菜鸟学Python”,选“星标”公众号

重磅干货,第一时间送到

干货!百度面试机器学习,除了泰坦尼克,还有银行贷款?_第1张图片

在大家的生活中,贷款是不能避开的话题。而银行在向个人提供贷款时,需要对这个人进行一个全面的评估,防止这个人还不上贷款,从而成为坏账。所以利用机器学习来评估一个人是否能够取得贷款,是一个非常热门的话题。

今天,小编就带领大家实现一个完整的机器学习的项目。来预测一个人究竟能否获得银行的贷款。

我们今天用到的库包含了sklearn、matplotlib、numpy、pandas、seaborn、scipy等库,从机器学习到数据分析到数据可视化的展示,可谓是干货满满。

01

数据初探

首先我们读入数据,并对数据进行一个初步的认知:

干货!百度面试机器学习,除了泰坦尼克,还有银行贷款?_第2张图片

可以看到,数据一共包含了12个特征维度,分别有数据的ID(Loan_ID),性别(Gender),是否结婚(Married)等信息,而Loan_Status表示的是label,代表该用户是否贷到款。我们将数据中Credit_History特征由数值型转换为标称型,并删除掉Loan_ID这一列。来看一下贷到款和没贷到款的比例。

干货!百度面试机器学习,除了泰坦尼克,还有银行贷款?_第3张图片

可以看出,贷到款的人数占到总人数的69%。在对整体数据有一个整体的把握之后,接下来我们来对每个特征的重要性进行分析。


02

特征分析

首先我们先从标称型数据开始分析。如下图所示:

干货!百度面试机器学习,除了泰坦尼克,还有银行贷款?_第4张图片

上图中,横坐标是每个标称型的数据类型,纵坐标是我们的Label,也即Loan_Status。从上述的数据分布可以得到下面很多的信息:

  • 左上角中Gender和Loan_Status的关系,可以看出,无论是男性还是女性,大部分的人都得到了贷款。

  • 性别在是否提供贷款的判定中并不是特别重要的特征信息。

  • 在右上角的Married和Loan_Status的关系,可以看出大多数结婚的人都得到了贷款

  • 如果一个人结婚了,那么他有很大的概率得到贷款。所以Married对于Loan_Status是一个好的特征,对于其他的标称型类型同样可以采用这样的方法进行分析。

接下来我们来看一下数值型的特征

干货!百度面试机器学习,除了泰坦尼克,还有银行贷款?_第5张图片

可以看出,当CoapplicantInocme的中位数较低时,Loan_Status 为N,所以 CoapplicantInocme是一个很好的特征信息。

03

数据清洗

对特征进行分析后,接下来就是数据的清洗,包括了缺失值的处理,对于标称型的数据,我们将其按照众数来填充,而对于数值型的数据,采用平均值来填充(也可以采用缺失值的上一个值来填充),然后将标签进行one_hot来编码,最终处理后的数据如下所示。

干货!百度面试机器学习,除了泰坦尼克,还有银行贷款?_第6张图片

04

模型训练与测试

对于数据进行清洗后,接下来就是模型的训练,对于二分类问题,采用logistic回归、KNN、SVM(SVC)和决策树四种模型来训练,并通过准确率,召回率,F1准确率,分类准确率分数五个评价指标来评价模型。

干货!百度面试机器学习,除了泰坦尼克,还有银行贷款?_第7张图片

对于模型的训练,采用了两种方法,第一种是直接将数据集分为训练集和测试集,其中对于训练集和测试集,其label中的Y和N的比例同数据集中的label比例相同。然后再训练集上训练模型,在测试集上测试模型。下图展示的是模型在训练集上训练后在测试集上测试的结果。

干货!百度面试机器学习,除了泰坦尼克,还有银行贷款?_第8张图片

从评价指标和上图展示可以得出,目前最好的模型是logistic模型,而SVC模型相当于只是存储了数据,并没有对数据进行任何的判断分类,呈现过拟合的状态

对于模型训练的第二种方法是采用K折交叉验证的训练方法,该方法是将原数据有放回的采样N次,每次将原数据分为训练集和测试集,然后进行模型的训练和测试。然后平均N次的评价结果来对模型进行评估。

干货!百度面试机器学习,除了泰坦尼克,还有银行贷款?_第9张图片

从上图右侧的结果可以看出,此时的SVC同样是呈现过拟合的状态,而K折交叉验证下,决策树的结果要好于logistic回归,在测试集上的准确率达到了80.86%,得到训练好的模型后,我们就可以利用该模型来预测个人的数据,来预测他能否得到银行的贷款。

最后,我们来展示一下K折交叉验证的细节:

干货!百度面试机器学习,除了泰坦尼克,还有银行贷款?_第10张图片

上图可以看到,针对logistic回归模型,K折交叉验证每次都重新划分训练集和测试集,来训练模型,在测试集上进行测试。然后将每次训练后的评价指标结果进行保存。最终将K次(这里是10次)的训练结果进行平均,就得到了每个评价指标的平均结果。

end

以上就是小编带领大家进行的一个简单的机器学习项目练习,在这个基础上,大家还可以继续优化,比如说进行特征的组合选择,来优化特征,同时可以针对模型的参数进行调整来提升模型的性能。

希望本篇对大家面试AI算法岗位,有帮助,欢迎在留言区点评,记得给个三连哦

需要源码和数据集的可以按照下面的方式获取:

1). 长按下面的二维码

2). 后台输入:贷款

????长按上方二维码 2 秒 

回复「贷款」即可获取源码资料

推荐阅读:这个GitHub 1400星的Git魔法书火了,斯坦福校友出品丨有中文版贼 TM 好用的 Java 工具类库
超全Python IDE武器库大总结,优缺点一目了然!
秋招来袭!GitHub28.5颗星!这个汇聚阿里,腾讯,百度,美团,头条的面试题库必须安利!
收获10400颗星!这个Python库有点黑科技,竟然可以伪造很多'假'的数据!
牛掰了!这个Python库有点逆天了,竟然能把图片,视频无损清晰放大!


点这里,获取一大波福利

你可能感兴趣的:(百度,人工智能,机器学习,数据分析,数据挖掘)