読者です 読者をやめる 読者になる 読者になる

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

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

データ前処理コンペサイト"Struggle"を開設しました

機械学習コンペと言えばKaggleというのはもはや世の中の常識(一部誇張表現あり)になりつつありますが、「データ分析プロジェクトの8割が前処理」という現実を目の当たりにし続けている身としては「そんなRDBSにデータが入った先の綺麗なところで戦うのもあ…

データサイエンティストもしくは機械学習エンジニアを目指すならお薦めの初級者向け6冊&中級者向け15冊(2017年春版)

(Photo credit: https://pixabay.com/en/books-door-entrance-italy-colors-1655783/)この記事は一昨年のこの書籍紹介記事のアップデート版です。相変わらず毎月のように新刊書が出続けるデータ分析業界ですが、良い本が増え続けてきたせいでついに初級者向…

メモリに乗り切らない大容量データ相手にL1正則化回帰を回せる{biglasso}パッケージを試してみた

今回は小ネタ。ボサーっとCRAN Task View: Machine Learningを眺めていたらこんなものを見つけました。これ、カラクリは簡単で単にR側にはデータのポインタしか渡さず、データの実体はストレージからオンライン(ストリーミング)で読み込むようにしていると…

Rで異常検知(2): 正規分布に従うデータからの異常検知(ホテリング理論・MT法)

さて、気紛れから始まったこのシリーズですが。今回は第2章を取り上げます。入門 機械学習による異常検知―Rによる実践ガイド作者: 井手剛出版社/メーカー: コロナ社発売日: 2015/02/19メディア: 単行本この商品を含むブログ (4件) を見る多変量かつ非正規デ…

Rで異常検知(1): これまで自分がやってきたことのおさらい

ぶっちゃけ今更感がなくもないんですが、実はこれまで自分ではほとんど異常検知・変化検知をゴリゴリやったことがなかったなぁと思ったのでした。きっかけは、時々色々な手法のテストに使っているこのUCI機械学習リポジトリのデータセット。 UCI Machine Lea…

実務の現場においてモデリング(統計学的・機械学習的問わず)を行う上での注意点を挙げてみる

気が付いたら僕がデータ分析業界に身を置くようになってそろそろ5年近くになるんですね*1。この5年間の間に色々勉強したり業界内で見聞してきた経験をもとに、「実務の現場においてモデリングを行う上での注意点」についてだらだらと書いてみようと思います。…

統計的因果推論(5): Platt's scalingで機械学習分類器による傾向スコアを調整してみる

この記事は以下の記事の続きです。機械学習分類器で算出した傾向スコアを調整する話ですが、最後に課題として残ったのがprobability calibrationによる実践。探してみると前回の記事でもやったisotonic regressionとか色々出てくるんですが、もう一つ出てく…

『コンピューターで「脳」がつくれるか』は人工知能に興味のある人なら知識ゼロからでも読める入門書

先日Japan.R 2016に大学時代の先輩*1を案内がてら参加したんですが、休憩時間に技術評論社のTさんがご恵贈くださったのがこちらの本。コンピューターで「脳」がつくれるか作者: 五木田和也,青木健太郎出版社/メーカー: 技術評論社発売日: 2016/09/27メディア…

統計的因果推論(4): 機械学習分類器による傾向スコアを調整してみる

この記事は以下の記事の続きです。ご覧の通り、機械学習分類器3種で傾向スコアを算出してみたらおかしな結果になったわけです。この点について、実は後日2点ほどコメントをいただきました。1つはブコメで、統計的因果推論(3): 傾向スコア算出を機械学習に置…

Deep Learningで遊ぶ(3): LSTM-RNNで夏目漱石っぽい文章の生成にトライしてみる

そう言えばこのシリーズ長らく放置してました(汗)。いよいよこのブログもネタ切れが著しくなってきたので、今更そんな古いネタやるのかよと怒られるのを承知で「単に自分がやってみたかったから」というだけの理由で今更感のあるネタをやることにします。…

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

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

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

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

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

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

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

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

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

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

KerasをTensorFlowバックエンドで試してみた:「もっと多くの人に機械学習とDeep Learningを」という時代の幕開け

(左:Keras、右:MXnet)Kaggle Masterの間ではMXnetよりさらに人気なDeep Learningフレームワークというかラッパーが、@fchollet氏の手によるKeras。 Keras Documentation 結構苦心したのですが、ようやく手元のPython環境で走るようになったので、試して…

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

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

「人工知能」ブームに乗り遅れた!という方々に捧げる人工知能(機械学習)まとめ記事

(Photo credit: A Health Blog via Visual Hunt / CC BY-SA) 「人工知能」ブームが本格化してまだほんの数ヶ月だと思うんですが、気がついたらTV含む大手メディアが皆こぞって毎日のように「人工知能」を取り上げ、あまつさえ政府や与党の諮問会議でまで「人…

「闇雲にPDCAサイクルを高速に回す」と場合によっては過学習して逆に怖いかもというお話

3年前にこんな話を書いたわけですが、皆さんご記憶でしょうか。 この当時は「平均への回帰」という言葉にその不毛さを託したわけですが、前回の記事に着想を得てもう少し今時っぽく論じることが出来るんじゃないかと思ったので、ちょっと書いてみようかと思…

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

今年の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の間では急速に人気が高まっているようで、最近になってだいぶバグフィックスが進んだらしいというの…

クラウド機械学習の進歩で「プラモデルのように機械学習システムが作れる」時代が到来しつつある

こんなブログ・プレスリリースが出ていました。TensorFlowベースで実装されたクラウド機械学習アプリケーション、"Cloud Machine Learning"だそうです。以前から既に取り沙汰されていたCloud Vision APIに加えて、Cloud Speech APIさらにはCloud Translate A…

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

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

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

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

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

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

データサイエンティストを目指すというかデータ分析を生業にするなら読んでおきたい初級者向け5冊&中級者向け12冊(2015年冬版)

(Photo via VisualHunt) 最近になってまた色々とデータサイエンティストを目指す人向けのお薦め書籍リストとか資料リストとかが出てきてるんですが、個人的には何かと思うところがあるので僕も適当にまとめておきます。偏りありまくり、完全に主観で決めたリ…

"Gradient Boosted Feature Selection" (Xu et al., KDD 2014) メモランダム

本日の輪読会で僕が担当した論文のメモランダムということで、置いときます。 概要 Gradient Boosted Feature Selection (Xu, Huang, Weinberger and Zheng, KDD 2014)タイトルが示すように特徴量選択をやりたいというのが第一のモチベーションで、これをgra…

2015年J1最終節の全てのチームの得点を予測せよ:Data League 2015年大会講評の補遺

先日こちらの学生データ分析コンペの表彰式に、プレゼンター&解説者として登壇してまいりました。正直言って、データを提供して下さったData Stadium社の皆様からも「これほどまでの結果になるとは」という感嘆の声が上がるほどハイレベルな戦いぶりで、参…

ヒトの直感的理解は単変量モデルまで、直感を超えたければ多変量モデルへ

ちょっと前に「ワインの味わいとデータサイエンス」というお題で話してきたわけですが。 実は「単変量モデルという名の還元主義」vs.「多変量モデルに基づくデータサイエンス」というテーマを一貫して置いていたのですが、あまりそこにスポットライトが当た…

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

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

データサイエンスでワインの味の評価を予測したい

Taste of Wine vs. Data Science from Takashi J OZAKI 先日、とある勉強会で話してきた内容がこちらです。ネタとしてはもう皆さんお分かりでしょうが、以前書いた記事の続きみたいなものです。 ある程度自動的にテイスティング・スコアが付けられれば、世の…

「統計学と機械学習の違い」はどう論じたら良いのか

何かこんなメディア記事が出ていたようです。 これを読んで色々な人がツッコミを入れまくっている模様ですが、この記事の不思議なところは「完全に間違った説明というわけでもないのに何故か(両分野に詳しい)誰が読んでも猛烈な違和感を覚える」ところなん…

『データサイエンティスト養成読本 機械学習入門編』ご恵贈いただきました

タイトルを読んで字の如しですが、前作同様に*1技評さんから正式発売日より前に見本冊子をご恵贈いただきました。 データサイエンティスト養成読本 機械学習入門編 (Software Design plus)作者: 比戸将平,馬場雪乃,里洋平,戸嶋龍哉,得居誠也,福島真太朗,加藤…

"A Safe Screening Rule for Sparse Logistic Regression" (Wang et al., NIPS2014) メモランダム

今日のうちのチームの輪読会で"A Safe Screening Rule for Sparse Logistic Regression" (Wang et al., NIPS2014)を読んできた*1ので、その時の資料をついでにこちらにもupしておきます。 なお、この論文の筆者のGitHubとかに実装上がってないかなーと思って…

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

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

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++ベー…

「人工知能に対する楽観的な妄想」はいつか来た道

こんな名文が話題になっていたようで。 何をもって知能とするか - murawaki の雑記 非常に面白い文章で、特に以下の下りは痛快だなと感心しながら読んでました。 2006 年頃、「現在の人工知能研究の先には新興宗教にはまる計算機が出てくる」というネタを思…

"Online Chinese Restaurant Process" (Liu et al., KDD 2014) メモランダム

先週のうちのチームの論文輪読会でこの論文を読んだので、その時用いた資料を一部改訂して上げておきます。いつも通り炎上ラーニング大歓迎*1なので、おかしなところがあったらどんどん突っ込んで下さると有難いです。 Online chinese restaurant process - …

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

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

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

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

同じデータセットに対するアプローチの違いから見る「データ分析のステージ」

追記 (2015/02/21) いくつか抜けてるところがあったなぁと思ったので、後から追記や加筆修正してみました。最初のオリジナル版から少し内容が変わっているところがありますがご了承ください。 ちょっと前の記事でこんなネタをやってみたわけですが。 UCI機械…

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

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

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

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

h2o.deeplearningでクリスマスツリー(のようなもの)を描く

R Advent Calendar 2014 (ATND)のクリスマス・イヴ担当ということで、クリスマスツリーを描いてみます。 R Advent Calendar 2014 : ATND まずは去年もやったSVMで、ついでにちょっとだけホワイト・クリスマス感を出してみた感じで。クリスマスツリーのデータ…

"Understanding Dropout" (Baldi, NIPS 2013) メモランダム

ちょっと今週は忙し過ぎて新しいことに取り組んでいる時間が1秒たりとも見つからないので、少し前にやった例の弊社分析チーム論文輪読会のネタをそのまま転載しておきますorz 元ネタはこちら。 Understanding Dropout ちなみに式を丸写しするのは面倒だった…

パッケージユーザーのための機械学習(11):番外編 - AdaBoost

このシリーズ記事、教師なし学習をあらかたやったので*1もういいかなと思ってたんですが、ひょんなことから取り上げ忘れてたものがあったなぁと思い出したのでサクッとやってみようと思います。 忘れていたのはAdaBoost。普段はほとんど使わないブースティン…

H2OのRパッケージ{h2o}でお手軽にDeep Learningを実践してみる(3):MNISTデータの分類結果を他の分類器と比較する

さて、折角Deep Learningなんて使うんだったらもうちょっと面白いデータでやってみようよ!ということで、多次元データの代表たるMNIST手書き文字データ*1を使って試してみようかと思います。 で、MNISTデータなんですが真面目に取ってこようとするとえらく…

H2OのRパッケージ{h2o}でお手軽にDeep Learningを実践してみる(2):学習データとパラメータを変えて試す

うっかりこのシリーズでJapan.Rで喋ることに決めてしまったせいで関係各方面からのプレッシャーを感じつつある今日この頃ですが。 Japan.R 2014 : ATND ともあれ一度乗ってしまった舟なので、このままだらだら{h2o}でDeep Learningというお題でちょっとシリ…