상세 컨텐츠

본문 제목

로지스틱 회귀(Logistic Regression) 1

인공지능/머신러닝

by 2^7 2022. 6. 7. 17:44

본문

Logistic Regression

Classification(범주예측) 모델

  • Output(y)의 수치예측이 아닌 어떤 범주에 속하는지에 대한 예측(확률)을 모델링

Regression(수치예측) 모델에 Sigmoid( ) 필터(Activation Function)를 적용하여 구현

  • 일반적으로 분류 기준을 0.5로 지정(변경가능)
  • 0.5보다 크면 1, 0.5보다 작으면 0으로 분류

분류 결과에 대한 추가적인 신뢰도 검증이 필요(Model Validation)

  • 혼돈 행렬(Confusion Matrix)
  • 정확도(Accuracy), 정밀도(Precision), 재현율(Recall)

Model Validation

  • 이진 혼돈 행렬(Binary Confusion Matrix)
  • Positive(양성), Negative(음성) vs. TRUE(맞게 분류), FALSE(틀리게 분류)

정확도(Accuracy)

  • Positive와 Negative로 맞게 분류된 데이터의 비율
  • (TP + TN) / (TP + TN + FP + FN)

정밀도(Precision)

  • Positive로 분류된 결과 중에서 실제 Positive의 비율
  • Negative를 Positive로 틀리게 분류 시 문제 발생 
  • TP / (TP + FP)

재현율(Recall)

  • 실제 Positive 중에서 Positive로 분류된 비율
  • Positive를 Negative로 틀리게 분류 시 문제 발생 
  • TP / (TP + FN)

Evaluation Method : F1-Score(0에서 1사이 값)

  • 정밀도(Precision)와 재현율(Recall)은 Trade-Off 관계
  • F1-Score : 정밀도(Precision)와 재현율(Recall)의 조화평균


1. Sigmoid Activation

1-1. sigmoid( ) 정의

import numpy as np

def sigmoid(x):
    y_hat = 1 / (1 + np.exp(-x))
    return y_hat

1-2. sigmoid( ) 실행

sigmoid(0)

0.5

sigmoid(100000000)

1.0

sigmoid(-100000000)

0.0


1-3. sigmoid( ) 시각화

import matplotlib.pyplot as plt

n = np.linspace(-10.0, 10.0, 2000)

plt.figure(figsize = (9, 6))
plt.plot(n, sigmoid(n))
plt.show()

728x90

관련글 더보기