論文読んだ「Learning Classifiers from Only Positive and Unlabeled Data」

論文読んだ「Learning Classifiers from Only Positive and Unlabeled Data」

ELKAN, Charles; NOTO, Keith. Learning classifiers from only positive and unlabeled data. In: Proceedings of the 14th ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2008. p. 213-220.

8a7e83d2e447783ab6d824f553429a09?s=128

Shinichi Takayanagi

April 26, 2018
Tweet

Transcript

  1. Learning Classifiers from Only Positive and Unlabeled Data Charles Elkan,

    Keith Noto 高柳慎一 @_stakaya 論文読んだ
  2. 要約 • こういう状況における学習を考えたい 2 いつもの2値クラス分類 Positive and Unlabeledの2値クラス分類

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

    –負例はそもそもDBにない&(未知の)DBにない正例も 存在 3
  4. INTRODUCTION • 仮定 –ラベル付きのデータはy=1のデータからランダム選出 • 欠損データの文脈におけるMAR(Missing At Random)に近い考え • ラベル付きの学習器から通常の(古典的な)学

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

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

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

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

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

  10. やってみる 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])
  11. 雑なデータ生成部分 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乗の項)
  12. ラベルが無い時にy=1な確率 12 ベイズの定理 p(s=1) = 1-p(s=0) c=p(s=1|y=1), cの定義 さっき証明した奴 整理

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

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

    14