基于K-Means聚类的学生考勤行为智能分群分析
2026/5/25 1:38:08 网站建设 项目流程

1. 实验概述

1.1 实验目标

本次实验的核心目标是运用无监督机器学习中的K-Means聚类算法,对学生的历史考勤记录进行深度挖掘。通过对迟到、早退、请假、校服穿戴违规等行为次数进行量化分析,自动将学生划分为不同的行为群体,并为每个群体生成具有业务含义的标签。最终成果将作为扩展标签,补充到现有的学生考勤特征表中,为学校进行精细化管理、早期行为预警和个性化辅导提供数据驱动的决策依据。

1.2 实验环境与工具

实验平台:助睿数智(Uniplore)一站式数据科学平台。

核心模块:

助睿AI(AI Studio):用于以零代码拖拽方式搭建K-Means聚类工作流。

助睿BI:用于对聚类结果进行可视化探索与群体画像解读。

助睿ETL:用于对原始数据表进行字段扩展和结果回写。

数据存储:团队私有MySQL数据库。

基础数据表:student_attendance_stats(学生考勤主题标签表)。

2. 实验数据准备

2.1 数据来源与结构

实验直接使用了上一阶段产出的student_attendance_stats表。这张表已经完成了对学生基础信息(如年级、班级、住校状态等)和各项考勤次数的统计聚合,是一份干净、标准化的建模数据集。

2.2 核心分析字段

为了聚焦于考勤行为本身的特征,我从原始表中筛选出以下四个核心数值字段作为聚类算法的输入特征,它们分别代表了学生考勤纪律的四个不同维度:

2.3 建模策略思考

在开始建模前,我明确了以下分析思路:

聚焦核心指标:避免引入性别、年级等人口统计学属性,只使用考勤行为本身的数据进行聚类,确保分群结果纯粹反映学生的纪律表现。

变量业务含义独立:选用的四个指标分别衡量出勤稳定性(迟到/早退/请假)与校规遵守情况(校服),彼此间相关性低,直接作为聚类特征不易产生冗余,模型解释性强。

数据类型适配:K-Means算法要求输入连续型数值变量。本次使用的考勤次数恰好是整数型连续变量,无需进行编码或标准化等复杂预处理,可直接用于模型训练。

3. 详细实验操作流程

3.1 阶段一:使用AI Studio搭建K-Means聚类模型

3.1.1 创建新的工作流

进入平台的“人工智能”模块,新建了一个空白工作流,并命名为“学生考勤聚类分析流”。这是整个建模实验的容器。

3.1.2 加载原始数据

从左侧控件列表中拖出“数据库加载”组件到画布。

配置该组件,连接到我们的团队私有数据库,并选择student_attendance_stats表。

在字段选择环节,我依据分析需求,仅保留student_id(作为样本标识)、late_count、early_leave_count、leave_count、uniform_violate_count这五个字段,其余字段均设为“跳过”。

运行该组件,并预览输出,确认成功加载了用于聚类的特征数据。

3.1.3 配置并运行K-Means聚类

拖入“K-Means”组件,将其与“数据库加载”组件的输出端连接。

双击打开K-Means配置窗口。在“簇数量”选项中,我基于业务经验和对学生考勤状况的预判,选择将学生划分为3个自然群体。

运行K-Means组件。模型训练完成后,查看输出结果,发现每个学生的原始记录末尾都新增了一个名为“Cluster”的字段,其值为C1、C2或C3,这表示该学生被分配到的簇编号。

3.1.4 保存聚类结果

拖入“数据入库”组件,并连接到K-Means组件的输出。

配置数据库连接信息,并选择“新建数据表”,将表命名为student_cluster_result,用于永久保存每个学生对应的聚类簇编号。

运行整个工作流,所有组件均显示绿色对勾,表示建模与结果保存成功。

3.2 阶段二:在助睿BI中解读聚类群体的业务含义

模型输出的C1、C2、C3只是机器编号,我需要通过可视化分析来理解每个簇背后的学生特征。

3.2.1 创建数据集

进入“助睿BI”模块,首先新建一个MySQL数据源连接,指向团队私有数据库。

接着,基于该数据源创建一个名为“聚合簇编号数据集”的数据集,并将student_cluster_result表拖入画布。

为了方便后续分析,我将各个字段的别名修改为易于理解的中文,如将Cluster改为“聚类簇编号”。

3.2.2 制作多维分析工作表

为了对比不同簇在四个考勤指标上的差异,我创建了多个散点图工作表,每次选取两个指标进行组合分析:

迟到 vs. 早退:观察学生的出勤准时性。

迟到 vs. 请假:分析行为不规范与请假习惯的关联。

迟到 vs. 校服违规:探讨纪律问题的普遍性(是否一项违纪常伴随另一项)。

早退 vs. 请假:分析早退与请假行为的相关性。

请假 vs. 校服违规:查看因故缺勤与纪律散漫是否有联系。

在每个工作表中,我都将“聚类簇编号”设置为颜色区分项,使不同簇的数据点清晰可辨。

3.2.3 构建综合分析仪表盘

新建一个名为“聚类簇分析”的仪表盘。

添加一个文本标题组件,使看板主题更明确。

将我制作好的6个散点图工作表全部添加到仪表盘中,并进行合理的排版布局。

最终形成一个可以全局观察不同群体在各个行为维度组合下分布情况的可视化面板。

3.2.4 聚类群体的业务标签定义

通过观察仪表盘中所有散点图的共同分布模式,我为三个聚类簇赋予了明确的业务标签:

C1簇(蓝色点群)- 纪律模范群体:在所有图表中,该群体的数据点都紧密且稳定地聚集在坐标轴左下角(极低值区域)。这表明他们几乎没有任何迟到、早退、请假或校服违规记录,是考勤行为的典范。

C2簇(青色点群)- 轻微波动群体:该群体的主体同样集中在低值区,但相比C1,其数据点略微发散。主要特征是在“请假”或“校服违规”某个单一维度上出现少量次数,而迟到、早退行为依然非常少。他们整体纪律可控,但需要日常性的提醒。

C3簇(黄色点群)- 重点关注群体:该群体的数据点表现出明显的“拖尾”或“离群”特征,尤其是在“迟到次数”与其他指标的组合图中,出现了显著的高频值。这意味着该群体学生存在多维度、高频次的违纪行为,迟到问题尤为突出,是学校管理中需要重点干预的对象。

3.3 阶段三:将分析结果扩展至原始考勤表

为了使分析成果能用于后续业务应用,我需要将上述群体标签回写到原始的student_attendance_stats表中。

3.3.1 为原始表增加扩展字段

切换到“数据集成”模块,在原有项目中新建一个转换任务。

添加“执行SQL脚本”组件,执行ALTER TABLE语句,为目标表student_attendance_stats新增两个字段:cluster_id(存储簇编号)和group_label(存储群体标签)。

3.3.2 关联数据并映射标签

继续新建一个转换任务,使用“表输入”组件读取student_cluster_result表中的student_id和Cluster。

使用“字段选择”组件,仅保留这两个关键字段。

添加“值映射”组件,将机器编号C1、C2、C3转换为可读的纪律模范群体、轻微波动群体、重点关注群体。

最后,使用“更新”组件,配置更新条件为两张表的student_id匹配,将转换后的group_label字段值更新到student_attendance_stats表的group_label字段中。

3.3.3 验证最终结果

运行整个转换流,执行成功后,直接查询数据库中的student_attendance_stats表。确认新增的cluster_id和group_label字段已经正确填充了每个学生对应的聚类编号和群体标签,实验目标达成。

4. 实验总结与反思

本次实验完整地走通了“数据准备 - 模型构建 - 结果解读 - 成果落地”的校园数据挖掘全流程。通过这次实践,我得出以下几点认识:

业务理解是模型价值的起点:K-Means聚类输出的数字本身没有意义,通过助睿BI进行可视化探索,将业务经验与数据分布相结合,才能让模型结果产生管理价值,定义出“模范型”、“高危型”等有行动指导意义的标签。

特征选择需紧扣分析目的:本次实验特意排除了性别、年级等基础属性,只使用行为次数进行聚类,使得分群结果纯粹由考勤纪律决定,避免了无关变量的干扰,保证了“考勤画像”的准确性。

零代码工具降低了分析门槛:全程无需编写复杂代码,通过拖拽组件和配置参数,就完成了一个完整的机器学习应用。这让业务分析人员能将更多精力投入到问题定义和结果解读上,而非编程细节。

标签扩展增强了数据资产价值:将分析得到的“考勤群体标签”回写到原始数据表,极大地丰富了学生主题表的信息维度。这张表未来可以直接用于生成报表、对接预警系统或作为其他预测模型(如辍学风险预测)的特征输入,实现了数据分析成果的业务化沉淀。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询