강의자료 · 머신러닝의 이해

Logistic Regression · 학습

이번에 배울 내용

놓침과 오경보 중 무엇을 줄일지는 확률을 얻은 뒤 Threshold로 결정합니다.

점수·확률·판정

Logit z를 Sigmoid에 넣으면 p=1/(1+exp(−z))입니다. 확률과 최종 판정은 다릅니다. Threshold를 낮추면 더 많은 양성 예측을 얻지만 오경보도 늘 수 있습니다.

p=11+e−zp=\frac{1}{1+e^{-z}}

Loss Function에 넣는 값

BCEWithLogitsLoss에는 Sigmoid를 거치기 전의 Logit을 넣습니다. 학습에서 사용하는 Loss와 현장에서 사용하는 놓침·오경보 비용을 구분해 평가합니다.

풀이 예제

logit=[−2−0.500.52]\mathrm{logit}=\begin{bmatrix}-2&-0.5&0&0.5&2\end{bmatrix}, Label=[00111]\mathrm{Label}=\begin{bmatrix}0&0&1&1&1\end{bmatrix}입니다.

import numpy as np
import matplotlib.pyplot as plt
logit=np.array([-2,-.5,0,.5,2]);y=np.array([0,0,1,1,1]);p=1/(1+np.exp(-logit))
print(p,p>=.5)
[0.11920292 0.37754067 0.5        0.62245933 0.88079708] [False False  True  True  True]

참고 예제

추가 예제 보기

참고 자료