学员通过率的逻辑回归(Logistic Regression)模型

引言

目前APP端已经有学员的知识点得分,知识点得分反映了学生对知识点的掌握情况,但据此来推测学生最终的通过率还略有不足,仍然有许多因素影响学员的成绩。举个例子,有的学员是属于大赛型的选手,平常表现一般,但考试的时候就比较好,相反的,有的学员平时不错,但到真正考试的时候就发挥的不太好。据此,我重新收集数据,建立学员通过率模型。

Logistic Regression

学员通过与否是一个二分变量,故选择逻辑回归(Logistic Regression)模型。逻辑回归虽然名字里有回归,但不是一个回归模型,是一个分类模型。

逻辑回归(英语:Logistic regression 或logit regression),即逻辑模型(英语:Logit model,也译作“评定模型”、“分类评定模型”)是离散选择法模型之一,属于多重变量分析范畴,是社会学、生物统计学、临床、数量心理学、计量经济学、市场营销等统计实证分析的常用方法。(摘自维基百科)

逻辑回归实际上是用sigmoid函数将线性回归进行了归一化,把输出值压缩到0-1之间,这个值代表的是发生的概率。这里不过多说明模型的原理。

数据处理

由于现有数据的限制,我选取了思想道德修养与法律基础这门科目的1804考期的数据,共18437个样本。

选取字段:学员ID,分数,直播出勤时长,重播出勤时长,出勤次数,观看重播次数,学生总时长,随堂考配置题数,随堂考完成题数,随堂考正确题数,作业配置题数,作业完成题数,作业正确题数,刷题完成题数,刷题正确题数,考试次数,通过次数,试卷总分,总得分。

其中,分数是指学员1804的考试成绩,百分制。删除其中的缺失值,共有9191个样本。

增加衍生变量

  • 随堂考完成率 = 随堂考完成题数/随堂考配置题数
  • 随堂考正确率 = 随堂考正确题数/随堂考完成题数
  • 作业完成率 = 作业完成题数/作业配置题数
  • 作业正确率 = 作业正确题数/作业完成题数
  • 刷题正确率 = 刷题正确题数/刷题完成题数

增加分类变量

  • 最终通过:将百分制的分数变量,按分数小于60为0,大于等于60为1,变换成二分变量
  • 模考通过:按试卷总分和总得分转换成百分制的模考成绩,按相同逻辑,转换成二分变量。

处理时间单位

  • 直播时长h=直播出勤时长/60
  • 重播时长h=重播出勤时长/60

最后再次删除缺失值,共有8851个样本。

数据变量选取

经过数据处理,变量增多,如何选取变量是个问题。筛选特征变量方法很多,我选择了递归特征消除(Recursive Feature Elimination, RFE)方法。

递归特征消除 (RFE)通过递归减少考察的特征集规模来选择特征。 首先,预测模型在原始特征上训练,每项特征指定一个权重。之后,那些拥有最小绝对值权重的特征被踢出特征集。如此往复递归,直至剩余的特征数量达到所需的特征数量。

利用调用sklearn中的RFE方法,并结合经验,最后共选取了8个变量。变量如下:直播时长h,重播时长h,随堂考完成率,随堂考正确率,作业完成率,作业正确率,刷题正确率,模考通过。

模型结果与评估

选取70%作为训练集,30%作为测试集。利用GridSearchCV()选取模型合适的超参。

模型的变量系数如下:

intercept 直播时长h 重播时长h 随堂考完成率 随堂考正确率
-5.68592042 0.01512291 0.01101413 -0.48080453 2.03324583
作业完成率 作业正确率 刷题正确率 模考通过
0.86103971 3.58450959 3.0435501 0.13064

模型在训练集上的评价指标如下:

准确率score 精确率precision 召回率recall 综合评价指标f1-score
0.8447 0.8538 0.9835 0.9140

以0.5为阀值,模型在测试集上的混淆矩阵如下:

真实情况
模型预测 0 1
0 41 393
1 33 2189

测试集上的评价指标为:

precision recall f1-score support
0 0.55 0.09 0.16 434
1 0.85 0.99 0.91 2222
avg 0.80 0.84 0.79 2656

模型在测试集上的准确度为(41+2189)/2656=0.8396。模型的准确率还是非常高的(混淆矩阵对角线代表预测正确的数量),接近84%。可是单看混淆矩阵还不够,因为当数据不平衡时,计算的准确率也同样会高,并不代表模型就会好,所以我们进一步的借助于ROC曲线下的面积来衡量模型时候合理。

image

AUC值为0.76,说明模型预测效果不错。

后续改进

虽然模型的准确性达到84%,但是仍然有不少改进空间。

  1. 数据完善:本次收集数据中,仍有不少缺失值和缺失字段,有不少字段没能收集到,例如学生知识点得分情况,性别,基础学历,是否拥有密训和模考五套卷等等。
  2. 模型改进:后续得到现实数据再次验证,进行模型参数的修改,或者寻找其他更为适合的模型进行替代。
-------------本文结束感谢您的阅读-------------
0%