Slide 1

Slide 1 text

Learning Classifiers from Only Positive and Unlabeled Data Charles Elkan, Keith Noto 高柳慎一 @_stakaya 論文読んだ

Slide 2

Slide 2 text

要約 • こういう状況における学習を考えたい 2 いつもの2値クラス分類 Positive and Unlabeledの2値クラス分類

Slide 3

Slide 3 text

INTRODUCTION • 2値クラス分類には通常、正例(y=1)と負例 (y=0)があると仮定して計算を行う • 負例ではなくUnlabeledの場合を考えたい –Unlabeledの中には正負両方のデータが存在 • 論文中ではあるタンパク質や遺伝子がDBに含 まれるべきか否かを例示 –負例はそもそもDBにない&(未知の)DBにない正例も 存在 3

Slide 4

Slide 4 text

INTRODUCTION • 仮定 –ラベル付きのデータはy=1のデータからランダム選出 • 欠損データの文脈におけるMAR(Missing At Random)に近い考え • ラベル付きの学習器から通常の(古典的な)学 習機をどう構築するかという問題を考える 4

Slide 5

Slide 5 text

簡単だが強力な定理 5 At Random仮定 ベイズの定理 ラベルありなしの予測モデル ∝ 古典的な予測モデルの確率 あとは、p(s=1|y=1)をどう出すか考えればおk

Slide 6

Slide 6 text

• :データセットの全体(要素数m) • :ラベル付きのデータの全体(要素数n) –Vの部分集合であり、y=s=1のものの全て • の推定量eはg(x)という学習器 を使って以下のように書ける(証明次ペー ジ) 6 を見積もりたい

Slide 7

Slide 7 text

を見積もりたい • g(x)=p(s=1|x)は… 7 yによる周辺化

Slide 8

Slide 8 text

1. ラベル付きのデータから を学習 2. これを使って を出す 3. このe1がp(s=1|y=1)の推定量になっている 4. 以下の関係式から をだす 8 結局何なんでしたっけ?

Slide 9

Slide 9 text

結局何なんでしたっけ? • 右を解くと、(本当はyに関するデータすらなかった)左 が自ずと解ける 9 いつもの2値クラス分類 Positive and Unlabeledの2値クラス分類

Slide 10

Slide 10 text

やってみる 10 # 適当なデータの作成 positive <- matrix(rnorm( 500*2, mean=2), ncol=2) negative <- matrix(rnorm(1000*2), ncol=2) # 本当は500個あるPositiveデータのうち100個(20%)しか見えないとする n <- 100 is <- sample(1:500, n) # ラベル付き&ラベルなしでの学習 m1 <- glm(y ~.,family=binomial(link='logit'), data=make_data(positive[is,], rbind(positive[(1:500)[-is],], negative))) # (本当は見えない)真のデータでの学習 m2 <- glm(y ~.,family=binomial(link='logit'), data=make_data(positive, negative)) p1 <- predict(m1, type="response") p2 <- predict(m2, type="response") # 論文のc、20%=100/500に近い(0.1727) sum(p1[1:n])/n # モデルから出した確率の補正(これもc0.2008) sum(p1[1:n])/sum(p2[1:n])

Slide 11

Slide 11 text

雑なデータ生成部分 11 # モデル用のデータ生成コード make_data <- function(p, n) { df <- data.frame(rbind( cbind(1, p), cbind(0, n) )) colnames(df) <- c("y", "x1", "x2") df$x12 <- (df$x1)^2 df$x22 <- (df$x2)^2 df } • 特徴量は論文にあわせてある(2乗の項)

Slide 12

Slide 12 text

ラベルが無い時にy=1な確率 12 ベイズの定理 p(s=1) = 1-p(s=0) c=p(s=1|y=1), cの定義 さっき証明した奴 整理

Slide 13

Slide 13 text

適当な関数h(x,y)の期待値も計算できる 13 ベイズの定理で確率をばらす 愚直にΣをばらす 〜(標本平均として)

Slide 14

Slide 14 text

まとめ • ラベル付きの学習器から通常の(古典的な)学 習機をどう構築するかという問題を考えた • 論文には –P(s=1|y=1)に対する別な推定量(e2, e3) –実データでの効果比較(SVMより高パフォーマンス なんかも載ってます 14