预测分析(机器学习)
目录
概述
预测分析界面通过学习时序标签数据来预测未来值,并检测异常值(异常诊断)。操作员只需在 GUI 中选择学习区间、采样周期和算法,即可立即通过结果图表和表格查看分析结果。
本界面用于以下分析。
- 预测未来 N 个时点的标签值(需求预测、产量预测等)
- 检测历史数据中统计意义上的偏离异常值
- 为确定报警规则阈值而进行的基准分析
路径:当前在集成侧边栏中可能不会作为默认菜单显示。内部 URL 为 /forecast/index,界面标题为 机器学习。
本文档介绍预测·异常诊断附加界面。基于左侧菜单的运行流程请优先参考 控制台导航与公共界面。
界面构成
┌──────────────────────────────────────────────────────────────────┐
│ 🧠 기계학습 │ ← ① 상단
├─────────────────────┬────────────────────────────────────────────┤
│ │ │
│ 📄 양식 │ 📈 기계학습 결과 │
│ ───────────────── │ ────────────────────────────────────────│
│ ◯ 대상 태그 선택 │ [학습 데이터] [이상진단 건수] [실행 시간] │ ← 요약 카드
│ • 태그명 입력 │ │
│ │ ┌──────────────────────────────────────┐ │
│ ◯ 데이터 구간 │ │ │ │
│ • 학습 구간 (날짜) │ │ 결과 차트 (520px) │ │
│ • 샘플링 주기 │ │ │ │
│ │ └──────────────────────────────────────┘ │
│ ◯ 기계학습 속성 │ │
│ • 예측 알고리즘 │ ◯ 예측 데이터 (테이블) │
│ • 예측 갯수 │ ◯ 이상진단 데이터 (테이블) │
│ • 이상진단 알고리즘 │ │
│ • 개연성 │ │
│ │ │
│ [🚀 기계학습 시작] │ │
└─────────────────────┴────────────────────────────────────────────┘
| 区域 | 位置 | 显示内容 |
|---|---|---|
| ① 顶部 | 全宽 | 页面标题 |
| ② 左侧 | col-lg-3 | 表单(输入表单)— 4 个 fieldset + 开始按钮 |
| ③ 右侧 | col-lg-9 | 机器学习结果 — 3 类汇总卡片 + 图表 + 两个结果表 |
顶部 — 页面标题
| 项目 | 显示内容 |
|---|---|
| 页面标题 | 🧠 “机器学习” |
左侧 — 表单(输入表单)
左侧面板的表单由 4 个分组(<fieldset>)构成。
1) 选择目标标签
| 输入项 | name | 宽度 | placeholder | 说明 |
|---|---|---|---|---|
| 标签名 | tag_name | 250px(蓝色边框 2px) | “输入标签名” | 从已注册标签列表中通过自动补全选择。选择后立即保存到 hidden 字段 tag_id |
输入框右侧会同时显示 🧭 图标 + “请选择要进行机器学习的标签。” 的提示文字。
2) 数据区间
| 输入项 | name | 宽度 | 说明 |
|---|---|---|---|
| 学习区间 | learning_time | 250px(居中对齐、加粗) | 起始~结束日期时间。点击后弹出日期范围选择器。提交表单时通过 hidden 字段 learning_date_from / learning_date_to 传递 |
| 采样周期 | term | 200px | 选择器 — “采样周期” 选项(例如 1_MIN / 5_MIN / 30_MIN / 1_HOUR / 1_DAY 等系统中定义的周期列表) |
什么是采样?
| 选项 | 含义 |
|---|---|
| 原始(RAW) | 直接使用全部数据点进行学习 — 适用于数据量大、变化快的标签 |
| 采样(快照) | 按固定周期提取 1 个代表值进行学习 — 降低长周期学习与计算成本 |
通过 hidden 选择器默认设置为
sampling="LAST"(使用最后一个值作为代表值)。
3) 机器学习属性
预测算法 (forecast_algorithm)
| 选项 | 标签 | 特性 |
|---|---|---|
LINEAR_REGRESSION(默认) | Linear regression | 简单线性趋势 — 快速且易于解释 |
ARIMA | Auto-regressive Integrated Moving Average | 利用时序自相关与季节性 |
SMO_REG | Support vector machine for regression | 非线性模式,抗噪声能力强 |
GAUSSIAN_PROCESSES | Stochastic process | 概率预测 + 不确定性估计 |
预测数量 (forecast_count)
| 输入项 | 宽度 | 说明 |
|---|---|---|
| 文本输入 | 200px(右对齐) | 要预测的结果数量(以时间戳为单位) |
例:采样周期
1_HOUR+ 预测数量24= 预测未来 24 小时
异常诊断算法 (abnomal_algorithm)
| 选项 | 标签 | 特性 |
|---|---|---|
EGADS(默认) | Seasonal-naive-based | 反映季节性,适用于一般运行数据 |
DBSCAN | Cluster-based | 将偏离聚类的点判定为异常值 |
GAUSS_BASED | Statistical-based | 基于正态分布的统计异常值检测 |
HIL_OUT | Distance-based | 基于距离的异常值 |
概率过滤器 (probability_filter)
| 输入项 | 宽度 | 含义 |
|---|---|---|
| 文本输入 | 200px(右对齐) | 0~1 之间的阈值。仅将概率值大于等于该值的数据判定为异常数据 |
例:输入
0.95时,仅检测概率在 95% 以上的强异常值。数值越小检出的异常值越多,但误报也会增加。
4) 开始机器学习按钮
| 按钮 | 宽度 | 动作 |
|---|---|---|
| 🚀 开始机器学习 | 250px(蓝色) | 校验输入后向后端发起学习请求。执行过程中在右侧图表区域显示进度。完成后填充结果图表和两个表格 |
右侧 — 机器学习结果
3 类汇总卡片
图表上方的横向三分卡片(total_ml_co)。
| 卡片 | ID | 显示内容 |
|---|---|---|
| 学习数据 | result_learning_count | 用于学习的数据点数量 |
| 异常诊断件数 | result_abnomal_count | 检出的异常值件数 |
| 执行时间 | result_text | 学习+预测处理所用时间 |
执行前均显示为
-。执行完成后自动填充。
结果图表
图表区域(data_chart,宽度 100% × 高度 520px)中在同一画面绘制以下内容。
| 序列 | 含义 |
|---|---|
| 学习区间实测值 | 所输入学习期间的原始时序数据 |
| 预测值 | 学习后预测的未来 N 个时点 |
| 预测上限 (LIMIT_MAX) | 预测置信区间的上限 |
| 预测下限 (LIMIT_MIN) | 预测置信区间的下限 |
| 异常值标记 | 在异常诊断检出的时点单独标注 |
图表为空时会显示提示文字。
🤖 [机器学习插图]
请先选择目标标签,然后开始机器学习。
预测数据表
<fieldset> 的 预测数据 标签下方的表格(forecast_data_table)。
| 列 | 宽度 | 显示内容 |
|---|---|---|
| No. | 60px | 行号 |
| 时间戳 | 200px | 预测时点 |
| 预测值 | 自动 | 算法计算出的预测值 |
| WEIGHT | 自动 | 预测权重(不同算法含义不同) |
| LIMIT_MIN | 自动 | 预测下限 |
| LIMIT_MAX | 自动 | 预测上限 |
异常诊断数据表
<fieldset> 的 异常诊断数据 标签下方的表格(abnomal_data_table)。
| 列 | 宽度 | 显示内容 |
|---|---|---|
| No. | 60px | 行号 |
| 时间戳 | 200px | 检出异常值的时点 |
| 异常诊断值 | 200px | 该时点的实际测量值 |
| 概率 (PROBABILITY) | 自动 | 异常值置信度(0~1,越接近 1 异常性越强) |
预测·异常诊断算法选择指南
选择适合运行数据的算法时请参考以下内容。
预测算法
| 数据特性 | 推荐算法 |
|---|---|
| 单调上升/下降趋势 | LINEAR_REGRESSION |
| 以日/周为单位的重复模式 | ARIMA |
| 非线性且噪声较大的数据 | SMO_REG |
| 希望同时查看预测不确定性时 | GAUSSIAN_PROCESSES |
异常诊断算法
| 数据特性 | 推荐算法 |
|---|---|
| 具有季节性的一般运行数据 | EGADS(默认) |
| 适合多维聚类分析的多变量数据 | DBSCAN |
| 接近正态分布的稳定数据 | GAUSS_BASED |
| 基于点间距离(全局/局部异常) | HIL_OUT |
概率过滤器指南
| 值 | 效果 |
|---|---|
0.5 | 连弱异常值也能检出(误报可能性 ↑) |
0.8 | 适合一般运行场景 |
0.95 | 仅检出强异常值(仅确定性异常) |
0.99 | 仅检出极强异常值(几乎无误报,漏检可能性 ↑) |
应用场景
| 场景 | 设置示例 |
|---|---|
| 电机温度 24 小时预测 | 标签=MOTOR-001.TEMP / 学习 7 天 / 采样 1 小时 / LINEAR_REGRESSION / 预测 24 个 |
| 能耗一周预测 | 标签=POWER.kWh / 学习 30 天 / 采样 1 小时 / ARIMA / 预测 168 个 |
| 质量测量值异常检测 | 标签=QUALITY.SCORE / 学习 14 天 / 采样 5 分钟 / EGADS / 概率 0.9 |
| 振动传感器异常检测 | 标签=VIB-001.RMS / 学习 7 天 / 采样 RAW / DBSCAN / 概率 0.95 |
| 确定报警阈值 | 稳定运行 1 周的学习 → 将 GAUSS_BASED 的 LIMIT_MAX 采用为报警阈值 |
常见问题
Q. 开始学习后结果迟迟不出来。 A. 学习区间过长或采样周期过短时耗时较久。首次尝试建议将学习区间设为 1~3 天 + 采样周期约 1 小时,先轻量运行以测量耗时。
Q. 预测值过于平坦。
A. 学习算法为 LINEAR_REGRESSION 时只能捕捉单调趋势。若数据具有周期性,请尝试改为 ARIMA。
Q. 异常值检出过多/过少。
A. 请调整 概率过滤器 的值。检出过多时上调至 0.90.95,检出过少时下调至 0.50.7。
Q. 学习区间短一些不行吗? A. 学习区间过短会导致模型无法学习到足够的模式。通常建议将学习区间设为 预测数量的 10 倍以上。
Q. 结果表中的 WEIGHT 列是什么意思? A. 因算法而异。回归模型中表示预测权重,概率模型中用作置信度尺度。一般操作员更应关注 LIMIT_MIN/LIMIT_MAX 的置信区间。
Q. 想把结果分享给其他人。 A. 图表可通过图表的下载图标保存为 PNG 图片,表格可使用浏览器的表格复制或右键菜单复制后使用。(CSV 下载按钮目前为禁用状态)
Q. 想对同一标签比较多种算法。 A. 请分别用各算法执行一次并保存图表 PNG,然后在外部工具中并排比较。异常诊断算法中常用 EGADS↔DBSCAN 的对比。
Q. 可以将预测结果用作报警规则的阈值吗? A. 可以。将稳定学习结果的 LIMIT_MAX/LIMIT_MIN 迁移为 报警 的 EQL 报警阈值,即可实现基于统计的阈值自动化。
Q. 可以将学习结果自动反映到报警带吗?
A. 可以。可通过连接 流程 的 flow_update_tag_alarm_band_numeric 节点实现自动化。