基于KMeans和LightGBM模型的大学生公益人群画像分析

2023-08-26 03:08王宏平马雪静彭玉蛟蒋剑军
电脑知识与技术 2023年19期

王宏平 马雪静 彭玉蛟 蒋剑军

关键词:大学生公益;人群画像;KMeans聚类;t-SNE可视化;LightGBM模型

0 前言

改革开放以来,国家经济科技等事业全面且快速发展的同时,公益事业也得到了国家和社会的重视[1],因此近年来各种公益协会、公益志愿服务队等组织如雨后春笋般涌现。大学生公益社团及志愿服务组织是公益事业中不可或缺的组成部分,它们作为提升大学生综合素质的载体,不仅可以提升大学生的学习能力,更能培养大学生的社会责任感[2]。

关于大学生参与公益活动的研究是当前的热点[3~6]。为了更加细致深入地了解大学生参与公益活动情况,我们首先自主设计了“关于大学生认知及参与公益活动情况的调查问卷”,调查问卷采集到的数据让我们掌握了大学生参与公益活动的第一手资料;然后提出了基于KMeans聚类模型的大学生典型公益人群分类模型,并应用t-SNE算法可视化分类效果;最后构建了基于LightGBM模型的大学生公益人群画像体系。

1 数据

为了细致深入了解大学生参与公益活动情况,我们自主设计了“关于大学生认知及参与公益活动情况的调查问卷”,问卷包括了四个方面:(1) 受访者基本信息——“性别”“专业”“年级”,共3个问题含15个选项;(2) 受访者对公益的认知情况——“公益的概念认识”“对三大筹款平台(水滴筹、轻松筹、无忧筹)的看法”,共2个问题含9个选项;(3) 受访者对公益的参与情况——“腾讯公司发起并资助的相关活动的了解程度”“所在学校社团的公益活动开展情况”“是否参加过公益”“参加公益的地点、频率、类型”“对何种类型最感兴趣及原因”“参与公益的渠道”“影响参加公益活动热情的因素”“参加公益的动机”“参加公益所获得的收益”,共11个问题含81个选项。(4) 受访者对公益的态度情况——“对公益活动持什么态度”“如何提高大学生公益活动的参与度”“阻碍参加公益活动的因素”“对公益活动持有的看法”,共4个问题含16 个选项。调查问卷编制完成后发布在腾讯问卷调查系统平台上,历时63天共收回问卷380份,其中有效问卷378份。

调查问卷中各问对应的因素都是定性的,根据研究目的,本文按下述方法对定性变量赋值:

(1) 对于单选题项,应用独热编码方法赋值;

(2) 对于多选题项,应用多热编码方法赋值。

赋值完毕后,问卷中描述受访者的20个定性变量编码成了121个哑变量。这121个哑变量将用于本文的聚类分析及大学生典型公益人群画像。

数据已上传百度网盘,链接:https://pan.baidu.com/s/1lMc7cUh5JuELTGa6kAR TcA?pwd=78ny

2 人群画像模型构建

人群画像,意指根据某些指标对人群进行分类,然后描述各类的特征。

本文构建人群画像模型的路线是:首先引入KMeans聚类模型对大学生公益人群进行分类,然后利用t-SNE 降维算法可视化分类效果,最后应用LightGBM模型提取特征的重要性,以将某类和其他类区别开来,凸显本类的特征。

2.1 KMeans 算法

KMeans聚类是无监督机器学习方法,因其算法思想简单易懂、分类效果相对优良而受到广泛应用[7-8]。

设有m 个待分类对象X1,X2,…,Xm,他们由n 个特征来描述。m 个对象在n 个特征上的观测值矩阵为(每一行是一个对象,每一列是一个特征)。

第四步,重复上述第二步和第三步,直到聚类中心的位置不再发生变化(或达到设定的迭代次数)为止。

本文应用KMeans聚类算法对大学生公益人群进行分类。

2.2 t-SNE 算法

t-SNE[9] 全称为t-distributed Stochastic NeighborEmbedding,翻译为t-随机邻近嵌入,诞生于2008年,是一种较为新颖且效果优良的高维数据降维和可视化方法,是对SNE模型的明显改进:(1) 通过引入联合概率分布来计算两个点之间的相似性,克服了SNE “用条件概率分布计算的两点之间的相似性是非对称的”不足;(2) 通过引入t 分布的长尾特性来改进SNE 模型对异常值敏感的缺陷,从而能较好地捕获数据的整体特征。

本文应用t-SNE算法将378个成员的聚类结果可视化,观察聚类效果。若聚类效果优良,则可对大学生公益人群进行画像,从而实现对大学生参与公益活动情况的全面了解。若聚类效果不够好,则调整聚类算法再次对大学生公益人群进行分类,直至聚类效果达到理想的效果为止。

2.3 LightGBM 模型

LightGBM 模型(轻梯度提升机器)是一种基于GBDT(梯度提升决策树)的机器学习方法[10],是将弱学习器集成为强学习器的学习算法。它以回归树为弱学习器,通过使用每个预测结果与目标值的残差作为下一个学习的目标,获得当前残差回归树,每棵树都学习所有先前树的结论与残差,将多棵决策树的结果加在一起作为最终预测输出。利用直方图算法对特征进行预排序,并利用节点展开方式进行树的构建,是一种高效、高精度、高性能的分类算法。由于LightGBM模型使用决策树作为基学习器,所以可记录每个特征在树节点中出现的次数。一个特征出现的次数越多说明其对分类作出的贡献越大,即特征重要性可定义为该特征在所有树中出现的次数和,即:

式中,IMXi 为特征Xi 的重要性,Ntrees 为模型构建的树的棵数,n(i)j 为特征Xi在第j 棵树中出现的次数。

本文应用LightGBM模型来提取大学生公益人群各类的特征,从而实现对大学生公益人群的画像。

3 实验及结果

3.1 大学生公益人群分类

应用Python机器学习库的聚类模块sklearn.clus?ter中的KMeans函數对378名受访者进行聚类,设定类别数n_clusters=3,其他参数按默认值设定,聚类结果如表1所示。

应用t-SNE算法对上述结果可视化,如图1所示。

从图1看出,KMeans聚类效果优良,能明显将三类人群分离开来。

3.2 大学生人群的类别特征

3.2.1 数据预处理

将K-means输出的类别标签添加至上述编码后数据的最后一列,将类别标签设定为被解释变量Y,将编码数据设定为解释变量X。将上述处理过后的表格复制成三份,由于三类人群的类别标签分别为0、1、2,即将第一份数据表中的类别2全部替换为类别1,将第二份数据表中的类别2全部替换类别0,将第三份数据表中的类别0全部替换类别1。

3.2.2 实验

将处理后的三份数据表读入Python 环境,应用LightGBM模型计算出每个类别区别于其余两个类别的因素的重要性,通过比较重要性的大小以区分各类人群对公益活动的参与及认知情况所具有的特征。

(1) 数据分割

①读入数据,对数据分离出自变量Y(第一列)与因变量X(第2-122列);

②应用sklearn.model_selection 模块中的数据分割函数train_test_split,按测试集占比test_size=0.3 将数据Y 和X 随机分割为训练集和测试集。

(2) 建模应用Python第三方库lightgbm中的分类器LGBM?Classifier函数,按默认参数建立模型。

(3) 训练应用模型的fit方法将训练集用于机器学习,训练模型时按fit的默认参数进行。

(4) 测试集预测评估模型训练完成之后,将测试集代入模型以对测试集对应的类别进行预测。

(5) 可视化特征重要性利用feature_importances_方法提取各题项下各选项的重要性,再运用plot_importance函数对重要性可视化。

3.2.3 实验结果

应用LightGBM模型提取的各类人群特征重要性前10位如表2所示。

从图2 可知,因素X44,X107 是明显地能将第1 类(LightGBM输出的标签为0) 从其他两类中区别开来,因素X35,X34 是明显地能将第2类(LightGBM输出的标签为1) 从其他两类中区别开来,因素X5,X9 是明显地能将第3类(LightGBM输出的标签为2) 从其他两类中区别开来。所以,因素X44,X107 是第1类人群所具有而其他两类所不具有或不明显具有的主要特征,X35,X34是第2类人群所具有而其他两类所不具有或不明显具有的主要特征,X5,X9 是第3类人群所具有而其他两类所不具有或不明显具有的主要特征。

4 大学生公益人群画像

根据第三节数据分析结果,可对大学生公益人群进行如下画像,见表4。

5 结束语

本文通过调查问卷获得了大学生对公益的认知及参与情况的第一手资料,应用KMeans聚类、t-SNE 算法及LightGBM等机器学习方法构建了大学生公益人群的画像体系。本文的研究结果为高校如何设计公益活动提供基于数据的建议,如何引导大学生參与到公益活动中来并推动大学生公益事业发展提供了新的视角。