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

Logistic Regression

학습 목표

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

Logit·확률·판정

시작 조건

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}입니다.

진행 방법

  1. Sigmoid로 확률을 구하고 Threshold=.5의 판정을 기록하세요.
  2. Threshold=.3,.5,.7에서 TP·FP·FN·TN과 Accuracy를 비교하세요.

남길 결과

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)

결과 기록·자가 점검

Threshold:

TP:

FP:

FN:

TN:

Accuracy:

확인할 점

틀리는 종류 선택

시작 조건

미탐지(FN)를 더 줄여야 하는 센서 경보 상황을 가정하고 세 Threshold 중 하나를 선택합니다.

진행 방법

  1. 앞 활동의 Threshold 0.3,0.5,0.70.3,0.5,0.7별 TP·FP·FN·TN·Accuracy 표를 재사용하세요. 같은 Logit과 Label을 사용합니다.
  2. FN이 가장 적은 Threshold 후보를 찾으세요. 동률인 후보가 있으면 FP도 비교한 뒤 사용할 값 하나를 선택하고, 선택 근거가 된 FN·FP를 함께 적으세요.
  3. 선택한 값과 Threshold 0.5의 판정을 표본별로 대조해, 어떤 표본의 경보가 달라졌는지 설명하세요.

남길 결과

thresholds=[.3,.5,.7]

결과 기록·자가 점검

Threshold:

FN:

FP:

선택한 값과 근거:

확인할 점

다른 입력에서도 확인하기

시작 조건

Class 1 비율이 10%인 가상 Label 100개에서 항상 0을 내는 모델을 비교합니다.

진행 방법

  1. Class 1이 10개, Class 0이 90개인 Label 배열과 모두 0인 예측 배열을 만드세요.
  2. 실행 전에 TP·FP·FN·TN과 Accuracy를 계산하고, 코드로 같은 값을 구해 대조하세요. Class 1 중 놓친 표본 수를 함께 기록하세요.
  3. Accuracy가 높게 나와도 미탐지를 줄인 모델이라고 할 수 있는지, 기록한 FN으로 설명하세요.

남길 결과

# 앞 활동의 데이터와 함수를 사용해 지정된 새 예제를 검사하세요.

결과 기록·자가 점검

실행 전 TP·FP·FN·TN:

실제 TP·FP·FN·TN:

Accuracy:

놓친 Class 1 수·해석:

확인할 점