[置顶] 【机器学习PAI实践八】用机器学习算法评估学生考试成绩
(本文数据为实验用例)
一、背景
母亲是老师反而会对孩子的学习成绩造成不利影响?能上网的家庭,孩子通常能取得较好的成绩?影响孩子成绩的最大因素居然是母亲的学历?本文通过机器挖掘算法和中学真实的学生数据为您揭秘影响中学生学业的关键因素有哪些。
本文的数据采集于某中学在校生的家庭背景数据以及在校行为数据。通过逻辑回归算法生成离线模型和学业指标评估报告,并且可以对学生的期末成绩进行预测。
二、数据集介绍
数据集由25个特征和一个打标数据构成,
具体字段如下:
| 字段名 | 含义 | 类型 | 描述 |
|---|---|---|---|
| sex | 性别 | string | F是女,M表示男 |
| address | 住址 | string | U表示城市,R表示乡村 |
| famsize | 家庭成员数 | string | LE3表示少于三人,GT3多于三人 |
| pstatus | 是否与父母住在一起 | string | T住在一起,A分开 |
| medu | 母亲的文化水平 | string | 从0~4逐步增高 |
| fedu | 父亲的文化水平 | string | 从0~4逐步增高 |
| mjob | 母亲的工作 | string | 分为教师相关、健康相关、服务业 |
| fjob | 父亲的工作 | string | 分为教师相关、健康相关、服务业 |
| guardian | 学生的监管人 | string | mother,father or other |
| traveltime | 从家到学校需要的时间 | double | 以分钟为单位 |
| studytime | 每周学习时间 | double | 以小时为单位 |
| failures | 挂科数 | double | 挂科次数 |
| schoolsup | 是否有额外的学习辅助 | string | yes or no |
| fumsup | 是否有家教 | string | yes or no |
| paid | 是否有相关考试学科的辅助 | string | yes or no |
| activities | 是否有课外兴趣班 | string | yes or no |
| higher | 是否有向上求学意愿 | string | yes or no |
| internet | 家里是否联网 | string | yes or no |
| famrel | 家庭关系 | double | 从1~5表示关系从差到好 |
| freetime | 课余时间量 | double | 从1~5从少到多 |
| goout | 跟朋友出去玩的频率 | double | 从1~5从少到多 |
| dalc | 日饮酒量 | double | 从1~5从少到多 |
| walc | 周饮酒量 | double | 从1~5从少到多 |
| health | 健康状况 | double | 从1~5从状态差到好 |
| absences | 出勤量 | double | 0到93次 |
| g3 | 期末成绩 | double | 20分制 |
数据截图:

三、离线训练
首先,实验流程图:

数据自上到下流入,先后经历了数据数据预处理、拆分、训练、预测与评估。
1.SQL脚本-数据预处理
select (case sex when 'F' then 1 else 0 end) as sex,
(case address when 'U' then 1 else 0 end) as address,
(case famsize when 'LE3' then 1 else 0 end) as famsize,
(case Pstatus when 'T' then 1 else 0 end) as Pstatus,
Medu,
Fedu,
(case Mjob when 'teacher' then 1 else 0 end) as Mjob,
(case Fjob when 'teacher' then 1 else 0 end) as Fjob,
(case guardian when 'mother' then 0 when 'father' then 1 else 2 end) as guardian,
traveltime,
studytime,
failures,
(case schoolsup when 'yes' then 1 else 0 end) as schoolsup,
(case fumsup when 'yes' then 1 else 0 end) as fumsup,
(case paid when 'yes' then 1 else 0 end) as paid,
(case activities when 'yes' then 1 else 0 end) as activities,
(case higher when 'yes' then 1 else 0 end) as higher,
(case internet when 'yes' then 1 else 0 end) as internet,
famrel,
freetime,
goout,
Dalc,
Walc,
health,
absences,
(case when G3>14 then 1 else 0 end) as finalScore
from ${t1};
这里SQL脚本主要处理的逻辑是将文本数据结构化。比如说源数据分别有yes和no的情况,我们可以通过0表示yes,1表示no将文本数据量化。一些多种类的文本型字段,比如说Mjob,我们可以结合业务场景来抽象,比如说如果工作是teacher就表示为1,不是teacher表示为0,抽象后这个特征的意义就是表示工作是否与教育相关。对于目标列,我们按照大于18分设为1,其它为0,拟在通过训练,找出可以预测分数的模型。
2.归一化
去量纲,将所有的字段都转换成0~1之间,去除字段间大小不均衡带来的影响。结果图:

3.拆分
将数据集按照8:2拆分,百分之八十用来训练模型,剩下的用来预测。
4.逻辑回归
通过逻辑回归算法训练生成离线模型。具体算法详情可以https://en.wikipedia.org/wiki/Logistic_regression
5.结果分析和评估
通过混淆矩阵可以查看模型预测的准确率。

可以看到预测准确率为82.911%。
根据逻辑回归算法的特性,我们可以通过模型系数挖掘出一些比较有意思的信息,首先查看模型:

根据逻辑回归算法的算法特性,权重越大表示特征对于结果的影响越大,权重是正数表示对结果1(期末高分)正相关,权重负数表示负相关。于是我们可以挑选几个权重较大的特征进行分析。
| 字段名 | 含义 | 权重 | 分析 |
|---|---|---|---|
| mjob | 母亲的工作 | -0.7998341777833717 | 母亲是老师对于孩子考高分是不利的 |
| fjob | 父亲工作 | 1.422595764037065 | 如果父亲是老师,对于孩子取得好的成绩是非常有利的 |
| internet | 家里是否联网 | 1.070938672974736 | 家里联网不但不会影响成绩,还会促进孩子的学习 |
| medu | 母亲的文化水平 | 2.196219307541352 | 母亲的文化水平高低对于孩子的影响是最大的,母亲文化越高孩子学习越好。 |
以上结论只是从实验的很小的数据集得到的结论,仅供参考。
四、其它
作者微信公众号(与我联系):

[置顶] 【机器学习PAI实践八】用机器学习算法评估学生考试成绩的更多相关文章
- [置顶]
【机器学习PAI实践五】机器学习眼中的《人民的名义》
一.背景 最近热播的反腐神剧"人民的名义"掀起来一波社会舆论的高潮,这部电视剧之所能得到广泛的关注,除了老戏骨们精湛的演技,整部剧出色的剧本也起到了关键的作用.笔者在平日追剧之余, ...
- [置顶]
【机器学习PAI实践十一】机器学习PAI为你自动写歌词,妈妈再也不用担心我的freestyle了(提供数据、代码
背景 最近互联网上出现一个热词就是"freestyle",源于一个比拼rap的综艺节目.在节目中需要大量考验选手的freestyle能力,freestyle指的是rapper即兴的 ...
- [置顶]
【机器学习PAI实践九】如何通过机器学习实现云端实时心脏状况监测
背景 我们通过之前的案例已经为大家介绍了如何通过常规的体检数据预测心脏病的发生,请见http://blog.csdn.net/buptgshengod/article/details/53609878 ...
- 【机器学习PAI实践十二】机器学习算法基于信用卡消费记录做信用评分
背景 如果你是做互联网金融的,那么一定听说过评分卡.评分卡是信用风险评估领域常用的建模方法,评分卡并不简单对应于某一种机器学习算法,而是一种通用的建模框架,将原始数据通过分箱后进行特征工程变换,继而应 ...
- [置顶]
【机器学习PAI实践六】金融贷款发放预测
一.背景 很多农民因为缺乏资金,在每年耕种前会向相关机构申请贷款来购买种地需要的物资,等丰收之后偿还.农业贷款发放问题是一个典型的数据挖掘问题.贷款发放人通过往年的数据,包括贷款人的年收入.种植的作物 ...
- [置顶]
【机器学习PAI实践四】如何实现金融风控
(本文数据为虚构,仅供实验) 一.背景 本文将针对阿里云平台上图算法模块来进行实验.图算法一般被用来解决关系网状的业务场景.与常规的结构化数据不同,图算法需要把数据整理成首尾相连的关系图谱.图算法更多 ...
- [置顶]
【机器学习PAI实践三】雾霾成因分析
一.背景 如果要人们评选当今最受关注话题的top10榜单,雾霾一定能够入选.如今走在北京街头,随处可见带着厚厚口罩的人在埋头前行,雾霾天气不光影响了人们的出行和娱乐,对于人们的健康也有很大危害.本文通 ...
- [置顶]
【机器学习PAI实践七】文本分析算法实现新闻自动分类
一.背景 新闻分类是文本挖掘领域较为常见的场景.目前很多媒体或是内容生产商对于新闻这种文本的分类常常采用人肉打标的方式,消耗了大量的人力资源.本文尝试通过智能的文本挖掘算法对于新闻文本进行分类.无需任 ...
- 【机器学习PAI实践十】深度学习Caffe框架实现图像分类的模型训练
背景 我们在之前的文章中介绍过如何通过PAI内置的TensorFlow框架实验基于Cifar10的图像分类,文章链接:https://yq.aliyun.com/articles/72841.使用Te ...
随机推荐
- JAVA基本常识及环境搭建
JAVA基本常识及环境搭建 常用dos命令行 dir 列出当前目录下的文件以及文件夹 md 创建目录 cd 进入指定目录 cd.. 退回到上一级目录 cd/ 退回到根目录 del 删除文件 删除单个文 ...
- 20145314郑凯杰 《Java程序设计》第3周学习总结
20145314郑凯杰 <Java程序设计>第3周学习总结 所有代码均已托管 地址https://git.oschina.net/qiaokeli26/codes 按照下面程序结果中的代码 ...
- 彻底搞懂hashCode与equals的作用与区别及应当注意的细节
以前写程序一直没有注意hashCode的作用,一般都是覆盖了equals,缺没有覆盖hashCode,现在发现这是埋下了很多潜在的Bug!今天就来说一说hashCode和equals的作用. 先来试想 ...
- Redis-数据操作
数据操作 redis是key-value的数据,所以每个数据都是一个键值对 键的类型是字符串 值的类型分为五种: 字符串string 哈希hash 列表list 集合set 有序集合zset 数据操作 ...
- [BZOJ1026]windy数
Description windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道,在A和B之间,包括A和B,总共有多少个windy数? In ...
- Spring Boot CRUD+分页(基于JPA规范)
步骤一:JPA概念 JPA(Java Persistence API)是Sun官方提出的Java持久化规范,用来方便大家操作数据库. 真正干活的可能是Hibernate,TopLink等等实现了JPA ...
- django在windows设置定时任务,勉强能用
推荐三篇文章 [Django]Django 定时任务实现(django-crontab+command) django中使用定时任务执行某些操作时的规范操作 windows配置crontab 前两篇文 ...
- share point CSOM 客户端模式 创建表 增删改查
需要引用:Microsoft.SharePoint.Client ascx: <h4>CSOM所有表名</h4> <table> <tr> <td ...
- Grunt Part 2
Objectives and Outcomes In this exercise, you will continue to learn to use Grunt, the task runner. ...
- jquery validate检验
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...