大数据-孩子学习成绩分析
(本文数据为实验用例)
一、背景
母亲是老师反而会对孩子的学习成绩造成不利影响?能上网的家庭,孩子通常能取得较好的成绩?影响孩子成绩的最大因素居然是母亲的学历?本文通过机器挖掘算法和中学真实的学生数据为您揭秘影响中学生学业的关键因素有哪些。
本文的数据采集于某中学在校生的家庭背景数据以及在校行为数据。通过逻辑回归算法生成离线模型和学业指标评估报告,并且可以对学生的期末成绩进行预测。
二、数据集介绍
数据集由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};
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
这里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 | 母亲的文化水平高低对于孩子的影响是最大的,母亲文化越高孩子学习越好。 |
以上结论只是从实验的很小的数据集得到的结论,仅供参考
大数据-孩子学习成绩分析相关推荐
- 大数据之学习成绩处理案例(一)
大数据之学习成绩处理案例 来自学了两天python的NewBee-Yunzi的第一个案例总结: 这个案例学习如何处理数据表中的重复值,异常值,空值,空格,根据条件对值进行分级. 有这么个数据表: 学号 ...
- 大数据技术 学习之旅_数据-数据科学之旅的起点
大数据技术 学习之旅 什么是数据科学? (What is Data Science?) The interesting thing about Data Science is that it is a ...
- 大数据技术 学习之旅_为什么聚焦是您数据科学之旅的关键
大数据技术 学习之旅 David Robinson, a data scientist, has said the following quotes: 数据科学家David Robinson曾说过以下 ...
- 网易大数据工程师学习之路分享
之所以忽然提笔,是因为这段时间正好在业余时间系统地学习Spark,整个学习思路让我想起了大学期间学习<模拟电子电路>这门课的一些方法,个人觉得可以作为一个学习模板来和大家一起交流分享(本文 ...
- 本科大学生的大数据专业学习路线
普通的二本学校,专业是数据科学与大数据技术,2020级入学,目前大三,所以我会更多站在本专业进行分享 首先,我的目标是毕业之后就业,所以一切努力的方向都是为了就业,仅仅只能为考研考公的同学提供借鉴,不 ...
- scala spark 数据对比_IT大牛耗时三个月总结出大数据领域学习路线,网友评论:炸锅了...
大数据不是某个专业或一门编程语言,实际上它是一系列技术的组合运用. 有人通过下方的等式给出了大数据的定义. 大数据 = 编程技巧 + 数据结构和算法 + 分析能力 + 数据库技能 + 数学 + 机器学 ...
- 大数据业务学习笔记_学习业务成为一名出色的数据科学家
大数据业务学习笔记 意见 (Opinion) A lot of aspiring Data Scientists think what they need to become a Data Scien ...
- 大数据技术 学习之旅_如何开始您的数据科学之旅?
大数据技术 学习之旅 Machine Learning seems to be fascinating to a lot of beginners but they often get lost in ...
- 【2017年第3期】大数据服务三农的初步分析与探索
孙忠富, 褚金翔, 马浚诚, 杜克明, 郑飞翔 中国农业科学院农业环境与可持续发展研究所,北京 100081 摘要:三农问题是当前中国密切关注的社会问题,大数据技术的发展为三农带来了新的机遇.首先,对 ...
最新文章
- 生成性对抗网络技术实现
- 机器学习数据预处理之缺失值:插值法填充+ lagrange插值+拉格朗日插值
- 图像处理:matplotlib
- 元宇宙这把火开始烧向打工人
- 安卓 通过intent调用系统文件管理器打开指定路径目录
- CVPR 2018 STRCF:《Learning Spatial-Temporal Regularized Correlation Filters for Visual Tracking》论文笔记
- 二维计算几何基础知识
- jQuery 处理xml
- String数据类型的应用场景
- sudo: apt-get:找不到命令”的解决方法
- react学习系列之states与props
- 新的吉尼斯世界纪录 – 最快人类基因组测序,用时5 小时 2 分钟!
- FZU 1402 猪的安家 中国剩余定理
- python朋友圈切图代码
- mysql分页是物理分页_学习MySQL:什么是分页
- 几行python代码实现Windows软件卸载
- 微软官方office教程和微软官方office模板
- 雷神台式计算机配置,雷神新用户手册:拿到新电脑时如何简易设置参数!
- 等价类划分测试—身份证
- system libzip must be upgraded to version >= 0.11