Coding Diary.

(Machine Learning) 로지스틱 회귀 구현하기 본문

Coding/Machine Learning

(Machine Learning) 로지스틱 회귀 구현하기

life-of-nomad 2023. 9. 13. 14:37
728x90
반응형

로지스틱 회귀를 코드로 구현하기 쉽게 바꾸는 것을 해봅시다.

 

1. 입력 변수와 파라미터 표현

입력 변수와 파라미터는 선형 회귀를 표현할 때와 똑같이 할 수 있습니다.

모든 입력 변수 데이터를 설계 행렬에 나타내면 아래와 같습니다.

그리고 파라미터를 하나의 벡터로 아래와 같이 표현할 수 있습니다.

2. 모든 데이터 예측 값

가설 함수를 행렬 연산에서 어떻게 표현할 수 있는지 알아봅시다. 위에서 한 것처럼 입력 변수와 파라미터를 표현하면 모든 데이터에 대해서

이 식을 계산할 수 있습니다. 이 부분은 선형 회귀를 할 때와 동일합니다. 

근데 로지스틱 회귀는 선형 회귀와 가설함수 h가 다릅니다.

위에서 계산한 모든 결과 값을 시그모이드 함수에 넣어주어야 합니다. 계산한 Xtheta의 모든 원소를 시그모이드 함수에 넣는다는 의미로 표현하겠습니다. 

3. 예측 오차

각 데이터의 목표 변수는 값이 하나이기 때문에 선형 회귀와 마찬가지로

이렇게 표현할 수 있습니다.

이런 식으로 모든 예측 값들과 목표 변수의 차이를 간단하게 표현할 수 있습니다. 이제부터 이 값을 error라고 부르겠습니다.

4. 경사 하강법

로지스틱 회귀는 선형 회귀 경사 하강법 공식이 똑같습니다. 가설함수 h만 다릅니다. 0부터 n까지의 theta값들을 이렇게 업데이트 한다고 했습니다. (알파는 학습률, m은 데이터 개수)

그렇기 때문에 경사 하강법도 다중 선형 회귀를 할 때랑 똑같이 표현해줄 수 있습니다.

위에서 했던 것처럼 입력 변수, 파라미터, 예측값 오차를 표현할 때

이런 식으로 정리할 수 있습니다. 

이렇게 표현할 수 있기만 하면 numpy를 이용해서 수학식들을 쉽게 구현할 수 있습니다.

728x90
반응형