Chapter 15. Logistic Regression

HA_·2024년 1월 6일

1. Logistic Regression

1) 악성 종양을 찾는 문제


Liner Regression -> 회귀문제
Logistic Regression

  • 분류 문제
  • 악성을 종양을 찾는 문제는 분류일가? 회귀일까?
  • 악성 종양을 찾는 문제는 hθ(x)가 0.5보다 크거나 같으면 1(악성)으로 예측
  • hθ(x)가 0.5보다 작으면 혹은 0(양성)으로 예측

  • 사진처럼 그래프를 벗어난 곳에 데이터가 존재할 수 있기 때문에 선형 회귀로 분류하는 게 적용하기 힘들다.

이럴 때 시그모이드 사용!

2) 모델 재설정

3) Logistic Function - 간단히 확인하러 가기

import numpy as np

z = np.arange(-10, 10, 0.01)
g = 1 / (1+np.exp(-z))


import matplotlib.pyplot as plt

plt.plot(z, g)
plt.grid()
plt.show()

4) 디테일 추가

plt.figure(figsize=(12,8))
ax = plt.gca()

ax.plot(z, g)
ax.spines['left'].set_position('zero') # -> 축을 지정(왼쪽에 있는 축이 '0'으로 위치함.)
ax.spines['right'].set_color('none')
ax.spines['bottom'].set_position('center') # -> 축을 지정(아래에 있는 축이 '0'으로 위치함.)
ax.spines['top'].set_color('none')

plt.show()

  • sigmoid는 이렇게 생김
  • sigmoid는 아무리 작아도 0이고, 아무리 커도 1이 나온다!

5) Hypothesis 함수의 결과에 따른 분류

6) 분류 문제용 Hypothesis

7) Decision Boundary 결정경계

  • 표시한 부분이 결정경계 (아이리스 데이터에서도 사용한 선)

+ 또다른 Decision Boundary (원)

  • Decision Boundary가 직선으로만 생기지 않을 때도 있음.
  • 원처럼 생길 때도 있는데, 그렇게 되면 Linear(리니어) X

8) Cost Function은 어떻게?

  • Linear Regression (선형 회귀) 문제를 풀 때 'Cost Function'을 설명했음.
  • 그 때 'Cost Function'을 Mean_squared_error(선형 회귀 문제에서 모델 평가(모델 평가는 RMS로)를 위해 많이 사용)
  • Mean_squared_error는 x에 대한 2차식이니까 2차 함수가 됨.
  • 그러나 Logistic Regression의 미분식은 복잡함. 그래서 'Cost Function'을 살짝 다시 잡을 필요도 있음.

9) Logistic Regression에서 Cost Function을 재정의

  • 노란색 부분은 많이 사용되는 Cost Function
    • Cost Function란? 에러를 표현하는 도구
    • 사전적 정의: 머신 러닝에서 모델의 예측값과 실제값 간의 차이를 측정하는 함수

10) Logistic Reg. Cost Function의 그래프

h = np.arange(0.01, 1, 0.01)

C0 = -np.log(1-h)
C1 = -np.log(h)

plt.figure(figsize=(12,8))
plt.plot(h, C0, label='y=0')
plt.plot(h, C1, label='y=1')
plt.legend()

plt.show()

  • 그래프는 매끄러움
  • 화살표로 표시된 것처럼 쭉 이어서 간다고 생각하면 됨!

중요한 것!

  1. Logistic Regression은 분류 문제
  2. sigmoid 함수에다가 직선의 함수를 넣어서 결과를 판정하는 아이이다.
  3. Logistic Regression에서 특성이 여러 개면 'θ0 + θ1 +...' 여기서(표시한 부분) 반영됨.

0개의 댓글