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

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

RにTensorFlow + Kerasを実装した{keras}パッケージがやって来たので試してみた(追記2件あり)

Python側でのTensorFlowの隆盛を他所に、R側では{tensorflow}も使いにくいし*1これはPythonistaに転生しなければならんのかなぁ。。。ということを思っていたら、出ました。あのKerasのRパッケージです。

インストール手順は普通にhttps://rstudio.github.io/keras/に書いてある通り、以下の通りRコンソールから打てばおしまいです。

devtools::install_github("rstudio/keras")
library(keras)
install_tensorflow()

ということで、早速色々試してみようと思います。

*1:自社のフレームワークに対してあるまじき発言ですが笑

続きを読む

企業に移って5年が経ちました

月日が経つのは早いもので、かつてボンクラ研究者だった僕が企業(そしてインダストリー*1)に移ってからちょうど今日で5年が経ちました。インダストリーに移ってからのこの5年間で様々なことを体験し、あるいは見聞し、あるいは決断したりしてきたわけですが、良い区切りなので自分にとってのマイルストーンとするためにも、ここでこれまでの5年間を振り返ってみようと思います。

*1:ここでは「企業社会」「産業界」ぐらいの意味です

続きを読む

異常検知に用いられる1クラスSVMの決定境界をパラメータを変えながら描いてみた

これは前回の記事の補足です。

もう見たまんまで「そもそも1クラスSVMの決定境界を具体的に描画してみたらどうなるんだろう?」という興味を持ったので、漫然と2次元でやってみます。前回の記事同様、1クラスSVMの推定に用いるのは{e1071}パッケージのsvm関数で、type = 'one-classification'と指定した場合。カーネルはガウシアンです。


なお{e1071}のvignetteにも書かれていますが、1クラスSVM ( \nu-SVM)の主問題をおさらいすると以下の通りです。

 {argmin}_{\alpha} ~ \frac{1}{2} \alpha^T \mathbf{Q} \alpha
 s.t. ~ 0 \leq \alpha_i \leq \frac{1}{\nu l}, i = 1, \cdots, l
 where ~ \mathbf{e}^T \alpha = 0

 \nuを大きく(小さく)することで、 \alphaの動ける範囲が狭く(広く)なることが見て取れます。一般に \nuの値は学習データそのものに分類器を適用した場合の陰性率に近くなるらしいので、例えば0.01とかにすると陰性率が1%、逆に0.99とかにすると大半が陰性ということになるようです。

続きを読む