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.

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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])

    View Slide

  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乗の項)

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide