六本木で働くデータサイエンティストのブログ

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

R

Rで不均衡データをクラス分類する方法まとめ:SVM、ランダムフォレスト、ロジスティック回帰の場合

以前の記事でSVM(しかもsvm{e1071}に限って)で不均衡データをクラス分類する方法について取り上げましたが、色々調べた結果その他のRの分類器でもやれるということが分かったので、ついでにまとめておきます。といってもSVMに加えてランダムフォレスト、ロ…

Rでベイジアン動的線形モデルを学ぶ(3):ローカル線形トレンドモデル

相変わらずグダグダな上に挙句の果てに既にRでやっちゃった例をまとめたPDF bookまであると判明してモチベーションだだ下がりなんですが、備忘録も兼ねてめげずに続けます。もちろんテキストは相変わらずこちらの2冊。 状態空間時系列分析入門作者: J.J.F.コ…

不均衡データをSVMでクラス分類するにはどうすれば良いか

今年のKDD cupが絵に描いたような不均衡データ(正例と負例との数的比率が極端に偏っているデータ)で苦労させられたので、ちょっと調べたら色々と良い方法があるなぁと気が付きましたよということで備忘録的に紹介しておきます。 ちなみにググったら普通に@…

Rでベイジアン動的線形モデルを学ぶ(2.5):最尤法でパラメータ推定してみる

前回サクッとローカルレベル・モデルを推定してみたわけですが、そう言えばパラメータ推定は何もしなかったのでした。既に線形モデルも一般化線形モデルもこのブログで見てきている以上最小二乗法や最尤法やMCMCでパラメータ推定するというのは常識なわけで…

Rでベイジアン動的線形モデルを学ぶ(2):まずは状態空間のコンセプトと基本のローカルレベル・モデルから

前回からだいぶ間が空いた上に、要は{dlm}パッケージで遊ぼう!という大袈裟なタイトルの割に中身のないこのシリーズ記事ですが(笑)、取るものもとりあえずちょっと例題をやってみようと思います。参考文献はまずこちらのPetris本。 Rによるベイジアン動的…

Googleがリリースした「キャンペーンとKPIとの因果関係を推定する」Rパッケージ{CausalImpact}を試してみた

CausalImpact 何気なくR-Bloggerのタイムラインを見ていたら、"Google Open Source Blog: CausalImpact: A new open-source package for estimating causal effects in time series"という記事がシェアされていたので見に行ってみたのでした。これはもう読ん…

『手を動かしながら学ぶ ビジネスに活かすデータマイニング』(技術評論社)を書くに当たって気を付けたこと&補足など(追記あり)

追記(2015/03/14) 第7章の決定木のところで取り上げた{mvpart}パッケージのサポートが切れ、CRANから削除されてしまったためinstall.packages関数ではインストールできなくなっています。現在のインストール方法を最後に追記しました。 追記(2014/09/18) 実…

今月下旬に『手を動かしながら学ぶ ビジネスに活かすデータマイニング』(技術評論社)という本を出します

本日、出版元の技術評論社(gihyo)様の公式サイトでオープンになりました。 手を動かしながら学ぶ ビジネスに活かすデータマイニング:書籍案内|技術評論社 そして書影はまだ反映されていないようですが、Amazonでも予約受付が始まった模様です*1。 手を動か…

パッケージユーザーのための機械学習(10):Affinity Propagation

だいぶ前回から間が空いてしまいましたが、ついに10回目になったこのシリーズ記事。。。多分クラスタリングだとこれが最後になるんじゃないでしょうか。以前話題に出ていたAffinity Propagationをやってみようと思います。 なのですが。今回も文献資料は見つ…

Rでベイジアン動的線形モデルを学ぶ(1):なぜ「動的」モデルなのか

ちょっとStan一辺倒でやってるのも随分効率が悪いなぁと思い始めてきたところに、大仏のオッサンがこんなナイスな記事をupしていたのに今頃気付いたのでした(オッサン気付くの遅くてごめん)。 逐次モンテカルロ/(粒子|パーティクル|モンテカルロ)フィルタ…

Stanで統計モデリングを学ぶ(6): 階層ベイズモデルで季節調整を行う

前回の記事では盛大にトレンドつきモデルの式をトレンド累積値でモデリングしないという間抜けなことをしてしまい大変失礼しましたorz さて、階層ベイズモデルでは際限なく色々な要素を足していくことで、果てしなく複雑っぽいモデルを作ることができるわけ…

パッケージユーザーのための機械学習(9):混合ディリクレ過程

前回の記事からだいぶ経ってしまいましたが、皆様パッケージの使い心地はいかがでしょうか(汗)。ということで、今回はいよいよクラスタリングシリーズの大詰め、混合ディリクレ過程を取り上げます。 今回は僕も完全に理解しているわけではないので、ぶっち…

「統計モデリングとは何なのか」をいま一度整理してみる

もうタイトルを読んで字の如しなんですが、要は「統計モデリングってぶっちゃけ何なのよ?」という問題意識が最近非常に局所的ながら影響力の大きいところ*1から出てきておりまして。 で、僕もその議論にマターリ参加しながら「このもやもやしたものをどうや…

Stanで統計モデリングを学ぶ(5): とりあえず階層ベイズモデルを試してみる(応用編:トレンドのあるモデル) *追記2件あり

このシリーズ記事、全然真面目に事前分布の勉強をしていない人間がStanで無理やりフルベイズをやろうという無謀な代物でございますが、何だかんだで段々佳境に入ってまいりました。 ということで、今回は階層ベイズモデルをこんな感じでやってみましたという…

パッケージユーザーのための機械学習(8):混合モデルとEMアルゴリズム

教師なし学習シリーズもいよいよ佳境に入ってきましたねー、と言いつつ前回記事から既に2ヶ月半ぐらい経ってますが。。。ここからは主に混合モデルを取り上げていく予定です。今回もはじパタpp.165-174をベースにやっていきます。 はじめてのパターン認識作…

Stanで統計モデリングを学ぶ(4): とりあえず階層ベイズモデルを試してみる(基本編)

だいぶ間が空いちゃいましたね(汗)。これまでの記事で大体Stanで何ができるか分かったので、ぼちぼちStanらしいことをやってみようと思います。一応過去記事のリスト出しておきますので、良かったら復習も兼ねてお読みください。 Stanで統計モデリングを学…

2014年春版:ビジネスにおけるデータ分析のプロを目指すなら揃えておくべき12冊

さて、前回リストの記事から半年ぐらい経ちましたよーということで、それ以降に発刊された書籍などを吟味した上で更新したリストをお届けしたいと思います。といっても引き続き今回のリストにも入っているものが多いので変わり映えしないかもですが。。。 前…

アソシエーション分析+グラフ構造可視化 ({arules} + {arulesViz}) で教師あり学習の変数重要度を可視化する

グローバルTokyoRで何話そうかなー、と思っていたんですがそう言えば主賓がvisualizationの人なんだったっけなぁということで、可視化の話にでもしようかなと。ということで、僕の大好きなネタでもやろうかと思います。 それは、「とにかく{arules} + {aruls…

Stanで統計モデリングを学ぶ(3): ざっと「Stanで何ができるか」を眺めてみる

実は業務でもStan使い始めてるんですが、まだまだ単位根ありパネルデータの分析に回すなど低レベルなものが多く、無情報事前分布と階層事前分布を巧みに使いこなして華麗にサンプリング。。。なんて夢のまた夢という情けない状況です(泣)。 で、気が付いた…

前処理なしのトランザクションデータを{arules}パッケージで読み込む方法

実は僕は結構頻繁に{arules}パッケージを使うんですが*1、個人的には汎用性を考えて必ず素性ベクトルの形になるようにデータを前処理して読み込むようにしています。例えばこんな感じ。 ビール ソーセージ 牛肉 ... 1 0 1 ... 0 1 0 ... 1 1 1 ... ... ... .…

Conditional inference treesとそのランダムフォレストを{party}パッケージで試してみた

今まで気付かなかったんですが、@dichikaさんがこんな記事を書かれていたんですね。 ランダムフォレスト雑感 - BOD 実は僕はほとんどconditional inference treesのことを知らなかったのと、ここで紹介されている{party}パッケージが面白そうだったので、そ…

パッケージユーザーのための機械学習(7):K-meansクラスタリング

本シリーズ記事のカテゴリからPythonが消えて久しい今日この頃ですが、皆様いかがお過ごしでしょうか*1。とかいう前口上はどうでも良くて、とっとと今回のお題に入りましょう。今回はクラスタリングのド定番、K-means(k平均)クラスタリングです。 K-means…

効果量(effect size)のはなし

統計学的検定の話を始めたら自分の勉強の方が止まらなくなってしまったので(笑)、ついでにやってみようと思います。ちなみにこの記事は前回のやたらブクマを集めた記事の続きみたいなものです。 そもそもビジネスの現場ではどういう「レベル」の統計学を使…

Stanで統計モデリングを学ぶ(2): そもそもMCMCって何だったっけ?

(前回記事はこちらから) ベイジアンの知識もいい加減な僕がこんなシリーズ記事を書くとかほとんどギャグの領域なんですが(汗)*1、2回目の今回の記事ではそもそもMCMCって何だったっけ?ってところから始めようと思います。 今回参考にするのは、主に久保…

パッケージユーザーのための機械学習(6):階層的クラスタリング

さて、教師あり学習の方はひと段落ついたので、今度は教師なし学習の話をやっていこうかと思います。と言っても僕が知っている範囲でなおかつ常用するような教師なし学習はRでの実装が割と貧弱なので、シリーズとしてはあまり面白くない感じになりそうです(…

Stanで統計モデリングを学ぶ(1): まずはStanの使い方のおさらいから

(※Stan v2.4.0以降でインストール方法に若干変更があります!詳しくはこの記事の中ほどをご覧ください) さて、年初の抱負でも語ったように今年はStanを頑張って会得していこうと思います。理由は簡単で、ありったけの要素を詰め込んでMCMCサンプラーでガン…

パッケージユーザーのための機械学習:教師あり学習同士で分離超平面・決定境界を比較してみる

このシリーズ記事では、Rで*1色々な機械学習のアルゴリズムについて、それらがどんなものなのかを簡単なデータに対して分離超平面・決定境界を描きながら見てきました。 パッケージユーザーのための機械学習(1):決定木 - 銀座で働くデータサイエンティスト…

パッケージユーザーのための機械学習(5):ランダムフォレスト

(※はてなフォトライフの不具合で正しくない順番で画像が表示されている可能性があります) さて、こんな記事をクリスマス・イヴのプレゼントにするのはアレなんですが(笑)、教師あり学習&分類器系では一旦これでシリーズを〆る予定です。 トリを飾るのは…

パッケージユーザーのための機械学習(4):ニューラルネットワーク

(※はてなフォトライフの不具合で正しくない順番で画像が表示されている可能性があります) 実は僕は普段全くニューラルネットワークを使ってない上に、すぐ隣に再帰ニューラルネットワークでバリバリNIPSに通していたことのある教授氏がいるので*1、こんな…

パッケージユーザーのための機械学習(3):サポートベクターマシン(SVM)

(※はてなフォトライフの不具合で正しくない順番で画像が表示されている可能性があります) PythonでSMO-SVM書き下すという宿題がまだ終わってないくせにこれ書いていいのか物凄く迷うんですが(笑)、R Advent Calendar 2013の12月6日分第6回の担当に当たっ…

パッケージユーザーのための機械学習(2):ロジスティック回帰

(※はてなフォトライフの不具合で正しくない順番で画像が表示されている可能性があります) だらだらと機械学習をパッケージで回していく様子を眺めるこのシリーズ、今回はロジスティック回帰をやってみようと思います。ロジスティック回帰はどちらかという…

パッケージユーザーのための機械学習(1):決定木

(※はてなフォトライフの不具合で正しくない順番で画像が表示されている可能性があります) だいぶ前に「糞コードで頑張る機械学習シリーズ」と言うのを始めようとしたんですが、パーセプトロンをPythonで実装した次にMatlabで書いたSMO-SVMコードをPythonに…

MCMCの計算にStanを使ってみた(超基礎・導入編)

肝心のMCMCの勉強はどこ行ったゴルァとか怒られるとアレなんですが、先にツールの使い方覚えてしまおうと思ってStanで簡単な練習をやってみました。ちなみに参考にした資料はこちら。 Stanチュートリアルの資料を作成しました。 - Analyze IT. StanTutorial …

Rで季節変動のある時系列データを扱ってみる

Rで計量時系列分析シリーズでだいぶ時系列データの話をしてきたわけですが、最近個人的に季節変動のあるデータを扱うケースが増えてきたので、備忘録的にまとめてみようかなと。 一般に、webデータサイエンスの領域で季節変動というと業種や領域にもよるもの…

第30回データマイニング+WEB@東京(#TokyoWebmining 30th)でお話してきました

タイトルを読んで字の如く、昨日10/19(土)開催のこちらの勉強会でお話してきました。 第30回 データマイニング+WEB@東京( #TokyoWebmining 30th)−機械学習活用・マーケティング 祭り− を開催しました - hamadakoichi blog TokyoRの時と同様、いつもTwitte…

{Rcpp}を入れる時はシステム内に既にあるgccに注意

最近こんな素晴らしい勉強会があったと知りまして。主催は7月の1ヶ月間で何故か3回も一緒に飲んだこの人。 第1回BUGS/Stan勉強会を開催しました 元々WinBUGSは{R2WinBUGS}経由で使っていたんですが、やっぱり{Rcpp}経由でC++コンパイラで高速で走るStan良さ…

『とある弁当屋の統計技師(データサイエンティスト)』はむしろマンガにした方が良かったかも

先日Amazonから届いて読了したので、Twitterでも公言していた通り書評をやってみようと思います。RMeCabやその他R関連書籍多数でお世話になっている方も多いであろう、石田基広先生の新刊書です。 とある弁当屋の統計技師(データサイエンティスト) ―データ分…

「使い分け」ではなく「妥当かどうか」が大事:重回帰分析&一般化線形モデル選択まわりの再まとめ

先日の記事はおかげさまで好評をいただいたんですが、勉強中の身で教科書を確認せずに書いたこともあり多数ツッコミをいただきました。ツッコミをいただけるというのはもちろん大変良い勉強の機会になるということで*1、今回もひとしきり勉強してみました。 …

今さら人に聞けない「重回帰分析の各手法の使い分け」

(※※※続編記事書きました→「使い分け」ではなく「妥当かどうか」が大事:重回帰分析&一般化線形モデル選択まわりの再まとめ) 今ちょうどadtech tokyo 2013の会期中で、職場からも近い&会社から行ってこいという指示が出たということで僕も色々セッション…

ディスプレイ広告のクリック数改善のためのデザイン最適化に、ポアソン分布 / 負の二項分布によるGLMを使ってみる

これはディスプレイ広告に限った話ではないと思うんですが、あるPC / スマホ上の何かしらのクリエイティブに対するクリック数がそのデザインの良し悪しによって左右されるということは、web業界ではよく知られているかと思います。 そういう場合「どんなデザ…

Rで機械学習するならチューニングもグリッドサーチ関数orオプションでお手軽に

ちょっと調べてみたらタイトルの件について言及してる記事があまり多くなかったので、ざっくり書いてみます。なお、この記事はid:shakezoさんの 実務でRandomForestを使ったときに聞かれたこと へのオマージュです。というか、実は僕もこの記事を読んでから…

第33回TokyoRでトークしてきました

前々から参加してみたいと思っていたTokyoRですが、ついに昨日の第33回に参加してきました。ちなみに初登壇のおまけつき。 Rで計量時系列分析~CRANパッケージ総ざらい~ from Takashi J Ozaki 正直言って詰め込み過ぎた感ありありなんですが、Rで計量時系列…

何も考えずに線形回帰すると怖いので、計量時系列分析でダメ押ししてみる

何気なく読んでいて、途中で「?」と思った記事がありました。 ITエンジニアのためのデータサイエンティスト養成講座(5):「ビールと紙おむつ」のような相関関係を探る分析手法にはどんなものがある?――データ分析方法についての検討 (1/5) 何をやっている…

Rで計量時系列分析:状態変化を伴うモデル(閾値モデル、平滑推移モデル、マルコフ転換モデル)

前回の記事までは多変量時系列モデルとしてのVARモデルを扱ってきました。今回は一旦このシリーズの最終回ということで、元の単変量時系列モデルに戻って「状態変化を伴うモデル」を扱ってみようと思います。 ということでもはや毎回恒例になってますが、使…

『データサイエンティスト養成読本』はゼロからデータサイエンティストを目指す人なら絶対に読むべき一冊

執筆陣12人中8人が直接の知人友人というこの新刊書でございますが。 データサイエンティスト養成読本 [ビッグデータ時代のビジネスを支えるデータ分析力が身につく! ] (Software Design plus)作者: 佐藤洋行,原田博植,下田倫大,大成弘子,奥野晃裕,中川帝人,…

Rで計量時系列分析:単位根過程、見せかけの回帰、共和分、ベクトル誤差修正モデル

前回の記事ではVARモデルに基づく様々な計量時系列分析手法を取り上げました。今回はいよいよ現実世界の時系列データを扱う上では避けて通れない、単位根過程とそれにまつわる様々な問題とその解決策について触れてみようと思います。 ということでもはや毎…

なぜ項目ごとに単純な集計をするより、多変量解析(重回帰分析)をした方が正確な結果を返すのか

ちょっと前の記事(単純な集計とデータサイエンスによる分析とで結果が食い違うかもしれない3ケース)に裏先生からツッコミを頂き、慌てて学部1年生の頃の教科書を開いて復習しまして。。。いやー、忘れてることが多過ぎて大変(汗)。知るは一時の恥という…

単純な集計とデータサイエンスによる分析とで結果が食い違うかもしれない3ケース

一般に、データ分析の大半はそれほど高度なテクニックの類を必要としないものです。僕も常日頃から口に出して言うことが多いんですが、「統計学だの機械学習だのの出番なんてそもそも少なくて当たり前」。工数もかかるし、できればやらない方が良いです。ぶ…

Rで計量時系列分析:VARモデルから個々の時系列データ間の因果関係を推定する

前回の記事ではVARモデルの基礎までを取り上げました。ということで、今回はVARモデルに基づいて異なる時系列同士の因果関係を推定する3つの手法について取り上げてみようと思います。 ということで毎回毎回しつこいですが、使用テキストはいつもの沖本本で…

Rで計量時系列分析:VARモデルの基礎(多変量時系列モデル)

前回の記事では単変量の時系列までを扱いました。今回は多変量(ベクトル)時系列を記述するVARモデルとその周辺のポイントを取り上げます。 ということでしつこいですが、使用テキストはいつもの沖本本です。 経済・ファイナンスデータの計量時系列分析 (統…