中学生学业水平多维度分析与预警系统
Flask 中学生学业预警系统:UCI Student Performance 真实数据,规则引擎 40%+随机森林/GBDT 60% 融合考前评分,六维雷达与皮尔逊相关分析,教师/管理员双角色,适合教育数据挖掘毕业设计。
项目封面

项目概览
仪表盘展示学期趋势、风险等级与学科对比;学生管理支持多条件筛选与自动预警生成;分析模块含家庭/行为因素与性别学科交叉;模型训练页展示准确率/AUC/特征重要性。预警仅使用 G1/G2 及行为特征不含期末 G3,符合考前干预场景,适合 Python 教育大数据、融合评分与 ECharts 可视化类毕业设计。
项目说明
中学生学业水平多维度分析与预警系统
项目名称
中学生学业水平多维度分析与预警系统
项目简介
本系统基于葡萄牙两所中学真实学业数据(UCI Student Performance Dataset),实现中学生学业成绩的多维度统计分析和机器学习考前预警。系统融合规则引擎与机器学习模型综合评分,在期末考试前对学业风险学生进行预警识别,辅助教师开展针对性干预。
功能模块
用户认证
- 用户登录与退出
- 新用户注册(注册默认为教师角色)
- 管理员 / 教师两种角色权限分离
- 密码 pbkdf2:sha256 加密存储
数据总览(仪表盘)
- 核心指标卡片:学生总数、平均期末成绩、及格率、高风险人数、中风险人数、待处理预警数
- 学期成绩趋势图:第一学期 → 第二学期 → 期末,按学科分列
- 风险等级饼图:高风险 / 中风险 / 低风险人数占比
- 成绩等级分布柱状图:优秀 / 良好 / 及格 / 不及格
- 学科对比图:平均分与高风险人数双轴对比
学生管理
- 学生列表分页浏览,默认按预警分降序排列
- 多条件筛选:学号或学校关键词、学科、风险等级
- 新增学生:表单录入全部特征字段,自动计算风险评分并生成预警
- 学生详情:基本信息、风险评估结果、预警记录
- 删除学生:同时清除关联预警记录
多维度分析
- 综合雷达图:学习投入、家庭支持、出勤情况、健康状况、学业稳定、成绩水平六维度归一化展示
- 成绩分布:数学和葡萄牙语两门学科的成绩区间分布直方图
- 家庭因素分析:母亲学历、父亲学历、家庭关系评分、父母是否同住、家庭规模,分别与平均成绩的关系
- 行为习惯分析:学习时间、缺勤次数、外出频率、家庭网络、恋爱状态,分别与平均成绩的关系
- 相关分析:12 项关键指标与期末成绩的皮尔逊相关系数排序
- 性别学科交叉分析:男 / 女在数学 / 葡萄牙语学科上的平均成绩与高风险率对比
学业预警
- 预警列表分页浏览,展示学号、学科、成绩、风险等级、预警标题、原因、状态、时间
- 按状态(待处理 / 已处理)和风险等级(高 / 中)筛选,下拉框切换即时生效
- 处理预警:填写处理备注,标记为已处理
- 重新生成预警:重新计算全部学生风险评分,清除旧预警并按最新结果重新生成
模型训练
- 两种算法可选:随机森林(Random Forest)、梯度提升(Gradient Boosting)
- 训练后自动刷新全部学生风险评分和预警记录
- 模型评估指标面板:准确率、精确率、召回率、F1、AUC
- 特征重要性排名图(中文标签)
- 训练历史记录表:历次训练的时间、算法、各指标、训练集大小
分析报告
- 自动生成综合分析报告,包含数据概览、关键影响因素、家庭因素摘要、行为因素摘要、预警模型信息、建议措施
- 支持浏览器打印
数据导入
- 从本地 CSV 文件重新导入 UCI 原始数据
- 导入后自动训练模型并刷新全部预警
- 管理员专属功能
用户管理
- 查看系统用户列表
- 新增用户(指定角色:管理员 / 教师)
- 管理员专属功能
操作日志
- 记录用户登录、退出、增删改等操作
- 含操作时间、用户名、操作类型、详情、IP 地址
- 分页浏览
- 管理员专属功能
预警评分机制
系统采用 规则引擎 + 机器学习模型 融合评分,仅使用考前特征(G1、G2 及行为指标),不依赖期末成绩 G3,实现考前预警。
- 规则评分(权重 40%):根据第二学期成绩低于及格线、成绩下滑趋势、历史挂科次数、缺勤次数、学习时间不足等规则累加
- 模型评分(权重 60%):随机森林 / 梯度提升分类器对考前特征预测的风险概率
- 风险等级:综合评分 ≥ 0.7 为高风险,≥ 0.4 为中风险,< 0.4 为低风险
- 期末成绩 G3 仅作为结果说明附加到预警原因中,不影响预警评分
数据来源
UCI Machine Learning Repository - Student Performance Data Set
| 文件 | 学科 | 记录数 | 说明 |
|---|---|---|---|
data/student-mat.csv | 数学(mat) | 395 条 | 葡萄牙 Gabriel Pereira 和 Mousinho da Silveira 两所中学学生数学课程数据 |
data/student-por.csv | 葡萄牙语(por) | 649 条 | 同上学校的葡萄牙语课程数据 |
共 1044 条课程记录。成绩满分 20 分,及格线 10 分。
标准版目录结构
zhongxuesheng-xueye-fenxi-yujing/
├── app.py # Flask 主应用,页面路由与 API 接口
├── config.py # 应用配置(数据库路径、模型路径、预警阈值、密钥)
├── constants.py # 业务常量(学科映射、必填/可选字段定义)
├── requirements.txt # Python 依赖清单
├── data/
│ ├── student-mat.csv # UCI 数学课程原始数据
│ └── student-por.csv # UCI 葡萄牙语课程原始数据
├── database/
│ ├── __init__.py
│ ├── schema.py # 数据库表结构与连接管理
│ └── academic.db # SQLite 数据库文件(运行后自动生成)
├── ml/
│ ├── __init__.py
│ ├── features.py # 特征工程(字段编码、转换、特征重要性提取)
│ ├── predictor.py # 风险预测(规则评分 + ML 评分融合)
│ └── train.py # 模型训练(随机森林 / 梯度提升)
├── models/
│ ├── warning_model.joblib # 训练好的分类模型(运行后自动生成)
│ └── label_encoders.joblib # 标签编码器(运行后自动生成)
├── scripts/
│ ├── __init__.py
│ ├── seed_data.py # 数据导入与初始化
│ └── test_system.py # 系统测试脚本
├── services/
│ ├── __init__.py
│ ├── analysis.py # 多维度分析业务逻辑(仪表盘统计、成绩分布、家庭因素、行为因素、相关分析、性别学科交叉)
│ ├── risk_service.py # 风险刷新与预警生成
│ └── student_schema.py # 学生数据校验与规范化
├── static/
│ ├── css/
│ │ └── style.css # 全局自定义样式
│ └── js/
│ ├── common.js # 通用工具(API 请求、风险标签、ECharts 初始化、时间格式化、提示消息)
│ ├── dashboard.js # 仪表盘图表渲染
│ ├── analysis.js # 多维分析图表渲染(支持 Tab 切换延迟渲染)
│ ├── students.js # 学生列表与新增交互
│ ├── student_detail.js # 学生详情页
│ ├── warnings.js # 预警列表与处理交互
│ ├── model.js # 模型训练交互
│ └── reports.js # 分析报告渲染
├── templates/
│ ├── base.html # 基础模板(导航栏、CDN 引入、闪现消息)
│ ├── login.html # 登录页
│ ├── register.html # 注册页
│ ├── dashboard.html # 仪表盘
│ ├── students.html # 学生管理
│ ├── student_detail.html # 学生详情
│ ├── analysis.html # 多维度分析
│ ├── warnings.html # 学业预警
│ ├── model.html # 模型训练
│ ├── reports.html # 分析报告
│ ├── users.html # 用户管理
│ ├── import.html # 数据导入
│ └── logs.html # 操作日志
├── 运行步骤必看/
│ └── window.md # Windows 运行说明
├── mac_run.sh # macOS / Linux 启动脚本
├── window_run.bat # Windows 启动脚本
├── 训练手册.md # 模型训练手册
└── 项目说明.md # 本文件
技术栈
| 类别 | 技术 |
|---|---|
| 后端框架 | Python 3.12 + Flask 3.0 |
| 数据库 | SQLite 3 |
| 前端 | HTML5 + Bootstrap 5.3 + ECharts 5.5 |
| 机器学习 | scikit-learn 1.5(随机森林 / 梯度提升分类) |
| 数据处理 | pandas 2.2 + numpy 1.26 |
| 模型持久化 | joblib 1.4 |
| 密码安全 | Werkzeug pbkdf2:sha256 |
运行环境
| 项目 | 要求 |
|---|---|
| Python 版本 | 3.12 |
| 操作系统 | Windows / macOS / Linux |
| 内存 | 建议 2GB 以上 |
| 磁盘空间 | 约 300MB(含 Python 依赖和数据库) |
| 浏览器 | Chrome / Firefox / Safari / Edge 现代版本 |
账号信息
| 角色 | 用户名 | 密码 |
|---|---|---|
| 管理员 | admin | admin123 |
| 教师 | teacher01 | teacher123 |
管理员可访问用户管理、数据导入、操作日志页面。注册新账号默认为教师角色。
获取完整源码
技术分类
包含内容
适合方向
适合计算机、教育技术毕业设计中 Python Flask、UCI 学业数据、规则+ML 融合预警与教师工作台方向;葡萄牙中学数据集可替换为本地化说明。
关于 AI源码
AI源码 整理计算机毕业设计、课程设计向的可运行项目参考,含说明文档与演示材料。完整源码请通过联系方式沟通获取。
相关推荐
查看全部 →
虚假新闻检测系统
基于 ConceptNN 概念神经网络的虚假新闻检测 FastAPI 服务,支持文本 Sentence-Transformer 与图像 ResNet18 双模态特征及增量学习,可对接 Java 后端实时预测,适合 NLP+CV 毕业设计。

微博热点数据分析与可视化系统
Flask 微博热搜分析平台:自动爬取热搜与评论、jieba 分词清洗、SnowNLP 情感分类,ECharts 热度排行/情感饼图/词云可视化,SQLite 存储与角色权限,适合 Python 数据分析毕业设计。

基于 Python 的短视频用户行为分析系统
基于 KuaiRec/KuaiRand 数据集的短视频分析平台:行为漏斗、推荐偏差、KMeans 聚类、TF-IDF/t-SNE、LightGCN 图推荐与 A/B 实验,Flask 仪表盘一键重训,适合推荐系统大数据毕业设计。

城市交通流量预测与拥堵成因分析系统
城市交通拥堵 monorepo:data-pipeline 多源时空特征、STGNN Proxy 流量预测、归因分析与 Leaflet 地图可视化,FastAPI 加载离线产物,适合交通大数据与计算机设计毕业设计。

电商用户行为漏斗与CRO转化率优化分析
电商漏斗 CRO 分析平台:页面/事件双漏斗、渠道设备多维诊断、PIE 优先级矩阵、卡方检验与 XGBoost 购买预测,Flask+ECharts 仪表板,支持 Retailrocket 真实数据,适合电商数据分析毕业设计。

基于 Python 的汽车市场数据分析与可视化平台
Flask 汽车市场分析平台:整合 Cars24/UCI Automobile 等多源真实数据集(统一 CNY),含多维分析、随机森林二手车价格预测、品牌对比与销量统计,适合 Python 数据分析毕业设计。