letter_opener_webをRails3.2+ruby1.9.3の環境で使う

送信メール確認用にdevelopment環境ではletter_openerを使っていたのですが dockerへ移行したので動かなくなりました。。 そこで、Webインターフェースで送信メールを確認できるletter_opener_webに乗り換えました。 ただ、Rails3.2+ruby1.9.3という古い環境…

Heroku上のRails3アプリの延命対策

プライベートユースでHeroku上で運用しているWebアプリ(Rails3.2 + ruby1.9.3)があるのですが Cedar-14 stack end-of-life window begins 1 May 2019 | Heroku Dev Center のアナウンスがあり、来年5月からビルドができなくなってしまうとのこと ならば、…

Azureデータサイエンス仮想マシンでハマったこと

東大松尾研のDL4USのLesson7 Section4は学習時間が相当かかるのでGoogle Colab上での実行が困難です。 (実際に40時間以上かかりました。。) このため、このSectionだけは Azureにインスタンスを作って動かしました。 そのときのメモです。 一言でいうと、…

東大松尾研のDL4USをやってみた感想

東大松尾研が公開しているエンジニア向けDeep Learning講座、DL4USの評判が良さそうなので一通りやってみました。 やってみての感想 これまでディープラーニングのオンライン講座は fast.ai が一番だと思ってました。 ただ、 オリジナルのライブラリで抽象化…

初仔の成績の分析

現3歳世代、ジェンティルドンナやヴィルシーナといった名牝の初仔はPOG的には不発でした..(秋や古馬になって活躍するかもしれませんが) 初仔は走らないのでしょうか.. ?? そういうことどこかで聞いたことあるよなぁ、、と思いつつ調べてみると、 どうやら…

厩舎のコメントからキーワード分析する

POGの本には冒頭に厩舎コメントつきの2歳馬の写真ページがあります。 この例で言えば、「厩舎の一番馬ですね。来たときから均整の取れた馬体をしていました。(以下、略)」が厩舎のコメントにあたります。 このコメントからその後の活躍を予感させるサイン…

種牡馬の年齢と産駒成績との関係

先日、ディープインパクトとキングカメハメハの種付け中止 という衝撃のニュースが流れました JRAキングカメハメハ「種牡馬引退」濃厚の種付けなし。ディープインパクトを超える「豪華後継馬」に道譲る | GJ 両馬とも高齢になってきて健康面での問題からの種…

母馬年齢と産駒の成績との関係

また今年も日本ダービーが近づいてきました。 というわけで、POGのデータ分析を少しやってみました。 今回は母馬年齢と産駒の成績の関係を調べてみました。 調査は以下の2シーズンのデータを使って行います。 2018~2019の皐月賞後までの成績 2017~2018の皐月…

arXivの論文をチェックするbot

AIの最新の動向を追いたいならarXivをチェックしないわけにはいきません! しかし、 自分の業界のキーワードにマッチする論文は数ヶ月に1回あるかないか... 毎日チェックするのは面倒 そこでボットを作ってチェックすることにしました システム構成 システム…

Flask + Flask-Scriptでgunicornをマニアックに起動する

HerokuでpythonのWebアプリを動かすとき Flask-Scriptを使っている場合、 == manager.py == from flask import Flask from flask_script import Manager app = Flask(__name__) manager = Manager(app) if __name__ == "__main__": manager.run() == Procfil…

キャンプ場レビューのWordCloud画像の検索サービスを作る

WordCloud画像は以前の記事で作れるようになったので今回、全キャンプ場分の画像を作成し検索できるようにしました。 こんな感じです。 https://campsite-wordcloud.herokuapp.com/ 検索ボックスにキーワードを入力してキャンプ場を検索 候補が複数あるとき…

Kerasの学習の再現性を担保する

学習のたびに精度(結果)が違ってしまい、後になって資料のためのグラフを作ろうとしたときなどたまに困るので再現性を担保する方法を調べました。 参考になった記事 https://qiita.com/okotaku/items/8d682a11d8f2370684c9 https://machinelearningmastery…

Flaskのベストプラクティスの研究

FlaskといえばpythonでさくっとWebアプリをつくれるフレームワークです。 ちょっとしたAPIを公開する分にはすべてを1ファイルに書いてしまって何ら問題ないのですが 複数ファイルに分けたくなるような規模のWebアプリを実装するときにプロジェクト構成がカオ…

MeCab用のDockerfile

前回の内容の環境構築をDockerfileで作ろうとしてドハマりしました.. 「mecab dockerfile」とググれば何個も参考になる記事が出てくるので楽勝だろうと踏んで作業開始。 しかし、Dockerfileを作りビルドしたところ、、 opt/mecab-ipadic-neologd/bin/../libe…

キャンプ場レビューからWordCloudを生成

趣味のキャンプに役立つ何かをということで キャンプ場のレビューコメントからWordCloudを生成するというのをやってみました。 やったこと キャンプ場のレビューを集める MeCabで単語に分割する WordCloudを生成する キャンプ場のレビューを集める なっぷ と…

ワールドカップ ユニフォームカラー

つい先日終了したばかりのワールドカップですがユニフォームの色が気になり、 ロシア大会を含むここ7大会のベスト8のチームのユニフォームの色を調べてみました。 (注) ホームのユニフォームを表示しています。ロシア大会に出場しているチームはロシア大会の…

リモートのJupyter Notebookを自動でブラウザで開く方法

2ヶ月くらい前に「現場で使える! TensorFlow開発入門 Kerasによる深層学習モデル構築手法」という書籍を買ってみたのですが手をつけずに放置してました..。サンプルコードぐらい動かそうということで環境構築をAzure上で行いました。 この本の中では nvidia-…

変動係数でPOGデータの分析

せっかく集めたデータなので変動係数(Coefficient of Variance)を使って粘って解析してみます。 データは5/3時点で集計したものを引き続き使っています。 変動係数(Coefficient of Variance)とは 定義 CV = 標準偏差 / 平均値 何を意味する? 相対的なば…

RandomForestでPOGの賞金予測をする

結論から書けば玉砕でした。。 そりぁそうですよ 全兄弟で同じ厩舎でも一方はG1馬、他方は未勝利馬ということもあるわけですから。 数千サンプルのデータと二十次元程度の特徴量から予測するなんておこがましかったわけです。 いちおうトライしたのでやった…

2018-2019年度POG用の2歳馬リストを作る

先日作ったスクリプトで自分でも2歳馬リストが作れることが分かったので作ってみました。 方法 必要なデータをスクリプトで取得 $ python get_horse_data.py --age 2 -o pog2018_1.csv --include_no_debut $ python get_horse_additional_data.py -i pog2018…

fast.aiのPractical Deep Learning For Coders, Part 1 (2018 edition)

fast.aiのPractical Deep Learning For Coders, Part 1 (2018 edition) を細々と続けていましたがようやく一通り終えた...! というところまでいきました。 7 weeksのコースなので2倍ぐらいの時間がかかっちゃった計算になります。。 さらにブログの筆もなか…

netkeibaのデータのスクレイパー

今週末は桜花賞。いよいよクラシックシーズンの開幕です。 ということは、、 来年度のPOGの足音も聞こえてきたってことになります。 今年こそは機械学習を使って一人勝ち!! その第一歩としてnetkeibaの各種ランキングのスクレイパーを実装しました。 github.…

lang_model-arxiv.ipynbで必要となるarxiv.csvとall_arxiv.pickleを取得する方法

ニッチすぎてこれが役に立つ人は果たして何人いるのだろう。。という記事ですが少し苦労したのでメモです。 何かと言うと、細々と続けている MOOC講座 fast.ai の part1 v2の lang_model-arxiv.ipynb でソースとなるファイルが見つからない問題です。 問題と…

Azureマシンのjupyterをローカルから開けるようにする

Azureで仮想マシンを起動すると毎回パブリックIPアドレスが変わるのでsshするときとても面倒です。 さらに、Azureマシン上でjupyter notebookを立ち上げたときも毎回tokenの値が違うのでこれをコピペでブラウザに貼り付け、localhostの部分を自分のIPアドレ…

CUDA9.1の環境でTensorFlowをインストールする

fast.aiのpart1 v2は基本的に PyTorch を使って進めることになりますが Keras+TensorFlow用の notebook(keras_lesson1.ipynb)が1つだけあります。 これも動かしたる! と思ってTensorFlowのパッケージをインストールしようとしたところ、、 part1 v2用の環…

fast.aiのpart1 v2の環境構築

まだオフィシャルではないようですが私がひいきにしているMOOC講座、Deep Learning Part 1: Practical Deep Learning for Coders の v2 が昨年末にオープンになりました。 Unofficial release of part 1 v2 - Part 1 - Deep Learning Course Forums Welcome …

NetlifyとNowへ引っ越し

Azureで自分のホームページ(と呼べるほどの代物でもないけど。。)をホスティングしていますが 何と月々のフリークレジットの85%以上をこれらのWebアプリが占めていました... エッ、まじ? どうりでディープラーニング学習用に使える分が残ってないはずだ..…

ナンガのダウンジャケット

昨年末にナンガのダウンジャケットを買いました。 それがあまりにも良い買い物だったので記事を書きます。。 ナンガとは? ナンガというのはブランド名 “ジャパンブランド”である“NANGA(ナンガ)”。 社名の由来はヒマラヤにある8,000メートル級の高峰“ナンガバ…

Batch Normalizationの実験

Practical Deep Learning For Coders, Part 1の lesson3.ipynb に Batchnorm resolves this problem by normalizing each intermediate layer as well. The details of how it works are not terribly important (although I will outline them in a moment)…

Practical Deep Learning For Coders, Part 1をやっと終えた

fast.ai のMOOC講座、Practical Deep Learning For Coders, Part 1をやっていて 一通り学習できたので Part 2 へ進む前にまとめてみます。 どんな講座? 7個のレッスンがありディープラーニングのBest practicesを学べます。 講座の中でKaggleの実際のコンペ…