1 实验说明

1.1 实验目的

基于已完成的学生考勤主题标签表(student_attendance_stats),使用 K-Means 聚类算法对学生考勤行为进行自动分群。通过迟到、早退、请假、校服违规次数等核心指标,识别不同类型的考勤群体,生成可解释的考勤画像,为校园学生管理、行为分析提供精准数据支撑。

1.2 实验环境

  • 工具为助睿数智(Uniplore)在线实验平台:https://lab.guilan.cn/, 助睿数智(Uniplore)是AI驱动的一站式数据科学平台,覆盖从数据接入、ETL处理、机器学习建模到可视化展示的全链路零代码功能,本次实验主要用到以下功能平台:

    • 数据集成平台(助睿 ETL)

    • 人工智能平台(助睿 AI)

    • 助睿BI 数据可视化探索平台

  • 数据库:MySQL

  • 前置数据:学生考勤主题标签表(student_attendance_stats)

2 实验数据

2.1 数据构成

本次实验使用上一实验输出的学生考勤主题标签表,数据包含学生基础信息与考勤次数统计结果,为聚类建模提供干净、标准化的特征数据。

2.2 字段说明

名称 说明 类型
id 自增主键 连续(整数)
student_id 学生 ID 连续(整数)
student_name 学生姓名 文本
class_id 班级 ID 连续(整数)
class_name 班级名称 文本
grade 年级 文本 / 分类
gender 性别 二分类
birth_date 出生日期 文本 / 日期
political_status 政治面貌 文本 / 分类
is_boarder 是否住校 二分类
campus_type 校区类型 文本 / 分类
late_count 迟到次数 连续(整数)
early_leave_count 早退次数 连续(整数)
leave_count 请假次数 连续(整数)
uniform_violate_count 没穿校服次数 连续(整数)
create_time 统计入库时间 日期时间

2.3 建模思路

通过对数据的观察,以及对考勤分群的业务需求分析,确定本次建模分析思路如下:

  • 数据维度清晰、变量数量适中,聚焦考勤行为核心指标,无需复杂降维。基于考勤业务理解,将变量聚焦在迟到次数、早退次数、请假次数、校服违规次数四类行为维度,每个维度直接反映一类考勤特征,变量间业务含义独立、相关性低,可直接用于 K-Means 聚类建模,避免变量冗余导致模型解释困难。

  • 本次建模采用次数类连续变量,数据类型单一、适配 K-Means 算法要求。考勤次数均为非负整数,属于连续型变量,满足 K-Means 对数据类型的要求,无需进行哑变量编码、二值化或特殊转换,可直接输入模型,简化预处理流程,保证聚类结果稳定可靠。

  • 学生基础离散属性(性别、年级、住校状态等)不参与聚类建模,仅作为后续画像标签的辅助解释变量。

3 实验步骤

人工智能平台(AI Studio)是一站式大数据智能应用平台,以零代码拖拽的方式简化机器学习全流程,提供从数据加载、预处理、特征工程到模型训练与评估的完整解决方案。平台内置 100 + 数据挖掘算法组件,支持主流深度学习框架,同时具备可视化建模、智能一键分析、协作共享与精细版本管理能力,无需深厚编程知识,即可高效实现数据价值挖掘与智能分析。

3.1 AI Studio 聚类建模

3.1.1 新建工作流

在该环节,我们使用 AI Studio 搭建从数据加载到聚类建模、结果输出的完整流程,为后续建模提供独立运行空间。

点击左边菜单“人工智能”,进入人工智能平台(AI Studio),进入人工智能模块用户空间

1920×945 54.7 KB

点击“+” - “新建工作流”

1920×945 39.5 KB

人工智能模块页面是集构建、运行、编辑、查看于一体的工作区域。在该模块页面中,主要包括三个模块,分别是菜单栏,控件列表以及画布(用于工作流构建)。如下图所示:

1920×963 20.4 KB

3.1.2 数据导入

首先,我们需要将 student_attendance_stats 的数据载入,搜索“数据库加载”控件,拖拽至画布

1920×945 46.3 KB

双击“数据库加载”控件,右边会出现参数配置窗口,将团队私有数据库的信息填入,并点击“连接”

1920×945 56.8 KB

在弹出的窗口中,点击下拉框,选择 student_attendance_stats

800×532 18 KB

选择后会自动加载表信息,我们主要是分析各类异常考勤占比的特征,所以只需保留 student_id 、class_id、late_count、early_leave_count、leave_count、uniform_violate_count,其他字段跳过(skip);为保留的字段选择对应的属性类型,最后点击“确定”

793×661 18.6 KB

字段对应的属性类型参考如下:

属性名称 属性类型 属性名称 属性类型
id skip political_status skip
student_id categorical is_boarder skip
student_name skip campus_type skip
class_id categorical late_count numeric
class_name skip early_leave_count numeric
grade skip leave_count numeric
gender skip uniform_violate_count numeric
birth_date skip create_time skip

右键数据库加载空间,点击“运行该控件”

451×239 9.48 KB

运行成功后可右键点击“查看输出结果”

可以看到保留下来的数据

1277×588 15.7 KB

3.1.3 K-Means 聚类建模

拖入“K-Means”组件,创建数据库加载组件到“K-Means”组件的连线

1920×945 50.2 KB

双击“K-Means”组件,配置窗口中,簇数量选择固定3个,其他保持不变

375×447 12.7 KB

右键运行该控件,查看输出结果,可以看到每个学生分别标记了对应的簇类C1/C2/C3

1278×595 14.7 KB

3.1.4 结果输出与保存

聚类后的数据我们需要保存到数据库中,以便后续使用

拖拽“数据入库”组件到画布,创建“K-Means”组件到“数据入库”组件的连线

1920×945 53 KB

双击“数据入库”组件,数据库配置中输入团队私有数据库的参数,并点击“获取表信息”

349×476 13.4 KB

在弹出的窗口中,选择“新建数据表”,表名称修改为“student_cluster”,并点击“确定”

555×518 14.7 KB

运行工作流,各控件均运行成功则工作流运行成功

1920×945 46.8 KB

3.2 分析聚类簇编号对应的考勤群体分类

上一步骤输出的聚类簇编号无法确定对应的考勤群体分类,可要通过助睿BI 可视化分析来确定

点击实验平台左边菜单“助睿BI”,进入助睿BI平台

1920×945 47.4 KB

进入助睿BI 平台的首页,可以看到该账户下的数据情况、数据分析处理流程、支持的数据源有哪些
如果是进入的页面是登录页面,可以关闭后,重新从实验平台进入

1916×1423 212 KB

3.2.1 连接数据源

上一步骤输出的 student_cluster 存放于我们的团队私有数据库中,所以我们需要在助睿BI 平台中创建数据库连接

点击左边菜单中的“数据源”

1920×945 75.3 KB

点击左上角“+” - “新建连接” - “MySQL”

1920×945 40.9 KB

在弹出的窗口中输入自己所在小组在 Uniplore实验平台 的数据库连接账号信息,点击“测试连接”

1920×945 40.5 KB

出现“测试连接成功”表示我们的连接正确,点击“确认”

1920×945 43.7 KB

点击新建的数据库目录,可以看到本次实验所用的学生考勤主题标签表(右键点击-查看表数据,可以预览表内数据)

1920×945 41.1 KB

3.2.2 构建数据集

数据源连接成功后,我们要将需要分析的数据表构建为数据集

点击左边菜单中的“数据集”

1920×945 44.7 KB

点击左上角“+” - “新建数据集”

1920×945 34.2 KB

在弹窗中输入数据集名称、所属分组、备注信息后点击“确认”

596×454 5.84 KB

数据集创建成功后,会自动跳到该数据集的配置页面,第一步需要先选择数据源,助睿BI平台为防止这个步骤遗漏,做了强提醒,点击“好的,我知道了”可关闭提醒

1920×945 46.8 KB

数据源的第一个选项选择我们刚刚新建的数据源“商业数据分析实验” ,第二个选项则选择student_cluster 所在的目录“labs”

1920×945 49.5 KB

数据源选择完成后,labs目录下的数据表自动出现在画布左边,将student_cluster 拖拽至画布中

1920×945 69.8 KB

查看数据的表结构及数据,为方便进行后续分析,将字段备注分别修改为中文,在student_id的字段备注输入框中输入“学生ID”,并点击“√”保存

1920×945 70.1 KB

其他字段的字段备注按照同样操作进行修改,字段别名参考如下:

原字段名 字段备注
student_id 学生ID
class_id 班级ID
late_count 迟到次数
early_leave_count 早退次数
leave_count 请假次数
uniform_violate_count 没穿校服次数
Cluster 聚类簇编号
Silhouette 轮廓系数

字段别名修改完成后,点击画布左上角“保存”按钮

1920×945 72.1 KB

在保存提示中点击“保存并发布”,只有发布后的数据集才能在工作表中引用

400×237 4.67 KB

3.2.3 制作工作表

工作表是助睿BI 平台中用于承载可视化图表、完成数据探索与分析的核心单元,是实现数据可视化展示的基础载体。

接下来我们开始制作聚类簇编号对应的考勤群体分类工作表

点击左边菜单中的“工作表”,进入工作表模块

1920×945 57.2 KB

为了方便管理,我们将本次制作的工作表集中存放在一个目录下,点击左上角的“+” - “新建分组”

1920×945 29.7 KB

在弹窗中输入分组名称、选择所属分组、填写备注信息后点击“确认”

581×459 6.46 KB

右键或者点击聚类簇对应的考勤画像群体分类分析分组的“…”

1920×945 26.7 KB

在操作列表中点击“新建工作表”

606×477 9.51 KB

在弹窗中输入工作表名称为“迟到早退次数的聚类簇分析”、选择所属分组、填写备注信息后点击“确认”

596×442 6.67 KB

自动跳转到工作表设计页面,点击右上角“好的,我知道了”来关闭提醒

1920×945 57.3 KB

数据集选择刚刚创建的“聚类簇编号数据集”

1920×945 57.6 KB

图表类型选择“探索器”

1920×945 57.6 KB

将字段“late_count(迟到次数)”拖拽到X轴,“early_leave_count(早退次数)”拖拽到Y轴

1920×945 63.3 KB

点击图形设置按钮,打开设置面板

1920×945 66.2 KB

在设置面板中,点击颜色区域的“+”,在下拉框中选择“Cluster(聚类簇编号)”,并点击“确认”

331×472 14.8 KB

点击信息区域的“+”,在下拉框中选择“student_id(学生ID)”,并点击“确认”

349×485 17.9 KB

将“student_id(学生ID)”设置为“维度”

449×567 18.4 KB

系统默认限额为2000条数据,因此,需要将限额设置为100%,避免数据过多不显示全部

298×139 2.1 KB

1920×945 89.5 KB

为了区分更明显,我们可以设置聚类簇编号的颜色,点击颜色区域的设置按钮,切换对比强烈的主题

311×516 15.3 KB

颜色设置后需要点击一下颜色区域外的地方才会生效

1920×945 89.4 KB

点击保存按钮,保存并发布工作表

1920×945 94 KB

同样的,重新新建工作表,依次两两分析4个异常考勤次数的3个聚类簇的表现情况

迟到与请假次数的聚类簇分析:

1920×945 77.3 KB

迟到与没穿校服次数的聚类簇分析

1920×945 80 KB

早退与请假次数的聚类簇分析:

1920×945 74.4 KB

早退与没穿校服次数的聚类簇分析:

1920×945 74.9 KB

请假与没穿校服次数的聚类簇分析:

1920×945 79 KB

3.2.4 搭建仪表盘

为了更好地观察分析以上制作的6个工作表,我们可以将它们放在一起

点击左边菜单“仪表盘”

1920×945 119 KB

点击左上角“+” - “新建仪表盘”

1920×945 30.8 KB

仪表盘名字输入“聚类簇分析”,备注信息输入“聚类簇分析”,点击“确认”

575×440 5.52 KB

在右边组件与工作表区域,点击“基础组件”

1920×945 33 KB

拖拽一个文本组件到画布中

1920×945 34.3 KB

文本内容输入“聚类簇分析”,并设置字体颜色、字体大小、加粗、居中

1920×945 50.2 KB

关闭组件窗口

1920×945 50.3 KB

鼠标移至文本组件上,组件右下角可以拖动跳转组件大小

1920×945 24.5 KB

参考下图调整

1920×945 35.3 KB

为了防止后续位置改变,可以点击右上角图钉图表,固定位置

1920×945 24 KB

点击工作表组件显示按钮

1920×945 24 KB

切换到“工作表”,将3.2.3节中制作的工作表都拖拽至画布中

1920×945 46.4 KB

拖入完毕后,可以按住图标顶部中间位置拖动图标,并使用鼠标对图表大小和布局进行调整

1920×945 102 KB

预期效果如下:

1920×945 87.3 KB

点击保存按钮,保存并发布仪表盘

1920×945 99.5 KB

3.2.5 聚类群体画像解读

结合 6 组两两指标散点图的分布特征,我们可以为 C1、C2、C3 三类聚类簇赋予清晰的业务含义,完成从机器编号到可解释学生画像的转化:

  • C1(蓝色,自律模范型):在迟到、早退、请假、校服违规次数的所有组合中,数据点高度集中在低频次区间,无明显离群值。这类学生出勤稳定、纪律意识强,各类异常行为极少,是校园考勤行为的正面典型。

  • C2(青色,轻微波动型): 整体数据点同样集中在低频次区间,但相比 C1 分布略散,少量记录存在轻微的校服违规或请假行为,迟到、早退次数始终保持低位。这类学生整体纪律可控,仅存在偶发的轻微考勤波动,属于需要日常提醒的群体。

  • C3(黄色,纪律高危型): 数据点呈现明显的 “离群特征”,在迟到次数与其他指标的组合图中,出现了大量高频迟到记录,且伴随有不同程度的早退、请假或校服违规行为,是唯一存在多维度叠加违纪的群体。这类学生考勤问题突出,是校园管理中需要重点关注和干预的核心对象。

最终群体分类映射总结表:

|聚类簇编号|颜色|群体分类名称|核心特征|


| — | — | — | — |
|C1|蓝色|自律模范型|全维度异常次数均极低,出勤表现稳定,纪律意识强|
|C2|青色|轻微波动型|迟到早退次数低,偶发校服违规或请假,整体纪律可控|
|C3|黄色|纪律高危型|全维度异常次数均偏高,高频违纪行为叠加,存在极端离群记录|

3.3 将映射结果加入学生考勤主题标签表

我们需要将最终群体分类数据增加到上一个实验输出的结果表学生考勤主题标签表 student_attendance_stats 中

3.3.1 新增扩展字段

上一个实验输出的结果表学生考勤主题标签表 student_attendance_stats 中没有考勤群体分类的字段,需要增加

首先我们需要在 student_attendance_stats 中增加2个字段:

  • cluster:聚类簇编号

  • attendance_group:考勤群体分类

进入上一个实验在数据集成平台中创建的ETL项目,新建转换流“增加考勤主题扩展标签字段”,拖拽并“”组件到画布中

843×435 18.5 KB

双击“执行一个SQL脚本”组件,在配置窗口中,数据库连接“团队私有数据库”,输入SQL脚本后点击:“确认”

699×604 38.2 KB

SQL如下:

-- 为学生考勤统计表添加聚类结果字段

ALTER TABLE student_attendance_stats ADD COLUMN cluster VARCHAR(10) NULL DEFAULT NULL COMMENT '聚类簇编号', ADD COLUMN attendance_group VARCHAR(30) NULL DEFAULT NULL COMMENT '考勤群体分类';

执行转换流:

1920×945 78.9 KB

3.3.2 聚类簇编号数据获取

接下来,我们需要使用 3.1这步骤中 AI Studio 输出的结果表 student_cluster ,xxx

打开上一个实验创建的项目,创建转换流“增加考勤群体分类标签”

1920×945 72.1 KB

拖拽“表输入”组件到画布中

1920×945 53.3 KB

双击“表输入”组件,从团队私有数据库中获取 3.1步骤中的分类结果表 student_cluster 的所有SQL 查询语句

699×626 26.5 KB

3.3.3 字段选择

获取的数据中,我们只需保留 student_id、Cluster 字段,拖拽“字段选择”组件到画布中,并创建“表输入”组件到“字段选择”组件的连线

912×395 20.2 KB

双击“字段选择”组件,点击“移除”选项,并在字段名称下方空白区域右键-点击“获取字段

623×561 25.9 KB

选中 student_id、Cluster 字段后右键“删除选中的行”,表述除 student_id、Cluster 外,其他字段均被移除

591×545 20.7 KB

为了保持和 student_attendance_stats 表中字段类型一致,不影响后续数据更新到 student_attendance_stats,需要将 student_id、class_id 的类型修改为Integer,点击元数据选项,插入2行, student_id、class_id 的配置如下:

815×428 21.5 KB

最后点击“确认”

817×435 22 KB

3.3.4 聚类簇编号映射

原始聚类簇编号以编号形式存储,可读性差,通过映射转换增加中文说明

添加“值映射”组件到画布中,并字段选择组件到值映射组件的连线,并选择“主输出步骤”

1920×945 66.3 KB

双击“值映射”组件,使用的字段名为“Cluster ”, 目标字段名为“attendance_group”

494×488 15.9 KB

在下方字段值表格空白处右键,点击“插入”

535×543 24 KB

双击插入的行,在源值中输入“C1”,目标值输入“轻微波动型”,代表将原数据中的“C1”统一映射为“轻微波动型”

500×404 16.3 KB

同样的,再插入2行,设置:

  • 源值:“C2”,目标值:“自律模范型”

  • 源值:“C3”,目标值:“纪律高危型”

并点击“确认”

494×464 19.6 KB

3.3.5 更新学生考勤主题标签

拖拽“更新”组件到画布中,并创建值映射组件到更新组件的连线

780×359 11.9 KB

双击“更新”组件,在配置窗口中,数据库连接选择团队私有数据,目标模式为labs

696×741 34 KB

点击目标表后的“浏览”按钮,选择 student_attendance_stats,并点击“确定”

696×745 41.9 KB

用来查询的关键字表格空白处获取字段,保留 student_id、class_id,表示更新时查询到数据表与流里的字段1相同时,执行更新操作

676×152 7.57 KB

更新字段表格空白处获取字段,删除 student_id,这里需要注意,我们在增加扩展字段时,聚类簇编号的字段为cluster,所以在表字段的 Cluster 字段中需要双击后点击下拉框选择正确的表字段

695×737 36.4 KB

最后的配置如下,表示当数据表的student_id与流里的student_id相同时,将流字段Cluster、attendance_group的值更新到表字段cluster、attendance_group中

694×731 35.6 KB

3.3.6 运行转换流

点击运行按钮

763×353 11.1 KB

执行结果和日志:

1920×945 106 KB

3.3.7 查看结果

切换“元数据”选项,右键“团队私有数据库”,点击“加载元数据”

1920×945 101 KB

加载成功后点击“数据探查”

1920×945 102 KB

在团队私有数据库中点击 student_attendance_stats ,在点击“查询”,可以看到 cluster、attendance_group的数据已经更新成功了

1441×713 83.8 KB

4 实验总结

本次实验基于学生考勤次数数据,通过 K-Means 聚类算法完成学生考勤群体自动划分,利用次数特征建模保证了聚类结果的稳定性与可解释性。借助 助睿BI 平台实现可视化分析,为机器生成的聚类簇赋予明确的业务含义,精准划分出自律模范型、轻微波动型、纪律高危型三类学生群体。最终将聚类标签回写至原始考勤表,完成考勤主题扩展标签构建,为校园学生精细化管理、行为干预和个性化教育提供了可靠的数据支撑。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐