Follow me!百万奖金由你拿 | 精准资助机器学习(三)

经过前面两篇的数据探索,咱们对教育精准资助的数据已经有所了解了,接下来咱们就要创建模型来进行机器学习了。算法

1、机器学习之分类概况机器学习

大千世界中“人以类聚,物以群分”,就是指具备相同(或相近)特征的事物老是归于一类或者说能聚在一块儿的事物老是拥有相同(或相近)的特征。函数

机器学习最基本的研究就是解决分类问题,好比哪些邮件是垃圾邮件,哪些邮件是正常邮件,哪些访问(日志)是正常的,哪些访问是不正常的。对于咱们此次教育竞赛来说就是要分出哪些人须要资助1000,哪些人须要资助1500,哪些人须要资助2000,哪些人不须要资助的问题。学习

解决这些问题最常规的办法是编写规则条件,知足某个条件是什么类,知足另外的条件是什么类。当问题复杂到必定程度,即不能写出明确的规则或者规则很复杂时就能够考虑用机器学习的方法来解决。优化

那么机器又是如何学习的呢?看下图:日志

首先,机器学习是要数据的,并且是两类数据:一类能标识人(和物)的特征数据,如每一人的消费次数,消费总额,单笔最大等等;另外一类则是标记了人的分类的答案数据(或标记数据),就是须要人根据经验来告诉机器哪些人是一类的,哪些物是一类的。这样再选择合适的算法,让机器来学习。给的数据越多,机器就学习的越多,机器就会变得越”聪明“。咱们把这个机器学习的过程叫作训练,训练的结果就是模型。有了这个模型后,就能够进行预测,看下图:对象

首先是要预测的数据的格式和特征数据的格式同样,不能添加或减小特征,也不能变动特征的名称和顺序,而后使用模型来预测,最后就会获得预测结果。索引

整个机器学习的过程就是这样了,还简单吧,下面咱们就用教育资助的数据操练起来。部署

2、机器学习过程test

(一)数据准备

精准资助主要集中反映在平常的消费数据中,咱们先使用消费数据来构造特征数据和标记数据(答案数据)。

特征数据的一个要求是使用一行来描述一个对象(人或物),对象是不重复的,特征数据均为数字类型,不能出现其余类型,若是是字典类型,如性别男女也应该用0,1表示。

标记数据的要求是和特征数据一一对应,一样一行表明一我的(或物),标记须要使用整数形,一个数表明了一个分类。这里的专业叫法是标称型(变量),取值是有限的整数,不能是小数(分类再多总有个最大值的,小数就不知道是哪一类的了,呵呵)。和标称型对应的是数值型,若是标记的答案是数值型的,那就不是分类问题了,与之相对应的是机器学习的另外一类应用回归。

Part one:以同窗ID为对象来计算消费特征数据

一、加载一卡通训练数据

二、修改列名

分别修改字段0、一、二、三、四、五、6为id、pos、address、catalog、time、cost、have

三、根据id进行分组,而后根据cost字段计算每一个人的消费状况(消费总额,单次最大消费,单词最小消费,消费均值,消费中位数,消费次数),结果保存到df表card_cost。

输入如下统计函数:

cost_sum:sum,cost_max:max,cost_min:min,cost_mean:mean,cost_meidan:median,cost_count:count

四、而后计算卡内余额(最大值,最小值,平均值),结果保存到df表card_have

输入如下统计函数:

have_max:max,have_min:min,have_mean:mean,have_median:median

五、两张合起来,一我的的消费情况就很是清晰了

六、查看关联后的表 

Part two:计算资助金额标记数据

一、加载助学金发放训练数据

二、修改列名。分别修改字段0、1为id、money

因为有资助的不必定有消费,有消费的不必定出如今资助名单中,因此card_money和stn的行不必定是一一对应的,咱们必定要确保card_money的数据中没有空值,card_money和stn的行一一对应(数量一致,关连一致)。

能够采用以下方式:

一、还原card_money的index为id列 

二、以资助名单为准关联消费记录

三、用-1填充a的空值

四、选出新的特征数据

五、修改card_money中id列的类型为int

六、设置id列为索引

(二)选择算法

有了特征数据和标记数据,接下来咱们就要选择算法了,FEA支持的分类算法有如下几种:

也许你该问了,这么多算法我该使用哪一个呢?这就和你的数据息息相关了,这也是经验的问题。

而在实际的工程中,咱们每每会使用多种分类器,来比较一下分类的效果再作选择。那你也许又该说了,这么多算法一个一个试下来,不是很麻烦吗。呵呵,FEA想你之所想,在新的版本中FEA将添加自动分类功能,自动进行多种分类器的训练并打分,有你来选择适合你的一款。

本次咱们使用gbdt分类器和svm来作下面的实验。

(三)训练模型

训练数据构建模型

一、设置工做区

二、使用迭代决策树分类算法gbdt,构建模型和训练数据,一步完成,模型名称命名为gbdt

三、评估模型,给模型打分,结果保存到DF表score

 四、查看结果

结果的取值在0到1之间,表明预测的准确度,最大为1,准确度100%,千万不要看到1就很开心哦,不少状况下1表明了预测结果和你的数据彻底拟合,或者说拟合,当真的有新数据来预测时,反而很不许。能够换一个算法试试。

五、使用向量机分类算法svm构建模型和训练数据,一步完成,模型名称命名为model

六、评估模型,给模型打分,结果保存到DF表score

七、查看结果

(四)机器预测

模型构建训练好后,咱们就能够来进行预测了,预测数据和特征数据的计算方法同样,就不在这里详细描述了。

预测数据的文件为match/fund/card_test.csv

预测人员的文件为match/fund/studentID_test.csv

假定预测数据的DF表为card_money1,则预测过程以下:

一、使用gbdt模型预测

二、使用svm模型预测

三、查看结果

是否是很简单?

没错,照上面的步骤玩下来,你就完成了机器学习的基本过程,就对机器学习有了初步的了解。

(五)保存模型

机器学习是否是每次都得通过上述步骤(准备数据、训练模型、预测)才能应用呢?

不是的!

当咱们训练好一个模型后,能够将模型保存下来,能够分发和部署到新的环境(机器)中直接进行预测,而不用重复训练过程,具体的语句以下:

一、保存gbdt模型预测

 二、保存svm模型预测

三、查看保存的模型

其中0列存储的就是模型文件的名称,而后就能够到数据目录里下载此模型文件。

发布模型和此相反,先上传模型文件到数据目录,而后加载模型。

3、小结

本文以可视化操做的方式结合教育精准资助数据讲解了机器学习的典型过程,为还在机器学习大门口徘徊的人们点亮了一盏明灯,不要犹豫不要徘徊,机器学习,你能够的!

对于机器学习的一些高级话题,如特征选取,参数设置,过采样等将在后续的系列中进行探讨和交流,教你如何打造一个准确率和召回率等都知足实战的模型。

在此也和你们叮嘱一下,模型的优化是无止境的,要耗费大量的脑力和体力。

FEA准备好了,你准备好了吗?

相关文章
相关标签/搜索