渋谷駅前で働くデータサイエンティストのブログ

元祖「六本木で働くデータサイエンティスト」です / 道玄坂→銀座→東京→六本木→渋谷駅前

R

モデル選択とAICとcross validationの関係を大雑把に実験してみる

Stanの開発者でもある統計学界の重鎮、Andrew Gelmanがこんなブログ記事をupしていました。ちなみに@berobero11さんがこの件についてこんなコメントをされてました。AkiらのPSIS-LOOがWAICより良いとする論文が出た。https://t.co/BWYNALp88K渡辺先生の反論…

統計的因果推論(3): 傾向スコア算出を機械学習に置き換えてみると

この記事は以下の記事の続きです。前回の記事では普通にロジスティック回帰で傾向スコアを求めたのですが、傾向スコアというのは元はと言えば「共変量に基づいてそれぞれの群に割り付けられる確率値を求めたもの」なので、やろうと思えば機械学習分類器で代…

統計的因果推論(2): 傾向スコア(Propensity Score)の初歩をRで実践してみる

さて、統計的因果推論についてだらだらと独習していくこのシリーズですが、今回はDonald Rubinが考案したRubinの因果モデルで用いられる、傾向スコア(Propensity Score)を取り上げてみようと思います。「お前岩波DS3で事前に原稿読んで中身は知っているはず…

{rBayesianOptimization}パッケージによるベイズ最適化で機械学習パラメータチューニングをお手軽に

機械学習のパラメータチューニングというと大なり小なり大変な部分があって、今年のエイプリルフール記事に皆さん引っかかって下さったところを見るにパラメータチューニングを簡単に済ませたい!と願う人々は世の中多いようです(笑)。 少し前のMXnetを使…

統計的因果推論(1): 差分の差分法(Difference-in-Differences)をRで回してみる

世の中様々な介入効果・施策効果を検証するためのexperimentが行なわれていると思うんですが、意外とその効果検証というのは難しいものです。特にいわゆる統計的因果推論の立場から見れば、web上で接触する一般ユーザーに対する介入や施策といったものの検証…

Deep Learningで遊ぶ(2): オンラインニュース人気度+ベイズ最適化によるパラメータチューニング

追記(2016年8月22日) {rBayesianOptimization}の使い方を間違えていて、この記事の下部では実際にはテスト誤差ではなくトレーニング誤差を評価してしまっていますorz 実際にはScore返値にholdoutを入れるのが正解です。別に{rBayesianOptimization}単体で…

Deep Learningで遊ぶ(1): テニス四大大会データセット(追記あり: 正規化した場合の検証)

MXnet / Kerasが本格的に普及してきたことで、いよいよ「誰でも(割と)気軽にDeep Learningを実践できる」時代になってきましたね、という話を前回の記事では一通りやってみました。ということで、これからしばらく「気軽に実践できるようになったけど実際…

機械学習分類器ごとに汎化vs.過学習の様子を可視化してみる

以前12回まで続けた「サンプルデータで試す機械学習シリーズ」ですが*1。あれから色々分類器の手法やその実装もバリエーションが増えてきたということもあり、思い立って今回まとめてやり直してみようと思います。そうそう、12回シリーズの頃から愛用してい…

「そのモデルの精度、高過ぎませんか?」過学習・汎化性能・交差検証のはなし

今年の1月にこんな話題を取り上げたわけですが。この記事の最後にちょろっと書いた通り、実際にはこういう"too good to be true"即ち「そのモデルの精度いくら何でも高過ぎるんじゃないの?」→「実は汎化性能見てませんでした」みたいなケースって、想像より…

PTGH:機械学習パラメータチューニングをDeep LearningとMCMCで高速に最適化するフレームワーク

苦節2年、とうとう完成しました。機械学習のパラメータチューニングに悩める皆さんのために、コーディングも数学も大の苦手な僕が頑張って作りました。それがPTGH (Parameter Tuning by God's Hand)フレームワークです。RでもPythonでも動きます。中身として…

Deep Learningライブラリ{mxnet}のR版でConvolutional Neural Networkをサクッと試してみた(追記3件あり)

For non-native Japanese speakers: English version is below. ちょっと前から色々なところでちらほら名前を聞くなぁと思っていたMXnet。どうやらKagglerの間では急速に人気が高まっているようで、最近になってだいぶバグフィックスが進んだらしいというの…

p値を計算したくなる検定の数々を試しにStanによるベイジアンモデリングで代替してみた

この記事は、やたらはてブを稼いでしまった前回の記事の続きです。ASAのプレスリリース及び声明の中には、確かに「p値に依拠しない新たなアプローチの例」として予測値を重視するアプローチ*5、ベイジアンモデリング、決定理論的アプローチ*6およびfalse dis…

ビジネス実務の現場で有用な統計学・機械学習・データマイニング及びその他のデータ分析手法10+2選(2016年版)

そう言えば3年前にこんなまとめ的エントリを書いたのでした。この内容はそのままかなりの部分が2年前に刊行した拙著の原案にもなったということで、色々思い出深いエントリです。なのですが。・・・この3年の間に統計学・機械学習・データマイニングの諸手法…

カイ二乗検定のメタアナリシスをやってみた(階層ベイズでも試してみた追記あり&タイトル変更済み)

記事タイトルに反して僕は実は統計的検定が大嫌いなんですが、皆さんいかがお過ごしでしょうか(笑)。ということで、今回はややマニアックなメタアナリシスの話題でもしてみようかと思います。「t-testのメタアナリシス」みたいな、いわゆるRosenthal's met…

UCI機械学習リポジトリのデータ(など)で遊ぶ(4):オンラインニュース記事の人気度

正直に白状するとめぼしいお題がなくて記事にするようなものは目下のところ何もないんですが(汗)、最近めっきり多変量データいじらなくなって腕が鈍っている気がしないでもないので、Rの機械学習系のコマンドを打つリハビリ()も兼ねて以前のシリーズの続…

「正答率100%」になってしまう機械学習モデルの例を挙げてみる

何か僕がシンガポールに出張している間に妙なニュースが流れていたようで。 京大ビッグデータ副作用論文。機械学習知らない私でも疑問なのは、@sz_drさんも指摘してるがy'=a1*SCORE+a2*ACT+a3*GeneID+b (1)という式で、GeneIDという定量的に性質を示す値でな…

確率的勾配降下法を最適化に使える{sgd}パッケージを一通り試してみる

ちょっと前に話題になってたんですが、何でもCRANに確率的勾配降下法(Stochastic Gradient Descent)を実装した{sgd}というパッケージが公開されているそうで。JSS掲載予定のVignetteもあるみたいです。 CRAN - Package sgd Stochastic gradient decent metho…

因果フェスでGranger因果について話してきたら、色々いじれば非線形でもやれるんじゃないかという気がしてきた

本日8月6日に駒場で開かれた日本生態学会関東地区会公開シンポジウム「非ガウス性/非線形性/非対称性からの因果推論手法:その使いどころ・原理・実装を学ぶ」通称因果フェスにて、Granger因果について話してきました。 ちなみに事前に林岳彦(id:takehiko-…

不均衡データの分類をクラス重み付けではなくクラス分類事後確率の閾値で補正するとどうなるか

先日ask.fmでこんな質問をいただいたのでやってみました。 不均衡データの分類についてブログを拝見しました。 不躾な質問で恐縮ですが、正例の少ない不均衡データをRandomforestで2値分類を行う際に、ウェイトを使うのであれば、単純にProbで出力される「正…

『みんなのR』(原題:"R for Everyone")ご恵贈いただきました

みんなのR ?データ分析と統計解析の新しい教科書?作者: Jared P. Lander,Tokyo.R(協力),高柳慎一,牧山幸史,簑田高志出版社/メーカー: マイナビ発売日: 2015/06/30メディア: 単行本(ソフトカバー)この商品を含むブログ (2件) を見る ということで、訳者の…

UCI機械学習リポジトリのデータ(など)で遊ぶ(3):クレジットカードの加入審査データ

このシリーズ、前回はUCIリポジトリではないデータセットを使ってしまって本義に悖る内容になってしまったので(笑)、今回はUCIのデータセットを使ってみることにします。そのデータがこちら。 Credit Approval Data Set Data set descriptionを見ると、こ…

パッケージユーザーのための機械学習(12):Xgboost (eXtreme Gradient Boosting)

今やKaggleやKDD cup以下名だたる機械学習コンペで絶大な人気を誇る分類器、Xgboost (eXtreme Gradient Boosting)。特にKaggleのHiggs Boson Machine Learning Challengeの優勝チームが駆使したことで有名になった感があるようで。 その実装ですが、C++ベー…

UCI機械学習リポジトリのデータ(など)で遊ぶ(2):『レ・ミゼラブル』の人物相関図

第2回にして既にUCIのデータセットではないんですが(笑)、ちょっと自分の練習も兼ねてご紹介。今回はグラフというかネットワークがお題です。ぶっちゃけ僕自身はグラフ理論&ネットワーク分析は全くもって真面目に勉強してないので、炎上ラーニングも兼ね…

交互作用項を入れればロジスティック回帰でも非線形分離可能になることもある

基本的にロジスティック回帰は単純な線形識別関数としての分類器なので、一般には線形分離不可能パターンに対して適用すると全く分類できないという結果に終わります。実際、シンプルXORパターンと複雑XORパターンに対して、ロジスティック回帰で学習させて…

RでL1 / L2正則化を実践する

L1 / L2正則化と言えば機械学習まわりでは常識で、どんな本を見てもその数式による表現ぐらいは必ず載ってる*1わけですが、そう言えばあまり実務では真面目にL1 / L2正則化入れてないなと思ったのと、Rでやるなら普通どうするんだろう?と思ったので*2、もは…

Rでデータ分析・統計学・機械学習・データマイニングを学ぶならこの10冊で(2015年2月版)

今週はまともなデータ分析やら統計学やら機械学習やらの記事を書くのが面倒になったので*1、しばらくやってなかったお薦め書籍リストでも書こうかと思います。 今回まとめるリストは、ズバリ「Rでデータサイエンス・統計学・機械学習を学ぶための10冊」。Rと…

UCI機械学習リポジトリのデータで遊ぶ(1):2013年のテニス四大大会match stats

去る2月5日(木)にレバレジーズ様のお招きで渋谷でちょっとしたRハンズオンをやってきました。 手を動かしながら学ぶエンジニアのためのデータサイエンス! from leverages_event この中で利用したのが、UCI Machine Learning Repositoryのオープンデータセ…

Rでベイジアン動的線形モデルを学ぶ(5):説明変数のあるローカル・レベル・モデル

何か月1回しか書かなくなりつつあるこのシリーズですが、中には@berobero11さんのようにツッコミ倒すのを楽しみにして下さっている方もおられるようなので、久しぶりに更新してみます。 もちろん参考文献は以下の2冊 + PDF book。お題はCommandeur本の第5章…

H2OのRパッケージ{h2o}でお手軽にDeep Learningを実践してみる(4):隠れ層の特徴表現を抽出してみたがよく分からなかった話

そういえばMNISTコンペが気が付いたらまた1年延長されたみたいですが。 Description - Digit Recognizer | Kaggle これ以上順位上げるのは面倒で仕方ないのでほっといて、もうちょっと自分の勉強しようかと思います。今気になってるのが、隠れ層における特徴…

Twitterがリリースした時系列異常値検出のためのRパッケージ{AnomalyDetection}を試してみる

もう松の内も明けてしまいましたが、遅ればせながら皆さん明けましておめでとうございます。今年もよろしくお願いいたします。 で、年明け早々にTwitterエンジニアブログに面白いネタが上がっていたのでした。 Introducing practical and robust anomaly det…