基于消费大数据的高校家庭经济困难学生认定分析与研究

2021-12-10 02:48程雪平赖庆
现代计算机 2021年30期
关键词:一卡通聚类样本

程雪平,赖庆

(广州华商学院数据科学学院,广州 511300)

0 引言

随着时代与经济发展,我国高校的家庭经济困难学生资助体系日趋完善[1]。但就家庭经济困难学生认定工作而言,大多数高校仍沿用人工评定的方法。人工评定方法在实际应用中存在诸如贫困申请材料真伪难辨、信息源单一等问题,因此导致高校家庭经济困难学生的准确性和资助效果大打折扣。

校园一卡通记录的是学生日常消费数据,根据学生的消费行为判断学生的家庭收入情况在所有学生中所处的水平有一定的帮助。本文以某高校(简称A高校)校园一卡通的消费数据为基础,采用聚类分析[2]对学生消费数据进行分类,从而为家庭经济困难学生的认定提供辅助决策支持。

1 一卡通消费特征数据的选取

采用一卡通消费特征[3]数据对家庭经济困难学生进行认定,基于以下几点常识和假设:①家庭经济困难学生使用校园卡在校内消费的频率较非贫困学生多。②家庭经济困难学生在校使用校园卡消费的总金额相对较小。③家庭经济困难学生使用校园卡消费的日均消费金额和次均消费金额较小,且使用校园卡消费的频率较为稳定。

因此,本文选用的消费特征数据包括以下四类[4]:月均消费次数、月均消费金额、日均消费金额、次均消费金额。

1.1 原始数据提取

A高校设有专门的信息中心,其一卡通数据库中积累了大量的教职工和学生的日常消费数据。本文真实采集了A高校28867名在校本科生2019年度总共6287134条消费数据。其中,学生消费类型包括餐费支出、账号充值、水电费支出、图书馆借阅、认证考试培训费用支出等各个方面。

学生原始消费数据内容如图1所示。

图1 校园一卡通原始消费数据(部分)

其中,消费数据中总共包括一卡通账号、学号、学生姓名、交易金额、交易类型、交易时间等23个字段,为了保护学生隐私,在此将学生姓名隐去。

1.2 数据预处理

如前所述,一卡通消费数据中总共有23个字段,其中部分字段与本文研究内容无关,因此对这些无关字段可以进行规约。

根据研究需要,规约后的消费数据表结构如表1所示。

表1 数据规约后的历史消费数据表结构

数据导出之后,需要对异常数据进行必要的预处理,将异常数据去除,从而提升数据的准确性和有效性。

经分析发现主要存在两类数据异常情况:一类是student_id为空的消费数据,student_id为空,意味着这类消费记录无法关联到具体的学生,且该类异常数据在总样本中占比较小,故而选择删除;另一类异常情况是存在一定比例的数据,其消费金额为0.01元,通过进一步查询分析,发现这类数据为系统测试数据,同样予以删除。

为保证数据完整性,以及方便研究与对比,从学生信息表中抽取2018级数科院882名本科生与进行预处理后的2019年度总体消费数据进行关联,总共筛选出233667条消费数据构建家庭经济困难学生指标模型。

2 家庭经济困难学生认定模型

2.1 K-means聚类算法

K-Means聚类算法(K-means clustering algo⁃rithm)是一种迭代求解的算法,其核心思想和基本原理在诸多资料和文献中均有具体描述,在此不再赘述。该算法具有原理简单、便于处理大量数据等优点,其聚类效果和性能均优于多种其他聚类算法[5]。

选用K-means聚类算法解决实际问题,其难点在于找到一个最接近于真实情况的K值,从而实现数据的最优聚类。

2.2 学生消费特征数据构造

把经过前述预处理之后的18级数科院882名本科生2019年度的一卡通消费数据导入IBM数据挖掘(建模)软件SPSS MODELER,从而构造出该882名学生的消费特征数据。

本文根据18级数科院学生2019年度的消费总额、消费总次数以及总消费天数和学生一年中有消费记录的月份数构造出每名学生的月均消费次数、月均消费金额、日均消费金额、次均消费金额等消费特征数据,为后续K-means算法中的家庭经济困难学生聚类提供数据基础。

如前所述,采用一卡通消费特征数据进行聚类,其前提条件之一,是家庭经济困难学生使用一卡通消费频率较高。

对样本数据进行分析,发现样本数据中有部分学生整个年度的消费记录较少,例如,某学生整个2019年度只有一条消费记录,这种情况下的消费金额存在着较大的偶然性,甚至可能会孤立成类,如果将类似的消费数据一并带到模型中进行聚类分析,势必会影响聚类结果的客观性与合理性,因此在进行聚类分析之前,对样本中消费次数过少的情况应该加以过滤。

为了将消费次数较少的样本数据过滤,又不至于因过滤的数据太多而影响聚类效果,在参考国内外有关一卡通消费行为研究文献的基础上,引入年度必要消费次数[6]概念——如果样本数据消费次数小于必要消费次数,则将样本数据剔除,否则,样本数据保留。

必要消费次数的计算公式如下:

年度必要消费次数=全部学生年度平均消费次数×必要消费控制因子

通常,必要消费因子控制在0.71~0.85[7]之间较为合适,由于A高校各种消费场所支持的支付方式不仅包括校园一卡通,也包括各种移动支付,如微信、支付宝等,为了尽可能保留有效记录,本文选取的必要消费控制因子为其取值范围的下限,即0.71。

在此基础上通过计算,构建模型之前,首先要过滤掉年度消费次数小于262的样本,然后再去构造消费特征数据模型。

使用SPSS MODELER数据挖掘工具过滤并构建的学生一卡通消费特征模型如图2所示。

图2 一卡通消费特征数据模型构造

其计算结果如图3所示。

图3 18级数科院学生19年度消费特征数据(部分)

2.3 K值的确定

如前所述,K-means聚类算法的主要问题,在于找到一个最优的K值,从而达到最佳聚类效果。

K-means聚类算法中关于最优K值的确定,通常有两种方法,即拐点法[8](elbow method)和轮廓系数法。

拐点法通过计算簇内误方差(sum of squares due to error,SSE)作为目标函数划分簇确定最佳的K值[9]。

由于SPSS Modeler数据挖掘工具本身自带的聚类效果评价算法就是轮廓系数测量法,因此本文主要采用簇内误方差法确定K值,然后在此基础上观察该K值在SPSS Modeler的聚类效果。

拐点法确定K值的基本思想如下:若K值小于真实聚类数,随着K值增大,每个簇簇内的聚合度会大幅提升,代表簇内误方差的SSE值则会猛烈下降;而当K值比较接近真实聚类数时,K值若再增加,簇内聚合程度就会大幅减小,此时SSE的下降幅度会骤然减小,在此基础上K值再增加,SSE的值便会趋于平缓,而在骤减和趋于平缓的曲线图中可以得到一个较为明显的拐点,这个拐点对应的K值,就是比较合适的聚类数。

拐点法的核心指标是簇内误方差(sum of squares due to error,SSE),

其中,X i指K-means中的第i个簇,p是X i的样本点,m i是X i的质心(X i中所有样本的均值),S S E是所有样本的聚类误差[10],代表着聚类质量的高低。

综上,利用簇内误方差法(SSE)确定K-means参数的算法流程如下:

(1)读取预处理过后的特征数据。

(2)让K从1开始取值,直到取到比较合适的上限(通常这个上限值不会太大,一般在10以内)。

(3)对每一个K值按照特定条件进行聚类(本文使用学生消费特征数据进行聚类,包括学生的月均消费次数、月均消费金额、日均消费金额,次均消费金额),并记录相对应的S S E值。

(4)画出K和S S E的曲线关系图。

(5)根据图形特征,选取曲线拐点对应的K值作为最佳聚类数。

根据以上理论和算法,本文利用jupyter Note⁃book平台编写Python程序,将2018级数科院学生2019年度的一卡通消费特征数据的肘部曲线图描绘出来,程序运行结果如图4所示。

图4 使用肘部法确定K值

从图4可以看出,当K的值取4时,明显是该肘部曲线的拐点,由此可以判定,K=4是比较接近真实情况的聚类数。

据此,在使用spss modeler数据挖掘工具进行K-means建模时,聚类数K可直接设置为4,并以学生消费特征数据月均消费总次数、月均消费金额、次均消费金额、日均消费金额作为输入条件进行聚类分析。

考虑到历史消费数据中,绝大多数数据属于食堂餐费支出,而餐费支出中男生和女生的消费特点具有一定的差异性,因此,在使用聚类算法对消费特征数据进行挖掘时,将男生和女生的数据分别进行聚类,从而得出一个更加客观和接近真实情况的聚类结果。

3 实验结果

3.1 聚类结果及分析

图5是2018级数科院男生2019年度一卡通消费特征数据的聚类结果,其聚类数为K=4。

图5 2018级数科院男生2019年度一卡通消费特征数据聚类结果

其中预测变量的重要性如图6所示。

图6 2018级数科院男生2019年度消费特征数据预测变量重要性

取K=4时,SPSS Modeler数据挖掘工具聚类效果评价如图7所示。

图7 取K=4时聚类质量评价

从聚类结果评价来看,本文采用簇内误方差确定K值的方法达到了良好的聚类效果。

如前所述,用一卡通消费特征数据建模判定家庭经济困难学生所假设的前提是,家庭经济困难学生在校使用校园卡消费的频次较高,并且日均消费金额和次均消费金额均比较低的,综合数据的聚类结果分析,图5中的聚类2符合家庭经济困难学生的消费特征,而其他聚类为不贫困的三种情况。

3.2 家庭经济困难学生模型的识别率

混淆矩阵(confusion matrix),是一种用来评判模型结果的指标,属于模型评估的一部分,多用于判断分类器的优劣,非常适用于分类型的数据模型,其中二分类问题是混淆矩阵最典型也是最简单的应用场景[11]。

本文根据学生消费特征构造的聚类模型,最终将学生分为贫困与非贫困两大类,是典型的二分类问题,因此可以采用混淆矩阵来判断聚类分析结果的质量。

在混淆矩阵的二分类问题中,模型最终需要判断样本的结果是0或者1,或者是positive(正例)还是negative(负例)。

通过样本采集,可以了解在真实情况下,哪些数据结果是正例,哪些结果是负例。同时,通过样本数据跑出分类型模型的结果,也可以指导模型对正例和负例进行分类,由此可以得到如下四个基础指标:

真实值是正例,模型认为是正例的数量(True Positive=T P)

真实值是正例,模型认为是负例的数量(False Negative=F N)

真实值是负例,模型认为是正例的数量(False Positive=FP)

真实值是负例,模型认为是负例的数量(True Negative=TN)

将以上四个基础指标构造如下混淆矩阵表。

表2 混淆矩阵表

混淆矩阵的准确率是一个二级指标,其通过统计正例与反例的数量衡量整个聚类模型质量的好坏,而为了进一步度量聚类模型识别家庭经济困难学生的精确度,需要引入混淆矩阵中另外两个二级指标——精确率(precision)和召回率(re⁃call)。

其中精确率针对预测结果而言,用来计算预测为正的样本中有多少是真正的样本,而召回率则是针对原来的样本数,表示样本中有多少正例数被正确的预测到。

高校制定家庭经济困难学生资助体系的初衷,就是最大限度地照顾到所有家庭经济困难的学生,资助其顺利完成学业,因此,根据本文研究场景和目标,选择召回率作为衡量家庭经济困难学生识别率的指标更为合理。

混淆矩阵中,召回率计算公式如下:

将A高校学生处提供的真实的2018级数科院性别为男的家庭经济困难学生名单与前述聚类3中的数据放入到混淆矩阵,结果如表3所示。

表3 混淆矩阵表

根据上表中的数据,通过简单计算,该聚类模型的准确率约为88.9%,而家庭经济困难学生识别率约为64.4%。

单从结果数据来看,该聚类模型与实际情况存在一定的差距,经过对数据进一步分析发现,原因主要有以下两点:

(1)在学生处提供的62名家庭经济困难男学生名单中,有少部分同学因为2019年度使用一卡通消费的次数没有达到年度必要消费次数,而直接被模型过滤掉。

(2)在做数据对比的过程中,发现有些实际被评为家庭经济困难的学生,并不属于模型中的贫困类,甚至这类学生的消费水平还比较高;而有些在模型中属于贫困类的学生,实际并没有被评定为家庭经济困难学生。这在很大程度上说明,当前实际工作中对家庭经济困难学生的认定方法和流程客观上存在一定的问题,而这也恰恰说明本文使用的聚类模型具有一定的合理性与实用性。

4 结语

总体来看,本文采用的一卡通消费特征数据和聚类模型具有一定的识别率和准确性,能对应用型本科院校的家庭经济困难学生认定提供一些的决策支持,为更好的发放家庭经济困难学生补助提供理论依据。

当然,由于学校各种场所的支付方式不仅仅支持校园一卡通支付,还包括其他移动支付方式,而这些支付方式并没有接入信息中心的数据库,因此会导致一定数量的实际数据丢失,从而导致模型的计算结果与实际情况存在一定的偏差。

在今后的研究中,如果能够对这些移动支付数据进行接入并加以采集并使用更优的方法,相信能够取得更好的结果。

猜你喜欢
一卡通聚类样本
一种傅里叶域海量数据高速谱聚类方法
一卡通失卡招领系统设计
基于数据降维与聚类的车联网数据分析应用
基于模糊聚类和支持向量回归的成绩预测
规划·样本
随机微分方程的样本Lyapunov二次型估计
向心加速度学习一卡通
基于支持向量机的测厚仪CS值电压漂移故障判定及处理
“官员写作”的四个样本