成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

七個最新的時間序列分析庫介紹和代碼示例

開發 前端
時間序列分析包括檢查隨著時間推移收集的數據點,目的是確定可以為未來預測提供信息的模式和趨勢。我們已經介紹過很多個時間序列分析庫了,但是隨著時間推移,新的庫和更新也在不斷的出現,所以本文將分享8個目前比較常用的,用于處理時間序列問題的Python庫。他們是tsfresh, autots, darts, atspy, kats, sktime, greykite。

時間序列分析包括檢查隨著時間推移收集的數據點,目的是確定可以為未來預測提供信息的模式和趨勢。我們已經介紹過很多個時間序列分析庫了,但是隨著時間推移,新的庫和更新也在不斷的出現,所以本文將分享8個目前比較常用的,用于處理時間序列問題的Python庫。他們是tsfresh, autots, darts, atspy, kats, sktime, greykite。

1、Tsfresh

Tsfresh在時間序列特征提取和選擇方面功能強大。它旨在自動從時間序列數據中提取大量特征,并識別出最相關的特征。Tsfresh支持多種時間序列格式,可用于分類、聚類和回歸等各種應用程序。

import pandas as pd
from tsfresh import extract_features
from tsfresh.utilities.dataframe_functions import make_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和異常值去除來處理數據。
from autots.datasets import load_monthly

df_long = load_monthly(long=True)

from autots import AutoTS

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的一個關鍵特征是能夠進行概率預測。這意味著,不僅可以為每個時間步驟生成單點預測,還可以生成可能結果的分布,從而更全面地理解預測中的不確定性。

import pandas as pd
import matplotlib.pyplot as plt

from darts import TimeSeries
from darts.models import ExponentialSmoothing

# 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()

圖片

4、AtsPy

atspy,可以簡單地加載數據并指定要測試的模型,如下面的代碼所示。

# Importing packages
import pandas as pd
from atspy import AutomatedModel

# 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)

該包提供了一組完全自動化的模型。包括:

圖片

5、kats

kats (kit to Analyze Time Series)是一個由Facebook(現在的Meta)開發的Python庫。這個庫的三個核心特性是:

模型預測:提供了一套完整的預測工具,包括10+個單獨的預測模型、集成、元學習模型、回溯測試、超參數調優和經驗預測區間。

檢測:Kats支持檢測時間序列數據中的各種模式的函數,包括季節性、異常、變化點和緩慢的趨勢變化。

特征提取和嵌入:Kats中的時間序列特征(TSFeature)提取模塊可以生成65個具有明確統計定義的特征,可應用于大多數機器學習(ML)模型,如分類和回歸。

# pip install kats

import pandas as pd
from kats.consts import TimeSeriesData
from kats.models.prophet import ProphetModel, 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進行時間序列分類的示例:

from sktime.datasets import load_arrow_head
from sktime.classification.compose import TimeSeriesForestClassifier
from sktime.utils.sampling import train_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
from sklearn.metrics import classification_report
print(classification_report(y_test, y_pred))

7、GreyKite

greykite是LinkedIn發布的一個時間序列預測庫。該庫可以處理復雜的時間序列數據,并提供一系列功能,包括自動化特征工程、探索性數據分析、預測管道和模型調優。

from greykite.common.data_loader import DataLoader
from greykite.framework.templates.autogen.forecast_config import ForecastConfig
from greykite.framework.templates.autogen.forecast_config import MetadataParam
from greykite.framework.templates.forecaster import Forecaster
from greykite.framework.templates.model_templates import ModelTemplateEnum

# 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個方向,一個是特征的生成,另外一個就是多種時間序列預測模型的集成,所以無論是處理單變量還是多變量數據,它們都可以滿足我們的需求,但是具體用那個還要看具體的需求和使用的習慣。

責任編輯:華軒 來源: DeepHub IMBA
相關推薦

2024-04-26 12:29:36

2022-10-09 16:16:17

開發代碼庫網站

2023-07-27 14:44:03

物聯網IOT

2010-04-09 09:55:43

Oracle sqlp

2023-06-04 17:13:26

.NET開發應用程序

2021-09-22 12:45:47

Python數據分析

2023-03-29 07:54:25

Vue 3插件

2021-07-16 09:00:00

深度學習機器學習開發

2022-04-13 10:25:08

基礎設施IT 團隊

2023-03-13 10:49:30

ChatGPT人力資源

2012-06-21 08:56:59

2023-10-08 09:52:55

2021-08-05 13:49:39

Python工具開發

2021-10-18 13:26:15

大數據數據分析技術

2023-05-06 15:45:04

物聯網IOT

2022-12-09 09:47:02

2024-05-29 11:16:33

PythonExcel

2023-03-30 15:12:47

2014-03-18 16:12:00

代碼整潔編寫代碼

2021-12-21 11:16:04

云計算云計算環境云應用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品国产免费高清 | 爱爱视频在线观看 | 日韩欧美亚洲 | 亚洲国产一区二区三区 | 视频一区二区国产 | 久久99精品久久久久久国产越南 | 国产真实乱对白精彩久久小说 | 天天干天天谢 | 亚洲精品片 | 91久久精品一区二区二区 | 九色porny自拍视频 | www国产亚洲精品久久网站 | 国产日韩欧美一区二区 | 欧美激情精品久久久久 | 亚洲精品在线免费 | 高清人人天天夜夜曰狠狠狠狠 | 日韩成人免费视频 | 欧美在线国产精品 | 色综合一区二区三区 | 久久久久久成人 | 嫩呦国产一区二区三区av | 午夜久久久久 | 超碰在线97国产 | 成人在线视频免费观看 | 91在线免费视频 | 亚洲免费久久久 | 日韩a在线 | 男女激情网| 国产精品成人国产乱一区 | 国产ts人妖系列高潮 | 久久精品亚洲国产 | 中文字幕国产精品 | 成人中文字幕av | 国产午夜精品一区二区三区 | 九九久久国产 | 99re视频在线免费观看 | 九九热这里 | 久久一级 | 成人精品区 | 中文字幕福利视频 | 99亚洲国产精品 |