R

自分で書いて分かんなくなってきたwww

多変数における最小二乗クロスバリデーション評価関数を最小にするhを決定する - Seeking for my unique color.の最適化関数の付近。 mapply(に相当するもの)が3つくらいネストしたりしていますが、怖がってはいけません。 gkbrです。。。 optim(par=c(1,0.1…

Rでニューラルネットワークをやってみる

ニューラルネットワークについて プログラム データの準備 モデル式の作成 結果の表示 予測値を得たい ヘッセ行列の固有値を見る ニューラルネットワークを可視化する 追記 nnetとかをもうちょっと 最適化とかヘッセ行列がらみの話 ニューラルネットワークに…

gdbを経由して、Rの内部構造を知る

gdb R

Rのデータ構造はstrとかで知ることができますが、Cレベルでもどういう風になっているか知りたい!!という時のためのメモ。まず、Rを立ち上げます。次に起動しているプロセスを調べます。 /Users/yasuhisa% ps ax | grep R.framework /Users/yasuhisa% ps ax |…

Example of Metropolis Hastings Algorithm

ということで初めてのMCMCだよ。パターン認識と機械学習 下 - ベイズ理論による統計的予測のP252-253、マルコフ連鎖モンテカルロ法 (統計ライブラリー)のP9-14とここの資料を参考にしながら作りました。What to doガンベル分布(二重指数分布)からのサンプリ…

Example of Rejection Sampling

をやってみるてすと。PRMLの第11章サンプリング法のところのP242とかです。Suppose we can not make the random samples which come from gamma distribution. Let us consider making them from the cauchy distribution. So proposal distribution is the …

Example of importance sampling

マルコフ連鎖モンテカルロ法 (統計ライブラリー)の1.2.3を参考にしつつ。rejection samplingでは、target distributionからの乱数を間接的に取ってきているわけですが、今度はxの関数h(x)の期待値に興味があるとしましょう。で、積分が難しいので、サンプリ…

プラグイン法による密度推定

MSEを積分したMISEを最小にするhを使うとうまく密度推定できるよね!!という話があるんだけど、そのhには真の分布の二階微分が含まれており、だめじゃん><という流れがある。仕方ないからノンパラなのに分布を仮定するプラグイン法というのがある。まあ、ノ…

t分布とかX^2分布に従う乱数とか

初めに言っておくとRならt分布とかX^2分布に従う乱数とかすぐにできるんだけど、あえてそれを正規乱数から生成してみるというやつです。X^2分布wikipedia:カイ二乗分布より引用すると「を、平均で分散の正規分布に従う、k個の独立なランダム変数とすると、統…

速度を取るか、美しさを取るか

以前多変数ナダラヤワトソン推定量をpltoしてみるとことプログラミムを書いたりしました。 多変数ナダラヤワトソン推定量を計算する関数を自前で実装した - Seeking for my unique color. この時は乗法的カーネル関数を仮定していたわけだけど、それを仮定し…

plot中に数式を表示させる

R

パラメータを変化させるとどうなるかをplotしつつ、数式も表示する時の叩き台。自分用のメモです。 n <- seq(1,30,length.out=1000) a <- 2:7 plot(1,1,xlim=c(min(n),max(n)),ylim=c(0,1),type="n",xlab="n",ylab="y") title(main = expression(paste(y == …

Rでダーツもどきを作る

R

進化ゲーム理論のときに@Mishoを引き当てたやつですね。発表のほうのscriptには1時間、こっちには3時間かかっていたりします。いや、ppmとか毎回使い方忘れるんですよw。アイコンを適当にダウンロードして、media-convertというところで、ppmに変換すると、R…

Tsukuba.R#3に行ってきたよー

最高の週末となりました!!主催のid:wakuteka、開場を提供していただいた@bonohuさん、参加してくださった皆さん、本当にありがとうございました!! Tsukuba.R#3 - Tsukuba.R - Seesaa Wiki(ウィキ) 色々考えたことなど 色々書きたいことは後のリスト形式の…

Rでベイズをやってみる的なもの色々

来週のゼミが僕が担当なんだけど*1、数式展開して、「はい、こうなりますね」だけじゃ面白くないので、Rでやってみる。Bayesian Computation with R (Use R)をなぞっているだけですけどね。正規分布で、平均既知、分散未知の場合P30くらいからの内容。PRML読…

多次元カーネル関数の色々なバージョンをplotしてみる

多変数におけるカーネル関数はいままでにいくつか扱ってきました。やったものとしては密度推定と、ナダラヤワトソン推定量による曲線回帰のようなものがあります。 2変数でのカーネル密度推定の練習 - yasuhisa's blog 多変数ナダラヤワトソン推定量を計算す…

Rでクロス表を書く

R

実は同じことを去年もやっているんだけど、よく分からないコードで、しかもちゃんとしてないということで書きなおしてみた。 cross.table <- function(x,y){ t <- table(x,y) #回答の長さとかによって、marは変更して par(mar=c(6,6,6,3)) col <- 2:(length(…

RでK近傍法を用いたクラス分類をするためのコードを書いてみた

K近傍法による密度推定はいまいちな気がしたので、K近傍法によるクラス分類を行なうことにしました。多クラスでもいいんだけど、まあ2クラスから始めます。クラスに帰属する事後確率が(P123の(2.256式))であることを利用しています。自分で適当にデータ生成…

RでK近傍法による密度推定するためのコードを書いてみた

PRMLの2章の最後の付近にK近傍法というのが出てきました。 www.yasuhisay.info で、僕が卒研でたぶんやるカーネル使ったやつに比べてやったら考え方がシンプルなので、とりあえず実装してみることにしました。密度トレイスということなので、1次元の球を考え…

polygon関数で正方形を塗りつぶす

R

実は、RでK近傍法を用いたクラス分類をするためのコードを書いてみた - yasuhisa's blogのやつは小さな正方形に区間をくぎって、そこでぬりつぶす、という作業をやっています。Rでぬりつぶし、といったらpolygon関数なんですが、あんまり使い方覚えてないの…

Rでもflymakeしたいじゃない?みたいな

Emacsで編集してて、文法エラーみたいな単純なやつは実行とかコンパイルする前に指摘して欲しい。そんな欲求を満たしてくれるのがflymakeだそうです。エラーがあると下みたいに指摘してくれる。 Eclipseみたいなやつですね。で、flymakeはPerlとかRubyとかに…

Rで集合を扱うsetsパッケージで遊ぶ

R

結構色々あって面白い。自分が昔書いたやつが必要なくなる感じだ。 www.yasuhisay.infoインスールなど install.packages("sets") library(sets) #library(help=sets) 集合の基本演算Rのbaseパッケージ(かな)にも集合演算はあるんだけど、listを使わないとい…

useR!2008での面白そうな発表をいくつか上げてみた

R

メモメモ。てか、RubyKaigiとかと比べても発表数めっちゃ多いんだが、これ全部発表あったのかな? useR! 2008: Abstracts and Slides 適当に見ていったやつ Good Relations with R 集合とか扱えてるっぽい。自前でやろうとしていたw。ファジィーなのとかもあ…

多変数における最小二乗クロスバリデーション評価関数を最小にするhを決定する

以前カーネル単回帰のところで最小二乗クロスバリデーション評価関数 を最小にするhを決めるというのをやりました。「カーネル重回帰でも最小二乗クロスバリデーション評価関数を最小にするのがある意味(hogehogeに確率収束する、など)においてよい」という…

R Hackerな人ヘルプ【関数内関数とmapplyのネスト】

R

関数内関数とmapplyの付近でなんだかよく分からない挙動になっている。まず、以下のような関数を用意。 hoge <- function(x1,x2){ return(function(y){ cat(x1,x2,fill=TRUE) x1*x2*y}) } 内側のmapplyで関数を生成、外側のmapplyでそれを評価している。 > m…

多変数ナダラヤワトソン推定量を計算する関数を自前で実装した

先週は、1変数でのナダラヤワトソン推定量を計算していました。 オレオレ平滑化をやってみた - Seeking for my unique color. 最急降下法で最適なバンド幅を計算してみた - Seeking for my unique color. 今週は先生に「多変数でやってみな!!」と言われてい…

2変数でのカーネル密度推定の練習

2変数というとで先週書いた密度トレイスを参考にしました。が、微妙に間違いも発見しました。 カーネル関数を使って密度トレイスを書いてみた→最後のほうに微妙に間違いがあるので注意!! - yasuhisa's blog gauusian関数の仲の1/hにかかる括弧が抜けていた。…

Multivariate Kernel Density Estimationの練習

Tsukuba.Rで3次元のplotは練習しておいたから楽勝。とりあえず、MASSパッケージのkde2d関数を自前で実装することに挑戦するのが今の課題。 #2変数のガウス分布のplot double_gaussian <- function(x1,x2,sigma=1,mu1=0,mu2=0){ return(1 / (2*pi*sigma^2) * …

「applyを使ってると、data.frameのカラム名を触れない」なんてことはなかった

R

この前書いてたやつに関して。applyでデータの列ごとに処理していて、列の名前も含めたいよねという状況を考えている。 applyを使ってると、data.frameのカラム名を触れない - yasuhisa's blog なんか素晴らしくよく分からないことやっているような気がする…

Rではてダラ用のファイルの検索システム作ったよー!!

昔Rubyではてダラのファイル検索みたいなのを作ったんですが、なんかもっと高機能にしたいと思った。正規表現とか使いたいじゃないですか!!そんなわけでPerlとかでやろうかなあと考えてたんですが、「データ構造がこういう感じになってたら、mapplyをかませ…

applyを使ってると、data.frameのカラム名を触れない

R

@y_benjoに教えてたりしたんだけど、applyだけではうまく解決できなかった。例えば、こんな時系列データがあったとして a,b,c 100,10,50 111,20,56 98,10,58このaとかbとかごとに時系列のplotをさせたい。 apply(d,2,plot) とかやればいいんだけど、カラム名…

最急降下法で最適なバンド幅を計算してみた

ナダラヤワトソン推定量は計算できたわけですが、これにはまだバンド幅hを決めるという問題が残っています。バンド幅を最適なものにする*1ための一つの尺度として、最小二乗クロスバリデーション評価関数を最小にするようにhを選択する、という方法がありま…