FANCOMI Ad-Tech Blog

株式会社ファンコミュニケーションズ nend・新規事業のエンジニア・技術ブログ

機械学習を用いた天気予報 その2

こんにちは、気象予報士のy_kawasaki(取得してもう早、15年経つらしい)です。

前回は、精度が向上するどころか、悪化するという大惨事で終わりましたが、精度向上を目指します。

ここで、日本付近の気象学的知識を投入して考えましょう。そう、天気は西から変わるんです!というわけで、安直に、静岡くらいの天気情報を入れたいと思います。

東京と静岡を読み込んで、風向をDropします。

続きを読む

機械学習を用いた天気予報 その1

こんにちは、気象予報士のy_kawasaki(取得してもう早、15年経つらしい)です。

一般的な天気予報は、数値予報モデルといわれる、物理方程式で作られた仮想の地球で数値微分を行い、気温、気圧などを予測したあと、ガイダンスといわれる、機械学習を用いた、いわゆる天気予報への翻訳を行っています。
そこで、行われていることは、http://aitc.jp/events/20160916-Seika/20160916_特別講演_気象庁における機械学習の利用.pdfで説明されているように、カルマンフィルター、ロジスティック回帰、ニューラルネットワークなどが用いられています。特に、専門的に知りたい方は、気象庁数値予報課が毎年刊行している、研修テキストに詳しく載っていますので、そちらを参照してください。



さて、今回は気象庁とは別のアプローチで機械学習で、天気を予報してみようと思います。

続きを読む

ベイズ統計モデリングに触れてみた話

こんにちは、情報科学技術研究所のy_kawasakiです。春になり天気予報が微妙にずれる(時間的に)のが気になる今日このごろです。

  • ベイズ統計モデリングとは
  • 準備
    • ベイズ統計モデリングソフト
    • PyStanのインストール
  • 実例
    • 基礎統計的データ
    • 結果
    • 結果2
    • 今後の課題
  • 参考図書
  • 付録

ベイズ統計モデリングとは

ベイズ統計学による、統計モデリングのことです!それぞれの意味は個々でググってください!

準備

ベイズ統計モデリングソフト

ベイズ統計モデリングをやるには、MCMC(マルコフ連鎖モンテカルロ法)で解く必要があるので様々なパッケージが用意されています。たとえば、BUGS言語を使ったソフトや、Stanというツールなど。ここでは、最近流行りのStanを使うことにします。Pythonから使う必要が(自分には)あるため、PyStanを利用します。

PyStanのインストール


> pip install PyStan

難しいことはありません。

実例

弊社では本社があるビルが手狭になったことから一部の部署が切り出されて、近くのビルに放り出されました(以下、本社とサテライト)。そこで、時々、本社と行き来する必要が発生して、片道どれくらいかかるのかを情報科学技術研究所的には調査する必要性が発生しました。(使命感)

そこで、被験者3名に計測を依頼したところ、A7件、B2件、C4件、計13件の下記の結果を得ることができました。なお、本社、サテライト間には、信号とエレベータが障害として存在しています。

続きを読む

『ユーザの平均継続期間が「1/解約率」』であるための十分条件について

 こんにちは、サービス開発部情報科学技術研究所所属のk_oomoriです。先日、
migi.hatenablog.com
というブログが公開され、アドテク界隈で話題になったようです。私も読ませていただきましたが、平易に書かれていてとても良い記事だと思いました。僭越ながら要約させていただくと、

  1. ある段階でのユーザ数をUとし、その後の流入は考えない
  2. 毎月の解約率(常に一定で変わらないとする!)はC

という仮定をおくとnか月後のユーザ数はU(1-C)^nとなり、それを0から\inftyまで足しあげた延べ継続期間が
\displaystyle
\sum_{n=0}^{\infty}U(1-C)^n=\frac{U}{C}
となるため、平均継続期間=ユーザの延べ継続期間/ユーザ数 として定義した平均継続時間が1/解約率で与えられることが示された、というものです。
 似たような問題は実は他の文脈でも現れます。例えば原子核物理学の分野で不安定な原子核の放射性崩壊という現象があり、ある時刻t=0における不安定原子核の数をN_0崩壊率あるいは崩壊定数(崩壊のしやすさ、詳しくは後ほど説明します)を\lambdaとしたときに、時刻tにおいて崩壊せずに残っている原子核数N(t)N_0\lambdaを用いて表すことができます。この場合、1個の原子核が平均的にどのくらい生き延びるか?という問題を考えることができ、平均寿命と呼ばれています。これを先ほどのユーザの解約問題と比較すると、

  • 解約率 ⇔ 崩壊率 (どちらも減る割合を表す。以後まとめて減衰率と表現することにする)
  • 平均継続期間 ⇔ 平均寿命 (解約/崩壊せずに生き残る時間間隔)

によって対応付けできるため、数学的には同種の問題とみなすことができます。(離散、連続の違いはありますが)

続きを読む