机器学习入门之机器学习第三练:为慈善机构寻找捐助者
小标 2018-10-18 来源 : 阅读 1504 评论 0

摘要:本文主要向大家介绍了机器学习入门之机器学习第三练:为慈善机构寻找捐助者,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。

本文主要向大家介绍了机器学习入门之机器学习第三练:为慈善机构寻找捐助者,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。

这个任务同样是在Jupyter Notebook中完成,
项目目的是通过前面的所有特征列,当然去掉序号列,然后预测最后一列,收入‘income‘,究竟是大于50K,还是小于等于50K.
 
第一步,探索数据,像探索性统计里经常涉及到的频数,均值,众数或者众位数相关的计算,我们通过这些统计指标,使用python来看一下数据的大概情况
这块主要还是涉及pandas, numpy, visuals相关的内容来进行操作
比如查看一下数据都有哪些特征,标签,因为本身是监督学习
 

 

同时,机器学习本身,虽然对各种算法,它们的逻辑步骤,参数,涉及到的数学公式,优缺点等等这些内容涉及的更多一些,但是之前的这个数据预处理,其实涉及到的是特征工程的内容更多,也就是数据分析的相关内容更多一些,
第二步,数据相关处理,
这里涉及到两个变量,资本利得和资本损失,这其实是管理会计相关的概念,利得是指买了一支股票,5块的买的,1000股,涨到10块,卖掉,收益5000(假设没除去其他费用),利得就是5000,同样,假如卖的价格是3块,那么损失就是2000. 其实扯的这个概念在分析特征与标签的关联时才可能用到。
下图,是两个变量原始的分布情况:比如利得的数据看着分散,偏左,如果是期望值是正态分布的话,数据需要转化一下,

使用对数进行转化,可以把极值变小,下图是转换后效果,看着是不是利得和损失的均值都更接近一些了。

这时数据的分布好一些,但仍需要对数据进行规一化操作,从而在下面使用监督学习器的时候能够被平等的对待
规一化操作的结果使得特征的范围被圈在一个极值范围之内,比如0,1之间,这里的规一化操作就是特征缩放。
没有规一化之前是这个样子

 
规一化之后是这个样子,可以对比一下上下两幅图的数据,

 对标签进行哑编码:(从定性变量转化成定量)
使用pandas.get_dummies()对‘features_raw‘数据来施加一个独热编码
转换之前:

转换之后:

第三步,进行训练集和测试集的分割,

  
第三步,模型性能评估
混淆矩阵的相关模型评价指标,比如说准确度,Fbeta指标(混合指标,准确率和召回率的混合,beta=0.5时,会强调准确率)
要想了解这个,其实可以先找个使用朴素贝叶斯预测瘟疫的例子,来了解什么假阳性,真阴性什么的。统计学概念,这里不累述,严格按照相关公式定义进行计算就可以。

第四步,选择一个监督模型来做学习器,并阐述其优缺点, 需要举例,并写出引用出处,
个人答案,可能不是太严格,也参考了很多网上的资料,


第五步,创建一个pipline来评估上面三个模型,选择最优
有条件限制:
1,比如选择数据的部分内容做预测,使用不同的size来做训练,包括样本的.01,.1和1
2,还是使用sklearn.metrics中的fbeta_score和accuracy_score来进行判定
下面是训练集的结果:

下面是测试集的结果:

 
 第六步,选择最优模型和调参
最优的话,从测试集的比例为1的结果来判断,逻辑回归胜出。
调优的话使用 sklearn的网格搜索,配置好对应的参数值,
在调用学习器的时候,grid_obj = GridSearchCV(estimator=clf,param_grid=parameters,scoring=scorer)
参数random_state可以让网格搜索每次划分训练集和验证集的时候都是完全一样的
逻辑回归的参数C,主要是控制模型在过拟合和欠拟合之间保持一个平衡。
 
结果如下,还是参数调优对模型本身是有帮助的。

第七步,提取特征重要性:

从下图可以看出,其实如果在提取特征这一步之前做主观推测的话,最重要的特征应该会跟下面五项有偏离,
但是下图显示,资本利得和资本损失的权重就比较高,原因应该是在于在此练习过程中,其他的特征都没有被数字化

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能机器学习频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved