当前位置:   article > 正文

【机器学习】太赞了!几行代码实现30多种时序模型预测

catboost时序预测

简介

PyCaret是一个开源、低代码的Python机器学习库,可自动执行机器学习工作流。它是一种端到端的机器学习和模型管理工具,可以以指数方式加快实验周期并提高您的工作效率。

与其他开源机器学习库相比,PyCaret是一个替代的低代码库,可用于仅用几行代码替换数百行代码。这使得实验速度和效率呈指数级增长。

PyCaret本质上是围绕多个机器学习库和框架(例如 scikit-learn、XGBoost、LightGBM、CatBoost、spaCy、Optuna、Hyperopt、Ray 等的Python包装器。

PyCaret时间序列模块

PyCaret的新时间序列模块现已提供测试版。秉承 PyCaret 的简单性,它与现有的 API 保持一致,并带有很多功能:模型训练和选择(30多种算法)、模型分析、自动超参数调优、实验记录、云部署等。

pip install pycaret-ts-alpha

使用样例

PyCaret的时间序列模块中的工作流程非常简单。它从setup您定义预测范围,然后设置使用函数训练和评估多种算法。

加载数据

  1. import pandas as pd
  2. from pycaret.datasets import get_data
  3. data = get_data('pycaret_downloads')
  4. data['Date'] = pd.to_datetime(data['Date'])
  5. data = data.groupby('Date').sum()
  6. data = data.asfreq('D')
  7. data.head()

a91d80a5d3f9ea91a84caa8a002a1336.png

  1. # plot the data
  2. data.plot()

0bfff0a444cdb0a18c973a2bf834e4b7.png

初始化设置

  1. from pycaret.time_series import *
  2. setup(data, fh = 7, fold = 3, session_id = 123)
  3. from pycaret.internal.pycaret_experiment import TimeSeriesExperiment
  4. exp = TimeSeriesExperiment()
  5. exp.setup(data, fh = 7, fold = 3, session_id = 123)

e7f5925de5a5b107c1cf797c4083876a.png

统计测试

check_stats()

e7481dd8f77d6469ba9cffce9a3b6022.png

探索性数据分析

  1. plot_model(plot = 'ts')
  2. exp.plot_model(plot = 'ts')

414248b09394d635b882fd1e30b35df1.png

  1. # cross-validation plot
  2. plot_model(plot = 'cv')

5b9eedc4a2bd5feca2c6ddcdfa5bca69.png

  1. # ACF plot
  2. plot_model(plot = 'acf')

97f18f84f8e64b149680a203a7272f3b.png

  1. # Diagnostics plot
  2. plot_model(plot = 'diagnostics')

58089f2329dffb726a4c6b79a5da39d0.png

  1. # Decomposition plot
  2. plot_model(plot = 'decomp_stl')

518b6dcfa70eebe448ac422643d4d7f9.png

模型训练与选择

  1. best = compare_models()
  2. best = exp.compare_models()

fc2ed5f0f470842a957f401f40e707f9.png

  1. # create fbprophet model
  2. prophet = create_model('prophet')
  3. print(prophet)

71e64c3fbc81b4d1a5e1f9e215c28a4a.png

  1. tuned_prophet = tune_model(prophet)
  2. print(tuned_prophet)

859ca89f51215ac348a8da5ac529d9e9.png

plot_model(best, plot = 'forecast')

0216da3dd86c01adf2389eedce9edd28.png

  1. # forecast in unknown future
  2. plot_model(best, plot = 'forecast', data_kwargs = {'fh' : 30})

5cd0c9bbcc8ce9f873d0a73b6b3f5142.png

  1. # in-sample plot
  2. plot_model(best, plot = 'insample')

98a58e0bbd396e0462c9224aaa386ecc.png

  1. # residuals plot
  2. plot_model(best, plot = 'residuals')

856b6642d4863d4df7b8884bf2ab3a9e.png

测试部署

  1. # finalize model
  2. final_best = finalize_model(best)# generate predictions
  3. predict_model(final_best, fh = 90)

bce4cb378db5d852dd922dbc6c56a04c.png

  1. # save the model
  2. save_model(final_best, 'my_best_model')

c70e1cd8d8cf689ac04636b8f45b9653.png

参考资料

pycaret时序文档:https://pycaret.readthedocs.io/en/time_series/api/time_series.html

pycaret时序规划:https://github.com/pycaret/pycaret/issues/1648

 
 
 
 
 
 
 
 
 
 
  1. 往期精彩回顾
  2. 适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载中国大学慕课《机器学习》(黄海广主讲)机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑
  3. AI基础下载机器学习交流qq群955171419,加入微信群请扫码:

77f71e134dc86d1118e9ee29b53b35aa.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/798096
推荐阅读
相关标签
  

闽ICP备14008679号