Suche senden
Hochladen
Prophet入門【R編】Facebookの時系列予測ツール
•
34 gefällt mir
•
39,050 views
hoxo_m
Folgen
第63回R勉強会@東京(#TokyoR)発表資料 https://atnd.org/events/89482
Weniger lesen
Mehr lesen
Daten & Analysen
Melden
Teilen
Melden
Teilen
1 von 62
Empfohlen
Prophet入門【理論編】Facebookの時系列予測ツール
Prophet入門【理論編】Facebookの時系列予測ツール
hoxo_m
Prophet入門【Python編】Facebookの時系列予測ツール
Prophet入門【Python編】Facebookの時系列予測ツール
hoxo_m
全力解説!Transformer
全力解説!Transformer
Arithmer Inc.
時系列予測にTransformerを使うのは有効か?
時系列予測にTransformerを使うのは有効か?
Fumihiko Takahashi
状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38
horihorio
ベイジアンモデリングによるマーケティングサイエンス〜状態空間モデルを用いたモデリング
ベイジアンモデリングによるマーケティングサイエンス〜状態空間モデルを用いたモデリング
宏喜 佐野
Jubatus Casual Talks #2 異常検知入門
Jubatus Casual Talks #2 異常検知入門
Shohei Hido
Visual Studio CodeでRを使う
Visual Studio CodeでRを使う
Atsushi Hayakawa
Weitere ähnliche Inhalte
Was ist angesagt?
時系列解析の使い方 - TokyoWebMining #17
時系列解析の使い方 - TokyoWebMining #17
horihorio
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
Deep Learning Lab(ディープラーニング・ラボ)
Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化
Yusuke Fujimoto
DeepLearning 輪読会 第1章 はじめに
DeepLearning 輪読会 第1章 はじめに
Deep Learning JP
【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル
【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル
Masashi Komori
『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会
takehikoihayashi
Stanコードの書き方 中級編
Stanコードの書き方 中級編
Hiroshi Shimizu
機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)
Kota Matsui
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
Sho Takase
ベイズファクターとモデル選択
ベイズファクターとモデル選択
kazutantan
グラフィカルモデル入門
グラフィカルモデル入門
Kawamoto_Kazuhiko
Granger因果による時系列データの因果推定(因果フェス2015)
Granger因果による時系列データの因果推定(因果フェス2015)
Takashi J OZAKI
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情
Yuta Kikuchi
比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!
takehikoihayashi
最適化超入門
最適化超入門
Takami Sato
線形計画法入門
線形計画法入門
Shunji Umetani
生存時間分析数理の基礎
生存時間分析数理の基礎
Koichiro Gibo
Transformerを雰囲気で理解する
Transformerを雰囲気で理解する
AtsukiYamaguchi1
社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森
Masashi Komori
RでGARCHモデル - TokyoR #21
RでGARCHモデル - TokyoR #21
horihorio
Was ist angesagt?
(20)
時系列解析の使い方 - TokyoWebMining #17
時系列解析の使い方 - TokyoWebMining #17
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化
DeepLearning 輪読会 第1章 はじめに
DeepLearning 輪読会 第1章 はじめに
【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル
【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル
『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会
Stanコードの書き方 中級編
Stanコードの書き方 中級編
機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
ベイズファクターとモデル選択
ベイズファクターとモデル選択
グラフィカルモデル入門
グラフィカルモデル入門
Granger因果による時系列データの因果推定(因果フェス2015)
Granger因果による時系列データの因果推定(因果フェス2015)
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情
比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!
最適化超入門
最適化超入門
線形計画法入門
線形計画法入門
生存時間分析数理の基礎
生存時間分析数理の基礎
Transformerを雰囲気で理解する
Transformerを雰囲気で理解する
社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森
RでGARCHモデル - TokyoR #21
RでGARCHモデル - TokyoR #21
Andere mochten auch
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
Nagi Teramo
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門
hoxo_m
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
Yasuyuki Sugai
xtsパッケージで時系列解析
xtsパッケージで時系列解析
Nagi Teramo
Rで売上予測のデモ(回帰分析)
Rで売上予測のデモ(回帰分析)
裕美 成田
2017年3月版データマエショリスト入門(誤植修正版)
2017年3月版データマエショリスト入門(誤植修正版)
Yuya Matsumura
Replica exchange MCMC
Replica exchange MCMC
. .
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
Junya Hayashi
Sappo ro#6資料2 ー完全版ー
Sappo ro#6資料2 ー完全版ー
Wakana_kudo
R6パッケージの紹介―機能と実装
R6パッケージの紹介―機能と実装
__nakamichi__
遅延価値観数と階層ベイズを用いた男心をくすぐる女の戦略.R
遅延価値観数と階層ベイズを用いた男心をくすぐる女の戦略.R
MrUnadon
Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?
Takayuki Shimizukawa
Osaka.stan#2 chap5-1
Osaka.stan#2 chap5-1
Makoto Hirakawa
SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)
sleepy_yoshi
多項式あてはめで眺めるベイズ推定~今日からきみもベイジアン~
多項式あてはめで眺めるベイズ推定~今日からきみもベイジアン~
tanutarou
基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理
基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理
Ken'ichi Matsui
Andere mochten auch
(16)
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
xtsパッケージで時系列解析
xtsパッケージで時系列解析
Rで売上予測のデモ(回帰分析)
Rで売上予測のデモ(回帰分析)
2017年3月版データマエショリスト入門(誤植修正版)
2017年3月版データマエショリスト入門(誤植修正版)
Replica exchange MCMC
Replica exchange MCMC
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
Sappo ro#6資料2 ー完全版ー
Sappo ro#6資料2 ー完全版ー
R6パッケージの紹介―機能と実装
R6パッケージの紹介―機能と実装
遅延価値観数と階層ベイズを用いた男心をくすぐる女の戦略.R
遅延価値観数と階層ベイズを用いた男心をくすぐる女の戦略.R
Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?
Osaka.stan#2 chap5-1
Osaka.stan#2 chap5-1
SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)
多項式あてはめで眺めるベイズ推定~今日からきみもベイジアン~
多項式あてはめで眺めるベイズ推定~今日からきみもベイジアン~
基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理
基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理
Ähnlich wie Prophet入門【R編】Facebookの時系列予測ツール
Tori lab 輪読会 WWW 2014 - Modeling and predicting the growth and death
Tori lab 輪読会 WWW 2014 - Modeling and predicting the growth and death
Kimitaka
Chainerで学ぶdeep learning
Chainerで学ぶdeep learning
Retrieva inc.
Introduction to search_and_recommend_algolithm
Introduction to search_and_recommend_algolithm
Hiroki Iida
Ai for marketing
Ai for marketing
Hiroki Iida
Tokyo r50 beginner_2
Tokyo r50 beginner_2
Takashi Minoda
10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用
Nobuaki Oshiro
大規模日本語ブログコーパスにおける言語モデルの構築と評価
大規模日本語ブログコーパスにおける言語モデルの構築と評価
Yahoo!デベロッパーネットワーク
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010
Nobuaki Oshiro
Retty recommendation project
Retty recommendation project
Jiro Iwanaga
機械学習を使った時系列売上予測
機械学習を使った時系列売上予測
DataRobotJP
時系列分析入門
時系列分析入門
Miki Katsuragi
Solrで多様なランキングモデルを活用するためのプラグイン開発 #SolrJP
Solrで多様なランキングモデルを活用するためのプラグイン開発 #SolrJP
Yahoo!デベロッパーネットワーク
ギズモード・ジャパンのつくり方
ギズモード・ジャパンのつくり方
Six Apart KK
初心者のためのRとRStudio入門 vol.2
初心者のためのRとRStudio入門 vol.2
OWL.learn
Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門
Tatsuya Tojima
Towards a robust modeling of temporal interest change patterns for behavioral...
Towards a robust modeling of temporal interest change patterns for behavioral...
shima o
REST API マスターへの道 - Office 365 パワーユーザー向け
REST API マスターへの道 - Office 365 パワーユーザー向け
Hirofumi Ota
レボリューションR(RRE)のご紹介
レボリューションR(RRE)のご紹介
Satoshi Kitajima
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
Shuji Morisaki
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
Nobuaki Oshiro
Ähnlich wie Prophet入門【R編】Facebookの時系列予測ツール
(20)
Tori lab 輪読会 WWW 2014 - Modeling and predicting the growth and death
Tori lab 輪読会 WWW 2014 - Modeling and predicting the growth and death
Chainerで学ぶdeep learning
Chainerで学ぶdeep learning
Introduction to search_and_recommend_algolithm
Introduction to search_and_recommend_algolithm
Ai for marketing
Ai for marketing
Tokyo r50 beginner_2
Tokyo r50 beginner_2
10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用
大規模日本語ブログコーパスにおける言語モデルの構築と評価
大規模日本語ブログコーパスにおける言語モデルの構築と評価
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010
Retty recommendation project
Retty recommendation project
機械学習を使った時系列売上予測
機械学習を使った時系列売上予測
時系列分析入門
時系列分析入門
Solrで多様なランキングモデルを活用するためのプラグイン開発 #SolrJP
Solrで多様なランキングモデルを活用するためのプラグイン開発 #SolrJP
ギズモード・ジャパンのつくり方
ギズモード・ジャパンのつくり方
初心者のためのRとRStudio入門 vol.2
初心者のためのRとRStudio入門 vol.2
Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門
Towards a robust modeling of temporal interest change patterns for behavioral...
Towards a robust modeling of temporal interest change patterns for behavioral...
REST API マスターへの道 - Office 365 パワーユーザー向け
REST API マスターへの道 - Office 365 パワーユーザー向け
レボリューションR(RRE)のご紹介
レボリューションR(RRE)のご紹介
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
Mehr von hoxo_m
Shinyユーザのための非同期プログラミング入門
Shinyユーザのための非同期プログラミング入門
hoxo_m
学習係数
学習係数
hoxo_m
AJAXサイトの情報をWebスクレイピング
AJAXサイトの情報をWebスクレイピング
hoxo_m
高速なガンマ分布の最尤推定法について
高速なガンマ分布の最尤推定法について
hoxo_m
経験過程
経験過程
hoxo_m
確率論基礎
確率論基礎
hoxo_m
シンギュラリティを知らずに機械学習を語るな
シンギュラリティを知らずに機械学習を語るな
hoxo_m
非制約最小二乗密度比推定法 uLSIF を用いた外れ値検出
非制約最小二乗密度比推定法 uLSIF を用いた外れ値検出
hoxo_m
トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?
hoxo_m
階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について
hoxo_m
トピックモデルの評価指標 Coherence 研究まとめ #トピ本
トピックモデルの評価指標 Coherence 研究まとめ #トピ本
hoxo_m
トピックモデルによる統計的潜在意味解析読書会 3.7 評価方法 - 3.9 モデル選択 #トピ本
トピックモデルによる統計的潜在意味解析読書会 3.7 評価方法 - 3.9 モデル選択 #トピ本
hoxo_m
協調フィルタリング入門
協調フィルタリング入門
hoxo_m
データの不備を統計的に見抜く (Gelman’s secret weapon)
データの不備を統計的に見抜く (Gelman’s secret weapon)
hoxo_m
カップルが一緒にお風呂に入る割合をベイズ推定してみた
カップルが一緒にお風呂に入る割合をベイズ推定してみた
hoxo_m
Stan で欠測データの相関係数を推定してみた
Stan で欠測データの相関係数を推定してみた
hoxo_m
チェビシェフの不等式
チェビシェフの不等式
hoxo_m
swirl パッケージでインタラクティブ学習
swirl パッケージでインタラクティブ学習
hoxo_m
RPubs とその Bot たち
RPubs とその Bot たち
hoxo_m
5分でわかるベイズ確率
5分でわかるベイズ確率
hoxo_m
Mehr von hoxo_m
(20)
Shinyユーザのための非同期プログラミング入門
Shinyユーザのための非同期プログラミング入門
学習係数
学習係数
AJAXサイトの情報をWebスクレイピング
AJAXサイトの情報をWebスクレイピング
高速なガンマ分布の最尤推定法について
高速なガンマ分布の最尤推定法について
経験過程
経験過程
確率論基礎
確率論基礎
シンギュラリティを知らずに機械学習を語るな
シンギュラリティを知らずに機械学習を語るな
非制約最小二乗密度比推定法 uLSIF を用いた外れ値検出
非制約最小二乗密度比推定法 uLSIF を用いた外れ値検出
トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?
階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について
トピックモデルの評価指標 Coherence 研究まとめ #トピ本
トピックモデルの評価指標 Coherence 研究まとめ #トピ本
トピックモデルによる統計的潜在意味解析読書会 3.7 評価方法 - 3.9 モデル選択 #トピ本
トピックモデルによる統計的潜在意味解析読書会 3.7 評価方法 - 3.9 モデル選択 #トピ本
協調フィルタリング入門
協調フィルタリング入門
データの不備を統計的に見抜く (Gelman’s secret weapon)
データの不備を統計的に見抜く (Gelman’s secret weapon)
カップルが一緒にお風呂に入る割合をベイズ推定してみた
カップルが一緒にお風呂に入る割合をベイズ推定してみた
Stan で欠測データの相関係数を推定してみた
Stan で欠測データの相関係数を推定してみた
チェビシェフの不等式
チェビシェフの不等式
swirl パッケージでインタラクティブ学習
swirl パッケージでインタラクティブ学習
RPubs とその Bot たち
RPubs とその Bot たち
5分でわかるベイズ確率
5分でわかるベイズ確率
Prophet入門【R編】Facebookの時系列予測ツール
1.
Prophet ⼊⾨【R編】 Facebook の時系列予測ツール 2017/07/22 @hoxo_m 1
2.
About me HOXO-M Inc. 代表取締役
CEO 2
3.
【宣伝】Rによる⾃動データ収集 Webスクレイピングとテキストマイニングの実践 ガイド 共同翻訳 しました 3
4.
本⽇の内容 • Facebook が開発した時系列予測ツール Prophet を紹介 •
R と Python のライブラリがあります https://github.com/facebookincubator/prophet • 本資料では R 版の使い⽅を説明 4
5.
Prophet とは • Prophet
= 予⾔者 • 時系列予測ツール – 統計知識不要 – 業務知識で精度向上 – 精度評価で品質保証 • 誰でも予⾔者に! 5
6.
⽬次 1. モチベーション 2. デフォルト設定で使ってみる 3.
業務知識を⼊れてみる 4. 統⼀的な評価で品質保証 5. まとめ 6
7.
1. モチベーション • ビジネスにおいて様々な時系列データの 将来予測は重要 •
例: 売り上げ予測 7
8.
ビジネス時系列の予測 • 精度の良い予測をしたい • 必要なスキル –
統計モデル (ARIMA, 状態空間モデル, etc.) – ドメイン知識 (季節性, イベント, etc.) • 両⽅を兼ね備えた⼈材はほとんどいない ⇨ ⾼品質な予測は⾼コスト 8
9.
課題 • ⼤量のビジネス時系列データ • ⾼品質な予測が欲しい •
コストは抑えたい ⇨ 予測のスケール化 9
10.
分散型によるスケール化 10 集中型 分散型 統計専⾨家 Prophet 予測
予測 予測 予測 予測 予測
11.
分散型予測の問題点 • 予測を作る⼈たちに統計の知識がない • パラメータ調整による精度向上が難しい •
予測の品質が⼀定でなくバラバラになる 11
12.
Prophet の要件 • ドメイン知識を持つ⼈ が ①
統計の知識なしで予測を作成できる ② ドメイン知識を⼊れて精度向上できる ③ 品質を保つための統⼀的な評価⽅法 12
13.
1. まとめ • ビジネス時系列の予測は重要 •
専⾨家による集中型予測は⾼コスト • 分散型予測により予測を低コスト化 • Prophet は分散型予測に必要な3つの条件 を備えたツール 13
14.
⽬次 1. モチベーション 2. デフォルト設定で使ってみる 3.
業務知識を⼊れてみる 4. 統⼀的な評価で品質保証 5. まとめ 14
15.
2. デフォルト設定で使ってみる • Prophet
の要件①: 統計の知識なしで予測を作成できる ⇨ デフォルト設定でいい感じの予測 15
16.
インストール • CRAN からインストール可能 >
install.packages(”prophet”) • rstan パッケージに依存 • Windows の場合、rstan パッケージは 先に別途インストールした⽅が良い 16
17.
本発表のデータ • GitHub 上のデータを使⽤します •
https://github.com/facebookincubator/ prophet/tree/master/examples • Wikipedia • ペイトン・マニング • アメフト選⼿ • ⽇次ページビュー数 17
18.
データの読み込み ds y 1 2007-12-10
9.590761 2 2007-12-11 8.519590 3 2007-12-12 8.183677 4 2007-12-13 8.072467 18
19.
データの読み込み • 3000⽇分の時系列データ 19
20.
予測モデルの学習 • prophet() 関数にデータを⼊れるだけ 20
21.
予測期間の指定 • ⼀年(365⽇)の空のデータフレームを⽤意 ds 3266 2017-01-15 3267
2017-01-16 3268 2017-01-17 3269 2017-01-18 3270 2017-01-19 21
22.
予測の作成 ds yhat 3266 2017-01-15
8.213787 3267 2017-01-16 8.538876 3268 2017-01-17 8.326293 3269 2017-01-18 8.158930 3270 2017-01-19 8.170898 22
23.
予測のプロット • plot() 関数で簡単にプロットできる •
結果は ggplot オブジェクトなので簡単に 加⼯できる 23
24.
予測のプロット 24 予測
25.
2. まとめ • Prophet
はデフォルト設定でいい感じの予測を 作成でき、可視化までできる! 25
26.
⽬次 1. モチベーション 2. デフォルト設定で使ってみる 3.
業務知識を⼊れてみる 4. 統⼀的な評価で品質保証 5. まとめ 26
27.
3. 業務知識を⼊れてみる • Prophet
の要件②: ドメイン知識を⼊れて精度向上できる ⇨ 分かりやすい調整パラメータ 27
28.
予測モデル • 従来の予測モデル(⽣成モデル) – データがどのように発⽣するかを考える –
パラメータの意味が分かりにくい (例: ARIMA の移動平均や⾃⼰回帰の次数) • Prophet – 予測を曲線フィッティングの問題と考える – パラメータが直感的に理解できる 28
29.
予測モデル • 時系列 =
トレンド + 周期性 + イベント 29
30.
30 = + トレンド 周期性 時系列データ
31.
予測モデル • 時系列 =
トレンド + 周期性 + イベント • パラメータが直感的に理解できる • 調整可能なパラメータ ① 線形トレンド or ⾮線形トレンド ② 変化点、変化点の数 ③ 週周期と年周期 ④ イベント 31
32.
① トレンドの選択 • 線形トレンド ’linear’ •
⾮線形トレンド ʻlogistic’ 32
33.
トレンドの選択 • ⾮線形トレンド – ビジネス時系列は基本的に⾮線形トレンド –
成⻑上限(キャパシティ)が決まっている 例: ユーザ数の予測では Web⼈⼝が上限 • 線形トレンド – 成⻑の各段階は線形で近似できる – Prophet のデフォルトは線形 33
34.
⾮線形トレンドの指定 • growth=”logistic” を指定 •
df$cap に上限(キャパシティ)を指定 34
35.
⾮線形トレンド • 例: Wikipedia
の R のページビュー 35
36.
② 変化点の指定 • 新機能のリリースなどでトレンドが変化 •
変化点の指定が可能: changepoints=⽇付のベクトル 36
37.
37 = + トレンド(変化点あり) 周期性 時系列データ
38.
変化点の数を指定 • 等間隔に変化点を置いて推定 n.changepoints=変化点の数 • 変化点は指定した数だけ出⼒されるが、 変化量が微⼩なら変化点とみなさない ⇨︎
変化点の⾃動検出 38
39.
③ 週周期と年周期 • ビジネス時系列は⼈の⾏動に影響される •
週周期と年周期が重要 • 週周期: – ⼈の⾏動は曜⽇によって変わる (平⽇ or 休⽇) • 年周期: – ⼈の⾏動は季節によって変わる (年末年始など) 39
40.
週周期と年周期の指定 • それぞれの周期を考慮するか指定できる weekly.seasonality =
TRUE/FALSE yearly.seasonality = TRUE/FALSE • デフォルトは ”auto” 40
41.
④ イベント効果 • 不定期に発⽣するイベントの影響を考慮 して予測を作成したい •
イベントの例: – 祝⽇、キャンペーン、テレビCM 41
42.
イベント効果 • イベント⽇を列挙したデータフレームを ⽤意する 42 holiday ds
lower upper 24時間テレビ 2015-08-22 0 1 24時間テレビ 2016-08-27 0 1 24時間テレビ 2017-08-26 0 1 クリスマス 2015-12-25 -1 0 クリスマス 2016-12-25 -1 0 クリスマス 2017-12-25 -1 0
43.
イベント効果 • イベント⽇のデータフレームを渡す holidays =
event_dataframe 43
44.
例: イベント効果 • Wikipedia
ページビュー • ペイトン・マニング • アメフト選⼿ • イベント: 「アメフトリーグの決勝戦の⽇」 44
45.
イベント効果なし 45 決勝の⽇は モデルから ⼤きく外れる
46.
イベント効果を考慮 イベント効果 として処理 次の決勝戦
47.
3. まとめ • Prophet
の予測モデル: 時系列 = トレンド + 周期 + イベント • パラメータが直感的に理解できる – トレンド、変化点、周期、イベント – ドメイン知識により調整可能 • パラメータ調整により精度向上できる 47
48.
⽬次 1. モチベーション 2. デフォルト設定で使ってみる 3.
業務知識を⼊れてみる 4. 統⼀的な評価で品質保証 5. まとめ 48
49.
4. 統⼀的な評価で品質保証 • Prophet
の要件③: 統⼀的な予測精度の評価 ⇨ MAPE と SHF 49
50.
統⼀的な評価 • なぜ統⼀的な評価が重要か? • 分散型予測 •
各⼈がそれぞれで予測を作成する ⇨ 予測の品質がバラバラになる • これらの予測の品質を⼀定に保ちたい 50
51.
平均絶対パーセント誤差 • MAPE (Mean
Average Percent Error) • 予測値が実績値から何パーセント外れて いるかを表す ⇨ 異なる単位の予測を⽐較できる 51
52.
平均絶対パーセント誤差 • どうやって求めるか? ⇨ Simulated
Historical Forecast を提案 52
53.
Simulated Historical Forecast 53 訓練データ
テスト
54.
Simulated Historical Forecast 54 訓練データ
テスト 全期間 複数の期間における予測誤差を出す
55.
Simulated Historical Forecast •
n ⽇先の予測に対して m 個の誤差 (⿊点) • 平均誤差を局所多項式回帰で求める (⻘線) 55
56.
SHF の実⾏ • Prophet
には SHF は実装されていない • ただし、実装は難しくない • 今回は⾃分で実装 • ペイトン・マニングデータのデフォルト 予測とイベントを考慮した予測を⽐較 56
57.
• デフォルト設定(⾚線)よりもイベントを考慮した ⽅(⻘線)が予測精度が良い • 250⽇以降は予測精度が急激に悪くなる 57
58.
4. まとめ • 統⼀的な精度評価⼿法を説明 •
分散型予測の品質を保つため • 平均絶対パーセント誤差 (MAPE) • Simulated Historical Forecast を提案 58
59.
⽬次 1. モチベーション 2. デフォルト設定で使ってみる 3.
業務知識を⼊れてみる 4. 統⼀的な評価で品質保証 5. まとめ 59
60.
まとめ • Prophet は時系列予測ツール •
次の特徴を持つ – デフォルト設定でいい感じの予測を作成 – ドメイン知識によって精度改善 – SHF によって統⼀的な精度評価 • 分散型予測で利⽤可能 60
61.
Prophet の使い⽅ ① ⼤量のビジネス時系列に対してデフォル ト設定で予測を作成 ②
SHF による評価で順位を付け、悪い⽅か ら順番にドメイン知識で精度改善 ③ それでも悪ければ専⾨家が予測を⾏う ⇨ 限りあるリソースの有効活⽤ 61
62.
参考⽂献 • Sean J.
Taylor and Benjamin Letham, “Forecasting at Scale”, 2017 62