LightGBM是最近最常见的一类算法,在kaggle比赛中经常被用来做预测和回归,由于性能比较好有着“倚天剑”的称号,而XGBoost则被称为屠龙刀。今天,我们就抛砖引玉,做一个简单的教程,如何用这倚天剑和屠龙刀来预测时间序列。参数没有调到最佳的预测效果,根据不同的数据集,同学们可以自己调参。
1.环境搭建
我们运行的环境是下载anaconda,然后在里面安装keras以及lightgbm,打开spyder运行程序即可。其中下载anaconda和安装keras的教程在我们另一个博客“用CNN做电能质量扰动分类(2019-03-28)”中写过了,这里就不赘述了。至于安装lightgbm的教程可以看“https://zhuanlan.zhihu.com/p/38361330”,基本上一句话总结就是“在Anaconda Prompt中输入pip install lightgbm 按Enter即可”
2.数据集下载
下载时间序列数据集和程序。其中,网盘连接是:
https://pan.baidu.com/s/1atjv-Juq9j8dW_x5RKUohg,密码是“ivhz”。
“nihe.csv”是我自己做的一个时间序列的数据集,一共有1000行4列其中,1-3列可以认为是X,第4列认为是Y。我们现在要做的就是训练3个X和Y之间的关系,然后给定X去预测Y。
3.预测
把下载的nihe.csv文件放到spyder 的默认路径下,我的默认路径是“D:\Matlab2018a\42”,新建一个.py文件,把程序放进去,运行即可。运行结束后,forecasttestY变量就是测试集的预测值。