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

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

異常検知に用いられる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とかにすると大半が陰性ということになるようです。

続きを読む

Rで異常検知(3): 非正規データからの異常検知(カーネル密度推定・EMアルゴリズム・K-means・1クラスSVM)

(注:ただの備忘録ゆえ、ほぼ確実に後で追記が出る見込みです)

今回はコロナ社井手本の第3章を取り上げます。

とは言っても全部丸写しするのはさすがに問題があるので、個人的に興味のあるトピックスだけを取り上げて、なおかつあくまでも個人的な備忘録として記する程度に留めておきます。本格的に勉強したい方はちゃんとコロナ社井手本をお求めの上ご自身で独学するようにして下さい。


ということで、今回個人的に取り上げるのは第3章の中のカーネル密度推定とクラスタリングSVMの箇所です。なおコロナ社井手本ではここでEMアルゴリズムそのものの説明もなされていますが、EMアルゴリズム自体はこのブログでも一度取り上げているので既知のものとしてこの記事では取り扱います。

ただし、個人的にはコロナ社井手本p.71に載っている混合モデル+EMアルゴリズムの簡単な実践例は割と親切で良いというか、多分知っている限りで最も分かりやすいEMアルゴリズムの解説だと思うので、EMアルゴリズム自体が初見という人はそこの前後の箇所をよく読んで勉強してみるのをお薦めいたします。少なくとも僕には非常に良い復習になりました。


ちなみに今回の記事はちょっと色々手が回らなかったのもあって結構手抜き気味です。後で追記の形で勉強し直した結果などが加わる可能性がありますので、どうしても気になるという方は後ほど改めてご覧ください。。。

続きを読む

論文メモ:Empirical assessment of published effect sizes and power in the recent cognitive neuroscience and psychology literature (Szucs & Ioannidis, PLoS Biol, 2017)

以下のメタアナリシス論文がしばらく前に話題になっていました。

このようなメタアナリシスを紐解くことで検定力・効果量がどういうものかという理解も進むのではないかと思われますので、以前の機械学習系論文の輪読まとめと同様に全引用or全訳にならない程度にまとめてみることにします。また斜め読みに近いまとめなので、間違っているところがチラホラあるかと思います。お気付きの際はコメント欄でも何でも良いのでご指摘下されば幸いです。

続きを読む