前言
前两篇文章,我们分析分别用了
琥珀里有波罗的海:Energy Consumption (能源消耗)预测(1):从听说prophet 到预测zhuanlan.zhihu.com和
琥珀里有波罗的海:Energy Consumption (能源消耗)预测(2): 传统季节信号分解PK prophetzhuanlan.zhihu.com对信号进行了分解。机器学习中一直流程的一段话:模型和特征工程决定了结果的极限,调参只是逼近这个极限。
所以本人一般不喜欢简单粗暴的调参,而是喜欢在模型上多试几次,或者在特征上变一下。
今天我们来用lightgbm 进行该数据集的预测。
为什么是ligbtgbm呢? 我的理由有以下几点:
- lightgbm 属于tree 类型的模型,并且采用boosting技术 ,和prophet截然不同
- lightbgbm相比于同行xgboost,更快,适合我的CPU only 的笔记本 (重点)
lightgbm 简介
既然实战,我们就假设你听过lightgbm。如果是纯新手,可以看看官方文档。 听说有中文版的翻译,不过里面有少许的坑,比如因为更新不及时,导致缺少一些metrics的翻译等。 我们之前有用ligtgbm 硬train 多分类数据集。
琥珀里有波罗的海:多分类机器学习中数据不平衡的处理(NSL-KDD 数据集+lightgbm )zhuanlan.zhihu.com有兴趣的可以在阅读完本文去翻阅。两个文章属于不同的用法,一个是分类,一个是回归。
数据准备
首先导入一些库。这几个库都是必须的, lightgbm 可以创建模型,pandas处理数据,pyplot 画图,metrics 用来评判我们的模型。
import lightgbm as lgb
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.metrics import mean_absolute_error
首先读入数据,并且将时间字符串转换为Timestamp 格式。
file =