タグ

ブックマーク / blog.recyclebin.jp (9)

  • DATUM STUDIO の ChatWork Bot の紹介 - 捨てられたブログ

    記事は DATUM STUDIO Advent Calendar 2016 に参加しています。 DATUM STUDIO では ChatWork を社内コミュニケーションツールとして利用しています。 DATUM STUDIO には ChatWork 上で動作している bot が 2 つあるので、それを紹介します。 DATUM STUDIO の ChatWork bot DATUM STUDIO には 2 つの ChatWork bot アカウントがあります。「システム管理者」と「タムタム」です。 システム管理者 タムタム システム管理者はもともとシステム管理者が ChatWork の管理操作を行うために作ったインフラチームの共有アカウントで、請求書を発行するときだけログインするくらいの役割だったのですが、余らせておくのももったいないので、 bot 化して自動通知に流用しました。アイコンは

    DATUM STUDIO の ChatWork Bot の紹介 - 捨てられたブログ
  • miniCRAN で Azure Machine Learning 用のリポジトリーを作る - 捨てられたブログ

    記事は R Advent Calendar 2016 に参加しています。 Azure Machine Learning(Azure ML)を使うと、分析処理を容易に WebAPI 化することができて便利です。分析モジュールは細分化することができ、 R や Python で処理を記述することができます。 R Advent Calendar なのでもちろん R の話です。 R で処理を行う際に、自作他作問わず様々なパッケージを導入する必要がありますが、 Azure ML だとパッケージの導入は少し手間がかかります。というのは Azure ML の分析モジュールではインターネットアクセスを行うことができず、 `install.packages` 関数や `devtools` パッケージの install 系関数では単純にパッケージをインストールすることができないからです。 ではどうするかという

  • Stan で Lasso - 捨てられたブログ

    パラメーターが沢山あって困るのでパラメーターを減らしたいという場合があります。ところで lasso です。 lasso はおなじみの L1 ノルムでペナルティーをかけるやつです。その lasso には変数選択としての用法があるとのことです。つまり を最小にするような を求めてやると, がスパースなので 0 になるような係数はいらないと判断できるわけですね。 というわけでこれを Stan でやってみたいということです。 まず適当にデータを作ります。 20 パラメーターを用意して,実際には 1, 2, 5 番目のパラメーターのみ効いているというデータです。 P <- 20L N <- 40L x <- matrix(rnorm(N * P), nrow=N, ncol=P) y <- 1.5 + as.numeric(x %*% c(3, -2, 0, 0, 1, rep(0, P - 5L)

  • F# でハミルトニアンモンテカルロ - 捨てられたブログ

    ハミルトニアンモンテカルロ (あるいはハイブリッドモンテカルロ) を F# で実装してみたというお話。ハミルトニアンというのはポテンシャルエネルギーと運動エネルギーの和としてあらわされる物理量のことだそうですが,よくわかりません。わからなくても実装はできるから問題ない(キリッ 実用上で重要なのは,確率密度関数の対数をとってマイナスにしたものと,その偏導関数があれば良いということです。確率密度関数の正規化定数は不要です。したがってベイズ推定で事後分布からのサンプリングが必要な場合も ( は事前分布, は尤度関数) とその偏導関数があれば良いことになります。 open RecycleBin.Random let inline updateWith f (ys : float []) (xs : float []) = for index = 0 to Array.length xs - 1 d

  • 近似ベイズ計算によるベイズ推定 - 捨てられたブログ

    近似ベイズ計算 (approximate Bayesian computation, ABC) と呼ばれるベイズ的手法があります。近似ベイズ計算の「近似」たるゆえんは,複雑な尤度の計算を行わないために,近似計算を行うという点にあります。 そもそも,ベイズの定理は,事後分布 は事前分布 と尤度 の間に の関係が成り立つことを主張しています。尤度が一般に計算困難であることを考えると,事後分布を求めることはほとんどできなくなってしまいます。 ABC では, からデータ をシミュレーションし,データ間の距離 が 以下であれば許容することにしています。つまり, の代わりに からサンプリングを行えれば良いという考えです。なお,データ間の距離そのものを考えることは難しい場合は,統計量 を用いて とする場合もあります。 一般に ABC で用いられているフレームワークは次の 3 つです。 棄却サンプリング

  • BUGS/stan勉強会 #3 - 捨てられたブログ

    遅くなりましたが,「BUGS/stan勉強会 #3」の報告記事です。 発表内容 『階層ベイズで野球データ解析』 by @gg_hatano メジャーリーグのオープンデータを利用した打率推定を行う。 4 月までの初期データからシーズン終了時の打率を推定したい。 最尤推定だと推定値は現在の打率になる。 打率は試行回数を増やすと個人間のばらつきが小さくなるという特性があるので,これを事前分布としてモデルに組み入れたい。 解析的に求めるのが難しいので Stan を使ってサンプリング。 『Stan による階層ベイズ的 SEM』 by 豊田秀樹 正規分布はパラメーターが 1 次と 2 次の積率になっていて扱いやすい。 3 次の積率は不平等の度合いを表すので,パラメーターとして扱えれば解釈がしやすい。 3 次の積率までをパラメーターとしてもつ非対称正規分布を構築し,実際の分析に応用。 事例紹介 (論文投

  • Stan のデータを R にエレガントに取り込む - 捨てられたブログ

    Stan で解析するデータを R に取り込むことを考えてみます。 Stan のデータは R 中に直接記述しても良いのですが,独立したファイルに記述した方が自由度が高くて良いでしょう。コマンドラインからも利用できるようになります。 Stan 用のデータは R とほぼ同じ文法で書くことができます[A]。拡張子は一般的に *.data.R が利用されます。 N <- 6 x <- c(0.1, 1.2, 2.3, 3.4, 4.5, 5.6) y <- c(1.3, 3.4, 4.1, 5.9, 5.5, 7.2) R のコードですから, R から呼び出すのは容易です。普通なら以下のように source 関数を使うでしょうか。 source("stan_data.data.R") ここで問題が発生する可能性があります。具体的には,変数の名前が衝突してしまう恐れがあります。短いコードなら大丈夫かも

    xiangze
    xiangze 2013/10/27
  • Kernel Bayesian Computation の R による実装例 - 捨てられたブログ

    少し前の事ですが ,京都大学で行われた日遺伝学会第 83 回大会に参加しました。その中の "Kernel Bayesian Computation" という講演が気になりました。 集団遺伝学の世界ではモデルが複雑な場合に尤度を回避できる approximate Bayesian computation (ABC) という手法がよく用いられます。 ABC についてはブログでも『近似ベイズ計算によるベイズ推定』や『Tokyo.R#17』[A] でまとめています。しかし ABC は計算コストが非常に高いのが難点です。 Kernel Bayesian computation (KBC) は ABC と同様に尤度計算を行わずにベイズ推定をする手法なのですが, ABC のような無駄な計算がないのが特徴です。そこで, KBC を R で実装してみました。 [warning] 警告 私自身,まだきちん

  • Lotka-Volterra モデルのシミュレーション - 捨てられたブログ

    生態学の被者・捕者の個体数変動を,以下の方程式 (Lotka-Volterra 方程式) で表現するモデルがあります。 ここで は被者の個体数, は捕者の個体数を表します。 解析的に解くことが困難であるため,計算機によるシミュレーションを行うのが普通です。これを Haskell で実装してみました。 data Fractional t => Model t = Lv t t t t data Fractional t => N t = N { prey :: t, predator :: t } delta dt (Lv a b c d) (N { prey = x, predator = y }) = N { prey = x * (a - b * y) * dt, predator = -y * (c - d * x) * dt } move n dn = N { prey =

  • 1