(本文数据为实验用例)

一、背景

母亲是老师反而会对孩子的学习成绩造成不利影响?能上网的家庭,孩子通常能取得较好的成绩?影响孩子成绩的最大因素居然是母亲的学历?本文通过机器挖掘算法和中学真实的学生数据为您揭秘影响中学生学业的关键因素有哪些。

本文的数据采集于某中学在校生的家庭背景数据以及在校行为数据。通过逻辑回归算法生成离线模型和学业指标评估报告,并且可以对学生的期末成绩进行预测。

二、数据集介绍

数据集由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脚本-数据预处理

  1. select (case sex when 'F' then 1 else 0 end) as sex,
  2. (case address when 'U' then 1 else 0 end) as address,
  3. (case famsize when 'LE3' then 1 else 0 end) as famsize,
  4. (case Pstatus when 'T' then 1 else 0 end) as Pstatus,
  5. Medu,
  6. Fedu,
  7. (case Mjob when 'teacher' then 1 else 0 end) as Mjob,
  8. (case Fjob when 'teacher' then 1 else 0 end) as Fjob,
  9. (case guardian when 'mother' then 0 when 'father' then 1 else 2 end) as guardian,
  10. traveltime,
  11. studytime,
  12. failures,
  13. (case schoolsup when 'yes' then 1 else 0 end) as schoolsup,
  14. (case fumsup when 'yes' then 1 else 0 end) as fumsup,
  15. (case paid when 'yes' then 1 else 0 end) as paid,
  16. (case activities when 'yes' then 1 else 0 end) as activities,
  17. (case higher when 'yes' then 1 else 0 end) as higher,
  18. (case internet when 'yes' then 1 else 0 end) as internet,
  19. famrel,
  20. freetime,
  21. goout,
  22. Dalc,
  23. Walc,
  24. health,
  25. absences,
  26. (case when G3>14 then 1 else 0 end) as finalScore
  27. 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实践八】用机器学习算法评估学生考试成绩的更多相关文章

  1. [置顶] 【机器学习PAI实践五】机器学习眼中的《人民的名义》

    一.背景 最近热播的反腐神剧"人民的名义"掀起来一波社会舆论的高潮,这部电视剧之所能得到广泛的关注,除了老戏骨们精湛的演技,整部剧出色的剧本也起到了关键的作用.笔者在平日追剧之余, ...

  2. [置顶] 【机器学习PAI实践十一】机器学习PAI为你自动写歌词,妈妈再也不用担心我的freestyle了(提供数据、代码

    背景 最近互联网上出现一个热词就是"freestyle",源于一个比拼rap的综艺节目.在节目中需要大量考验选手的freestyle能力,freestyle指的是rapper即兴的 ...

  3. [置顶] 【机器学习PAI实践九】如何通过机器学习实现云端实时心脏状况监测

    背景 我们通过之前的案例已经为大家介绍了如何通过常规的体检数据预测心脏病的发生,请见http://blog.csdn.net/buptgshengod/article/details/53609878 ...

  4. 【机器学习PAI实践十二】机器学习算法基于信用卡消费记录做信用评分

    背景 如果你是做互联网金融的,那么一定听说过评分卡.评分卡是信用风险评估领域常用的建模方法,评分卡并不简单对应于某一种机器学习算法,而是一种通用的建模框架,将原始数据通过分箱后进行特征工程变换,继而应 ...

  5. [置顶] 【机器学习PAI实践六】金融贷款发放预测

    一.背景 很多农民因为缺乏资金,在每年耕种前会向相关机构申请贷款来购买种地需要的物资,等丰收之后偿还.农业贷款发放问题是一个典型的数据挖掘问题.贷款发放人通过往年的数据,包括贷款人的年收入.种植的作物 ...

  6. [置顶] 【机器学习PAI实践四】如何实现金融风控

    (本文数据为虚构,仅供实验) 一.背景 本文将针对阿里云平台上图算法模块来进行实验.图算法一般被用来解决关系网状的业务场景.与常规的结构化数据不同,图算法需要把数据整理成首尾相连的关系图谱.图算法更多 ...

  7. [置顶] 【机器学习PAI实践三】雾霾成因分析

    一.背景 如果要人们评选当今最受关注话题的top10榜单,雾霾一定能够入选.如今走在北京街头,随处可见带着厚厚口罩的人在埋头前行,雾霾天气不光影响了人们的出行和娱乐,对于人们的健康也有很大危害.本文通 ...

  8. [置顶] 【机器学习PAI实践七】文本分析算法实现新闻自动分类

    一.背景 新闻分类是文本挖掘领域较为常见的场景.目前很多媒体或是内容生产商对于新闻这种文本的分类常常采用人肉打标的方式,消耗了大量的人力资源.本文尝试通过智能的文本挖掘算法对于新闻文本进行分类.无需任 ...

  9. 【机器学习PAI实践十】深度学习Caffe框架实现图像分类的模型训练

    背景 我们在之前的文章中介绍过如何通过PAI内置的TensorFlow框架实验基于Cifar10的图像分类,文章链接:https://yq.aliyun.com/articles/72841.使用Te ...

随机推荐

  1. spark SQL学习(认识spark SQL)

    spark SQL初步认识 spark SQL是spark的一个模块,主要用于进行结构化数据的处理.它提供的最核心的编程抽象就是DataFrame. DataFrame:它可以根据很多源进行构建,包括 ...

  2. STL map用法总结(multimap)

    2017-08-19 10:58:52 writer;pprp #include <map> #include <string> #include <iostream&g ...

  3. 关于Visual Studio 2010自动添加头部注释信息

    作为一个万年潜水党,不关这一篇文章技术含量如何,也算是一个好的开始吧.   在日常的开发中我们经常需要为类库添加注释和版权等信息,这样我们就需要每次去拷贝粘贴同样的文字,为了减少这种重复性的工作,我们 ...

  4. Mac 升级node与npm

    第一步,先查看本机node.js版本: node -v 第二步,清除node.js的cache: sudo npm cache clean -f 第三步,安装 n 工具,这个工具是专门用来管理node ...

  5. windows向github提交代码

    随便写的,留给自己看. 一.在github上注册并建立自己的仓库http://www.cnblogs.com/keZhenxu94/p/5288488.html 二.安装windows版本git界面工 ...

  6. 分布式系统中的幂等性-zookeeper与dubbo

    现如今我们的系统大多拆分为分布式SOA,或者微服务,一套系统中包含了多个子系统服务,而一个子系统服务往往会去调用另一个服务,而服务调用服务无非就是使用RPC通信或者restful,既然是通信,那么就有 ...

  7. mysql数据库优化课程---18、mysql服务器优化

    mysql数据库优化课程---18.mysql服务器优化 一.总结 一句话总结: 1.四种字符集问题:字符集都设置为utf-82.slow log慢查询日志问题3.root密码丢失 1.mysql存在 ...

  8. Tomcat中session共享问题的简单解决办法

    tomcat-redis-session-manager 使用redis配置tomcat共享session 结构图: 分析: 分布式web server集群部署后需要实现session共享,针对 to ...

  9. 《深入理解mybatis原理2》 Mybatis初始化机制详解

    <深入理解mybatis原理> Mybatis初始化机制详解 对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外.本章将通过以下几点详细介绍MyBatis的初始化过程 ...

  10. Spoj-COINS-记忆化dp

    COINS - Bytelandian gold coins #dynamic-programming In Byteland they have a very strange monetary sy ...