스터디/ML, DL

[ML] 로지스틱 회귀

sollllllll 2022. 3. 19. 22:13

로지스틱 회귀는 이름은 회귀이지만 분류 모델이다. 선형 회귀와 마찬가지로 선형 방정식을 학습한다.

z = a*x1 + b*x2 + c*x3 + d*x4 + e*x5 + f 와 같은 형태이다.

이 때 방정식의 a,b,c,d,e는 가중치 혹은 계수이고 x1~5는 특성이다. 다중 회귀와 비슷한 형태이다.

z의 값은 어떤 값이든 가능하지만 확률로 나타내기 위해서는 0~1 사이 값이 되어야 한다.

z의 값을 0~1 사이의 값으로 변환하기 위해서는 변환 함수가 필요하다.

 

 

일반적으로는 시그모이드 함수를 많이 쓴다. 아주 큰 음수일 때 0이 되고 아주 큰 양수일 때 1이 되도록 한다.

아래 그림처럼 S형 곡선의 형태를 띄게 된다. 함수 식은 자연 상수 e의 -z제곱에 +1을 한 다음 역수를 취한다.

시그모이드 함수

 

 

로지스틱 회귀로 이진 분류와 다중 분류 모두 수행할 수 있다.

다중 분류일 때는 클래스의 개수만큼 방정식을 훈련해 z 값을 여러 개 얻게 된다.

위의 시그모이드 함수는 하나의 선형 방정식 출력값을 0~1 사이로 변환하기 때문에 이진 분류에 적합하다.

따라서 다중 분류 결과로 얻은 여러 개의 z를 확률로 변환하기 위해 소프트맥스 함수를 사용한다.

소프트맥스 함수는 여러 개의 선형 방정식 출력값을 0~1 사이로 압축한 후 전체 합이 1이 되도록 만든다.

지수 함수를 사용하기 때문에 정규화된 지수 함수라고도 한다.

 

 

이처럼 로지스틱 회귀는 얼핏 보면 선형 회귀와 같아 보이지만 변환 함수를 이용해 확률을 구할 수 있다.