时间序列是数据点的序列,通常由在一段时间内进行的连续测量组成。时间序列分析是使用统计技术对时间序列数据进行建模和分析以提取有意义的信息并从中进行预测的过程。时间序列分析是一种强大的工具,可用于从数据中提取有价值的信息并对未来事件进行预测。它可用于识别趋势、季节性模式和变量之间的其他关系。时间序列分析还可用于预测未来事件,例如销售、需求或价格变化。如果您在Python中处理时间序列数据,有许多不同的库可供选择。因此,在本文中,我们将组织最流行的Python库来处理时间序列。SktimeSktime是一个用于处理时间序列数据的Python库。它提供了一组用于处理时间序列数据的工具,包括用于操作、可视化和分析数据的工具。Sktime旨在易于使用和扩展,以便可以轻松实现和集成新的时间序列算法。顾名思义,Sktime支持scikit-learnAPI,包括所有必要的方法和工具,可以有效地解决涉及时间序列回归、预测和分类的问题。这个库包含专门的机器学习算法和独特的时间序列转换方法,这是其他库所没有的,所以Sktime可以作为一个非常好的基础库。根据sktime的文档,“我们的目标是使时间序列分析生态系统作为一个整体更具互操作性和可用性。sktime为不同但相关的时间序列学习任务提供了一个统一的接口。它具有专用的时间序列序列算法和组合模型工具building,includingpipelines,ensembles,tuning,andsimplification,enablinguserstoapplyalgorithmsfromatasktoanother.sktime还提供了相关库的接口,例如scikit-learn、statsmodels、tsfresh、PyOD和[fbprophet]来命名一个很少。“以下是代码示例fromsktime.datasetsimportload_airlinefromsktime.forecasting.model_selectionimporttemporal_train_test_split#fromsktime.utils.plotting.forecastingimportplot_ysy=load_airline()y_train,y_test=temporal_train_test_split(y)plt.titleAirlineDatawithTrainandTest')y_train.plot(label='train')y_test.plot(label='test')plt.legend()pmdarimappmdarima是一个用于时间序列数据统计分析的Python库,它基于ARIMA建模并提供了多种分析、预测和可视化时间序列数据的工具。Pmdarima还提供了多种处理季节性数据的工具,包括季节性测试和季节性分解工具。时间序列分析中经常使用的预测模型之一是ARIMA(AutoregressiveIntegratedMovingAverage)。ARIMA是一种预测算法,它根据时间序列的过去值中的信息来预测未来值。pmdarima是ARIMA模型的包装器,来自w具有自动超参数搜索功能,可以自动为ARIMA模型找到最佳超参数(p,d,q)。该库包括以下主要功能点:一组时间序列实用程序,用于对平稳性和季节性进行统计测试,例如差异和缺陷许多内生和外生变换器和特征,包括Box-Cox和傅里叶变换季节性时间序列分解交叉验证工具内置丰富的时间序列数据集,可用于原型和示例AutoTS顾名思义,它是一个用于自动时间序列分析的Python库。AutoTS允许我们用一行代码训练多个时间序列模型,这样我们就可以选择最合适的。该库是autoML的一部分,其目标是为初学者提供自动化库。TSFreshtsfresh是一个Python包,可以自动从时间序列中提取特征。它基于这样一个事实,即时间序列中的信息可以分解为一组有意义的特征。tsfresh负责手动提取这些特征的繁琐工作,并提供自动特征选择和分类工具。它可以与pandasDataFrames一起使用,并提供广泛的处理时间序列数据的功能,包括:从时间序列中自动提取特征自动选择特征时间序列分解降维异常值检测支持多种时间序列格式支持缺失值支持多种语言ProphetProphet是Facebook核心数据科学团队发布的一款开源软件。它基于一个加法模型,其中非线性趋势适用于每年、每周和每天的季节性,加上假期影响。它最适合具有强烈季节性影响的时间序列和多个季节的历史数据。Prophet对缺失数据和趋势变化具有鲁棒性,通常可以很好地处理异常值。根据官方文档,fbprophet在处理具有显着季节性影响的时间序列数据和几个季节以前的数据时效果很好。此外,fbprophet具有抗缺失数据的能力,可以有效地管理异常值。StatsforecastStatsforecast提供了一组广泛使用的单变量时间序列预测模型,包括使用numba的自动ARIMA和ETS建模和优化。它还包括大量基准模型。据官网介绍:Python和R中最快最准确的AutoARIMA。Python和R中最快最准确的ETS。兼容sklearn接口。外生变量的ARIMA和预测区间的包含。比pmdarima快20倍,比Prophet快500倍,比NeuralProphet快100倍,比statmodels快4倍。由numba编译成高性能机器代码。ADIDA、HistoricAverage、CrostonClassic、CrostonSBA、CrostonOptimized、seasonalwindowaaverage、SeasonalNaive、IMAPANaive、RandomWalkWithDrift、windaaverage、SeasonalExponentialSmoothing、TSB、AutoARIMA和ETS的开箱即用实现。katsKats是Facebook研究团队最近开发的另一个库,专门研究时间序列数据。该框架的目标是为解决时间序列问题提供完整的解决方案。使用这个库,我们可以执行以下操作:时间序列分析模式检测,包括季节性、异常值和趋势变化生成65个特征的特征工程模块为时间序列数据构建预测模型,包括Prophet、ARIMA、HoltWinters等.DartsDarts是Unit8.co开发的一个scikit-learn友好的Python包,用于预测时间序列。它包含大量模型,从ARIMA到深度神经网络,用于处理日期和时间相关数据。这个库的好处在于它还支持用于处理神经网络的多维类。它还允许用户结合来自多个模型和外部回归模型的预测,从而更容易回测模型。PyfluxPyflux是一个为Python构建的开源时间序列库。Pyflux选择一种更具概率的方法来解决时间序列问题。这种方法特别有利于预测等需要更完全不确定性的任务。用户可以建立一个概率模型,其中通过联合概率将数据和潜在变量视为随机变量。PyCaretPyCaret是一个基于Python的开源、低代码机器学习库。它是一种端到端的机器学习和模型管理工具,可以成倍地加快实验周期并提高工作效率。与其他开源机器学习库相比,PyCaret是另类的低代码库,只需几行代码即可替代数百行代码。这使得实验速度和效率呈指数级增长。PyCaret本质上是scikit-learn、XGBoost、LightGBM、CatBoost、spacacy、Optuna、Hyperopt、Ray等多个机器学习库和框架的Python包装器。虽然PyCaret不是专门的时间序列预测库,但它有一个新的专门用于时间序列预测的模块。目前仍处于预发布状态,但安装需要使用如下代码安装才能使用新模块pipinstall--prepycaretPyCaret时序模块与现有API一致,可以使用完整功能,如如:统计测试、模型训练和选择(30+算法模型)、模型分析、自动超参数调优、实验日志、云部署等。所有这一切仅需几行代码即可完成。总结Python中有许多可用的时间序列预测库(比我们在这里介绍的要多得多)。每个图书馆都有自己的优点和缺点,因此根据您的需要选择合适的图书馆很重要。如果您有更好的推荐,请留言告诉我们。
