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

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 数据分享|R语言SVM支持向量机用大学生行为数据对助学金精准资助预测ROC可视化

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

相关视频

image.png

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

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

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

4e86ebe453168157d0a663a88a97d0fa.png

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

2)数据详细描述

图书借阅数据borrow.txt

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

3e900b6bd9db8c4bc016549c3208681a.png

一卡通数据card.txt

字段描述和示例如下:

a196488cfdabcb2fafdeb026bc5560cf.png

寝室门禁数据dorm.txt

字段描述和示例如下:

0803bb12de3012888432a41c8274149d.png

图书馆门禁数据library.txt

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

字段描述和示例如下:

a8f209a48e735e33c9d1b579eeb16fb3.png

学生成绩数据score.txt。

注:成绩排名的计算方式是将所有成绩按学

179aa8ab7758a8fdb5926416a4f9f6d3.png

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

字段描述和示例如下:

0e84233d0bdcd9cb6560c2122bc04497.png

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

支持向量机方法能在训练样本数很小的情况下达到很好分类推广能力的学习算法,它能做到与数据的维数无关。算法所得到的决策面为:将两类分开最大缝隙的超平面。对决策面设计起作用的点(图中圈中的点)称为支持向量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$助学金金额)

168eaf4a194b4ad561fa70f5cf78d499.png

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

0bb706e9b1dd63c105094068d5a49eaf.png


点击标题查阅往期内容


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



左右滑动查看更多



01


建立分类指标

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

 

模型评估

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

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

4c0de36a02dd8f3381b91887bdbb0f36.png

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

svm(as.factor(助学金金额)~学院编号+成绩排名+
table(preds,traindata$助学金金额)#分类混淆矩阵

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

5b740d56daeb19e997981116b7a309e3.png

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

066ef24dbedda8567d126f5512bc3c05.png

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

对混淆矩阵进行可视化。

0c6901e60198ae245ec2d729adb9105d.png

由于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(

cafc741e18d535ef6ecad80322e55777.png

0e8b3a82b0a4fea7f2db019853020b62.png

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

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

-predict(model.

a144dfc77747e4d166111c95beb9eaf6.png

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
3月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
3月前
R语言基于表格文件的数据绘制具有多个系列的柱状图与直方图
【9月更文挑战第9天】在R语言中,利用`ggplot2`包可绘制多系列柱状图与直方图。首先读取数据文件`data.csv`,加载`ggplot2`包后,使用`ggplot`函数指定轴与填充颜色,并通过`geom_bar`或`geom_histogram`绘图。参数如`stat`, `position`, `alpha`等可根据需要调整,实现不同系列的图表展示。
|
3月前
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
|
3月前
|
机器学习/深度学习 算法 数据挖掘
R语言中的支持向量机(SVM)与K最近邻(KNN)算法实现与应用
【9月更文挑战第2天】无论是支持向量机还是K最近邻算法,都是机器学习中非常重要的分类算法。它们在R语言中的实现相对简单,但各有其优缺点和适用场景。在实际应用中,应根据数据的特性、任务的需求以及计算资源的限制来选择合适的算法。通过不断地实践和探索,我们可以更好地掌握这些算法并应用到实际的数据分析和机器学习任务中。
|
2月前
|
数据挖掘 C语言 C++
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
58 3
|
7月前
|
数据可视化 数据挖掘 API
【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化
|
7月前
|
机器学习/深度学习 数据可视化
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为2
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为
|
4月前
|
机器学习/深度学习 数据采集 数据可视化
R语言在数据科学中的应用实例:探索与预测分析
【8月更文挑战第31天】通过上述实例,我们展示了R语言在数据科学中的强大应用。从数据准备、探索、预处理到建模与预测,R语言提供了完整的解决方案和丰富的工具集。当然,数据科学远不止于此,随着技术的不断发展和业务需求的不断变化,我们需要不断学习和探索新的方法和工具,以更好地应对挑战,挖掘数据的潜在价值。 未来,随着大数据和人工智能技术的普及,R语言在数据科学领域的应用将更加广泛和深入。我们期待看到更多创新的应用实例,为各行各业的发展注入新的动力。
|
4月前
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。
|
4月前
|
资源调度 数据挖掘
R语言回归分析:线性回归模型的构建与评估
【8月更文挑战第31天】线性回归模型是统计分析中一种重要且实用的工具,能够帮助我们理解和预测自变量与因变量之间的线性关系。在R语言中,我们可以轻松地构建和评估线性回归模型,从而对数据背后的关系进行深入的探索和分析。