7个最新的时间序列分析库介绍和代码示例

这篇具有很好参考价值的文章主要介绍了7个最新的时间序列分析库介绍和代码示例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

时间序列分析包括检查随着时间推移收集的数据点,目的是确定可以为未来预测提供信息的模式和趋势。我们已经介绍过很多个时间序列分析库了,但是随着时间推移,新的库和更新也在不断的出现,所以本文将分享8个目前比较常用的,用于处理时间序列问题的Python库。他们是tsfresh, autots, darts, atspy, kats, sktime, greykite。

7个最新的时间序列分析库介绍和代码示例

1、Tsfresh

Tsfresh在时间序列特征提取和选择方面功能强大。它旨在自动从时间序列数据中提取大量特征,并识别出最相关的特征。Tsfresh支持多种时间序列格式,可用于分类、聚类和回归等各种应用程序。

 importpandasaspd
 fromtsfreshimportextract_features
 fromtsfresh.utilities.dataframe_functionsimportmake_forecasting_frame
 
 # Assume we have a time series dataset `data` with columns "time" and "value"
 data=pd.read_csv('data.csv')
 
 # We will use the last 10 points to predict the next point
 df_shift, y=make_forecasting_frame(data["value"], kind="value", max_timeshift=10, rolling_direction=1)
 
 # Extract relevant features using tsfresh
 X=extract_features(df_shift, column_id="id", column_sort="time", column_value="value", impute_function=impute)

2、AutoTS

autots是另一个用于时间序列预测的Python库:

  • 提供了单变量和多变量时间序列预测的各种算法,包括ARIMA, ETS, Prophet和DeepAR。
  • 为最佳模型执行自动模型集成。
  • 提供了上界和下界的置信区间预测。
  • 通过学习最优NaN imputation和异常值去除来处理数据。
 fromautots.datasetsimportload_monthly
 
 df_long=load_monthly(long=True)
 
 fromautotsimportAutoTS
 
 model=AutoTS(
     forecast_length=3,
     frequency='infer',
     ensemble='simple',
     max_generations=5,
     num_validations=2,
 )
 model=model.fit(df_long, date_col='datetime', value_col='value', id_col='series_id')
 
 # Print the description of the best model
 print(model)

3、darts

darts(Data Analytics and Real-Time Systems)有多种时间序列预测模型,包括ARIMA、Prophet、指数平滑的各种变体,以及各种深度学习模型,如LSTMs、gru和tcn。Darts还具有用于交叉验证、超参数调优和特征工程的内置方法。

darts的一个关键特征是能够进行概率预测。这意味着,不仅可以为每个时间步骤生成单点预测,还可以生成可能结果的分布,从而更全面地理解预测中的不确定性。

 importpandasaspd
 importmatplotlib.pyplotasplt
 
 fromdartsimportTimeSeries
 fromdarts.modelsimportExponentialSmoothing
 
 # Read data
 df=pd.read_csv("AirPassengers.csv", delimiter=",")
 
 # Create a TimeSeries, specifying the time and value columns
 series=TimeSeries.from_dataframe(df, "Month", "#Passengers")
 
 # Set aside the last 36 months as a validation series
 train, val=series[:-36], series[-36:]
 
 # Fit an exponential smoothing model, and make a (probabilistic) 
 # prediction over the validation series’ duration
 model=ExponentialSmoothing()
 model.fit(train)
 prediction=model.predict(len(val), num_samples=1000)
 
 # Plot the median, 5th and 95th percentiles
 series.plot()
 prediction.plot(label="forecast", low_quantile=0.05, high_quantile=0.95)
 plt.legend()

7个最新的时间序列分析库介绍和代码示例

4、AtsPy

atspy,可以简单地加载数据并指定要测试的模型,如下面的代码所示。

 # Importing packages
 importpandasaspd
 fromatspyimportAutomatedModel
 
 # Reading data
 df=pd.read_csv("AirPassengers.csv", delimiter=",")
 
 # Preprocessing data 
 data.columns= ['month','Passengers']
 data['month'] =pd.to_datetime(data['month'],infer_datetime_format=True,format='%y%m')
 data.index=data.month
 df_air=data.drop(['month'], axis=1)
 
 # Select the models you want to run:
 models= ['ARIMA','Prophet']
 run_models=AutomatedModel(df=df_air, model_list=models, forecast_len=10)

该包提供了一组完全自动化的模型。包括:

7个最新的时间序列分析库介绍和代码示例

5、kats

kats (kit to Analyze Time Series)是一个由Facebook(现在的Meta)开发的Python库。这个库的三个核心特性是:

模型预测:提供了一套完整的预测工具,包括10+个单独的预测模型、集成、元学习模型、回溯测试、超参数调优和经验预测区间。

检测:Kats支持检测时间序列数据中的各种模式的函数,包括季节性、异常、变化点和缓慢的趋势变化。

特征提取和嵌入:Kats中的时间序列特征(TSFeature)提取模块可以生成65个具有明确统计定义的特征,可应用于大多数机器学习(ML)模型,如分类和回归。

 # pip install kats
 
 importpandasaspd
 fromkats.constsimportTimeSeriesData
 fromkats.models.prophetimportProphetModel, ProphetParams
 
 # Read data
 df=pd.read_csv("AirPassengers.csv", names=["time", "passengers"])
 
 # Convert to TimeSeriesData object
 air_passengers_ts=TimeSeriesData(air_passengers_df)
 
 # Create a model param instance
 params=ProphetParams(seasonality_mode='multiplicative')
 
 # Create a prophet model instance
 m=ProphetModel(air_passengers_ts, params)
 
 # Fit model simply by calling m.fit()
 m.fit()
 
 # Make prediction for next 30 month
 forecast=m.predict(steps=30, freq="MS")
 forecast.head()

6、Sktime

sktime是一个用于时间序列分析的库,它构建在scikit-learn之上,并遵循类似的API,可以轻松地在两个库之间切换。下面是如何使用Sktime进行时间序列分类的示例:

 fromsktime.datasetsimportload_arrow_head
 fromsktime.classification.composeimportTimeSeriesForestClassifier
 fromsktime.utils.samplingimporttrain_test_split
 
 # Load ArrowHead dataset
 X, y=load_arrow_head(return_X_y=True)
 
 # Split data into train and test sets
 X_train, X_test, y_train, y_test=train_test_split(X, y)
 
 # Create and fit a time series forest classifier
 classifier=TimeSeriesForestClassifier(n_estimators=100)
 classifier.fit(X_train, y_train)
 
 # Predict labels for the test set
 y_pred=classifier.predict(X_test)
 
 # Print classification report
 fromsklearn.metricsimportclassification_report
 print(classification_report(y_test, y_pred))

7、GreyKite

greykite是LinkedIn发布的一个时间序列预测库。该库可以处理复杂的时间序列数据,并提供一系列功能,包括自动化特征工程、探索性数据分析、预测管道和模型调优。

 fromgreykite.common.data_loaderimportDataLoader
 fromgreykite.framework.templates.autogen.forecast_configimportForecastConfig
 fromgreykite.framework.templates.autogen.forecast_configimportMetadataParam
 fromgreykite.framework.templates.forecasterimportForecaster
 fromgreykite.framework.templates.model_templatesimportModelTemplateEnum
 
 # Defines inputs
 df=DataLoader().load_bikesharing().tail(24*90)  # Input time series (pandas.DataFrame)
 config=ForecastConfig(
      metadata_param=MetadataParam(time_col="ts", value_col="count"),  # Column names in `df`
      model_template=ModelTemplateEnum.AUTO.name,  # AUTO model configuration
      forecast_horizon=24,   # Forecasts 24 steps ahead
      coverage=0.95,         # 95% prediction intervals
  )
 
 # Creates forecasts
 forecaster=Forecaster()
 result=forecaster.run_forecast_config(df=df, config=config)
 
 # Accesses results
 result.forecast     # Forecast with metrics, diagnostics
 result.backtest     # Backtest with metrics, diagnostics
 result.grid_search  # Time series CV result
 result.model        # Trained model
 result.timeseries   # Processed time series with plotting functions

总结

我们可以看到,这些时间序列的库主要功能有2个方向,一个是特征的生成,另外一个就是多种时间序列预测模型的集成,所以无论是处理单变量还是多变量数据,它们都可以满足我们的需求,但是具体用那个还要看具体的需求和使用的习惯。

https://avoid.overfit.cn/post/45451d119a154aeba72bf8dd3eaa9496

作者:Joanna文章来源地址https://www.toymoban.com/news/detail-407761.html

到了这里,关于7个最新的时间序列分析库介绍和代码示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器学习——时间序列ARIMA模型(三):AR、MA、ARMA、ARIMA模型定义及公式介绍及股价预测案例代码

    使用自身的数据进行预测,且只适用于预测与自身前期相关的现象。 注意:需满足具有平稳性的要求,需满足自相关性,自相关系数需大于0.5。 p阶自回归公式: y t = μ + ∑ i = 1 p γ i y t − i + e t y_{t}=μ+sum_{i=1}^pgamma_{i}y_{t-i}+e_{t} y t ​ = μ + i = 1 ∑ p ​ γ i ​ y t − i ​ + e

    2024年02月02日
    浏览(60)
  • 【2023 年第二届钉钉杯大学生大数据挑战赛】 初赛 B:美国纽约公共自行车使用量预测分析 问题三时间序列预测Python代码分析

    【2023 年第二届钉钉杯大学生大数据挑战赛】 初赛 B:美国纽约公共自行车使用量预测分析 问题一Python代码分析 【2023 年第二届钉钉杯大学生大数据挑战赛】 初赛 B:美国纽约公共自行车使用量预测分析 问题二Python代码分析 【2023 年第二届钉钉杯大学生大数据挑战赛】 初赛

    2024年02月15日
    浏览(68)
  • 时间序列分析(SPSS)

      本文借鉴了数学建模清风老师的课件与思路,可以点击查看链接查看清风老师视频讲解:清风数学建模:https://www.bilibili.com/video/BV1DW411s7wi 目录  前言  一、时间序列介绍  1.1 时间序列基本概念​编辑  1.2 时期和时点序列  1.3 时间序列分解  1.3.1 长期趋势(T)​编辑  

    2024年02月06日
    浏览(66)
  • 时间序列分析

    公式: 预测标准误差:  本质:用前N次数据预测t+1期的数据 规律:如果实际数据波动较大,N值越大,预测到的数据波动越小 注意:一般不适用于波动较大的数据。用一次移动平均法,预测一期数据比较准确,不能预测多期数据 本质:对一次移动平均法再求均值,根据一次型

    2024年02月05日
    浏览(76)
  • 时间序列分析模型详细讲解

    时间序列也称动态序列,是指将某种现象的指标数值按照时间顺序排列而成的数值序列。 时间序列分析大致可分成三大部分,分别是描述过去、分析规律和预测未来。 本文主要包含常用的三种模型: 季节分解 指数平滑模型 ARIMA模型 时间序列的数值变化规律 数值变化规律

    2024年02月02日
    浏览(41)
  • 【数学建模】时间序列分析

    1.使用于具有时间、数值两种要素 2.数据具有周期性可以使用时间序列分解 叠加模型【Y=T+S+C+I】 序列的季节波动变化越来越大,反映变动之间的关系发生变化 乘积序列【Y=T S C*I】 时间序列波动保持恒定,可以使用叠加模型 数据预处理——开头结尾有缺失值,直接删掉即可

    2024年02月15日
    浏览(46)
  • 【数学建模】--时间序列分析

    时间序列分析概念与时间序列分解模型 定义:时间序列也称动态序列,是指将某种现象的指标数值按照时间顺序排列而成的数值序列。时间序列分析大致可分成三大部分,分别是描述过去,分线规律和预测未来,本讲将主要介绍时间序列分析中常用的三种模型:季节分解指数

    2024年02月13日
    浏览(45)
  • 数学建模--时间序列分析

    目录 1.时间序列 2.平稳时间序列 差分方程 滞后因子 时序平稳性  自回归模型AR(P) 滑动平均模型 MA(q) 自回归移动平均模型ARMA(p,q) 3.matlab时序分析 garchset函数 garchfit函数 4.案例分析         时间序列分析是一种数据分析方法,它研究的对象是代表某一现象的一串随时间

    2024年02月12日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包