学生成绩预测模型_越看头发越多—数据挖掘之分类与预测

学生成绩预测模型_越看头发越多—数据挖掘之分类与预测_第1张图片

数据挖掘中最典型的四种方法是:

分类与预测、聚类分析、关联规则、时序模式,我试试能不能用大白话讲清楚 概念、常用算法、分类、原理及评价标准。

第一部分是分类与预测

一、概念

分类与预测指的都是根据一些特征来预测问题,是机器学习中最常见的的监督学习算法。即从给定的训练数据集中学习出一个函数,当新的数据到来时,可以根据这个函数预测结果。

要点一:分类和预测的区别在于,分类对应的是离散型结果,预测通常对应连续型结果。

要点二:监督学习的训练集要求包括输入和输出,也可以说是特征和目标。训练集中的目标是由人标注的。即,学习函数时要给出特征和目标。

举个简单的例子

小明的妈妈想预测小明高考时考的怎么样:

如果小明妈妈想预测的是小明的分数,分数是数值型变量,这属于预测;如果小明妈妈想预测的是小明能考入名校/非名校,是否考入名校是离散型变量,这属于分类。

无论是要预测分数还是是否考入名校,小明的妈妈都需要先给一堆已知考的怎么样的历史样本,这些样本的属性是跟考试相关的指标:学生智商,平时成绩,学校排名,学习时长,是否容易紧张等。把这些样本交给机器,让机器学习出一个函数,去预测小明考的怎么样。

所谓的学习函数时要给出特征和目标就是指这个。

二、分类与预测常用的算法

回归分析

决策树

人工神经网络

贝叶斯网络

支持向量机

三、这几种算法的定义、分类、原理

因篇幅过长,见专栏里的其他文章,目前还待写。。。。

四、怎么评价模型质量

比如上面的例子中,利用过去的样本建好模型,预测小明的高考情况,等小明高考完,预测了我们就说模型有效,预测错了我们就说模型没啥子用。

但是如果是预测一个班级的每个学生呢?或者一个地区的每个考生?甚至全国考生?这个时候我们就需要一些指标来表示模型到底预测的准不准。

对于定量结果,通常有这些方法:相对/绝对误差、平均绝对误差、均方误差、均方根误差、平均绝对百分误差等

对于分类结果,通常有这些方法: Kappa统计、识别准确度、识别精确率、反馈率、ROC曲线、混淆矩阵等

唔,用简单易懂的方式解释一下这些指标。

1、定量类的评价:

还以小明高考这件事为例,假如小明考了600分,小明妈妈预测的是500分,那绝对误差=实际值-预测值=600-500=100,相对误差=(实际值-预测值)/实际值*100%=100/600=16.7%

如果小明妈妈预测了小明整个班级的高考分数,就要用到平均类的指标,平均绝对误差、均方误差、均方根误差、平均绝对百分误差等。

平均绝对误差指的是,所有的绝对误差的绝对值之和的平均值,即小明、小黄、小红…班级里所有人实际|高考分数-预测高考分数|之和比班级人数。

均方误差顾名思义,指的是绝对误差的平方和的平均值,即班级里每个人(高考分数-预测高考分数)²之和/班级人数

均方根误差是将均方误差的平方根

平均绝对百分误差(MAPE)指的是|相对误差|之和的平均值,也即班级里每个人的相对误差绝对值加和/班级人数。

2、定性类评价

如果小明妈妈预测的是小明考入什么等级的学校:

预测结果和小明实际考入情况的差别可以用Kappa衡量,这个值介于-1到+1之间:

+1指的是预测和实际完全一致,比如小明妈妈预测小明考入清华,小明实际考入清华

-1指的是预测和实际完全不一致,比如小明妈妈预测小明考入清华,小明实际高考中作弊成绩作废

总之,实际和预测越一致,kappa值越接近+1,越不一致,越接近-1

如果小明妈妈预测的是整个班级每个学生是否考入名校

这时候可以用识别准确度、识别精确率、反馈率、ROC曲线、混淆矩阵等来衡量预测的准不准

识别准确率指的是识别为真的次数/全部识别次数,用一个公式表示就是:(TP+TN)/(TP+TN+FP+FN)*100%

也即小明妈妈预测的考名校的人数/班级人数

其中:

TP指的是,预测和结果均为真,即小明妈妈预测该学生考入名校,该学生实际考入名校的情况

TN指的是,预测为假,结果为假,即小明妈妈预测该学生考不了名校,该学生实际也没考上名校的情况

FP指的是,预测为真,结果为假,即小明妈妈预测该学生考上名校,该学生实际没考上名校的情况

FN指的是,预测为假,结果为真,即小明妈妈预测该学生考不上名校,该学生实际考上名校的情况

比较拗口,前面的T/F指的是预测对了还是错了,后面的N/P指的是预测的结果是真是假

识别精确率指的是预测为真且实际为真的结果占所有预测为真的比例,TP/(TP+FP),你预测的所有的考中名校的人中,实际考中的比例就是精准率

反馈率又称召回率,指的是预测为真实际为真的结果占实际为真的比例,TP/(TP+FN),全校所有的考中名校的人中,你预测对了的比例就是召回率

ROC曲线:将TPR=TP/(TP+FN)定义为Y轴,将FPR=FP/(FP+TN)定义为X轴,将不同阈值下模型的TPR和FPR绘制在坐标轴中,得到的就是ROC曲线。曲线下的面积越大,模型效果越好。

还拿小明妈妈说事,假如小明妈妈要预测全班同学是否考入名校,Y值TPR=预测名校实际名校/(预测名校+实际名校),X值FPR=预测非名校实际名校/(预测非名校实际名校+预测非名校实际非名校) ,阈值是指名校的判断标准,985211才是名校,还是所有的一本都是名校,还是只有清北才是名校,按阈值从小到大,在坐标轴上绘点,就得到了ROC曲线。

混淆矩阵也是一种可视化工具,用n行n列的矩阵形式来表示模型预测结果。

学生成绩预测模型_越看头发越多—数据挖掘之分类与预测_第2张图片

参考资料:

《python数据分析与挖掘实战》

维基百科—机器学习

《统计学习导论—基于R语言》

你可能感兴趣的:(学生成绩预测模型)