パターン認識 第01章-判別能力の評価
TRANSCRIPT
Rで学ぶデータサイエンス5パターン認識
第1章 判別能力の評価
2011/03/05
TwitterID:sleipnir002
中川帝人
この章の目的
• キーワード–判別問題
–誤り率
–予測誤差と訓練誤差
– K交差検証法
– ROC曲線
–適合率、再現率、F値
パターン認識を学ぶにあたって必要な概念。特にその結果の評価方法について。
X
問題設定
• テストデータ D:データとラベルの組み合わせの集合
• 入力された特徴量 X:ベクトル、スカラー
• 判別器 F(X):Xを受け取る関数、Yを出力
• 出力Y:値のセット、+1/-1
例:スパムメールの判別問題
パターン認識で扱う問題=判別問題判別問題:「白黒はっきりつける」問題
No Yes
F(X)e.g.SVM
Y=-1→No
Y=+1→ Yes
)},),.....(,{( 11 nn yxyxD
データを基に判別器を構築
誤り率
判別器の性能を評価する指標。予測が誤っている割合。
y
y
y yYFRXYXF}1,1{
)),(Pr())(Pr(
yと判断されるX でもYはyじゃない
2F
noyes
4F
yesno
4F
yesyes
22
6
誤り率
12F
nono
予測誤差:未知のデータ訓練誤差:学習データ
訓練誤差と予測誤差
• 訓練誤差:判別器を構成するための学習データに対する誤り率
• 予測誤差:未知のデータに対する誤り率
•予測誤差を知りたいが、訓練誤差しかわからない。•(訓練誤差)と(モデルの複雑度)はトレードオフの関係にある
K交差検証法
データセットDをK分割して、K回判別器を構成して、予測誤差を推定する方法。ローカルフィッティングを避けることができる。
データセット学習用
推定用
学習用
推定用
学習用
推定用
それぞれの誤り率の平均=予測誤差の推定値
)(1 xF )(2 xF )(3 xF
ROC曲線の説明の前に
• データに偏りが存在する場合に問題が発生する。– メールデータの99%がスパムでない→必ずスパムでないという判別器は99%の正解率を誇る。
• パラメータを用意して、判別器を調整する。– 一般に2値判別問題では判別関数
Fの正負を使って、判別結果を返す。– そこで、パラメータCとの差分を取り、どちらかの結果に傾きやすくする。
⇒Cの値をどのくらいに設定すればよいか?
誤り率だけでは、判別器を評価できない場合がある。
))((,1
))((,1))((
CXF
CXFCXFSgn
C+1
-1
TPRとFPR
TPR(陽性率):興味のあるクラスに関して、正しく判別できた割合FPR(偽陽性率):興味のないクラスに関して、正しく判別できなかった割合
noyes
yesno
yesyes
nono
TPR
Y=+1 Y=-1
F(X)>C
F(X)<=C
)1|)(Pr( YCXF
)1|)(Pr( YCXF
FPR
•興味のあるクラス+1とする。
•偽陽性率を抑えたまま、陽性率を上げたい。
ROC曲線
• (0,0)、(1,1)を結ぶ
• 直角が理想的
• 対角線だと完全にランダム
• 傾きは常に正
• 横軸との面積=AUC、判別器の指標となる。
2値判別に関して、判別器のパラメータCを-∞から∞まで動かした時の、(FPR(C),TPR(C))のプロット。
FPR
TPR
ROCR
> library(ROCR)> data(ROCR.simple)> pred <- prediction(ROCR.simple$predictions,ROCR.simple$labels)
> perf <- performance(pred, measure = "tpr", x.measure = "fpr")
> plot(perf, col=rainbow(10))
判別結果の可視化用パッケージROCRを使ってみた。
適合率VS再現率、F値
適合率p:検索結果の精度、どれだけ正解しているか再現率r:検索結果の抽出率、どれだけ正解をもってこれたか
ドキュメントの集合(例、WWW) 検索結果
)0,()0,(1
)0,(2
FFPRFTPR
FTPRF
)0,()0,(
)0,(
FFPRFTPR
FTPRp
)0,(FTPRr
P=2/3
r=2/4
EOF