激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

香港云服务器
服務器之家 - 腳本之家 - Python - Facebook開源一站式服務python時序利器Kats詳解

Facebook開源一站式服務python時序利器Kats詳解

2022-03-05 14:54Python學習與數據挖掘 Python

這篇文章主要為答案及介紹了Facebook開源一站式服務python時序利器Kats的功能詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步

轉自微信公眾號:機器學習社區,經作者授權轉載

時間序列分析是數據科學中一個非常重要的領域,它主要包含統計分析、檢測變化點、異常檢測和預測未來趨勢。然而,這些時間序列技術通常由不同的庫實現。有沒有一種方法可以讓你在一個庫中獲得所有這些技術?

答案是肯定的,本文中我將分享一個非常棒的工具包 Kats,它可以完美解決上述問題。

Facebook開源一站式服務python時序利器Kats詳解

 

什么是 Kats?

目前時間序列分析以及建模的技術非常多,但相對散亂,本次 FaceBook 開源了 Kats,它是一款輕量級的、易于使用的、通用的時間序列分析框架,包括:預測、異常檢測、多元分析和特征提取嵌入。你可以將 Kats 視為 Python 中時間序列分析的一站式工具包。

 

安裝 Kats

pip install --upgrade pip
pip install kats

為了了解 Kats 的功能,我們將使用這個框架來分析 Kaggle 上的 StackOverflow問題計數問題。數據鏈接為:https://www.kaggle.com/aishu200023/stackindex

首先我們從讀取數據開始。

import pandas as pd
df = pd.read_csv("MLTollsStackOverflow.csv")
# Turn the month column into datetime
df["month"] = pd.to_datetime(df["month"], format="%y-%b")
df = df.set_index("month")

Facebook開源一站式服務python時序利器Kats詳解

現在讓我們分析一下與 Python 相關的 StackOverflow 問題計數。數據被分成一列和一個測試集來評估預測。

python = df["python"].to_frame()

# Split data into train and test set
train_len = 102
train = python.iloc[:train_len]
test = python.iloc[train_len:]

 

將數據轉換為時間序列

首先構造一個時間序列對象。我們使用time_col_name="month"指定時間列。

from kats.consts import TimeSeriesData

# Construct TimeSeriesData object
ts = TimeSeriesData(train.reset_index(), time_col_name="month")

要繪制數據,調用plot方法:

ts.plot(cols=["python"])

Facebook開源一站式服務python時序利器Kats詳解

酷!看起來關于 Python 的問題的數量隨著時間的推移而增加。我們能預測未來30天的趨勢嗎?是的,我們可以和 Kats 一起做。

 

預測

Kats目前支持以下10種預測模型:

Linear

Quadratic

ARIMA

SARIMA

Holt-Winters

Prophet

AR-Net

LSTM

Theta

VAR

上述模型較多,讓我們試一下其中兩種類型吧!

 

從使用 Prophet 進行預測開始:

from kats.models.prophet import ProphetModel, ProphetParams
# Specify parameters
params = ProphetParams(seasonality_mode="multiplicative")
# Create a model instance
m = ProphetModel(ts, params)
# Fit mode
m.fit()
# Forecast
fcst = m.predict(steps=30, freq="MS")
fcst

Facebook開源一站式服務python時序利器Kats詳解

 

可視化

m.plot()

Facebook開源一站式服務python時序利器Kats詳解

酷!讓我們通過與測試數據的比較來評估預測。

import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(12, 7))
train.plot(ax=ax, label="train", color="black")
test.plot(ax=ax, color="black")
fcst.plot(x="time", y="fcst", ax=ax, color="blue")
ax.fill_between(test.index, fcst["fcst_lower"], fcst["fcst_upper"], alpha=0.5)
ax.get_legend().remove()

Facebook開源一站式服務python時序利器Kats詳解

預報似乎很好地符合觀察結果!

 

Holt-Winters

我們將嘗試的下一個模式是Holt-Winters。它是一種捕捉季節性的方法。下面是如何在 Kats 中使用 Holt-Winters 方法。

from kats.models.holtwinters import HoltWintersParams, HoltWintersModel
import warnings
warnings.simplefilter(action="ignore")
params = HoltWintersParams(
            trend="add",
            seasonal="mul",
            seasonal_periods=12,
        )
m = HoltWintersModel(
    data=ts, 
    params=params)
m.fit()
fcst = m.predict(steps=30, alpha = 0.1)
m.plot()

Facebook開源一站式服務python時序利器Kats詳解

 

檢測變化點

你有沒有想過在你的時間序列中發生統計上顯著的均值變化的時間?

Facebook開源一站式服務python時序利器Kats詳解

Kats 允許使用 CUSUM 算法檢測變化點。Cusum 是一種檢測時間序列中均值上下移動的方法。

讓我們看看如何檢測 Kats 中的變化點。

from kats.consts import TimeSeriesData, TimeSeriesIterator
from kats.detectors.cusum_detection import CUSUMDetector
import matplotlib.pyplot as plt
detector = CUSUMDetector(ts)
change_points = detector.detector(change_directions=["increase", "decrease"])
print("The change point is on", change_points[0][0].start_time)
# plot the results
plt.xticks(rotation=45)
detector.plot(change_points)
plt.show()

Facebook開源一站式服務python時序利器Kats詳解

酷!讓我們嘗試檢測 StackOverflow 問題計數的其他類別的變化點。

首先創建一個函數來檢測主題提供的更改點。

def get_ts(topic: str):
    return TimeSeriesData(df[topic].to_frame().reset_index(), time_col_name="month")

def detect_change_point(topic: str):
    ts = get_ts(topic)
    detector = CUSUMDetector(ts)

    change_points = detector.detector()
    for change_point in change_points:
        print("The change point is on", change_point[0].start_time)

    # plot the results
    plt.xticks(rotation=45)
    detector.plot(change_points)
    plt.show()

 

機器學習

detect_change_point("machine-learning")

Facebook開源一站式服務python時序利器Kats詳解

 

深度學習

detect_change_point("deep-learning")

Facebook開源一站式服務python時序利器Kats詳解

 

孤立點檢測

你在看NLP的時間序列時看到了什么?

df["nlp"].plot()

Facebook開源一站式服務python時序利器Kats詳解

從2018年到2019年,NLP的問題數量有所下降。

問題數量的下降是一個異常值。檢測異常值很重要,因為它們可能會在下游處理中造成問題。

然而,通過查看數據來發現異常值并不總是高效和容易的。幸運的是,Kats還允許您檢測時間序列中的異常值!

用kat檢測異常值只需要幾行行代碼。

from kats.detectors.outlier import OutlierDetector

# Get time series object
ts = get_ts("nlp")

# Detect outliers
ts_outlierDetection = OutlierDetector(ts, "additive")
ts_outlierDetection.detector()

# Print outliers
outlier_range1 = ts_outlierDetection.outliers[0]
print(f"The outliers range from {outlier_range1[0]} to {outlier_range1[1]}")

The outliers range from 2018-01-01 00:00:00 to 2019-03-01 00:00:00

酷!結果證實了我們從上圖中看到的情況。

 

時間序列特征

除了統計數據外,時間序列中還有其他一些特性,如線性、趨勢強度、季節性強度、季節性參數等,您可能會感興趣。

Kats 允許通過 TsFeatures 查找有關時間序列特征的重要信息:

from kats.tsfeatures.tsfeatures import TsFeatures

model = TsFeatures()

output_features = model.transform(ts)
output_features

Facebook開源一站式服務python時序利器Kats詳解

 

小結

我們剛剛學習了如何使用 Kats 來預測、檢測變化點、檢測異常值和提取時間序列特征。我希望這篇文章能幫助到大家解決工作中的時間序列問題,并從數據中提取有價值的信息。

以上就是Facebook開源一站式服務python時序利器Kats詳解的詳細內容,更多關于Facebook開源時序利器Kats的資料請關注服務器之家其它相關文章!

原文鏈接:https://blog.csdn.net/weixin_38037405/article/details/120122477

延伸 · 閱讀

精彩推薦
1403
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 国产精品视频在线免费观看 | 久久综合婷婷 | 亚洲成人精品久久 | 亚卅毛片| 欧美一级淫片007 | 欧美成在线视频 | 国产女做a爱免费视频 | 一本色道久久综合狠狠躁篇适合什么人看 | 久草在线观看资源 | 国产午夜亚洲精品午夜鲁丝片 | 国产欧美日韩在线播放 | 国产精品久久久久久久久久iiiii | 日韩av成人| 在线a毛片免费视频观看 | 99精品无人区乱码在线观看 | av在线播放地址 | av色先锋 | 91精品国产刺激国语对白 | 女人解衣喂奶电影 | 国产午夜精品久久久久久免费视 | 噜噜噜在线 | 中文字幕h| 久久综合九色综合久久久精品综合 | 国产一有一级毛片视频 | 成人男女啪啪免费观看网站四虎 | 久久国产精品久久久久久电车 | 国产精品久久久久久久久久三级 | 日韩视频一区二区在线观看 | 日本在线看 | 午夜精品久久久久久毛片 | 日韩视频一区二区三区四区 | 黄视频网站免费 | 国产午夜精品久久久久久久蜜臀 | 看全色黄大色黄大片女图片 | 久久狠狠高潮亚洲精品 | 国产色视频一区 | 91 视频网站 | 亚洲人成中文字幕在线观看 | 日本欧美一区二区三区视频麻豆 | 韩国三级日本三级香港三级黄 | 日本成人一区二区三区 |