>  기사  >  백엔드 개발  >  2022년 시계열 분석에 권장되는 10가지 Python 라이브러리

2022년 시계열 분석에 권장되는 10가지 Python 라이브러리

WBOY
WBOY앞으로
2023-04-13 08:22:111965검색

시계열은 일반적으로 시간 간격에 걸쳐 수행된 연속 측정값으로 구성된 일련의 데이터 포인트입니다. 시계열 분석은 시계열 데이터에서 의미 있는 정보를 추출하고 예측하기 위해 통계 기법을 사용하여 시계열 데이터를 모델링하고 분석하는 프로세스입니다.

2022년 시계열 분석에 권장되는 10가지 Python 라이브러리

시계열 분석은 데이터에서 귀중한 정보를 추출하고 미래 이벤트를 예측하는 데 사용할 수 있는 강력한 도구입니다. 추세, 계절적 패턴 및 기타 변수 간의 관계를 식별하는 데 사용할 수 있습니다. 시계열 분석은 판매, 수요 또는 가격 변화와 같은 미래 이벤트를 예측하는 데에도 사용할 수 있습니다.

Python에서 시계열 데이터로 작업하는 경우 선택할 수 있는 다양한 라이브러리가 있습니다. 따라서 이 기사에서는 Python에서 시계열 작업에 가장 널리 사용되는 라이브러리를 정리합니다.

Sktime

Sktime은 시계열 데이터 처리를 위한 Python 라이브러리입니다. 데이터 처리, 시각화 및 분석을 위한 도구를 포함하여 시계열 데이터 작업을 위한 도구 세트를 제공합니다. Sktime은 새로운 시계열 알고리즘을 쉽게 구현하고 통합할 수 있도록 사용하기 쉽고 확장 가능하도록 설계되었습니다.

Sktime은 이름에서 알 수 있듯이 scikit-learn API를 지원하며 시계열 회귀, 예측 및 분류와 관련된 문제를 효과적으로 해결하는 데 필요한 모든 방법과 도구를 포함합니다. 이 라이브러리에는 다른 라이브러리에서 제공하지 않는 특화된 기계학습 알고리즘과 시계열에 대한 고유한 변환 방법이 포함되어 있어 Sktime을 아주 좋은 기본 라이브러리로 사용할 수 있습니다.

sktime의 문서에 따르면 "우리의 목표는 시계열 분석 생태계를 전체적으로 더욱 상호 운용 가능하고 유용하게 만드는 것입니다. Sktime은 서로 다르지만 관련된 시계열 학습 작업을 위한 통합 인터페이스를 제공합니다. 파이프라인, 통합, 조정 및 단순화를 포함한 결합 모델 구축을 통해 사용자는 한 작업에서 다른 작업으로 알고리즘을 적용할 수 있습니다.

sktime은 또한 관련 라이브러리(예: scikit-learn, statsmodels, tsfresh, PyOD 및 [fbprophet)와의 인터페이스도 제공합니다. ], etc.”

코드 샘플은 다음과 같습니다

from sktime.datasets import load_airline
 from sktime.forecasting.model_selection import temporal_train_test_split
 
 # from sktime.utils.plotting.forecasting import plot_ys
 
 y = load_airline()
 y_train, y_test = temporal_train_test_split(y)
 plt.title('Airline Data with Train and Test')
 y_train.plot(label = 'train')
 y_test.plot(label = 'test')
 plt.legend()

pmdarima

pmdarima는 시계열 데이터의 통계 분석을 위한 Python 라이브러리입니다. ARIMA 모델을 기반으로 하며 시계열 데이터를 분석, 예측 및 시각화하기 위한 다양한 도구를 제공합니다. Pmdarima는 계절성 테스트 및 계절 분해 도구를 포함하여 계절 데이터 작업을 위한 다양한 도구도 제공합니다.

시계열 분석에 자주 사용되는 예측 모델 중 하나는 ARIMA(Autoregressive Integrated Moving Average)입니다. ARIMA는 시계열의 과거 값 정보를 기반으로 미래 값을 예측하는 예측 알고리즘입니다.

pmdarima는 ARIMA 모델의 래퍼입니다. ARIMA 모델에 가장 적합한 하이퍼파라미터(p, d, q)를 자동으로 찾을 수 있는 자동 하이퍼파라미터 검색 기능이 함께 제공됩니다. 라이브러리에는 다음과 같은 주요 기능이 포함되어 있습니다.

  • 정상성과 계절성에 대한 통계 테스트 세트
  • 차분 및 역차분과 같은 시계열 유틸리티
  • Box-Cox 및 푸리에 변환을 포함한 다양한 내생 및 외생 변환기 및 특성화
  • 계절별 시계열 분해
  • 교차 검증 도구
  • 프로토타입 및 예제에 사용할 수 있는 풍부한 시계열 데이터 세트 컬렉션이 내장되어 있습니다.

AutoTS

이름에서 알 수 있듯이 자동 Python 라이브러리용 도구입니다. 시계열 분석. AutoTS를 사용하면 한 줄의 코드로 여러 시계열 모델을 학습하여 가장 적합한 모델을 선택할 수 있습니다.

이 라이브러리는 autoML의 일부이며 초보자를 위한 자동화 라이브러리를 제공하는 것이 목표입니다.

TSFresh

tsfresh는 시계열에서 특징을 자동으로 추출할 수 있는 Python 패키지입니다. 이는 시계열의 정보가 일련의 의미 있는 특징으로 분해될 수 있다는 사실에 기초합니다. tsfresh는 이러한 특징을 수동으로 추출하는 지루한 작업을 처리하고 자동 특징 선택 및 분류를 위한 도구를 제공합니다. Pandas DataFrames와 함께 사용할 수 있으며 다음을 포함하여 시계열 데이터 처리를 위한 다양한 기능을 제공합니다.

  • 시계열에서 자동 특징 추출
  • 자동 특징 선택
  • 시계열 분해
  • 차원 축소
  • 예외 값 감지
  • 여러 시계열 형식 지원
  • 결측값 지원 ​​
  • 다양한 언어 지원 ​​

2022년 시계열 분석에 권장되는 10가지 Python 라이브러리

Prophet

Prophet은 Facebook의 핵심 데이터 과학 팀에서 출시한 오픈 소스 소프트웨어입니다. 이는 비선형 추세가 연간, 주간, 일일 계절성과 휴일 효과에 적합한 추가 모델을 기반으로 합니다. 계절적 효과가 강한 시계열과 여러 계절에 대한 과거 데이터에 가장 적합합니다. Prophet은 누락된 데이터와 추세 변화에 매우 강력하며 일반적으로 이상값을 잘 처리합니다.

根据官方文档,fbprophet在处理具有显著季节性影响的时间序列数据和几个季节价值的之前数据时工作得非常好。此外fbprophet能够抵抗缺失数据,并能够有效地管理异常值。

2022년 시계열 분석에 권장되는 10가지 Python 라이브러리

Statsforecast

Statsforecast提供了一组广泛使用的单变量时间序列预测模型,包括自动ARIMA和ETS建模并使用numba优化。它还包括大量的基准测试模型。根据官网的介绍:

  • Python和R中最快最准确的AutoARIMA。
  • Python和R中最快最准确的ETS。
  • 兼容sklearn接口。
  • ARIMA的外生变量和预测区间的包含。
  • 比pmdarima快20倍,比Prophet快500倍,比NeuralProphet快100倍,比statmodels快4倍。
  • 通过numba编译为高性能机器代码。
  • 开箱即用的实现ADIDA, HistoricAverage, CrostonClassic, CrostonSBA, CrostonOptimized, seasonalwindowaaverage, SeasonalNaive, IMAPA Naive, RandomWalkWithDrift, windowaaverage, SeasonalExponentialSmoothing, TSB, AutoARIMA和ETS。

kats

Kats 是 Facebook 研究团队最近开发的另一个专门处理时间序列数据的库。该框架的目标是为解决时间序列问题提供一个完整的解决方案。使用此库,我们可以执行以下操作:

  • 时间序列分析
  • 模式检测,包括季节性、异常值、趋势变化
  • 产生65个特征的特征工程模块
  • 对时间序列数据建立预测模型,包括Prophet、ARIMA、Holt Winters等。

Darts

Darts 是由 Unit8.co 开发的用于预测时间序列,并且对scikit-learn 友好 的Python 包。它包含大量模型,从 ARIMA 到深度神经网络,用于处理与日期和时间相关的数据。

该库的好处在于它还支持用于处理神经网络的多维类。

它还允许用户结合来自多个模型和外部回归模型的预测,从而更容易地对模型进行回测。

Pyflux

Pyflux 是一个为 Python 构建的开源时间序列库。Pyflux选择了更多的概率方法来解决时间序列问题。这种方法对于需要更完整的不确定性的预测这样的任务特别有利。

用户可以建立一个概率模型,其中通过联合概率将数据和潜在变量视为随机变量。

PyCaret

PyCaret是一个基于Python的开源、低代码的机器学习库,它是一个端到端机器学习和模型管理工具,可以成倍地加快实验周期,让工作效率更高。

与其他开源机器学习库相比,PyCaret是一个可替代的低代码库,可以只用几行代码替换数百行代码。这使得实验的速度和效率呈指数级增长。PyCaret本质上是scikit-learn、XGBoost、LightGBM、CatBoost、spacacy、Optuna、Hyperopt、Ray等几个机器学习库和框架的Python包装。

虽然PyCaret不是一个专门的时间序列预测库,但它有一个专门用于时间序列预测的新模块。它仍然处于预发布状态,但是安装时需要使用以下代码进行安装才能使用新的模块

pip install --pre pycaret

PyCaret时间序列模块与现有的API一致,并且可以使用完整的功能,例如:统计测试、模型训练和选择(30+算法模型)、模型分析、自动超参数调优、实验日志、云部署等。所有这些都只用了几行代码就完成了。

2022년 시계열 분석에 권장되는 10가지 Python 라이브러리

总结

Python中有许多可用的时间序列预测库(比我们在这里介绍的更多)。每个库都有自己的优缺点,因此根据自己的需要选择合适的是很重要的。如果你有什么更好的推荐,请留言告诉我们。


위 내용은 2022년 시계열 분석에 권장되는 10가지 Python 라이브러리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제