学生考勤主题标签表构建
实验说明
实验目的
基于已完成的学生考勤主题标签表(student_attendance_stats),使用 K-Means 聚类算法对学生考勤行为进行自动分群。通过迟到、早退、请假、校服违规次数等核心指标,识别不同类型的考勤群体,生成可解释的考勤画像,为校园学生管理、行为分析提供精准数据支撑。
处理流程
通过对数据的观察,以及对考勤分群的业务需求分析,确定本次建模分析思路如下:
数据维度清晰、变量数量适中,聚焦考勤行为核心指标,无需复杂降维。基于考勤业务理解,将变量聚焦在迟到次数、早退次数、请假次数、校服违规次数四类行为维度,每个维度直接反映一类考勤特征,变量间业务含义独立、相关性低,可直接用于 K-Means 聚类建模,避免变量冗余导致模型解释困难。
本次建模采用次数类连续变量,数据类型单一、适配 K-Means 算法要求。考勤次数均为非负整数,属于连续型变量,满足 K-Means 对数据类型的要求,无需进行哑变量编码、二值化或特殊转换,可直接输入模型,简化预处理流程,保证聚类结果稳定可靠。
学生基础离散属性(性别、年级、住校状态等)不参与聚类建模,仅作为后续画像标签的辅助解释变量。
实验环境
工具为助睿数智在线实验平台:https://lab.guilan.cn/,
数据集成平台(助睿 ETL)
人工智能平台(助睿 AI)
助睿BI 数据可视化探索平台
数据库:MySQL
前置数据:学生考勤主题标签表(student_attendance_stats)
实验步骤
我们使用的平台依旧是助睿平台上的人工智能平台(Al Studio)——是一站式大数据智能应用平台,以零代码拖拽的方式简化机器学习全流程,提供从数据加载、预处理、特征工程到模型训练与评估的完整解决方案。
Ai Studio 聚类建模
进入人工智能平台

新建工作流


数据导入
将组件拖入到画布中

双击配置控件

填写在上一个文章中使用的mysql数据库,此实验需要用到上次的数据库

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

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


对应字段的属性类型如下

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

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

可以看到保留下来的数据

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

双击"K-Means"组件,簇数量选择固定3个

右键运行该控件,查看结果

结果输出与保存
使用“数据入库”组件保存数据
将“数据入库”组件拖入画布中,并连线

双击配置“数据入库”组件,同样的配置信息,再点击“获取表信息”

在窗口中选择“新建数据库表“,表名为”student_cluster“,确定

左上角运行工作流,成功后组件右上方都会有勾

分析聚类簇编号对应的考勤群体分类
上一步骤输出的聚类簇编号无法确定对应的考勤群体分类,可要通过助睿BI可视化分析来确定
点击实验平台左边菜单"助睿BI",进入助睿BI平台

连接数据源
点击左边菜单栏中的“数据源“

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

在弹出的窗口中填入自己的数据库连接信息

点击“测试连接”,出现“测试连接成功”弹窗后,确定

展开后可以看到里面的数据

构建数据集
数据源连接成功后,我们要将需要分析的数据表构建为数据集
点击左边菜单中的“数据集”

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

命名为:聚类簇编号数据集

按要求添加数据源


选择好后将student_cluster拖入右边

在下方查看数据,为方便进行后续分析,将字段备注分别修改为中文,在student_id的字段备注输入框中输入"学生ID",并点击"√"保存
参考字段名


修改完成后,点击左上角“保存”按钮

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


制作工作表
工作表是实现数据可视化展示的基础载体,用于承载可视化图表、完成数据探索与分析的核心单元
接下来我们开始制作聚类簇编号对应的考勤群体分类工作表
点击左边菜单中的“工作表”,进入工作表模块

为方便管理,将工作表分组。点击左上角的“+” - “新建分组”

输入名称“聚类簇对应的考勤画像群体分类分析”,点击“确认”

点击该分组的右侧“…”

新建工作表

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

再次根据提示选择数据集
数据集选择刚刚创建的“聚类簇编号数据集”

图表类型选择“探索器”

将字段“late_count(迟到次数)”拖拽到行,“early_leave_count(早退次数)”拖拽到列

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

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

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

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

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

为了区分更明显,我们可以设置聚类簇编号的颜色,点击颜色区域的设置按钮,自己选择主题

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

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

同样的,重新新建工作表,依次两两分析4个异常考勤次数的3个聚类簇的表现情况(除了行列信息不同,其余步骤一样)
迟到与请假次数的聚类簇分析:

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

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

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

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

搭建仪表盘
可以将6个工作放在一起便于分析
点击左边菜单“仪表盘”

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

名字输入“聚类簇分析”,确认

点击右侧“基础组件”,拖拽一个文本组件到画布中

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

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

调整到如下样式
点击右上角图钉图表,固定位置

点击工作表组件显示按钮

工作表都拖拽至画布中


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

将映射结果加入学生考勤主题标签表
我们需要将最终群体分类数据增加到上一个实验输出的结果表学生考勤主题标签表 student_attendance_stats 中
新增扩展字段
回到数据集成平台,新建转换流“增加考勤主题扩展标签字段”,拖拽“执行一个SQL脚本”组件到画布中

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 '考勤群体分类';
双击编辑

执行转换流

聚类簇编号数据获取
继续在这个项目中创建转换流“增加考勤群体分类标签”

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

双击“表输入”组件,从数据库中获取结果表 student_cluster 的所有SQL 查询语句


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

双击“字段选择”组件,点击“移除”选项,并在字段名称下方空白区域右键-点击“获取字段”,选中 student_id、class_id、Cluster 三个字段后右键“删除选中的行”

需要将 student_id、class_id 的类型修改为Integer,点击元数据选项,插入2行, student_id、class_id 的配置如下,完成后确定。

聚类簇编号映射
原始聚类簇编号以编号形式存储,可读性差,通过映射转换增加中文说明
添加“值映射”组件到画布中,并字段选择组件到值映射组件的连线,并选择“主输出步骤”

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

在下方右键插入,填入以下内容

更新学生考勤主题标签
拖拽“更新”组件到画布中,并创建值映射组件到更新组件的连线

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

用来查询的关键字表格空白处获取字段,保留 student_id、class_id

更新字段表格空白处获取字段,删除 student_id,class_id

聚类簇编号的字段为cluster,所以需要选择正确的字段名

所有配置如下

运行转换流
点击运行按钮

运行成功

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

再点击数据勘察

找到表student_attendance_stats,查询

问题与解决
问题一
K-Means组件连接失败
解决方法:
实验二的数据处理有问题,导致引入的数据表也是错误的,回到实验二的工作流查看。
问题二
老师的数据是聚合过的,但没有展示出来,导致数据导入时有多个student_id,student_name,class_id,class_name这四个字段值相同的数据。
解决方法:
提前对数据聚合,使用“执行一个SQL脚本”组件去执行SQL:
CREATE TABLE student_attendance_stats2 AS
SELECT
student_id,student_name,class_id,class_name,grade,gender,birth_date,political_status,is_boarder,campus_type,
SUM(late_count) AS late_count,
SUM(early_leave_count) AS early_leave_count,
SUM(leave_count) AS leave_count,
SUM(uniform_violate_count) AS uniform_violate_count
FROM student_attendance_stats
GROUP BY student_id,student_name,class_id,class_name,grade,gender,birth_date,political_status,is_boarder,campus_type;
在之后的选择student_attendance_stats2表作为数据表取代student_attendance_stats。
实验总结
本次实验依托学生考勤汇总数据表,运用K-Means聚类算法以迟到、早退、请假及校服违规次数为特征完成学生考勤行为分群,精准划分出不同考勤行为群体并构建对应学生考勤画像,清晰区分各类学生行为差异,所得聚类结果可为校园日常学生行为管控与精细化德育管理提供有效数据依据与分析支撑。
更多推荐




所有评论(0)