パターン認識 第一章

   @ kingqwert
機械学習勉強会@東大 概要
• 目的
 – 機械学習の知識習得
 – Rによる実装の確認

• 期間
 – 2013/2 中に全て終わらせる
 – その後は、PRMLにまた別メンバーで移るかも。

• 教科書・参考書
 – 教科書
   • Rで学ぶデータサイエンス       「パターン認識」
 – 参考書
   • Rで学ぶデータサイエンス       「マシーンラーニング」
   • PRML 上・下
   • Dropboxにupした資料たち
下準備
• Rについて
   – インメモリであることの限界
   – Rstudio
   – Sublime text2

• プレゼンに関して
  – Power PointかBeamerでお願い!
  – パワポで数式書くときはTeXclipがオヌヌメ
  – ソースコードはハイライトしてくれると嬉しい

• その他の解析便利グッズ
  – UNIX系こまんど
  – SQL
  – Hadoop, Mahout, Hive
ソースコードのハイライト
• 手順は至って簡単、

1. 色づけしたいコードをGistで作成(ものに
   よってはPrivateにしておく)(アカウン
   ト作成不要)
2. Gistからコピーして、パワーポイントで
   まずはWordに貼る。
3. 次に「形式を選択して貼り付け」で
   「HTML形式」で貼る
では、始めます
Notations 1

• 教師付き学習 (supervised learning) と、教師無
  し学習 (unsupervised learning)
  – 入力データが与えられたとき、これに対する出力を
    正しく予測することが目的→教師あり
  – 入力データだけが与えられ何らかの基準で最適化→教
    師なし
    • クラスター分析、主成分分析、ベクトル量子化、自己組織化
      マップ、強化学習
Notations 2
• 回帰問題
 – Def: 実数値を予測する教師つき学習

• 分類問題
 – Def: 離散的な出力を持つ条件付き確率分布を推定する問題


• わかりやすく言えば、
 – 出力   実数値∈R            「回帰」
 –         離散値、出力の取りうる集合か : 2クラ
   ス分類:+1 と -1 の2値や多クラス分類:{1,2, ...,C}のC通り
                「分類」
誤り率



• 超簡単
• 要は対角線部分
                  予測値

              1         2   3
      実
      測   1
      値
          2
          3
誤り率のダメさ
• サンプルの偏りに全く反応できないというダメっぷり

• 具体的には
 – 患者の1%しかかからない病気に対して
 – 全員陽性である!と主張しても
 – 正答率99%!


• これアレだね。なんか他の考えよう。
Cross validation (交差検証法)

• 全体を K 等分し、 (k-hold)
   – そのうち K-1 個を訓練用に
   – 1個を評価用に使う
を K 回繰り返し、その平均的な性能を測る

•       、性能を測る指標として、 具体的
                   いか
    – 教師無し学習
       • (テスト)対数尤度
    – 教師付き学習
       • 正解率、AUC
RでCV
Type 1 and Type 2 Error
                                • Type1 =αエラー
              計測値               • Type2 =βエラー

                                • 仮説検定では
             True      False      – 特異度: 1-α
                                  – Power: 1-β

            真陽性 TPR   偽陽性 FPR
    True    感度        Type 1
                                • 「ない傾向をあるとする
予                                 誤り」 =αエラー(P値、
測                                 有意水準)
値
            偽陰性 FNR   真陽性 TNR
    False   Type 2    特異度       • 「ある傾向をないとする
                                  誤り」 =βエラー
ROC curveとAUC(とc統計量)
• ROC curve
   – 縦軸:TPR (真陽性)
   – 横軸: 1-TNR =FPR (偽陽性)

• AUC
   – ROC curveの下の部分の面積 ∈[0.5 , 1]

• c統計量
   – ほとんど、AUCと同じ。
      • Logistic回帰の時だけ、c統計量っていうみたい
Rコード
• ぶっちゃけ、AUCやROC曲線書くpackageあ
  るのでそっちを使えばおk
 – Packages: Epi, ROCR, pROC etc…


• 難しそうなトコだけ。。。
 y <- match(y,levels(factor(y)))*2-3
 auc <- mean(outer(F[y==1],F[y==-
 1],function(x,y){x>y}))
match 関数 (資料)
seqA <- c("ATG", "GC", "AT", "GCGC")
seqB <- c("CGCA", "GC", "AT", "AT", "ATA")

#seqAのうち「GC」と完全マッチする要素
match("GC", seqA) #matchの場合は最初から最後まで同じで
あればマッチする
[1] 2
grep("GC", seqA)   #grepの場合はGCが含まれていればマッ
チする
[1] 2 4
grep("^GC$", seqA) #grepの正規表現を利用してmatchと同
じ機能を実現
[1] 2
適合度と再現度
• ちょろい
                計測値

             True      False

            真陽性 TPR   偽陽性 FPR   適合率: Tと予測したうちの
予   True    感度        Type 1    実際Tの割合
測
値

            偽陰性 FNR   真陽性 TNR
    False   Type 2    特異度

            再現率: 実際にTであるうちのTと予測
            できた割合
F値
• かなり使わない

Rで学ぶデータサイエンス第1章(判別能力の評価)

  • 1.
  • 2.
    機械学習勉強会@東大 概要 • 目的 – 機械学習の知識習得 – Rによる実装の確認 • 期間 – 2013/2 中に全て終わらせる – その後は、PRMLにまた別メンバーで移るかも。 • 教科書・参考書 – 教科書 • Rで学ぶデータサイエンス 「パターン認識」 – 参考書 • Rで学ぶデータサイエンス 「マシーンラーニング」 • PRML 上・下 • Dropboxにupした資料たち
  • 3.
    下準備 • Rについて – インメモリであることの限界 – Rstudio – Sublime text2 • プレゼンに関して – Power PointかBeamerでお願い! – パワポで数式書くときはTeXclipがオヌヌメ – ソースコードはハイライトしてくれると嬉しい • その他の解析便利グッズ – UNIX系こまんど – SQL – Hadoop, Mahout, Hive
  • 4.
    ソースコードのハイライト • 手順は至って簡単、 1. 色づけしたいコードをGistで作成(ものに よってはPrivateにしておく)(アカウン ト作成不要) 2. Gistからコピーして、パワーポイントで まずはWordに貼る。 3. 次に「形式を選択して貼り付け」で 「HTML形式」で貼る
  • 5.
  • 6.
    Notations 1 • 教師付き学習(supervised learning) と、教師無 し学習 (unsupervised learning) – 入力データが与えられたとき、これに対する出力を 正しく予測することが目的→教師あり – 入力データだけが与えられ何らかの基準で最適化→教 師なし • クラスター分析、主成分分析、ベクトル量子化、自己組織化 マップ、強化学習
  • 7.
    Notations 2 • 回帰問題 – Def: 実数値を予測する教師つき学習 • 分類問題 – Def: 離散的な出力を持つ条件付き確率分布を推定する問題 • わかりやすく言えば、 – 出力 実数値∈R 「回帰」 – 離散値、出力の取りうる集合か : 2クラ ス分類:+1 と -1 の2値や多クラス分類:{1,2, ...,C}のC通り 「分類」
  • 8.
    誤り率 • 超簡単 • 要は対角線部分 予測値 1 2 3 実 測 1 値 2 3
  • 9.
    誤り率のダメさ • サンプルの偏りに全く反応できないというダメっぷり • 具体的には – 患者の1%しかかからない病気に対して – 全員陽性である!と主張しても – 正答率99%! • これアレだね。なんか他の考えよう。
  • 10.
    Cross validation (交差検証法) •全体を K 等分し、 (k-hold) – そのうち K-1 個を訓練用に – 1個を評価用に使う を K 回繰り返し、その平均的な性能を測る • 、性能を測る指標として、 具体的 いか – 教師無し学習 • (テスト)対数尤度 – 教師付き学習 • 正解率、AUC
  • 11.
  • 12.
    Type 1 andType 2 Error • Type1 =αエラー 計測値 • Type2 =βエラー • 仮説検定では True False – 特異度: 1-α – Power: 1-β 真陽性 TPR 偽陽性 FPR True 感度 Type 1 • 「ない傾向をあるとする 予 誤り」 =αエラー(P値、 測 有意水準) 値 偽陰性 FNR 真陽性 TNR False Type 2 特異度 • 「ある傾向をないとする 誤り」 =βエラー
  • 13.
    ROC curveとAUC(とc統計量) • ROCcurve – 縦軸:TPR (真陽性) – 横軸: 1-TNR =FPR (偽陽性) • AUC – ROC curveの下の部分の面積 ∈[0.5 , 1] • c統計量 – ほとんど、AUCと同じ。 • Logistic回帰の時だけ、c統計量っていうみたい
  • 14.
    Rコード • ぶっちゃけ、AUCやROC曲線書くpackageあ るのでそっちを使えばおk – Packages: Epi, ROCR, pROC etc… • 難しそうなトコだけ。。。 y <- match(y,levels(factor(y)))*2-3 auc <- mean(outer(F[y==1],F[y==- 1],function(x,y){x>y}))
  • 15.
    match 関数 (資料) seqA<- c("ATG", "GC", "AT", "GCGC") seqB <- c("CGCA", "GC", "AT", "AT", "ATA") #seqAのうち「GC」と完全マッチする要素 match("GC", seqA) #matchの場合は最初から最後まで同じで あればマッチする [1] 2 grep("GC", seqA) #grepの場合はGCが含まれていればマッ チする [1] 2 4 grep("^GC$", seqA) #grepの正規表現を利用してmatchと同 じ機能を実現 [1] 2
  • 16.
    適合度と再現度 • ちょろい 計測値 True False 真陽性 TPR 偽陽性 FPR 適合率: Tと予測したうちの 予 True 感度 Type 1 実際Tの割合 測 値 偽陰性 FNR 真陽性 TNR False Type 2 特異度 再現率: 実際にTであるうちのTと予測 できた割合
  • 17.