Upgrade to Pro — share decks privately, control downloads, hide ads and more …

論文読んだ「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

More Decks by Shinichi Takayanagi

Other Decks in Technology

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