最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Facebook開源一站式服務(wù)python時(shí)序利器Kats詳解

 更新時(shí)間:2021年11月22日 15:08:24   作者:Python學(xué)習(xí)與數(shù)據(jù)挖掘  
這篇文章主要為答案及介紹了Facebook開源一站式服務(wù)python時(shí)序利器Kats的功能詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步

轉(zhuǎn)自微信公眾號:機(jī)器學(xué)習(xí)社區(qū),經(jīng)作者授權(quán)轉(zhuǎn)載

時(shí)間序列分析是數(shù)據(jù)科學(xué)中一個(gè)非常重要的領(lǐng)域,它主要包含統(tǒng)計(jì)分析、檢測變化點(diǎn)、異常檢測和預(yù)測未來趨勢。然而,這些時(shí)間序列技術(shù)通常由不同的庫實(shí)現(xiàn)。有沒有一種方法可以讓你在一個(gè)庫中獲得所有這些技術(shù)?

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

圖片

什么是 Kats?

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

安裝 Kats

pip install --upgrade pip
pip install kats

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

首先我們從讀取數(shù)據(jù)開始。

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

圖片

現(xiàn)在讓我們分析一下與 Python 相關(guān)的 StackOverflow 問題計(jì)數(shù)。數(shù)據(jù)被分成一列和一個(gè)測試集來評估預(yù)測。

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:]

將數(shù)據(jù)轉(zhuǎn)換為時(shí)間序列

首先構(gòu)造一個(gè)時(shí)間序列對象。我們使用time_col_name='month'指定時(shí)間列。

from kats.consts import TimeSeriesData

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

要繪制數(shù)據(jù),調(diào)用plot方法:

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

圖片

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

預(yù)測

Kats目前支持以下10種預(yù)測模型:

Linear

Quadratic

ARIMA

SARIMA

Holt-Winters

Prophet

AR-Net

LSTM

Theta

VAR

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

從使用 Prophet 進(jìn)行預(yù)測開始:

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

圖片

可視化

m.plot()

圖片

酷!讓我們通過與測試數(shù)據(jù)的比較來評估預(yù)測。

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

圖片

預(yù)報(bào)似乎很好地符合觀察結(jié)果!

Holt-Winters

我們將嘗試的下一個(gè)模式是Holt-Winters。它是一種捕捉季節(jié)性的方法。下面是如何在 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()

圖片

檢測變化點(diǎn)

你有沒有想過在你的時(shí)間序列中發(fā)生統(tǒng)計(jì)上顯著的均值變化的時(shí)間?

圖片

Kats 允許使用 CUSUM 算法檢測變化點(diǎn)。Cusum 是一種檢測時(shí)間序列中均值上下移動(dòng)的方法。

讓我們看看如何檢測 Kats 中的變化點(diǎn)。

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

圖片

酷!讓我們嘗試檢測 StackOverflow 問題計(jì)數(shù)的其他類別的變化點(diǎn)。

首先創(chuàng)建一個(gè)函數(shù)來檢測主題提供的更改點(diǎn)。

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

機(jī)器學(xué)習(xí)

detect_change_point("machine-learning")

圖片

深度學(xué)習(xí)

detect_change_point("deep-learning")

圖片

孤立點(diǎn)檢測

你在看NLP的時(shí)間序列時(shí)看到了什么?

df["nlp"].plot()

圖片

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

問題數(shù)量的下降是一個(gè)異常值。檢測異常值很重要,因?yàn)樗鼈兛赡軙?huì)在下游處理中造成問題。

然而,通過查看數(shù)據(jù)來發(fā)現(xiàn)異常值并不總是高效和容易的。幸運(yùn)的是,Kats還允許您檢測時(shí)間序列中的異常值!

用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

酷!結(jié)果證實(shí)了我們從上圖中看到的情況。

時(shí)間序列特征

除了統(tǒng)計(jì)數(shù)據(jù)外,時(shí)間序列中還有其他一些特性,如線性、趨勢強(qiáng)度、季節(jié)性強(qiáng)度、季節(jié)性參數(shù)等,您可能會(huì)感興趣。

Kats 允許通過 TsFeatures 查找有關(guān)時(shí)間序列特征的重要信息:

from kats.tsfeatures.tsfeatures import TsFeatures

model = TsFeatures()

output_features = model.transform(ts)
output_features

圖片

小結(jié)

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

以上就是Facebook開源一站式服務(wù)python時(shí)序利器Kats詳解的詳細(xì)內(nèi)容,更多關(guān)于Facebook開源時(shí)序利器Kats的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python對兩個(gè)數(shù)組進(jìn)行合并排列處理的兩種方法

    python對兩個(gè)數(shù)組進(jìn)行合并排列處理的兩種方法

    最近遇到數(shù)組合并問題,以此記錄解決方法,供大家參考學(xué)習(xí),下面這篇文章主要給大家介紹了關(guān)于python對兩個(gè)數(shù)組進(jìn)行合并排列處理的兩種方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • python中的unittest框架實(shí)例詳解

    python中的unittest框架實(shí)例詳解

    在本篇文章里小編給大家分享的是一篇關(guān)于python中的unittest框架實(shí)例詳解內(nèi)容,對此有興趣的朋友們可以學(xué)習(xí)下。
    2021-02-02
  • Python處理Excel的14個(gè)常用操作總結(jié)

    Python處理Excel的14個(gè)常用操作總結(jié)

    在數(shù)據(jù)處理和分析的領(lǐng)域中,Excel是一種被廣泛使用的工具,然而,通過Python處理Excel,能夠更好地實(shí)現(xiàn)自動(dòng)化和批量處理,本文為大家整理了14個(gè)Python處理Excel的常用操作,希望對大家有所幫助
    2023-12-12
  • 使用python檢查yaml配置文件是否符合要求

    使用python檢查yaml配置文件是否符合要求

    這篇文章主要介紹了使用python檢查yaml配置文件是否符合要求,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python中shutil模塊的學(xué)習(xí)筆記教程

    Python中shutil模塊的學(xué)習(xí)筆記教程

    shutil模塊是一種高層次的文件操作工具,類似于高級API,主要強(qiáng)大之處在于其對文件的復(fù)制與刪除操作更是比較支持好。下面這篇文章主要介紹了Python中shutil模塊的相關(guān)教程,需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。
    2017-04-04
  • Python中optparser庫用法實(shí)例詳解

    Python中optparser庫用法實(shí)例詳解

    這篇文章主要介紹了Python中optparser庫用法實(shí)例詳解,介紹了optparser的引入,初始化等相關(guān)內(nèi)容,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • python selenium反檢測問題

    python selenium反檢測問題

    這篇文章主要介紹了python selenium反檢測問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 解決Python發(fā)送Http請求時(shí),中文亂碼的問題

    解決Python發(fā)送Http請求時(shí),中文亂碼的問題

    這篇文章主要介紹了解決Python發(fā)送Http請求時(shí),中文亂碼的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • python爬蟲學(xué)習(xí)筆記--BeautifulSoup4庫的使用詳解

    python爬蟲學(xué)習(xí)筆記--BeautifulSoup4庫的使用詳解

    這篇文章主要介紹了Python中使用Beautiful Soup庫的超詳細(xì)教程,示例代碼基于Python2.x版本,極力推薦!需要的朋友可以參考下
    2021-08-08
  • 詳解python執(zhí)行shell腳本創(chuàng)建用戶及相關(guān)操作

    詳解python執(zhí)行shell腳本創(chuàng)建用戶及相關(guān)操作

    這篇文章主要介紹了python執(zhí)行shell腳本創(chuàng)建用戶及相關(guān)操作,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04

最新評論

家居| 吉木萨尔县| 博客| 那坡县| 巴里| 揭阳市| 弋阳县| 通渭县| 个旧市| 铁岭市| 南平市| 桂林市| 科技| 江源县| 康定县| 吴忠市| 嵊州市| 芦山县| 宝鸡市| 泾阳县| 碌曲县| 青阳县| 乌海市| 尉犁县| 海原县| 玉林市| 宜春市| 视频| 正宁县| 虞城县| 阿拉善左旗| 昌江| 得荣县| 许昌县| 吐鲁番市| 石渠县| 额尔古纳市| 漯河市| 灌云县| 英德市| 博湖县|