機械学習ライブラリをためすチュートリアルの第2回です。今回は公式のガイドにそって実際に分析をしてみます。Prophet(公式のチュートリアル、英語です)インストールまだの人はこちらからお先にどうぞ。公式ドキュメントをトレースするだけでそれらしいことはできました。最後に少し補足を足しつつ、メモとして残しておきたいと思います。リポジトリの中にもCSVファイルとして置いてくれています(ココ)。オブジェクトにします。予測したい目的変数です(今回は、ページビュー)。2行目では元の目的変数ではなく、対数を取ってあらためてそれを目的変数にセットしています。あとで触れますが、恐らくこれはナマのページビューを扱うと極端にページビューが大きい日があったりして予測精度が低くなるのを防ぐための工夫かと思われます。いうメソッドで学習済みのモデルを用いて将来の予測を行います。モデルの生成と学習がこんな感じ。いうメソッドを用いて作成します。日分予測しようとしている)。列に格納されています。対応する予測データが得られる、という具合です。次のようなデータ項目を含んでいます。いうのがページビュー(対数)の予測値です。いうメソッドでこの予測値とその分散の幅をグラフで表示してくれます。m.plot(forecast)これが冒頭の画像です(再掲)。黒い点が実際に観測されたページビュー(対数)で、青い線が学習によって得られたモデル値、薄水色の幅は分散のようです。見ると2017年以降の部分には黒い点がなく、予測データであることがわかります。含まれるその他の項目は様々な粒度での予測データのようです。いうメソッドでグラフを書いてくれます。2月ごろにピークを迎えるというようなことが読み取れます。予測の精度についてここまでの内容を見ていると、カンタンにそれらしい結果が得られているようでイイ感じなのですが、一つ疑問がでてきます。実際に観測値が存在する期間を予測し、モデルによる予測値と比較するという、簡易的な方法で予測精度を調べてみました。2008年のデータを使って学習し、2009年のデータで精度を評価する場合、こんな感じです。データの件数が異なります。上に観測値をのせてみるとこんな感じです。ブルーのラインが予測、黒い点は学習に使われている期間の観測値で、赤い点が予測期間の観測値です。確かに、予測のラインとややずれてるのと、年後半は大きくトレンドも外している感じがしますね。2014年(予測)でやってみるとやはり改善しました。2009年の時よりうまく予測できてる感じです。学習データの年次によってこんなに精度が違うのはちょっと困りますね。そこで、予測したい期間に対してどの程度の期間分学習データを取れば良いのか調べてみました。推移をプロットするというカンタンなものです。今の場合、予測したい期間は1年です。1.5年分・・・という具体に過去に遡って学習させました。0.5年分ずつ期間を伸ばしたのは、1年の周期性があるなら、予測期間の整数倍を学習データとするか半整数倍とするかで何らかの違いがでるかも?と思ったからです。結果はこのようになりました。グラフの一番左は学習データ=0.5年分で、ズバ抜けて成績が悪いですね・・・実際の予測状況はこうです。あたりまえっちゃあたりまえですが、やはり1年分の予測をするにあたり半年分では学習データが足りないようです。その他の違いがわかりにくいので0.5年分のをはずしてみました。高くなってきているという点です。前者はなんとなく予想した通りで、中途半端に0.5周期分学習データを増やすぐらいなら、キッチリ1周期分のほうが良いようです。実際の予測と観測データはこんな具合です(上が1年分、下が1年半分で学習したもの)。1.5年分学習した方(下)が、予測がやや実際の観測データの中心をはずしているようですね。後者はハッキリと理由はわからないのですが、2015年から4期前というと2011年ということになるのでちょうどトレンドの変化があったころです。異なるトレンドの期間が学習データに加わることで予測の精度が落ちてきている、という感じがしますね。ほんとうはクロスバリデーションしたり、とモデルの精度はもっと緻密に調べる必要があるでしょうし、雑な分析なのでこの見解が合ってるのかイマイチ自身はないですが、どの程度の期間を学習データとするのか?といったあたりがチューニングすべきパラメータになってくるのかもしれません。記事の冒頭で書きましたが、ページビューそのものではなく、対数を取っていることについて確認するために対数ではない元々の値でも試してみました。print(mse)161616544.708やはり、今回のデータは外れ値の影響が大きいから対数を取るんですね。さん(id:naoya)っていう方がこの記事をはてブしてくれていて、プロフィール拝見したら元中の人だしめっちゃ偉い人っぽかったのに、わたしはそれをまるっきり無視してて穴に入りたくなりました。この場を借りてお礼を・・・こんなわたしの記事を読んでいただいてありがとうございました。ポリシーお問い合わせスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。