loopbackでAPIを作り始めた
とあるプロジェクトを進めてみようかと思い、当方API担当*1ということでloopback.ioを使ってAPIサーバを作り始めた。
2.x系で少し触っていたが、3.x系になって変わったことを追従しきれていないのでその部分を探りつつ、そもそもの流儀を思い出しながら試してみることにしている。
2年前とはいえ、それなりにブログに記録しておいてよかった。
loopback カテゴリーの記事一覧 - テノニッキ (@hideack 's diary)
*1:なんとなくこういう書き方をすると昔あったバンドメンバー募集の記事みたいだな
2017年10月に読んだ本を振り返る
Prophetを触ってみる
同僚が試していたので自分も少しさわってみることにした。
Prophetはfacebookが公開している過去の時系列のデータから長期的なトレンドと周期成分、突発的な成分を踏まえて以後の動向予測ができるツールで、自分が試してみようと思ったのは現在単純に線形予測だったり回帰予測でおこなっているところの置き換えができたりするのかなというところがモチベーション。
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()
ちなみに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" {}