Logistic Regression 은 회귀가 아닌 분류모델이다.
간단히 직접 그려서 알아보자!
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()
0,0.5를 딱 지나가는 그래프가 그려진다.
plt.figure(figsize=(12,8))
ax = plt.gca() #설정값 변경 가능
ax.plot(z,g)
ax.spines['left'].set_position('zero')
ax.spines['bottom'].set_position('center')
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
plt.show()
시그모이드는 아무리 작아도 0이고 아무리 커도 1이 나오는 함수이다.
체크! h\theta(x) 는 주어진 입력 x(종양의 크기) 에서의 예측 결과가 1(악성) 이 될 확률을 의미함
-> h\theta(x) 가 0.7 이라면...환자의 종양이 악성일 확률이 70% 임.
따라서 0.5 보다 크면 1(악성), 작으면 0(양성) 이라고 분류를 해볼 수 있음.
+추가
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.show()
로지스틱 회귀는 시그모이드 함수에 직선을 넣어서 표현하는 함수이다.
다음에는 간단한 실습을 진행해볼 예정이다.