数据分享|R语言SVM支持向量机用大学生行为数据对助学金精准资助预测ROC可视化

科技   2024-09-25 15:58   浙江  

全文链接:https://tecdat.cn/?p=34607


大数据时代的来临,为创新资助工作方式提供了新的理念和技术支持,也为高校利用大数据推进快速、便捷、高效精准资助工作带来了新的机遇点击文末“阅读原文”获取完整代码数据

相关视频


基于学生每天产生的一卡通实时数据,利用大数据挖掘与分析技术、数学建模理论帮助管理者掌握学生在校期间的真实消费情况、学生经济水平、发现“隐性贫困”与疑似“虚假认定”学生,从而实现精准资助,让每一笔资助经费得到最大价值的发挥与利用,帮助每一个贫困大学生顺利完成学业。因此,基于学生在校期间产生的消费数据运用大数据挖掘与分析技术实现贫困学生的精准挖掘具有重要的应用价值。    

本文将两学年的学生在校行为数据作为原始数据查看文末了解数据免费获取方式,包括消费数据、图书借阅数据、寝室门禁数据、图书馆门禁数据、学生成绩排名数据,并以助学金获取金额作为结果数据进行模型优化和评价。

1)数据总体概述

数据分为两组,分别是训练集和测试集,每一组都包含大约1万名学生的信息记录:图书借阅数据borrow_train.txt和borrow_test.txt、 一卡通数据card_train.txt和card_test.txt、 寝室门禁数据dorm_train.txt和dorm_test.txt、图书馆门禁数据library_train.txt和library_test.txt、学生成绩数据score_train.txt和score_test.txt 助学金获奖数据subsidy_train.txt和subsidy_test.txt

训练集和测试集中的学生id无交集,详细信息如下。

2)数据详细描述

图书借阅数据borrow.txt

字段描述和示例如下(第三条记录缺失图书编号):

一卡通数据card.txt

字段描述和示例如下:

寝室门禁数据dorm.txt

字段描述和示例如下:

图书馆门禁数据library.txt

图书馆的开放时间为早上7点到晚上22点,门禁编号数据在2014/02/23之前只有“编号”信息,之后引入了“进门、出门”信息。

字段描述和示例如下:

学生成绩数据score.txt。

注:成绩排名的计算方式是将所有成绩按学分加权求和,然后除以学分总和,再按照学生所在学院排序。

助学金数据(训练集中有金额,测试集中无金额)subsidy.txt

字段描述和示例如下: 

大学生助学金精准资助预测中的分类模型

支持向量机方法能在训练样本数很小的情况下达到很好分类推广能力的学习算法,它能做到与数据的维数无关。算法所得到的决策面为:将两类分开最大缝隙的超平面。对决策面设计起作用的点(图中圈中的点)称为支持向量JMNK。分类线方程为可以对它进行归一化使得对线性可分的样本集。它被成功的应用于金额分类、信用等级分类等很多领域。

数据预处理

用SVM实现大学生助学金精准资助预测,先要从原始空间中抽取特征,将原始空间中的样本映射为高维特征空间中的一个向量,以解决原始空间中线性不可分的问题.

大学生助学金资助预测(schoolarship  Classification)是在已给定的分类体系下,依据大学生助学金的内容或对大学生助学金的标识信息等,通过分类程序的学习和运算等处理方式,自动地确定大学生助学金所关联的类别。从数学角度来看,大学生助学金精准资助预测是一个映射的过程,即系统根据已经掌握的每类若干样本的数据信息,总结出分类的规律从而建立并关联判别公式和判别规则;当分类器遇到输入的未标明类属的新大学生助学金时,根据总结出的判别规则,确定该大学生助学金相关联的类别。

首先需要一个训练样本集作为输入,以便分类器能够学习模式并找到分类函数。训练集(Training set) 由一组数据库纪录或元组构成,每个记录是一个由有关字段值组成的特征向量,这些字段称做属性(Feature),用于分类的属性叫做标签(Label)。训练集中标签属性的类型必须是离散的。为降低分类器错误率,提高分类效率,标签属性的可能值越少越好。对于经典支持向量分类机来说,正负二类分类值{+1,-1}(binary classification)是最理想的分类值状态。 

 从训练集中自动地构造出分类器的算法叫做训练。得到的分类器常要进行分类测试以确定其分类准确性。测试集使用的数据和训练集通常具有相同的数据格式。在实际应用中常用一个数据集的2/3作为训练集,1/3作为测试集。

 


traindata=merge(data,borrow_train,by = "学生id")
traindata=merge(traindata,card_train,by = "学生id")

特征选取

 将大学生助学金转换成为适合分类任务后,本文对各个变量进行统计。而分类变量的特征对许多任务影响相对较小。因此本文筛选出数值特征变量,并使用这些变量来建模,从而提高准确度。

ndata[,i]=as.numeric(as.character(traindata[

hist(traindata$助学金金额)

得到的助学金金额直方图。


点击标题查阅往期内容


数据分享|Python酒店评论文本分析:tfidf、贝叶斯、逻辑回归,支持向量机SVM、K最邻近KNN、随机森林、LDA主题模型


左右滑动查看更多


01

02

03

04



建立分类指标 

大学生助学金表示问题会对学习系统的泛化正确率产生较强影响。典型的大学生助学金多包含多个值,需要转换成为适合分类任务的表示。大学生助学金通过该方向将形成“属性-值”的表示方法。“助学金金额”为整数,2000、1500、1000、0中四选一,因此将其转化成分类因子变量的类型。

 

模型评估

在机器学习和统计分类中,混淆矩阵,也被称为误差矩阵,是一个特定表,其允许算法,通常是监督学习的性能的可视化(在无监督学习,通常被称为匹配矩阵)。矩阵的每列表示在预测的类的实例,而每行代表一个实际的类的实例(或反之亦然)。名称源于它可以很容易判别事实的两类。它是一种特殊的列联表,有两个维度(“实际的”和“预测”)。以一个二分类问题作为研究对象,图1的混淆矩阵显示了一个分类器可能会遭遇的所有情况,其中列(positive/negative)对应于实例实际所属的类别,行(true/false)表示分类的正确与否。

在预测分析中,混淆表(有时也称为混淆矩阵)报告假阳性,假阴性,真阳性和真阴性的数量。这比正确率具有更详细的分析。

我们常用的就是分类器的精确度(accuracy),在某些如推荐或信息获取领域还会组合使用precision-recall作为评价指标。因为你用于训练分类器的样本本身就是总体的一个抽样,所以这些指标的数值也仅仅是一种统计上的反映,如果你做多次抽样训练,跟别的随机变量一样,它一样会有期望、方差、置信区间这些概念。理论上说,训练样本量越大,你得到的这些指标的可信度就越高(即它们以某个概率落在的置信区间越窄)。

svm(as.factor(助学金金额)~学院编号+成绩排名+

table(preds,traindata$助学金金额)#分类混淆矩阵

从预测结果来看,可以得到如下的混淆矩阵:

通过混淆矩阵,我们可以得到准确度、找回度和正确率。

从结果来看,svm模型具有较好的预测结果。

对混淆矩阵进行可视化。

由于ROC曲线是在一定范围的真阳性(TP)和假阳性(FP)的错误率之间的权衡分类器性能的技术。ROC曲线是判断模型的正确预测事件的能力。

ROC曲线是比分类表提供更多的信息,因为它概括了所有可能的π0的预测能力。

ROC图形上的位置反映了诊断试验的准确性。它涵盖了所有可能的阈值(截止点)。完美的ROC是在图中的左上角的点,该点的TP比例是1.0和FP比例为0。它描述的是分类混淆矩阵中FPR-TPR两个量之间的相对变化情况。如果二元分类器输出的是对正样本的一个分类概率值,当取不同阈值时会得到不同的混淆矩阵,对应于ROC曲线上的一个点。那么ROC曲线就反映了FPR与TPR之间权衡的情况,通俗地来说,即在TPR随着FPR递增的情况下,谁增长得更快,快多少的问题。TPR增长得越快,曲线越往上屈,AUC就越大,反映了模型的分类性能就越好。当正负样本不平衡时,这种模型评价方式比起一般的精确度评价方式的好处尤其显著。

erformance( prediction( as.numeric(

从roc曲线来看,由于曲线位置靠近图的左上方,因此,该模型具有较高的TPR和较低的FPR,同时可以看到模型的auc值达到了0.966,可以认为该模型的分类效果非常好。

最后可以对测试数据进行预测,可以得到不同学生id对应的预测助学金金额:

-predict(model.


数据获取


在公众号后台回复“助学金”,可免费获取完整数据。



本文中分析的数据、代码分享到会员群,扫描下面二维码即可加群!



点击文末“阅读原文”

获取全文完整代码数据资料


本文选自《R语言SVM支持向量机用大学生行为数据对助学金精准资助预测ROC可视化》。




点击标题查阅往期内容

数据分享|逻辑回归、随机森林、SVM支持向量机预测心脏病风险数据和模型诊断可视化
高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数
分类回归决策树交互式修剪和更美观地可视化分析细胞图像分割数据集
实现广义相加模型GAM和普通最小二乘(OLS)回归
贝叶斯线性回归和多元线性回归构建工资预测模型
Python支持向量回归SVR拟合、预测回归数据和可视化准确性检查实例
逻辑回归(对数几率回归,Logistic)分析研究生录取数据实例
广义线性模型glm泊松回归的lasso、弹性网络分类预测学生考试成绩数据和交叉验证
非线性回归nls探索分析河流阶段性流量数据和评级曲线、流量预测可视化
特征选择方法——最佳子集回归、逐步回归
线性回归和时间序列分析北京房价影响因素可视化案例
贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析免疫球蛋白、前列腺癌数据
用加性多元线性回归、随机森林、弹性网络模型预测鲍鱼年龄和可视化
PYTHON用户流失数据挖掘:建立逻辑回归、XGBOOST、随机森林、决策树、支持向量机、朴素贝叶斯和KMEANS聚类用户画像
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
R语言集成模型:提升树boosting、随机森林、约束最小二乘法加权平均模型融合分析时间序列数据
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化
R语言基于树的方法:决策树,随机森林,Bagging,增强树
R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测
spss modeler用决策树神经网络预测ST的股票
R语言中使用线性模型、回归决策树自动组合特征因子水平
R语言中自编基尼系数的CART回归决策树的实现
R语言用rle,svm和rpart决策树进行时间序列预测
python在Scikit-learn中用决策树和随机森林预测NBA获胜者
python中使用scikit-learn和pandas决策树进行iris鸢尾花数据分类建模和交叉验证
R语言里的非线性模型:多项式回归、局部样条、平滑样条、 广义相加模型GAM分析
R语言用标准最小二乘OLS,广义相加模型GAM ,样条函数进行逻辑回归LOGISTIC分类
R语言ISLR工资数据进行多项式回归和样条回归分析
R语言中的多项式回归、局部回归、核平滑和平滑样条回归模型
R语言用泊松Poisson回归、GAM样条曲线模型预测骑自行车者的数量
R语言分位数回归、GAM样条曲线、指数平滑和SARIMA对电力负荷时间序列预测
R语言样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化
如何用R语言在机器学习中建立集成模型?
R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测
在python 深度学习Keras中计算神经网络集成模型
R语言ARIMA集成模型预测时间序列分析
R语言基于Bagging分类的逻辑回归(Logistic Regression)、决策树、森林分析心脏病患者
R语言基于树的方法:决策树,随机森林,Bagging,增强树
R语言基于Bootstrap的线性回归预测置信区间估计方法
R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间
R语言样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析
R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化
Matlab建立SVM,KNN和朴素贝叶斯模型分类绘制ROC曲线
matlab使用分位数随机森林(QRF)回归树检测异常值


拓端数据部落
拓端(tecdat.cn)创立于2016年,提供专业的数据分析与挖掘服务,致力于充分挖掘数据价值。
 最新文章