Coder Social home page Coder Social logo

lightgbm's Introduction

模型训练实验报告

2106010224 计算机2班 闫科儒

1. 实验目的

通过多台风机的数据预测风机的发电量。

2. 实验步骤与方案

2.1 数据准备

  • 数据来源:数据文件夹被命名为"区域赛训练集"。
  • 数据类型:包含多台风机的时间序列数据,格式为CSV。
  • 数据加载:使用Python的pandas库读取所有的CSV文件。

2.2 数据清洗与预处理

  • 缺失值处理

    • 使用风速数据填补'ROUND(A.WS,1)'中的缺省值。
    • 其他缺失值使用前一个不为空的数据进行填充。
  • 时间特征构造:从时间戳中提取小时、天、月作为新的特征。

  • 延迟特征构造:对选定特征,如风速、风向等,创建它们过去几小时的值作为新的特征。

  • 交互特征构造:创建特定特征之间的交互项,例如风速与风向、风速与温度和风速与压力的乘积。

  • 聚合特征构造:计算过去24小时内的风速的平均值、最大值和最小值。

  • 数据标准化:使用sklearn的StandardScaler对所有特征进行标准化,使其具有均值为0和标准差为1。

2.3 皮尔逊相关系数计算

  • 计算方法:对所有风机的特征数据进行两两的皮尔逊相关系数计算。
  • 用途:衡量风机之间的特征相似性,为后续的聚类提供依据。

2.4 聚类分析

  • 方法选择:使用sklearn的谱聚类方法。
  • 聚类数量:根据皮尔逊相关系数的结果,选择将风机分为3类。
  • 数据分配:根据每台风机的特征相似性,将其数据分配到相应的类别中。

2.5 模型训练

  • 模型选择:使用LightGBM回归模型。
  • 损失函数:选择均方误差作为优化的损失函数。
  • 超参数优化:使用Hyperopt库和TPE算法来搜索最佳的超参数。
  • 模型保存:每个类别的训练好的模型都保存在"model"文件夹中。

3. 实验结果

  • 数据预处理结果:成功地实现了特征选择、数据填充、异常值处理、特征缩放、时间特征生成、延迟特征生成、交互特征和聚合特征的方法。
  • 聚类结果:根据皮尔逊相关系数,风机被成功地分为3个不同的类别。
  • 预测性能:通过聚类后的独立模型训练,为不同类别的风机提供了更为精确的预测。

风机数据预测流程实验报告

1. 背景与目的

本实验的目标是使用预先训练的模型对风机的数据进行预测,并输出预测结果。我们将对输入数据进行一系列的处理,以确保数据准备工作符合模型的预期输入格式。

2. 数据预处理

2.1 选定的特征

为保持模型输入的一致性,我们选定了以下特征:WINDSPEEDWINDDIRECTIONTEMPERATUREHUMIDITYPRESSURE。此外,还考虑了一系列扩展的特征,如时间特征和过去数据的滞后特征等。

2.2 交互特征

交互特征是两个或多个特征之间的组合。我们为数据集添加了以下三个交互特征:

  • WINDSPEED_WINDDIRECTION: 风速与风向的乘积
  • WINDSPEED_TEMPERATURE: 风速与温度的乘积
  • WINDSPEED_PRESSURE: 风速与压力的乘积

2.3 聚合特征

为了捕捉到过去24小时的风速信息,我们添加了以下三个聚合特征:

  • WINDSPEED_24H_MEAN: 过去24小时的平均风速
  • WINDSPEED_24H_MAX: 过去24小时的最大风速
  • WINDSPEED_24H_MIN: 过去24小时的最小风速

2.4 数据清洗与特征工程

  • 数据中的缺失值使用前向填充法处理。
  • 使用时间戳特征(DATATIME)派生出小时、日、月的特征。
  • 为每个选定的特征添加了最多三个的滞后特征。
  • 对选择的特征进行了标准化。

3. 预测过程

3.1 模型加载

我们为四个不同的模型加载了预训练的权重,这些模型使用LightGBM技术进行了训练。

3.2 预测与集成

对于每个加载的模型,我们都使用它进行预测。之后,我们使用给定的权重对所有模型的预测结果进行了平均,得到了最终的预测结果。

4. 输出

预测结果以CSV格式保存,包含风机ID、时间、预测输出等列。

结果展示:

image-20231025101435296

比赛成果:

image-20231025101627187

预选赛以0.78583的准确率排行第九,区域答辩晋级赛由于能力有限,不知如何对模型进行进一步的优化,最后只有0.68的准确率险入答辩赛场。

lightgbm's People

Contributors

hhu3637kr avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.