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

news/2024/11/29 6:51:35/

目录

一: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开源项目


http://www.ppmy.cn/news/977989.html

相关文章

RISCV -3 RV32I/RV64I基本整型指令集

RISCV -3 RV32I/RV64I基本整型指令集 1 RV32I Base Integer Instruction Set1.1 Programmers’ Model for Base Integer ISA1.2 Base Instruction Formats1.3 Immediate Encoding Variants1.4 Integer Computational Instructions1.4.1 Integer Register-Immediate Instruction…

2023最经典的软件测试面试题【含答案】

说起软件测试近几年的发展,其实已悄无声息地发生了巨大的变化。前几年随着互联网行业的迅猛发展,软件测试人才稀缺,低门槛高薪资促使大批毕业生和转行人员一窝蜂地涌入。而现在,软件测试发展太快,纵观各大招聘网站&…

SQL AND OR 运算符

AND & OR 运算符用于基于一个以上的条件对记录进行过滤。 如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。 如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。 下面是选自 "students" 表的数据&a…

跨境独立站如何应对恶意网络爬虫?

目录 跨境出海独立站纷纷成立 爬虫威胁跨境电商生存 如何有效识别爬虫? 技术反爬方案 防爬虫才能保发展 中国出海跨境电商业务,主要选择大平台开设店铺,例如,亚马逊、eBay、Walmart、AliExpress、Zalando等。随着业务的扩大&…

【nginx】nginx之location规则详解:

文章目录 一、语法规则:二、优先级:三、验证:1、精确匹配:2、通过^~方式实现匹配:3、通过”~”方式实现匹配:4、通过"~*"方式实现匹配:5、”!~*” 和”!~” 不常用,再次不做介绍6、通…

【CSS】outline 属性

outline属性 outline 是 CSS 属性,用于设置元素的外边框样式,包括颜色、样式和宽度。外边框是一个在元素周围的轮廓,类似于边框(border),但不会占用空间,并且不会影响布局。 outline 属性可以…

使用v-html进行渲染如何使标签按照字符串显示,特殊样式标签(自己添加的部分)按照标签解析

使用v-html进行渲染如何使标签按照字符串显示,特殊样式标签(自己添加的部分)按照标签解析 需求:是内容里如果含有含有www.baidu.com这种链接高亮显示 解决办法: 首先拿到需要回显的内容content对内容进行转义escapeHTML,之后再去…

瑞吉外卖开发笔记 七(Linux)

为什么要学Linux ? 企业用人要求个人发展要求 学习后能干什么? Linux简介 不同应用领域的主流操作系统 桌面操作系统 Windows (用户数量最多)Mac OS(操作体验好,办公人士首选)Linux(用户数量少) 服务器操作系统 UN…