로지스틱 회귀는 참, 거짓 중에 하나를 결과로 내놓을 때 사용하는 회귀이다.

예를 들어 공부한 시간이 독립변수 x일때 종속변수가 합격여부라고 한다면,
위의 그래프와 같이 점이 찍히고, 이를 이어주는 S자 형태의 곡선으로 예측선을 그어야 한다.

이렇게 S자 형태로 그려지는 그래프 중 대표적인 것이 시그모이드 함수이다.
결국 이 시그모이드 함수에서 ax+b의 a와 b의 값을 찾아내는 것이 로지스틱 회귀이다.

a는 그래프의 경사도를 의미한다.

b는 그래프의 좌우 이동을 의미한다.
적절한 a와 b를 찾아내기 위해서는 오차를 줄이는 방향으로 이동하며 경사 하강법을 사용해야 한다.
로지스틱 회귀에서는 실제 값이 0,1 둘 중 하나이기 때문에 오차를 rmse로 구하면 안된다.

그래서 이렇게 log를 활용한 식으로 오차를 구한다.
이렇게 하면 실제 y값이 1일 때는 -y log h가 되고, y값이 0일 때는 (1-y) log (1-h) 가 된다.
이렇게 해야 하는 이유는 실제 값이 1일 때는 예측값 h가 커질수록 오차가 작아져야 하고, 실제 값이 0일 때는 예측값 h가 작아져야 하기 때문이다.
실제 값이 0이냐 1이냐에 따라 오차를 계산하는 방식이 달라지기 때문에 오차를 이렇게 계산한다.

로지스틱 회귀의 구현 코드이다.
y를 시그모이드 함수로 계산하게 짜고, 오차 loss값을 위에서 정의한 식으로 코드를 짰다.
나머지는 이전에 했던 선형 회귀와 비슷하게 하면 된다.
독립변수 x가 여러 개일 때 다중 선형 회귀를 한 것처럼 로지스틱 회귀에서도
참, 거짓을 결정하는 독립변수 x가 여러 개일 때 처리를 할 수 있다.

다중 로지스틱 회귀 구현 코드이다.
이번에는 시그모이드 함수를 직접 작성하지 않고 tensorflow의 내장함수로 구현하였다.
'인공지능' 카테고리의 다른 글
모두의 딥러닝 - 10장(모델 설계하기) (0) | 2025.03.17 |
---|---|
모두의 딥러닝 - 6장 ~ 9장(신경망) (0) | 2025.03.17 |
모두의 딥러닝 - 4장(경사 하강법) (0) | 2025.03.04 |
모두의 딥러닝 - 3장(선형 회귀) (0) | 2025.03.03 |
카카오톡 전송 api 개발 (0) | 2024.08.13 |