ともにゃんは熱狂的なベイズ教の信仰者である.とある日,ともにゃんは仕事で,お客さんから仮説検定を使うよう強要され,使用した.ともにゃんは,ベイズ警察に逮捕されてしまった.禁固10年.カレンダーもなく,外の景色も見れない,温度は通年25度に調整…
ベイズ推定を行う際,パラメータもしくは潜在変数に多変量正規分布を事前分布として設定したい場合があります.その際,分散共分散行列の事前分布は非常に重要です.多くの場合,一様分布などの無情報事前分布を分散共分散行列に設定すると,MCMCが収束しな…
交差検証を実施する際、データセットをn分割する必要があります。 そしてそれぞれが1回だけ検証用データとして扱われます。 以下の関数は、検証用データのインデックスをn個リストとして返す関数です。dataが使用するデータセット、cv_nがn-fold Cross Valid…
はじめに 前回の記事からかなり期間が空いてしまいました。今回は離散選択理論入門の第2段。ロジット確率の導出とそれらの性質について見ていきます。 Logitモデルの導出 今現在、広く用いられている離散選択モデルとしてロジット(Logit)モデルがあります。…
はじめに 最近、大学院時代に読んでいたDiscrete Choice Methods with Simulation作者: Kenneth E. Train出版社/メーカー: Cambridge University Press発売日: 2009/09/17メディア: ペーパーバック クリック: 2回この商品を含むブログを見るを読み直していま…
お久しぶりです 久しぶりの投稿となります。いつの間にかXGBoostについての記事kefism.hatenablog.comが好評を得ていて、ブログのアクセス数も随分と増えていました!非常に嬉しいことです☆(ゝω・)v今回は、ベイズ関連の教科書を読むと必ず紹介されている…
最近Pythonを使って大きなデータフレームを結合したり、そのデータフレームに対してメソッドを使って処理をしていますが、頻繁に"Memory Error" に遭遇しています。そんな中で色々探し回って見つけたTips的なものをメモとして残しておきます。 pandas.DataFr…
pandasのDataFrameのplotメソッドを使って描画するときに、プロットを並べて表示する方法のメモ例 import matplotlib.pyplot as plt import pandas as pd fig, axes = plt.subplots(nrows=1, ncols=2, squeeze=False) df1.plot(kind="bar", x="x", y="y", ax…
XGBoostの凄さに最近気がついたので、もうちょっと詳しく知りたいと思って以下の論文を読みました。XGBoost: A Scalable Tree Boosting Systemせっかくなので、簡単にまとめてみたいと思います。。。と思っていたら結構な量になってしいました。 何か間違い…
よくよく考えたら当たり前のことに気づいたのでメモです。 回帰とかをするときに、例えば目的変数が正の値しか取り得ないような場合、目的変数を対数変換したりします。 そのノリで、タイトルに挙げたのtree系のアルゴリズムを適用するときにも対数変換をし…
タイトル通りの関数を作りましたのでここに置いておきます。 データフレームに文字列が入ってて分析を回せない、、、その列だけ取り出してダミー化してまた結合してって面倒くせえ、、、ってときにお使いください。{dummies}パッケージを使用していますので…
タイトル通りの関数を作ったのでここに置いておきます。 可視化には{ggplot2}を使用しています。 # ranger_fitにrangerで構築したモデルを、topに表示したい変数の個数を指定します。 # topに値を指定しない場合は全変数の重要度を表示します。変数の数が多…
タイトル通りの関数を作ったのでここに置いておきます。 # データフレーム df から欠損値のある列を除去する関数 removeNaCol <- function(df){ is_na <- apply(df, 2, function(x) sum(is.na(x))) > 0 return(df[,which(!is_na)]) }
はじめに みんな大好き(?)kaggleのtitanicコンペTitanic: Machine Learning from Disaster | Kaggleで0.81340のスコアを出したので色々まとめてみましたという記事です。このコンペはtitanic号が沈没したときのデータを使用して、乗客が生存したか死亡し…
ベイズモデリングが流行っている中で多くのRユーザーはStanを使って解析をしているんではないかと思います。そして、Stanはハミルトニアン・モンテカルロ(HMC)法と呼ばれる方法で事後分布からのサンプルを得ています。色々と解説記事はありますが、超ざっく…
ずっっっっっと前にbeautifulsoupでスクレイピングしたことがあったけど、使い方を完全に忘れてたので再び入門的なことをやってみた。とりあえずYahoo! Financeから日経225に関するデータを引っ張ってこようかと思います。 from bs4 import BeautifulSoup im…
探せばあるんだろうけど、データフレームを引数に複数列を一度にダミー変数化する関数を作りました。 よければ使ってください。 使い方:(0) {dummies} パッケージをインストールする(1) 引数 data にダミー変数化したいデータフレームを入れる(2) 回帰等で…
前に学内の勉強会でベイジアン仮説検定について発表したので、その時のスライドをアップロードします。ベイズを使って頻度主義の区間推定的なものだけでなく、点推定値の検定を行う方法も紹介しています。 ベイジアン仮説検定 from Tomonyan
行列を以下の様に定義する。 ここで は縦ベクトルとする。このとき また基本的な操作として がある。
自分用メモ。実行例は後日載せるかも。 fit.dt <- rpart(y ~., data) plot(as.party(fit.dt), gp = gpar(fontfamily = "Osaka"))
2階差分トレンド+季節(週)トレンドを考慮した以下の状態空間モデル(線形ガウス状態空間モデル)について、粒子フィルターをpythonで実装しました。 ここではそれぞれ時刻における観測値、トレンド(平均)、季節トレンドです。 状態空間モデルの詳しい説明につ…