不知道看完前三篇的人里面有没人真正操做一遍,而后去智慧中国杯的官网提交结果的。若是有的话,说明你真是FEA的粉丝,咱们应该支持你,同时确定也很沮丧,由于提交的结果不知排到哪里去了(150名之内找不到)。算法
榜单刷新的很快的,不进则退哦!dom
好了,废话很少说,咱们正是开始机器学习的优化之旅。机器学习
1、优化路径学习
一、概述测试
结合本人的经验给出了一个大体的作机器学习工程方法,以下图:优化
接到一个项目或任务后,结合项目的需求和背景,对数据进行有针对性的探索,而后再评估数据样本是否不平衡,须要对数据重采样等处理,并能给出主要的维度信息出来。人工智能
接下来就能够精心初步的算法选择和参数的肯定,结合项目需求和自身对算法的了解程度来进行选择,没有惟一答案,必定要善于突破。spa
而后就可进行训练评估,结果还基本满意就能够进入深刻分析数据不断增长和变换维度上来,维度的选择对模型的成功起相当重要的做用。.net
当你实在没有新的维度增长是,这是能够考虑经过微调参数,看能不能提升模型的准确率,这时也必定要注意过拟合的问题,以避免实验结果很好,一实际应用就不行的怪圈当中,最后固话模型。设计
仍是那句话,这是脑力和体力的结合,坚持天天打怪升级,你能够的!
二、重采样
由于样本数据的不均衡性,势必会致使分类结果的倾斜,致使准确率虚高(好比都预测资助为0)。本次的样本中,获得资助的只占15%左右,若是不对数据进行过采样的话,势必影响训练的结果。
这时咱们可使用重采样的方式来平衡训练数据,重采样又分为两种:
过采样就是重复增长一部分小分类的样本数据;
欠采样就是删除一部分大分类的样本数据。
咱们的样本总数很少,因此经过过采样的方式,在训练数据中增长小分类的数据,来达到均衡的目的。
首先过滤出资助金分别为1000、1500、2000的数据,分别保存为df表t一、t1五、t20。此处以过滤1000的数据为例。
分别增长5倍1000资助金、8倍1500资助金、10倍2000资助金的数据量。此处以增长5倍1000资助金为例。
进行分组统计
绘制饼图,直观感觉过采样以后训练数据的分布状况
这个5,8,10是经验值,到最后的时候均可以进行微调。
2、算法选择
算法的选择对于初学者来讲是一个障碍,由于算法实在太多了,想把每个算法的每个细节都吃透,每每是徒劳的。这就是好多人的一个疑惑,我要搞机器学习搞人工智能,是否是先要去念个博士?都说股票市场是经济的晴雨表,说明股票和经济是有很大关系的,那你有没据说哪一个人为了炒股,先去读个经济学博士的。
不要踌躇千里不敢迈出一步,机器学习重在实干,对算法不全了解没关系,你能够选择一到两个重点突破,其余的知道就行,真到用时再去深钻。
FEA经常使用分类算法一表:
而真正在工程实践中,能够选择复合型的算法,如GBDT和随机森林,它们都是有多棵决策树组成,对结果进行屡次迭代,效果更好。在屡次大赛中都看到他们的身影。我仍是给你们推荐几个算法,对于初学者能够先看决策树,这个算法比较简单且是个白盒算法,就是你建好模型后,能够将整个决策树图形展现出来,找到每一个分支的边界,特别适合那些喜欢较真的同窗。^V^
三、参数优化
参数优化是个大命题,这里一样已GBDT和随机森林的最经常使用有:n_estimators(子模型数量),random_state(随机对象)等。子模型数量越大精度会越高,但有可能形成过拟合,预测时反而效果很差;随机对象对预测结果影响很小,根据本身的喜爱先设置一个。
初步选择以下:
用a表和b表作GBDT迭代决策树分类模型
用a表和b表作随机森林分类模型
四、纬度选择
通过前面几步以后,剩下最重要的就是基于业务的理解,作出好的维度特征数据来,这是一个模型可以成果的关键。
上篇文章中,只使用了消费数据的维度,并无成绩,图书馆,教室等维度,这些信息对于提高准确率也是有用的。
一、成绩维度
加载成绩数据
合并表
修改字段名
对成绩数据按照学院进行分组,统计排名最大的
重置索引
关联表
排名比值
二、图书馆进出维度
加载图书馆进出数据
合并表
修改字段名
以人为单位,对图书馆进出的数据进行分组统计
重置索引
修改字段名
三、宿舍进出维度
加载宿舍进出数据
合并表
修改字段名
以人为单位,对宿舍进出的数据进行分组统计
重置索引
修改字段名
过滤出全部进入宿舍的数据
以人为单位,对进入宿舍的数据进行分组统计
重置索引
修改字段名
关联表
五、注意事项
在整个维度计算和选择的过程当中,我也发现了几个好玩的事情,给你们介绍一下,避免你们从新跳到坑里面去。
一、学生ID
在刚时作这个系列的时候,我就一直和官方的提供的开源程序作了对比,明明个人维度比之要多要好,但在成绩上就是没有超过官方的。最后通过我仔细的排查才发现少了一个我一直认为和这个预测没有关系的学生ID。
这个ID是从0开始,显然是通过脱敏处理的,但按照什么样的规则咱们并不清楚,但不要少了这个维度,他可能包含了某方面的信息,加上这个维度后我就完全超过了官方提供的基准成绩。
二、成绩数据要训练和测试集合并后再分拆
本次竞赛的数据直接分红了,训练和测试数据,若是没有交集是不必合并后才分拆的。但成绩数据只有排名,若是不合并,你根本不知道这个排名的意义,因此要合并起来,找出最大值,计算每一个人的排名比值(自身排名/最大排名),而后在根据预测人数据进行分拆。这里面包括了学院ID等信息,都对预测有影响。
三、不是全部维度都是积极的
我讲了维度很重要,维度的质量和多少都很关键,通常意义上来说有效维度越多越好,但维度并非都是积极向上的,有些维度的引入反而会带来消极做用,影响你的成绩。
在第二篇的《学霸去哪了》文中我分析了深夜出入宿舍的维度,我就没多想,直接加入进行训练了,结果反而致使成绩大幅降低。看来深夜出入宿舍的维度和资助关系不大,至少和本次的数据关系不大。
因此你们在选择维度时,也要精心考虑设计过。
六、小结
经过本文的详细解读,精准教育资助的这个话题就告一段落了。
喜欢这个系列的朋友不要忘记给我点赞哦,你的支持是我更新最大的动力。