航空旅客满意度数据可视化分析系统 - 技术文档
1. 项目概述
1.1 项目名称
航空旅客满意度数据可视化分析系统(Airline Passenger Satisfaction Visualization & Analysis System)
1.2 项目简介
本系统是一个基于 Python Flask 框架的 Web 数据可视化分析平台,针对航空旅客满意度调查数据(约 13 万条记录)进行多维度分析与可视化展示。系统涵盖数据概览、满意度分析、旅客画像、航班特征、服务评分卡、深度洞察、预测分析、数据查询共 8 大功能模块,提供 28 个交互式图表和 1 个可筛选分页数据表。
1.3 项目目标
- 对航空旅客满意度数据进行全面的多维分析
- 通过可视化图表直观呈现数据规律和趋势
- 利用机器学习模型识别影响满意度的关键因素
- 提供可交互的数据查询功能,支持按条件筛选




















2. 系统架构
2.1 整体架构
┌─────────────────────────────────────────────────────┐
│ 浏览器 (Browser) │
│ ┌───────────┐ ┌──────────┐ ┌──────────────────┐ │
│ │ HTML/CSS │ │ JS │ │ ECharts 5.5 │ │
│ │ (Jinja2) │ │ (原生) │ │ (图表渲染) │ │
│ └─────┬─────┘ └────┬─────┘ └──────────────────┘ │
│ │ │ │
│ └──────────────┘ │
│ │ AJAX (fetch API) │
└─────────────────┼─────────────────────────────────────┘
│
┌─────────────────┼─────────────────────────────────────┐
│ Flask Server (port 5080) │
│ ┌─────────────────────────────────────────────────┐ │
│ │ app.py │ │
│ │ ┌──────────┐ ┌──────────────┐ ┌───────────┐ │ │
│ │ │ 路由控制 │ │ Session认证 │ │ API接口层 │ │ │
│ │ └──────────┘ └──────────────┘ └───────────┘ │ │
│ └────────────────────┬────────────────────────────┘ │
│ │ │
│ ┌────────────────────┼────────────────────────────┐ │
│ │ ▼ │ │
│ │ ┌──────────────┐ ┌──────────────────────────┐ │ │
│ │ │ models.py │ │ data_analysis.py │ │ │
│ │ │ (用户管理) │ │ (数据分析引擎) │ │ │
│ │ └──────┬───────┘ └────────────┬─────────────┘ │ │
│ │ │ │ │ │
│ │ ▼ ▼ │ │
│ │ ┌──────────────┐ ┌──────────────────────────┐ │ │
│ │ │ SQLite DB │ │ Pandas + scikit-learn │ │ │
│ │ │ (users.db) │ │ (CSV数据处理) │ │ │
│ │ └──────────────┘ └──────────────────────────┘ │ │
│ └─────────────────────────────────────────────────┘ │
└───────────────────────────────────────────────────────┘
2.2 架构风格
- 前后端半分离架构:后端通过 Flask 路由提供页面和 JSON API,前端为单页应用(SPA)模式
- 数据驱动:分析数据来源于 CSV 文件,通过 Pandas 在内存中加载和处理
- 懒加载模式:CSV 数据在首次请求时加载到内存,后续请求复用缓存的 DataFrame
3. 技术栈
3.1 后端技术
| 技术 |
版本 |
用途 |
| Python |
3.x |
主要开发语言 |
| Flask |
3.1.1 |
Web 框架,提供路由、模板渲染、Session 管理 |
| Pandas |
2.2.3 |
数据加载、清洗、统计分析 |
| NumPy |
- |
数值计算支持 |
| scikit-learn |
1.3.2 |
机器学习(逻辑回归分类模型) |
| SQLite3 |
内置 |
用户数据存储 |
| hashlib |
内置 |
密码 SHA-256 加密 |
3.2 前端技术
| 技术 |
版本 |
用途 |
| HTML5 |
- |
页面结构 |
| CSS3 |
- |
样式(暗色科技主题、CSS 变量、动画) |
| JavaScript |
ES6+ |
交互逻辑(原生,无框架) |
| ECharts |
5.5.1 (CDN) |
数据可视化图表库 |
| Jinja2 |
Flask 内置 |
服务端模板引擎 |
| Fetch API |
- |
前后端数据交互 |
3.3 开发工具
| 工具 |
用途 |
| pip |
Python 包管理 |
| CDN |
ECharts 前端资源加载 |
3.4 依赖清单 (requirements.txt)
flask==3.1.1
pandas==2.2.3
scikit-learn==1.3.2
numpy
4. 数据库设计
4.1 数据库类型
- SQLite3:用于存储用户账户和操作日志
- CSV 文件 :作为分析数据源(
airline_passenger_satisfaction.csv,约 129,880 条记录)
4.2 数据库表结构
4.2.1 用户表 (users)
| 字段 |
类型 |
约束 |
说明 |
| id |
INTEGER |
PRIMARY KEY AUTOINCREMENT |
用户唯一标识 |
| username |
TEXT |
UNIQUE NOT NULL |
用户名 |
| password |
TEXT |
NOT NULL |
密码(SHA-256 加盐哈希,盐值:airline2024) |
| nickname |
TEXT |
DEFAULT '' |
用户昵称 |
| avatar |
TEXT |
DEFAULT '' |
头像(Base64 Data URI 格式存储) |
| created_at |
REAL |
NOT NULL |
注册时间(Unix 时间戳) |
4.2.2 操作日志表 (data_records)
| 字段 |
类型 |
约束 |
说明 |
| id |
INTEGER |
PRIMARY KEY AUTOINCREMENT |
记录唯一标识 |
| user_id |
INTEGER |
NOT NULL (FK → users.id) |
关联用户 ID |
| action |
TEXT |
NOT NULL |
操作类型(如 login、logout) |
| detail |
TEXT |
DEFAULT '' |
操作详情 |
| created_at |
REAL |
NOT NULL |
操作时间(Unix 时间戳) |
4.2.3 CSV 数据字段说明
数据来源:airline_passenger_satisfaction.csv
| 字段名 |
类型 |
取值范围 |
说明 |
| ID |
整数 |
唯一标识 |
旅客编号 |
| Gender |
分类 |
Male / Female |
性别 |
| Age |
整数 |
7-85 |
年龄 |
| Customer Type |
分类 |
First-time / Returning |
客户类型 |
| Type of Travel |
分类 |
Business / Personal |
出行目的 |
| Class |
分类 |
Business / Economy / Economy Plus |
舱位等级 |
| Flight Distance |
整数 |
31-4983 |
飞行距离(km) |
| Departure Delay |
整数 |
0-1592 |
出发延误(分钟) |
| Arrival Delay |
浮点数 |
0-1584(含缺失值) |
到达延误(分钟) |
| Departure and Arrival Time Convenience |
整数 |
1-5 |
出入港时间便利性评分 |
| Ease of Online Booking |
整数 |
1-5 |
在线预订便捷性评分 |
| Check-in Service |
整数 |
1-5 |
值机服务评分 |
| Online Boarding |
整数 |
1-5 |
在线登机评分 |
| Gate Location |
整数 |
1-5 |
登机口位置评分 |
| On-board Service |
整数 |
1-5 |
机上服务评分 |
| Seat Comfort |
整数 |
1-5 |
座椅舒适度评分 |
| Leg Room Service |
整数 |
1-5 |
腿部空间评分 |
| Cleanliness |
整数 |
1-5 |
清洁度评分 |
| Food and Drink |
整数 |
1-5 |
餐饮评分 |
| In-flight Service |
整数 |
1-5 |
机上服务评分 |
| In-flight Wifi Service |
整数 |
1-5 |
机上 WiFi 评分 |
| In-flight Entertainment |
整数 |
1-5 |
机上娱乐评分 |
| Baggage Handling |
整数 |
1-5 |
行李处理评分 |
| Satisfaction |
分类 |
Satisfied / Neutral or Dissatisfied |
总体满意度 |
4.3 E-R 关系图
┌──────────┐ 1:N ┌───────────────┐
│ users │ ─────────────── │ data_records │
│ │ │ │
│ id (PK) │◄───────────────│ user_id (FK) │
│ username │ │ id (PK) │
│ password │ │ action │
│ nickname │ │ detail │
│ avatar │ │ created_at │
│ created_at│ └───────────────┘
└──────────┘
5. 功能模块详细说明
5.1 用户认证模块
5.1.1 登录功能
- 页面 :
login.html
- 路由 :
GET/POST /login
- 认证方式:Session-based Authentication
- 密码加密 :SHA-256 加盐哈希(盐值:
airline2024)
- 特性:粒子动画背景、表单验证、错误提示
5.1.2 注册功能
- 页面 :
register.html
- 路由 :
GET/POST /register
- 验证规则:用户名唯一性检查、密码强度校验
- 注册成功后:自动跳转登录页
5.1.3 用户资料管理
- 页面 :
profile.html
- 路由 :
GET/POST /profile
- 功能 :
- 修改昵称
- 上传头像(Base64 编码存储)
- 修改用户名
- 修改密码
5.1.4 管理员功能
GET /api/admin/users:查看所有用户列表
POST /api/admin/delete_user:删除指定用户
5.2 数据概览模块 (Dashboard)
- 前端文件 :
dashboard.js
- API :
GET /api/overview
- 功能 :
- 8 个 KPI 指标卡片:总旅客数、满意/不满意人数、满意度率、平均年龄、平均飞行距离、平均出发延误、平均到达延误
- 3 个环形饼图:满意度分布、舱位分布、性别分布
- 1 个柱状图:年龄段分布
5.3 满意度分析模块
- 前端文件 :
satisfaction.js
- 图表数量:6 个
- 功能:
| 图表 |
API |
说明 |
| 雷达图 |
/api/satisfaction/radar |
14 个服务维度的平均评分对比 |
| 水平条形图 |
/api/satisfaction/factors |
影响满意度的关键因素排名(满意与不满意群体的均值差异) |
| 堆叠柱状图(按舱位) |
/api/satisfaction/by_class |
不同舱位的满意度分布 |
| 堆叠柱状图(按客户类型) |
/api/satisfaction/by_customer_type |
首次/回头客的满意度对比 |
| 堆叠柱状图(按出行目的) |
/api/satisfaction/by_travel_type |
商务/个人出行的满意度对比 |
| 分组柱状图 |
/api/satisfaction/rating_by_class |
各服务维度按舱位分组的评分对比 |
5.4 旅客画像模块 (Population)
- 前端文件 :
population.js
- 图表数量:4 个
- 功能:
| 图表 |
API |
说明 |
| 堆叠柱状图 |
/api/population/age_vs_satisfaction |
各年龄段的满意度分布 |
| 堆叠柱状图 |
/api/population/gender_vs_satisfaction |
不同性别的满意度对比 |
| 柱状图 |
/api/population/age |
旅客年龄分布(7 个分段) |
| 饼图 |
/api/population/gender |
性别比例 |
年龄分段规则:<18、18-25、26-35、36-45、46-55、56-65、65+
5.5 航班特征模块 (Flight)
- 前端文件 :
flight.js
- 图表数量:6 个图表 + 1 个数据表
- 功能:
| 图表 |
API |
说明 |
| 4 个延误 KPI 卡片 |
/api/flight/delay_gauge |
平均延误时间、准点率、严重延误率等 |
| 柱状图 |
/api/flight/distance_vs_satisfaction |
飞行距离与满意度的关系(6 个距离段) |
| 柱状图 |
/api/flight/delay_vs_satisfaction |
延误时间与满意度的关系(7 个时间段) |
| 分组柱状图 |
/api/flight/delay_distribution |
出发/到达延误分布对比 |
| 仪表盘 |
/api/flight/delay_gauge |
准点率仪表盘 |
| 散点图 |
/api/analysis/scatter |
年龄与延误的散点关系(随机抽样 2000 条) |
| 箱线图 |
/api/analysis/boxplot |
各舱位的飞行距离分布(含异常值检测) |
距离分段规则:0-500、501-1000、1001-1500、1501-2000、2001-3000、3000+
延误分段规则:0(准时)、1-15、16-30、31-60、61-120、121-240、240+(分钟)
5.6 服务评分卡模块 (Service)
- 前端文件 :
service.js
- 图表数量:4 个
- 功能:
| 图表 |
API |
说明 |
| 水平条形图(带合格线) |
/api/service/scorecard |
14 个服务维度的平均评分(含 3.5 分合格线) |
| 分组柱状图 |
/api/service/scorecard |
各维度的高分(≥4)/低分(≤2)占比 |
| 柱状图 |
/api/service/scorecard |
各维度评分标准差(波动程度) |
| 漏斗图 |
/api/analysis/funnel |
旅客漏斗:全部→无延误→短途→中途→长途 |
5.7 深度洞察模块 (Insights)
- 前端文件 :
insights.js
- 图表数量:4 个
- 功能:
| 图表 |
API |
说明 |
| 双向条形图 |
/api/satisfaction/factors |
满意/不满意群体各维度评分对比 |
| 热力图 |
/api/satisfaction/correlation |
14×14 服务维度皮尔逊相关系数矩阵 |
| 热力图 |
/api/flight/distance_heatmap |
年龄×飞行距离的满意度率矩阵 |
| 矩形树图 |
/api/analysis/segments |
客户细分(客户类型×舱位×出行目的三维交叉分析) |
5.8 预测分析模块 (Prediction)
- 前端文件 :
prediction.js
- 图表数量:4 个
- 功能:
| 图表 |
API |
说明 |
| 4 个模型指标 KPI |
/api/prediction/model |
准确率、精确率、召回率、F1 分数 |
| 水平条形图 |
/api/prediction/model |
特征重要性排名(逻辑回归系数绝对值) |
| 直方图 |
/api/prediction/model |
预测概率分布(5% 步长分箱) |
| 热力图 |
/api/prediction/model |
混淆矩阵(2×2) |
5.9 数据查询模块 (DataTable)
- 前端文件 :
flight.js(initDataTable 函数)
- API :
GET /api/data/table
- 筛选条件:性别、年龄范围、客户类型、舱位等级、满意度
- 功能:服务端分页、条件筛选、HTML 表格展示
6. 机器学习模型
6.1 模型概述
| 项目 |
说明 |
| 算法 |
逻辑回归(Logistic Regression) |
| 库 |
scikit-learn 1.3.2 |
| 目标 |
二分类(Satisfied = 1,其余 = 0) |
| 训练方式 |
每次 API 调用时实时训练(不持久化模型) |
6.2 特征工程
输入特征(18 个):
| 类型 |
特征 |
| 数值型 |
Age、Flight Distance、Departure Delay、Arrival Delay |
| 评分型 (1-5) |
Departure and Arrival Time Convenience、Ease of Online Booking、Check-in Service、Online Boarding、Gate Location、On-board Service、Seat Comfort、Leg Room Service、Cleanliness、Food and Drink、In-flight Service、In-flight Wifi Service、In-flight Entertainment、Baggage Handling |
6.3 数据预处理
- 缺失值填充:
fillna(0)
- 特征标准化:
StandardScaler(零均值单位方差)
- 数据集划分:训练集 70% / 测试集 30%(
random_state=42)
6.4 模型参数
LogisticRegression(max_iter=1000, random_state=42)
6.5 评估指标
- 准确率 (Accuracy):整体预测正确率
- 精确率 (Precision):预测为满意中实际满意的比例
- 召回率 (Recall):实际满意中被正确预测的比例
- F1 分数:精确率和召回率的调和平均
- 混淆矩阵:TP、TN、FP、FN
- 特征重要性:逻辑回归系数绝对值排序
- 预测概率分布:以 5% 为步长的直方图
6.6 统计分析方法
| 方法 |
应用场景 |
| 皮尔逊相关系数 |
14 个服务维度的相关性矩阵 |
| 均值差异分析 |
满意/不满意群体各维度评分差异 |
| 四分位数分析 |
箱线图(Q1、中位数、Q3、IQR 异常值检测) |
| 标准差 |
服务评分波动程度 |
| 交叉分析 |
年龄×距离满意度率、客户细分三维交叉 |
7. API 接口文档
7.1 页面路由
| 方法 |
路径 |
说明 |
认证要求 |
| GET |
/ |
主仪表盘页面 |
需登录 |
| GET/POST |
/login |
登录页面 |
无 |
| GET/POST |
/register |
注册页面 |
无 |
| GET |
/logout |
退出登录 |
无 |
| GET/POST |
/profile |
个人资料页面 |
需登录 |
7.2 用户管理 API
| 方法 |
路径 |
说明 |
请求参数 |
返回格式 |
| GET |
/api/profile |
获取当前用户信息 |
- |
JSON |
| POST |
/api/change_password |
修改密码 |
old_pwd, new_pwd |
JSON |
| POST |
/api/change_username |
修改用户名 |
new_username |
JSON |
| GET |
/api/logs |
获取操作日志 |
- |
JSON |
| GET |
/api/admin/users |
获取所有用户列表 |
- |
JSON |
| POST |
/api/admin/delete_user |
删除用户 |
user_id |
JSON |
7.3 数据分析 API
所有分析 API 均为 GET 请求,返回 JSON 格式数据。
7.3.1 数据概览
GET /api/overview
返回:{
total: 总旅客数,
satisfied: 满意人数,
dissatisfied: 不满意人数,
satisfaction_rate: 满意度率(%),
avg_age: 平均年龄,
avg_distance: 平均飞行距离,
avg_departure_delay: 平均出发延误,
avg_arrival_delay: 平均到达延误
}
7.3.2 满意度分析
GET /api/satisfaction/distribution → 满意/不满意人数分布
GET /api/satisfaction/radar → 14 维度平均评分
GET /api/satisfaction/by_class → 按舱位统计满意度
GET /api/satisfaction/by_customer_type → 按客户类型统计满意度
GET /api/satisfaction/by_travel_type → 按出行目的统计满意度
GET /api/satisfaction/rating_by_class → 各维度按舱位分组评分
GET /api/satisfaction/factors → 影响因素排名
GET /api/satisfaction/correlation → 14×14 相关系数矩阵
7.3.3 旅客画像
GET /api/population/age → 年龄分布
GET /api/population/gender → 性别分布
GET /api/population/age_vs_satisfaction → 年龄×满意度
GET /api/population/gender_vs_satisfaction → 性别×满意度
GET /api/population/class_distribution → 舱位分布
7.3.4 航班特征
GET /api/flight/distance_vs_satisfaction → 距离×满意度
GET /api/flight/delay_distribution → 延误分布
GET /api/flight/delay_vs_satisfaction → 延误×满意度
GET /api/flight/delay_gauge → 准点率/延误指标
GET /api/flight/distance_heatmap → 年龄×距离满意度热力图
GET /api/data/table → 分页数据表(支持筛选)
7.3.5 服务评分卡
GET /api/service/scorecard → 14 维度评分统计
7.3.6 深度洞察
GET /api/analysis/scatter → 散点图数据
GET /api/analysis/boxplot → 箱线图数据
GET /api/analysis/funnel → 漏斗图数据
GET /api/analysis/segments → 客户细分数据
7.3.7 预测分析
GET /api/prediction/model → 模型训练结果
8. 前端页面设计
8.1 页面结构
系统采用 SPA(单页应用)架构,通过侧边栏导航在 8 个虚拟页面间切换:
┌──────────────────────────────────────────────────────┐
│ index.html │
│ ┌────────────┐ ┌────────────────────────────────┐ │
│ │ │ │ │ │
│ │ 侧边栏 │ │ 内容区域 │ │
│ │ 导航菜单 │ │ ┌──────────────────────────┐ │ │
│ │ │ │ │ dashboard / satisfaction │ │ │
│ │ · 数据概览│ │ │ / population / flight │ │ │
│ │ · 满意度 │ │ │ / service / insights │ │ │
│ │ · 旅客画像│ │ │ / prediction / datatable │ │ │
│ │ · 航班特征│ │ └──────────────────────────┘ │ │
│ │ · 服务评分│ │ │ │
│ │ · 深度洞察│ │ │ │
│ │ · 预测分析│ │ │ │
│ │ · 数据查询│ │ │ │
│ └────────────┘ └────────────────────────────────┘ │
└──────────────────────────────────────────────────────┘
8.2 UI 设计风格
- 主题:暗色科技风格(Dark Sci-Fi Theme)
- 主色调:青色 (#00b4ff)
- 背景:深色网格背景 + 扫描线动画
- 面板:毛玻璃效果(Glassmorphism)
- 字体:等宽字体
- 动画:CSS 过渡动画、粒子效果(登录/注册页)
8.3 图表统计
共使用 28 个 ECharts 实例,涵盖以下图表类型:
| 图表类型 |
数量 |
使用页面 |
| 环形饼图 (Donut Pie) |
3 |
Dashboard |
| 柱状图 (Bar) |
5 |
Dashboard、Population、Flight |
| 雷达图 (Radar) |
1 |
Satisfaction |
| 水平条形图 (Horizontal Bar) |
4 |
Satisfaction、Service、Insights、Prediction |
| 堆叠柱状图 (Stacked Bar) |
4 |
Satisfaction、Population |
| 分组柱状图 (Grouped Bar) |
3 |
Satisfaction、Service、Prediction |
| 仪表盘 (Gauge) |
1 |
Flight |
| 散点图 (Scatter) |
1 |
Flight |
| 箱线图 (Boxplot) |
1 |
Flight |
| 热力图 (Heatmap) |
3 |
Insights、Prediction |
| 矩形树图 (Treemap) |
1 |
Insights |
| 漏斗图 (Funnel) |
1 |
Service |
8.4 文件清单
| 文件 |
职责 |
main.js |
导航切换、ECharts 主题注册、页面初始化调度 |
dashboard.js |
数据概览页:KPI 卡片 + 饼图 + 柱状图 |
satisfaction.js |
满意度分析页:雷达图 + 条形图 + 堆叠柱状图 |
population.js |
旅客画像页:年龄/性别分布与满意度交叉 |
flight.js |
航班特征页:延误分析 + 距离分析 + 数据表 |
service.js |
服务评分卡页:评分排名 + 高低分占比 + 漏斗图 |
insights.js |
深度洞察页:因素对比 + 相关矩阵 + 热力图 + 树图 |
prediction.js |
预测分析页:模型指标 + 特征重要性 + 混淆矩阵 |
style.css |
主仪表盘全局样式(暗色主题) |
9. 安全设计
9.1 认证安全
- 密码使用 SHA-256 加盐哈希存储(盐值:
airline2024)
- 基于 Flask Session 的会话管理
- Secret Key 每次服务启动随机生成(
os.urandom(24))
9.2 接口安全
- 所有 API 接口检查登录状态,未登录返回 401
- 管理员接口需要额外权限验证
- 密码修改需验证旧密码
9.3 数据安全
- 密码不明文存储
- 头像以 Base64 编码存储在数据库中
- SQL 查询使用参数化查询防止 SQL 注入
10. 部署与运行
10.1 环境要求
10.2 安装步骤
# 1. 进入项目目录
cd fly
# 2. 安装依赖
pip install -r requirements.txt
# 3. 启动服务
python app.py
10.3 访问地址
- 服务启动后监听端口 5080
- 浏览器访问:
http://localhost:5080
10.4 文件结构说明
fly/
├── airline_passenger_satisfaction.csv # 分析数据源(约 12.3MB)
├── app.py # Flask 主应用(路由、API)
├── data_analysis.py # 数据分析引擎(Pandas 处理)
├── models.py # 数据库模型(用户、日志)
├── requirements.txt # Python 依赖清单
├── users.db # SQLite 数据库文件
├── static/
│ ├── css/
│ │ └── style.css # 仪表盘样式
│ └── js/
│ ├── main.js # 主控制脚本
│ ├── dashboard.js # 数据概览
│ ├── satisfaction.js # 满意度分析
│ ├── population.js # 旅客画像
│ ├── flight.js # 航班特征 + 数据表
│ ├── service.js # 服务评分卡
│ ├── insights.js # 深度洞察
│ └── prediction.js # 预测分析
└── templates/
├── index.html # 主 SPA 页面
├── login.html # 登录页
├── register.html # 注册页
└── profile.html # 个人资料页
11. 数据流说明
11.1 请求处理流程
用户操作 → 浏览器 JS → fetch API 请求
→ Flask 路由匹配
→ 页面路由:渲染 Jinja2 模板返回 HTML
→ API 路由:调用 data_analysis.py 分析函数
→ Pandas 读取/处理 CSV 数据
→ 返回 JSON 数据
→ 前端 JS 解析 JSON → ECharts 渲染图表
11.2 数据加载策略
- CSV 数据采用懒加载模式:首次请求时通过
get_df() 加载到全局变量 _df
- 后续请求直接使用内存中的 DataFrame,避免重复 I/O
- 每次 API 调用基于完整 DataFrame 进行实时计算
11.3 机器学习流程
API 请求 → 加载 DataFrame → 特征提取 (18 维)
→ 缺失值填充 (fillna(0))
→ StandardScaler 标准化
→ 训练集/测试集划分 (70/30)
→ LogisticRegression 训练
→ 预测 + 评估
→ 返回指标 + 特征重要性 + 混淆矩阵 + 概率分布
12. 局限性与改进方向
12.1 当前局限
| 方面 |
说明 |
| 数据存储 |
分析数据存储在 CSV 文件中,未导入数据库,不适合大数据量场景 |
| 模型持久化 |
机器学习模型每次请求重新训练,未做缓存或持久化 |
| 并发性能 |
Pandas 单线程处理,高并发场景下性能受限 |
| 认证机制 |
Session-based 认证不支持分布式部署 |
| 前端框架 |
使用原生 JS,组件化程度低 |
| 配置管理 |
数据库路径、端口等硬编码,无配置文件 |
12.2 可改进方向
- 将 CSV 数据导入关系型数据库(如 MySQL/PostgreSQL),提升查询性能
- 引入模型缓存机制,避免重复训练
- 前端引入 Vue.js / React 提升组件化和可维护性
- 增加更多机器学习算法(随机森林、XGBoost 等)进行对比
- 添加数据导出功能(Excel、PDF 报告)
- 支持数据定时更新和增量分析
- 容器化部署(Docker)