Upload
isao-takaesu
View
264
Download
0
Embed Size (px)
Citation preview
第5章
ロジスティック回帰とROC曲線:
学習モデルの評価方法
AISECjp 2016.11.04
Presented by Isao Takaesu
ロジスティック回帰?
(パーセプトロンと同じ)分類アルゴリズム
最尤推定法でパラメータを決定
LR & ROC
×:「このデータは t = 1 である」
〇:「t = 1 である確率は70%である」
AISECjp
5.1
分類問題への最尤推定法の適用
LR & ROC AISECjp
5.1.1 データの発生確率の設定
2種類のデータを分類する直線:f(x,y)
LR & ROC AISECjp
-30
-20
-10
0
10
20
30
40
-30 -20 -10 0 10 20 30 40
●●
● ●
●
●●
●
●
xx
xx
x
x
xx
xx
f(x,y) = 0 f(x,y) > 0
f(x,y) < 0
●:t = 1
x:t = 0
この方向にf(x,y)が
大きくなる
f 𝒙, 𝒚 = 𝒘𝟎 +𝒘𝟏𝒙 + 𝒘𝟐𝒚
5.1.1 データの発生確率の設定
LR & ROC AISECjp
データの属性が「t=1」である確率
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
-1 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
𝒂
𝜎 𝑎 =1
1 + 𝑒−𝑎
ロジスティック関数
5.1.1 データの発生確率の設定
LR & ROC AISECjp
点(x,y)で得られたデータの属性が・・・
𝑷 𝒙, 𝒚 = 𝝈(𝒘𝟎 +𝒘𝟏𝒙 + 𝒘𝟐𝒚)
𝟏 − 𝑷 𝒙, 𝒚
の確率:𝑡 = 1
の確率:𝑡 = 0
5.1.1 データの発生確率の設定
LR & ROC AISECjp
トレーニングセット で考える𝑥𝑛, 𝑦𝑛, 𝑡𝑛 𝑛=1𝑁
𝑷 𝒙𝒏, 𝒚𝒏の場合:
𝟏 − 𝑷 𝒙𝒏, 𝒚𝒏
𝑡𝑛 = 1
𝑡𝑛 = 0 の場合:
𝑷𝒏 = 𝑷 𝒙𝒏, 𝒚𝒏𝒕𝒏 𝟏 − 𝑷 𝒙𝒏, 𝒚𝒏
𝟏−𝒕𝒏
𝒙𝟎 = 𝟏, 𝒙𝟏 = 𝒙
𝑃𝑛 = 𝑃 𝑥𝑛, 𝑦𝑛𝑡𝑛 1 − 𝑃 𝑥𝑛, 𝑦𝑛
1−𝑡𝑛
5.1.1 データの発生確率の設定
LR & ROC AISECjp
を使うと・・・
の場合:𝑡𝑛 = 1
𝑡𝑛 = 0 の場合:
𝑷𝒏 = 𝑷 𝒙𝒏, 𝒚𝒏𝟏 𝟏 − 𝑷 𝒙𝒏, 𝒚𝒏
𝟎 = 𝑷 𝒙𝒏, 𝒚𝒏
𝑷𝒏 = 𝑷 𝒙𝒏, 𝒚𝒏𝟎 𝟏 − 𝑷 𝒙𝒏, 𝒚𝒏
𝟏 = 𝟏 − 𝑷 𝒙𝒏, 𝒚𝒏
𝑃𝑛 = 𝑃 𝑥𝑛, 𝑦𝑛𝑡𝑛 1 − 𝑃 𝑥𝑛, 𝑦𝑛
1−𝑡𝑛
5.1.1 データの発生確率の設定
LR & ROC AISECjp
𝑃 𝑥, 𝑦 = 𝜎(𝑤0 +𝑤1𝑥 + 𝑤2𝑦)
𝑷𝒏 = 𝒛𝒏𝒕𝒏 𝟏 − 𝒛𝒏
𝟏−𝒕𝒏
に、
を代入すると・・・
5.1.1 データの発生確率の設定
LR & ROC AISECjp
𝒛𝒏って?
5.1.1 データの発生確率の設定
LR & ROC AISECjp
𝒛𝒏とは 𝒛𝒏 = 𝝈 𝑾𝑻𝝋n
𝑾 =
𝒘𝟎𝒘𝟏𝒘𝟐
𝝋𝒏 =𝟏𝒙𝒏𝒚𝒏
トレーニングセットの全データを纏めると・・・
𝑷 =
𝒏=𝟏
𝑵
𝑷𝒏 =
𝒏=𝟏
𝑵
𝒛𝒏𝒕𝒏 𝟏 − 𝒛𝒏
𝟏−𝒕𝒏
𝝈(𝒘𝟎 +𝒘𝟏𝒙 + 𝒘𝟐𝒚)
5.1.2 最尤推定法によるパラメータの決定
LR & ROC AISECjp
確率Pを最大化するパラメータ「W」を求める
パーセプトロン :確率的勾配降下法
ロジスティック回帰:ニュートン・ラフソン法
𝑾𝒏𝒆𝒘 = 𝑾𝒐𝒍𝒅 − Φ𝑻𝑹Φ
−𝟏ΦT 𝒛 − 𝒕
5.1.2 最尤推定法によるパラメータの決定
LR & ROC AISECjp
の各成分
𝒕 =
𝒕𝟏⋮𝒕𝑵
Φ =𝟏 𝒙𝟏 𝒚𝟏⋮ ⋮ ⋮𝟏 𝒙𝑵 𝒚𝑵
𝒛 =
𝒛𝟏⋮𝒛𝑵
𝑾𝒏𝒆𝒘 = 𝑾𝒐𝒍𝒅 − Φ𝑻𝑹Φ
−𝟏ΦT 𝒛 − 𝒕
Rは、 を対角成分とした対角行列z𝒏 𝟏 − 𝒛𝒏
𝐑 = 𝒅𝒊𝒂𝒈 𝒛𝟏 𝟏 − 𝒛𝟏 , ⋯ , 𝒛𝑵 𝟏 − 𝒛𝑵
5.1.2 最尤推定法によるパラメータの決定
LR & ROC AISECjp
𝒕 =
𝒕𝟏⋮𝒕𝑵
Φ =𝟏 𝒙𝟏 𝒚𝟏⋮ ⋮ ⋮𝟏 𝒙𝑵 𝒚𝑵
𝒛 =
𝒛𝟏⋮𝒛𝑵𝐑 = 𝒅𝒊𝒂𝒈 𝒛𝟏 𝟏 − 𝒛𝟏 , ⋯ , 𝒛𝑵 𝟏 − 𝒛𝑵
定数のベクトル/行列
パラメータ「W」に依存( )𝒛𝒏 = 𝝈 𝑾𝑻𝝋n
5.1.2 最尤推定法によるパラメータの決定
LR & ROC AISECjp
を繰り返し計算し、確率Pを最大化
𝑾𝒏𝒆𝒘
𝑾𝒐𝒍𝒅
𝑾𝒏𝒆𝒘 = 𝑾𝒐𝒍𝒅 − Φ𝑻𝑹Φ
−𝟏ΦT 𝒛 − 𝒕
1. ⇒ 「z」と「R」を計算
2. 「z」と「R」を下記に代入
3. ⇒ ⇒「z」と「R」を計算
・・・
𝑾𝒐𝒍𝒅
𝑾𝒏𝒆𝒘
5.1.2 最尤推定法によるパラメータの決定
LR & ROC AISECjp
計算の打ち切り条件
変化分の大きさの2乗 < 修正前の大きさの2乗
𝑾𝒏𝒆𝒘 −𝑾𝒐𝒍𝒅𝟐
𝑾𝒐𝒍𝒅𝟐< 𝟎. 𝟎𝟎𝟏
𝑾𝒏𝒆𝒘
𝑾𝒐𝒍𝒅
𝑾𝒏𝒆𝒘 −𝑾𝒐𝒍𝒅
5.1.3 サンプルコードによる確認
LR & ROC AISECjp
パーセプトロン
vs
ロジスティック回帰
5.1.3 サンプルコードによる確認
LR & ROC AISECjp
パーセプトロンの結果
少し偏った位置に分割線がある
5.1.3 サンプルコードによる確認
LR & ROC AISECjp
ロジスティック回帰の結果
ほぼ中央部分に分割線がある
5.1.3 サンプルコードによる確認
LR & ROC AISECjp
パーセプトロン
全データが分類されるとWの更新を停止
ロジスティック回帰
全体的な確率を最大化する
5.2
ROC曲線による学習モデルの評価
LR & ROC AISECjp
なぜROC曲線で評価?
は確率が1/2になる点
この確率(境界)は適切か?
LR & ROC AISECjp
f 𝑥, 𝑦 = 0
ROC曲線を使うことで
最適な境界を求めることが可能
5.2.1 ロジスティック回帰の現実問題への適用
LR & ROC AISECjp
ウィルス感染検査の例
検査結果と感染/非感染の関係
-30
-20
-10
0
10
20
30
40
-30 -20 -10 0 10 20 30 40
●●
● ●
●
●●
●
●
xx
xx
x
x
xx
xx
●:感染
x:非感染
確率 80%
●
確率 50%
確率 20%
5.2.1 ロジスティック回帰の現実問題への適用
LR & ROC AISECjp
真陽性率と偽陽性率を使う
5.2.1 ロジスティック回帰の現実問題への適用
LR & ROC AISECjp
用語の定義
陽性 :発見したい属性を持つデータ(t=1)
陰性 :そうでないデータ(t=0)
真陽性:本当に陽性だったもの
偽陽性:本当は陰性だったもの
真陽性率:陽性データ全体での真陽性の割合
偽陽性率:陰性データ全体での偽陽性の割合
5.2.1 ロジスティック回帰の現実問題への適用
LR & ROC AISECjp
真陽性率
(TP率)
偽陽性率
(FP率)
偽陰性
(FN)
真陽性
(TP)
真陰性
(TN)
偽陽性
(FP)
1
0 0
1
陰性と判定
陽性と判定
真陽性率と偽陽性率の定義
5.2.1 ロジスティック回帰の現実問題への適用
LR & ROC AISECjp
真陽性率
(TP率)
偽陽性率
(FP率)
偽陰性
(FN)
真陽性
(TP)
真陰性
(TN)
偽陽性
(FP)
1
0 0
1
陰性と判定
陽性と判定
真陽性率と偽陽性率の定義
判定ライン
5.2.1 ロジスティック回帰の現実問題への適用
LR & ROC AISECjp
「判定ライン」の設定 ⇒ ROC曲線を使う
5.2.2 ROC曲線による性能評価
LR & ROC AISECjp
No. x y t P
1 24.43 6.95 1 0.98
2 8.84 11.92 1 0.91
3 18.69 -1.17 1 0.86
4 17.37 -0.07 1 0.86
5 4.77 11.66 1 0.85
6 0.83 10.74 0 0.73
7 1.57 8.51 1 0.69
8 10.07 -0.53 1 0.66
9 0.99 6.04 1 0.58
10 10.73 -4.88 0 0.53
11 11.16 -6.77 0 0.47
12 -11.21 14.64 0 0.46
トレーニングセットを確率順に並べたデータ
5.2.2 ROC曲線による性能評価
LR & ROC AISECjp
トレーニングセットを確率順に並べたデータ
P>1:全データは「陰性」
真陽性率=0, 偽陽性率=0
P>0.95:No.1は「陽性」
真陽性率=1/10, 偽陽性率=0
P>0.90:No.1~2は「陽性」
真陽性率=2/10, 偽陽性率=0
5.2.2 ROC曲線による性能評価
LR & ROC AISECjp
判定ラインの変更でTP率とFP率が変化する様子
真陽性率
(TP率)
偽陽性率
(FP率)
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
5.2.3 サンプルコードによる確認
LR & ROC AISECjp
ERR 9.0%の場合
5.2.3 サンプルコードによる確認
LR & ROC AISECjp
ERR 22.0%の場合
5.2.3 サンプルコードによる確認
LR & ROC AISECjp
箱の左上の角 ⇒ 理想の判定方法(TP=1, FP=0)
・左上の角付近を通るROC曲線:有用性が高い
・右下の部分の面積が大きい:優秀なアルゴリズム
5.2.3 サンプルコードによる確認
LR & ROC AISECjp
理想の判定法 すべてを「陽性」と判定
一定確率でランダムに
「陽性」と判定する
すべてを「陰性」
と判定する
私的なまとめ
LR & ROC AISECjp
ログ分析(攻撃検知)に使えそう
例)60%以上 ⇒ 人間による精査
60%未満 ⇒ 異常なしと判断
ROC曲線は他アルゴリズムの性能検証にも使える
計算時間は多くなるか?
パーセプトロンも捨てたもんじゃない
LR & ROC AISECjp
機械学習アルゴリズムは適材適所で!!
私的なまとめ
• Download “.PDF” version of this document:
≫ http://ssmjp.connpass.com/event/40469/