徒然日記

今日は日曜日か。と思っていたら土曜日であった。夏物のジャケットをクリーニングに出したりしていた。 特に予定もなかったので、昨日のloopbackでAPIを作る業と元中日ドラゴンズの監督 落合博満の本を読んでいた。

采配

采配

loopbackでAPIを作り始めた

とあるプロジェクトを進めてみようかと思い、当方API担当*1ということでloopback.ioを使ってAPIサーバを作り始めた。

2.x系で少し触っていたが、3.x系になって変わったことを追従しきれていないのでその部分を探りつつ、そもそもの流儀を思い出しながら試してみることにしている。

LoopBack - Node.js framework

2年前とはいえ、それなりにブログに記録しておいてよかった。

loopback カテゴリーの記事一覧 - テノニッキ (@hideack 's diary)

*1:なんとなくこういう書き方をすると昔あったバンドメンバー募集の記事みたいだな

2017年10月に読んだ本を振り返る

先月2冊しか読めなかった。少し生活のバランスが悪かったのかなと反省している。


hideackの本棚 - 2017年10月 (2作品)
powered by Booklog

Prophetを触ってみる

同僚が試していたので自分も少しさわってみることにした。

Prophetfacebookが公開している過去の時系列のデータから長期的なトレンドと周期成分、突発的な成分を踏まえて以後の動向予測ができるツールで、自分が試してみようと思ったのは現在単純に線形予測だったり回帰予測でおこなっているところの置き換えができたりするのかなというところがモチベーション。

facebook.github.io

pyenvでPythonとpipをインストールする

以下のエントリのmatplotlibの手前までを実施してPythonをインストールした。

[macOS] Python3をインストールしてmatplotlibでグラフを表示する - Qiita

Prophetの素振り

以下のエントリに倣って試してみる。 qiita.com

m.plot(forecast) で以下のエラーが出てくる。

RuntimeError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. See the Python documentation for more information on installing Python as a framework on Mac OS X. Please either reinstall Python
 as a framework, or try one of the other backends. If you are using (Ana)Conda please install python.app and replace the use of 'python' with 'pythonw'. See 'Working with Matplotlib on OSX' in the Matplotlib FAQ for more information.

これを解決するには先のエントリにある通り、 ~/.matplotlib/matplotlibrc を新規に作成して設置する。

backend : TkAgg

こうすると上のエントリで書かれている様なProphetを試す一連の流れを再現できる。

import pandas as pd
import numpy as np
from fbprophet import Prophet

df = pd.read_csv('example_wp_peyton_manning.csv')
df['y'] = np.log(df['y'])
m = Prophet()
m.fit(df)
future = m.make_future_dataframe(periods=365)
forecast = m.predict(future)

m.plot(forecast).show()

f:id:hideack:20171022164031p:plain

ちなみにCSVに落としたかったら forecast.to_csv("file.csv") といった具合。


実際に手元にあった時系列のデータを読み込ませてみた所かなりカジュアルに周期成分と長期トレンドを予測することができて最初の印象としてはとてもよさそうなのでもう少しいろいろ扱ってみたい。

ファイルが大量にあるところでgrepしようとしてArgument list too long

findしたのをxargsで渡してgrepに流し込むと大丈夫とのことを知った。 あるあるなんだな。

find . -name "*.html" -print0 | xargs -0 -I{} grep -oEH "hoge foo" {}