打卡笔记day01

该任务涉及电炉生产数据的预测,通过创建交叉特征、历史平移和差分特征以及窗口统计来增强数据,旨在利用机器学习模型(如LightGBM或XGBoost)预测电炉17个温区的温度。预处理步骤包括数据切分、特征工程,目标是提高预测准确性。
摘要由CSDN通过智能技术生成

任务介绍

任务输入

电炉对应17个温区的实际生产数据,分别是电炉上部17组加热棒设定温度T1-1T1-17,电炉下部17组加热棒设定温度T2-1T2-17,底部17组进气口的设定进气流量V1-V17

任务输出

电炉对应17个温区上部空间和下部空间17个测温点的测量温度值


任务解析

本次问题是回归预测,常规思路为使用机器学习,如LightGBM、XGBoost,或者使用深度学习进行实践,在模型的搭建上就比较复杂,需要自己构建模型结构,对于数值数据需要进行标准化处理;

最简单的方式可使用机器学习模型解决本次问题,该方法模型使用简单,数据不需要过多预处理;

主要步骤为数据预处理、切分训练集与验证集、训练模型、预测结果。


进阶技巧

  1. **交叉特征:**主要提取流量、上部温度设定、下部温度设定之间的关系

  2. **历史平移特征:**通过历史平移获取上个阶段的信息;

  3. **差分特征:**可以帮助获取相邻阶段的增长差异,描述数据的涨减变化情况。在此基础上还可以构建相邻数据比值变化、二阶差分等;

  4. **窗口统计特征:**窗口统计可以构建不同的窗口大小,然后基于窗口范围进统计均值、最大值、最小值、中位数、方差的信息,可以反映最近阶段数据的变化情况。


    # 交叉特征
    for i in range(1,18):
        train[f'流量{i}/上部温度设定{i}'] = train[f'流量{i}'] / train[f'上部温度设定{i}']
        test[f'流量{i}/上部温度设定{i}'] = test[f'流量{i}'] / test[f'上部温度设定{i}']
        
        train[f'流量{i}/下部温度设定{i}'] = train[f'流量{i}'] / train[f'下部温度设定{i}']
        test[f'流量{i}/下部温度设定{i}'] = test[f'流量{i}'] / test[f'下部温度设定{i}']
        
        train[f'上部温度设定{i}/下部温度设定{i}'] = train[f'上部温度设定{i}'] / train[f'下部温度设定{i}']
        test[f'上部温度设定{i}/下部温度设定{i}'] = test[f'上部温度设定{i}'] / test[f'下部温度设定{i}']
        
    # 历史平移
    for i in range(1,18):
        train[f'last1_流量{i}'] = train[f'流量{i}'].shift(1)
        train[f'last1_上部温度设定{i}'] = train[f'上部温度设定{i}'].shift(1)
        train[f'last1_下部温度设定{i}'] = train[f'下部温度设定{i}'].shift(1)
        
        test[f'last1_流量{i}'] = test[f'流量{i}'].shift(1)
        test[f'last1_上部温度设定{i}'] = test[f'上部温度设定{i}'].shift(1)
        test[f'last1_下部温度设定{i}'] = test[f'下部温度设定{i}'].shift(1)
    
    # 差分特征
    for i in range(1,18):
        train[f'last1_diff_流量{i}'] = train[f'流量{i}'].diff(1)
        train[f'last1_diff_上部温度设定{i}'] = train[f'上部温度设定{i}'].diff(1)
        train[f'last1_diff_下部温度设定{i}'] = train[f'下部温度设定{i}'].diff(1)
        
        test[f'last1_diff_流量{i}'] = test[f'流量{i}'].diff(1)
        test[f'last1_diff_上部温度设定{i}'] = test[f'上部温度设定{i}'].diff(1)
        test[f'last1_diff_下部温度设定{i}'] = test[f'下部温度设定{i}'].diff(1)
        
    # 窗口统计
    for i in range(1,18):
        train[f'win3_mean_流量{i}'] = (train[f'流量{i}'].shift(1) + train[f'流量{i}'].shift(2) + train[f'流量{i}'].shift(3)) / 3
        train[f'win3_mean_上部温度设定{i}'] = (train[f'上部温度设定{i}'].shift(1) + train[f'上部温度设定{i}'].shift(2) + train[f'上部温度设定{i}'].shift(3)) / 3
        train[f'win3_mean_下部温度设定{i}'] = (train[f'下部温度设定{i}'].shift(1) + train[f'下部温度设定{i}'].shift(2) + train[f'下部温度设定{i}'].shift(3)) / 3
        
        test[f'win3_mean_流量{i}'] = (test[f'流量{i}'].shift(1) + test[f'流量{i}'].shift(2) + test[f'流量{i}'].shift(3)) / 3
        test[f'win3_mean_上部温度设定{i}'] = (test[f'上部温度设定{i}'].shift(1) + test[f'上部温度设定{i}'].shift(2) + test[f'上部温度设定{i}'].shift(3)) / 3
        test[f'win3_mean_下部温度设定{i}'] = (test[f'下部温度设定{i}'].shift(1) + test[f'下部温度设定{i}'].shift(2) + test[f'下部温度设定{i}'].shift(3)) / 3
    

竞赛结果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值