当前位置: 首页 > news >正文

基于时间序列特征工程和随机森林算法的入釜矿浆成分预测模型

一、整体技术路线

原始数据采集 → 数据预处理 → 时间序列特征工程 → 模型训练 → 模型评估 → 预测输出

预测输出: 提供三个维度的数据:

  • 入釜矿浆成分实际值(实时在线检测)

  • 入釜矿浆成分预测值(基于模型计算)

  • 入釜矿浆成分检化验值(实验室分析结果)

二、数据预处理

1. 数据来源与结构

数据类型

来源

频率

说明

实际值

在线仪表实时监测

连续/分钟级

当前时刻真实值

检化验值(LIMS)

实验室取样分析

每4小时一次

滞后但有较高精度

历史趋势

数据库存储

全部历史

用于训练

2. 数据清洗规则

对每个成分列(Ni、Co、Mn、Mg、Fe、固含、粒度)执行:

IF 缺失值 THEN 向前填充(用上一个有效值替代)
IF 异常值(超出3σ范围)THEN 替换为中位数
IF 重复时间戳 THEN 保留最后一条记录

3. 时间对齐处理

由于LIMS检化验数据采样间隔较大(4小时),需要进行时间对齐:

对于每一行数据 t:
如果 t 时刻没有LIMS值:
取 t-Δt 时刻最近的LIMS值作为当前LIMS值(前向填充)

三、时间序列特征工程

这是模型精度的核心环节,共构造三类特征:

1. 滞后特征(Lag Features)

提取过去多个时间点的LIMS检化验值作为当前时刻的特征:

对于每个成分 C(Ni、Co、Mn、Mg、Fe、固含、粒度):
对于滞后阶数 k = 1, 2, 3, 4, 5: 创建特征:C_lims_lag_k = shift(C_lims, k)

则: Ni_lims_lag_1表示1小时前的Ni检化验值,

Ni_lims_lag_2表示4小时前的Ni检化验值,

Ni_lims_lag_3表示8小时前的Ni检化验值,

Ni_lims_lag_4表示N小时前的Ni检化验值,依次类推;

2. 移动平均特征(Moving Average Features)

计算过去一段时间窗口内的均值,平滑噪声:

对于每个成分 C:
对于窗口大小 w = 3, 6, 12(小时):
创建特征:C_lims_ma_w = rolling_mean(C_lims, window=w)

Ni_lims_ma_6表示过去6小时的Ni检化验值移动平均

3. 时间周期特征(Time Cyclical Features)

捕捉生产过程的周期性规律:

hour_feature = sin(2π × hour / 24) # 日周期
week_feature = sin(2π × day_of_week / 7) # 周周期

四、随机森林模型构建

1. 模型结构

输入层(63个特征)→ 随机森林(100棵决策树,最大深度10)→ 输出层(7个成分预测值)

为每个成分分别建立一个独立的随机森林回归模型,共7个模型。

2. 训练数据集划分

总样本:989条(经过特征工程后去除缺失值)
训练集:791条(80%)——用于模型学习
测试集:198条(20%)——用于模型评估

3. 模型超参数配置

参数

说明

n_estimators

100

决策树数量

max_depth

10

限制树深度防过拟合

min_samples_split

5

内部节点最小样本数

min_samples_leaf

2

叶子节点最小样本数

random_state

42

保证结果可复现

4. 训练过程(伪代码)

For each component C in [Ni, Co, Mn, Mg, Fe, 固含, 粒度]:
1. 准备特征矩阵 X(63维)和目标向量 y(C_actual)
2. 将 X 和 y 按 8:2 划分为训练集和测试集
3. 初始化 RandomForestRegressor(超参数如上)
4. 调用 model.fit(X_train, y_train) 训练模型
5. 调用 model.predict(X_test) 得到预测值
6. 计算 MSE 和 R² 评估模型性能

五、模型评估指标

1. 均方误差(Mean Squared Error, MSE)

MSE = (1/n) × Σ(y_i - ŷ_i)²

其中:
y_i = 第i个样本的实际值
ŷ_i = 第i个样本的预测值
n = 测试集样本数

MSE越小,模型预测越精确。

2. 决定系数(R² Score)

R² = 1 - SS_res / SS_tot

SS_res = Σ(y_i - ŷ_i)² (残差平方和)
SS_tot = Σ(y_i - ȳ)² (总平方和)
ȳ = 实际值的均值

R²取值范围(-∞, 1],越接近1表示模型拟合越好。

六、预测输出

1. 三个维度的输出

输出项

含义

更新频率

实际值

在线仪表实时监测值

每分钟

预测值

模型计算的预测值

每小时

检化验值

LIMS实验室分析值

每4小时

2. 趋势可视化

对于每个成分:
横轴:时间序列(最近200个数据点)
纵轴:成分含量
三条曲线:实际值(蓝色实线)、预测值(红色虚线)、检化验值(绿色半透明线)

七、完整计算流程图

┌─────────────────────────────────────────────────────────┐
│ 数据采集层 │
├─────────────────────────────────────────────────────────┤
│ 在线仪表(实际值) LIMS系统(检化验值) 历史数据库 │
└──────────────────────┬──────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│ 数据预处理层 │
├─────────────────────────────────────────────────────────┤
│ 缺失值填充(前向填充) 异常值剔除(3σ法则) 时间对齐 │
└──────────────────────┬──────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│ 时间序列特征工程层 │
├─────────────────────────────────────────────────────────┤
│ 滞后特征(k=1~5) 移动平均(w=3/6/12) 时间周期特征 │
└──────────────────────┬──────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│ 模型训练层 │
├─────────────────────────────────────────────────────────┤
│ 随机森林 × 7个成分 80%训练集 20%测试集 交叉验证 │
└──────────────────────┬──────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│ 模型评估层 │
├─────────────────────────────────────────────────────────┤
│ MSE计算 R²计算 残差分析 特征重要性排序 │
└──────────────────────┬──────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│ 预测输出层 │
├─────────────────────────────────────────────────────────┤
│ 实际值曲线 预测值曲线 检化验值曲线 趋势图导出 │
└─────────────────────────────────────────────────────────┘

以下是各成分的趋势对比图(展示了最近200个数据点的实际值、预测值和检化验值)

八、后续扩展方向

  1. 机理模型融合:接入业主提供的机理模型,将预测的入釜矿浆成分作为输入,推算酸和蒸汽的最佳加入量

  2. 在线学习:随着新数据不断产生,定期增量更新模型,保持预测精度

  3. 多模型集成:结合LSTM等深度学习模型,进一步提升时间序列预测性能

http://www.jsqmd.com/news/1138360/

相关文章:

  • Qt信号槽的几种连接方式:AutoConnection/DirectConnection/QueuedConnection/BlockingQueuedConnection
  • 【HarmonyOS学习笔记】2026-07-06 | 页面与数据5:实现页面跳转
  • Spring Boot 3 + Vue 3 + MySQL MES生产制造执行系统源码前后端分离实战
  • Objective-C 之 Foundation框架 详解
  • 06-高级模式与实战项目——09. 单元测试 - Jest
  • 储能沙盘模型BMS功能模拟控制系统设计与实现:电压监测、均衡管理与故障保护的STM32方案
  • npx --yes localtunnel --port 3000不安装任何依赖的情况下将端口暴露在公开url上
  • Scikit-learn 1.5.0 实战:5行代码构建KNN分类器,准确率超95%(附数据集)
  • Ubuntu 22.04 + CUDA 12.1 深度学习环境配置:3步完成PyTorch 2.0与TensorFlow 2.10共存
  • EhViewer安全架构深度解析:多层次防护机制的技术实现
  • Windows 11 安装 Claude Code:配置国产模型(DeepSeek)、无需解决网络问题
  • StegaStamp 2019 CVPR 实战复现:PyTorch 1.13 环境配置与 100 位消息嵌入测试
  • 2026年国产大模型API价格横评:DeepSeek/Kimi/GLM/Qwen哪家最便宜?附迁移避坑指南
  • 小黄鸭(Lossless Scaling)ai补帧神器配置方法与安装教程
  • CTF ECDH密钥协商漏洞攻击 Writeup
  • U-Net 跳跃连接深度解析:Concat 与 Add 操作的 3 种实现与性能影响
  • 【单片机毕业设计】基于 STM32 的智能护眼台灯监测控制系统设计,基于单片机的坐姿矫正与久坐提醒智能台灯设计(018401)
  • 乐达,乐运助手app官方下载
  • 2026 电商 AI 图文 + 动态素材完整接单市场价(闲鱼 / 小红书 / 淘宝美工真实行情)
  • Excel复选框本质解析:布尔逻辑驱动的数据交互设计
  • 给 AI 用的代码索引器-技术篇
  • Nacos漏洞利用工具V3.0.5:安全评估实践与工程化实现
  • 嵌入式Linux网络通信知识框架-以太网、WiFi、4G与5G
  • 岗位薪资范围太宽不知道值多少?3个定位方法
  • UI自动化性能优化全链路实战:从脚本编码到分布式架构
  • Novel-Downloader:200+网站智能解析的小说下载神器
  • 德州中央空调维保怎么选?本地服务避坑指南
  • 从分立到集成:对比4款移动电源SOC与ME4057+MCU方案的成本与PCB面积
  • 影刀RPA新手教程:知乎自动化完全指南问题监控与回答采集实战
  • RAG 多路召回:让检索命中率从 60% 干到 85% 的 4 层优化