预测分析(机器学习)
目录
概述
预测分析界面通过学习时序标签数据来预测未来值,并检测异常值(异常诊断)。运维人员只需在 GUI 中选择学习区间、采样周期和算法,即可立即通过结果图表和表格查看分析结果。
该界面用于以下分析。
- 预测未来 N 个时点的标签值(需求预测、产量预测等)
- 从历史数据中检测统计上偏离的异常值
- 为确定报警规则阈值而进行的基准分析
路径:当前在集成侧边栏中可能不会作为默认菜单显示。内部 URL 为 /forecast/index,界面标题为 机器学习。
本文档介绍预测·异常诊断附加界面。基于左侧菜单的运维流程请优先参考控制台导航与通用界面。
界面构成
┌──────────────────────────────────────────────────────────────────┐
│ 🧠 기계학습 │ ← ① 상단
├─────────────────────┬────────────────────────────────────────────┤
│ │ │
│ 📄 양식 │ 📈 기계학습 결과 │
│ ───────────────── │ ────────────────────────────────────────│
│ ◯ 대상 태그 선택 │ [학습 데이터] [이상진단 건수] [실행 시간] │ ← 요약 카드
│ • 태그명 입력 │ │
│ │ ┌──────────────────────────────────────┐ │
│ ◯ 데이터 구간 │ │ │ │
│ • 학습 구간 (날짜) │ │ 결과 차트 (520px) │ │
│ • 샘플링 주기 │ │ │ │
│ │ └──────────────────────────────────────┘ │
│ ◯ 기계학습 속성 │ │
│ • 예측 알고리즘 │ ◯ 예측 데이터 (테이블) │
│ • 예측 갯수 │ ◯ 이상진단 데이터 (테이블) │
│ • 이상진단 알고리즘 │ │
│ • 개연성 │ │
│ │ │
│ [🚀 기계학습 시작] │ │
└─────────────────────┴────────────────────────────────────────────┘
| 区域 | 位置 | 显示内容 |
|---|---|---|
| ① 顶部 | 全宽 | 页面标题 |
| ② 左侧 | col-lg-3 | 表单(输入表单) — 4 个 fieldset + 启动按钮 |
| ③ 右侧 | col-lg-9 | 机器学习结果 — 3 类摘要卡片 + 图表 + 两个结果表 |
顶部 — 页面标题
| 项目 | 显示内容 |
|---|---|
| 页面标题 | 🧠 “机器学习” |
左侧 — 表单(输入表单)
左侧面板的表单由 4 个分组(<fieldset>)构成。
1) 选择目标标签
| 输入项 | name | 宽度 | placeholder | 说明 |
|---|---|---|---|---|
| 标签名 | tag_name | 250px(蓝色边框 2px) | “输入标签名” | 从已注册的标签列表中通过自动补全选择。选中后立即保存到隐藏字段 tag_id |
输入框右侧同时显示 🧭 图标 + “请选择要进行机器学习的标签。”提示文字。
2) 数据区间
| 输入项 | name | 宽度 | 说明 |
|---|---|---|---|
| 学习区间 | learning_time | 250px(居中对齐、粗体) | 起始~结束日期时间。点击后弹出日期范围选择器。表单提交时通过隐藏字段 learning_date_from / learning_date_to 传递 |
| 采样周期 | term | 200px | 选择器 — “采样周期”选项(例如 1_MIN / 5_MIN / 30_MIN / 1_HOUR / 1_DAY 等系统中定义的周期列表) |
什么是采样?
| 选项 | 含义 |
|---|---|
| 原始(RAW) | 直接使用全部数据点进行学习 — 适用于数据量大、变化快的标签 |
| 采样(快照) | 按固定周期抽取 1 个代表值进行学习 — 降低长周期学习的计算开销 |
隐藏选择器中默认设置为
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 |
| 确定报警阈值 | 学习稳定运行的一周数据 → 采用 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 节点实现自动化。