【Datawhale夏令营】任务一学习笔记

目录

一:anaconda的环境配置

二:赛题任务解读

2.1 任务要求

2.2 数据集介绍

2.3 评估指标

三:机器学习之 LightGBM


一:anaconda的环境配置

  1. 下载Anaconda:访问Anaconda官方网站(https://www.anaconda.com/products/individual)下载适合你操作系统的Anaconda安装包。选择Python 3.x版本的安装包。

  2. 安装Anaconda:下载完成后,运行安装包,按照向导完成Anaconda的安装过程。在安装过程中,你可以选择将Anaconda安装到默认路径或自定义路径。

  3. 创建环境:安装完成后,打开Anaconda Navigator(或者在命令行中输入anaconda-navigator)或Anaconda Prompt,然后执行以下命令创建一个新的环境:

    conda create --name myenv
    

    其中,myenv是你所创建环境的名称,你可以根据需求修改它。

  4. 激活环境:创建环境后,需要激活该环境才能使用。在Anaconda Prompt中执行以下命令激活环境:

    • 在Windows上:

      conda activate myenv
      
    • 在macOS和Linux上:

      conda activate myenv
      

    激活环境后,命令行的前缀会显示环境的名称(如(myenv) C:\User\Username>)。

  5. 安装软件包:在激活的环境下,你可以使用conda命令或者pip命令安装需要的软件包。例如,使用conda安装numpy:

    conda install numpy
    

    或者使用pip安装:

    pip install numpy
    

    根据你的需求,安装其他软件包。

  6. 使用环境:完成环境的配置后,你可以使用该环境运行你的Python程序。在激活环境的状态下,使用命令行执行Python程序或者使用集成开发环境(IDE)加载该环境。

  7. 关闭环境:当你完成使用环境时,可以关闭激活的环境。在命令行中执行以下命令关闭环境:

    conda deactivate
    

    这将会返回到默认的系统环境。

二:赛题任务解读

锂离子电池生产参数调控及生产温度预测挑战赛:赛事链接

2.1 任务要求
  • 初赛任务:初赛提供了电炉17个温区的实际生产数据,分别是电炉上部17组加热棒设定温度T1-1 ~ T1-17,电炉下部17组加热棒设定温度T2-1~T2-17,底部17组进气口的设定进气流量V1-V17,选手需要根据提供的数据样本构建模型,预测电炉上下部空间17个测温点的测量温度值。
2.2 数据集介绍
  • 初赛为参赛选手提供了5类数据:1)加热棒上部温度设定值、2)加热棒下部温度设定值、3)进气流量、4)上部空间测量温度、5)下部空间测量温度。出于数据安全保证的考虑,所有数据均为脱敏处理后的数据。训练集及测试集每行均含有5类数据。选手需要建立上部加热棒设定温度、下部加热棒设定温度、进气流量与上部空间测量温度、下部空间测量温度之间的模型。
2.3 评估指标
  • 初赛考核办法采用测试集各行数据的加热棒上部温度设定值、加热棒下部温度设定值、进气流量3类数据作为输入,选手分别预测上部空间测量温度、下部空间测量温度。将选手预测的上部空间测量温度、下部空间测量温度与测试集数据的测量值进行比较。采用MAE平均绝对误差作为评价指标。

本次比赛为数据挖掘类型的比赛,聚焦于工业场景。本赛题实质上为回归任务,其中会涉及到时序预测相关的知识。

通过电炉空间温度推测产品内部温度,设计烧结过程的温度场和浓度场的最优控制律:

  • 任务输入:电炉对应17个温区的实际生产数据,分别是电炉上部17组加热棒设定温度T1-1 ~ T1-17,电炉下部17组加热棒设定温度T2-1~T2-17,底部17组进气口的设定进气流量V1-V17;
  • 任务输出:电炉对应17个温区上部空间和下部空间17个测温点的测量温度值。

值得注意的是预测目标为34个,所以需要我们进行34次模型训练和预测。

三:机器学习之 LightGBM

在处理这个问题时,我们主要考虑的是回归预测。一种常规的解决思路是运用机器学习技术,例如 LightGBM 或 XGBoost,或者借助深度学习方法进行实践。当我们选择自行搭建模型的路径时,我们将面临更为复杂的挑战,包括构建模型结构以及对数值数据进行标准化处理。

总的来说,我们需要经过以下步骤来解决本问题:

  • 数据预处理
  • 切分训练集与验证集
  • 训练模型
  • 生成最后的预测结果

在实施这些步骤的过程中,我们需要根据模型的性质和数据的特点灵活调整,确保每一步的实施都能最大化模型的预测准确性,从而有效解决这个回归预测问题。

以下是夏令营baseline讲解

更新lightGBM库&解压缩数据 

!pip install -U lightgbm

!unzip data/data227148/data.zip  //具体的路径

这两个命令需要在具有相应权限的命令行环境中执行,例如终端或命令提示符。如果使用的是其他开发环境,如Jupyter Notebook,则可以在相应的框/单元中执行这些命令。

导入库

# 导入所需要的库
import pandas as pd # 用于处理数据的工具
import lightgbm as lgb # 机器学习模型 LightGBM
from sklearn.metrics import mean_absolute_error # 评分 MAE 的计算函数
from sklearn.model_selection import train_test_split # 拆分训练集与验证集工具
from tqdm import tqdm # 显示循环的进度条工具

数据准备

train_dataset = pd.read_csv("./data/train.csv") # 原始训练数据。
test_dataset = pd.read_csv("./data/test.csv") # 原始测试数据(用于提交)。

submit = pd.DataFrame() # 定义提交的最终数据。
submit["序号"] = test_dataset["序号"] # 对齐测试数据的序号。

MAE_scores = dict() # 定义评分项。

模型训练 

pred_labels = list(train_dataset.columns[-34:]) # 需要预测的标签。
train_set, valid_set = train_test_split(train_dataset, test_size=0.2) # 拆分数据集。

 训练参数

# 设定 LightGBM 训练参,查阅参数意义:https://lightgbm.readthedocs.io/en/latest/Parameters.html
lgb_params = {
        'boosting_type': 'gbdt',
        'objective': 'regression',
        'metric': 'mae',
        'min_child_weight': 5,
        'num_leaves': 2 ** 5,
        'lambda_l2': 10,
        'feature_fraction': 0.8,
        'bagging_fraction': 0.8,
        'bagging_freq': 4,
        'learning_rate': 0.05,
        'seed': 2023,
        'nthread' : 16,
        'verbose' : -1,
    }

no_info = lgb.callback.log_evaluation(period=-1) # 禁用训练日志输出。

后续讲解仍在进行

baseline进行修改优化后并跑通,结果可观如下:

 

参考文章:

datawhale暑期夏令营:datawhale开源项目

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guiyumile

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值