본문 바로가기
데이터분석 공부하기

로지스틱 회귀

by 고공이 2022. 3. 21.

해당 글은 코드잇을 통해서 공부한 내용을 정리한 글입니다.

 

 

선형 회귀를 이용해서 분류를 할 수 있긴 하지만, 선형 회귀를 예외적인 데이터에 너무 민감하게 반응한다는 단점이 있습니다. 그래서 분류를 할 때는 선형 회귀 대신 '로지스틱 회귀', 영어로는 'Logistic Regression'을 사용합니다.

 

 

 

1. 가설 함수

선형 회귀는 데이터에 가장 잘 맞는 일차 함수를 찾는다면 로지스틱 회귀는 데이터에 가장 잘 맞는 시그모이드 함수를 찾습니다.

 

2. 로그 손실 함수

 

로그 손실

 

로지스틱 회귀 손실 함수

 

 

로그 손실 공식 대입 후 아래와 같이 정리할 수 있습니다.

 

 

3. 경사 하강법

: 손실 함수를 세타에 대해 편미분하고 그 결과에 학습률 알파를 곱합니다. 그리고 그 결과를 기존 세타_0에서 빼면 됩니다. 그렇게 세타를 업데이트를 해 그 손실을 최소화하는 방법입니다.

 

로지스틱 회귀의 손실 함수를 대입해서 편미분을 하면 선형 회귀에서랑 결과가 똑같습니다. 분명 손실함수가 다른데도 말이죠.

 

결론적으로 다음과 같은 식에서 로지스틱의 가설 함수인 시그모이드 함수를 대입해서 각 세타값을 업데이트하면 됩니다.

 

쉽게 표현하면 아래와 같습니다.

 

 

4. 분류가 3개 이상일 때

 

예를 들어 직장, 친구, 스팸 메일을 분류하고 싶다고 합시다.

 

문제를 단순화해서 이 메일이 직장메일인지 아닌지를 분류합니다. - 이때 가설함수_0

그 다음 어떤 메일이 친구 메일인지 아닌지를 분류합니다. - 가설함수_1

마지막으로 스팸메일인지 아닌지를 분류합니다. - 가설함수_2

 

이렇게 3개의 함수를 구해서 주어진 데이터 입력변수들을 이 함수들에게 각각 넣습니다. 그러면 어떤 이메일이 직장 메일일 확률, 친구 메일인 확률, 스팸 메일일 확률을 각각 구할 수 있습니다. 예를 들어 한 데이터를 넣어서 가설함수_0 0.6, 가설함수_1은 0.45, 가설함수_2는 0.78이 나왔다고 할때, 스팸 메일일 확률이 가장 높기 때문에 이 데이터는 스팸 메일로 분류하면 됩니다.

 

 

5. 정규 방정식

 

로지스틱 회귀에서 정규 방정식과 같은 단순 행렬 연산만으로는 손실 함수의 최솟점을 찾을 수 없습니다.

 

로지스틱 회귀에서 손실 함수가 아래로 볼록하지만 손실함수의 대한 편미분 원소들이 선형식이 아니빈다. 세타가 e의 지수에 포함되어 있어 지수로 포함된 식은 일차식으로만 표현하기 불가능하기 때문입니다. 그래서 최솟점을 찾을 수가 없습니다.

 

'데이터분석 공부하기' 카테고리의 다른 글

선형판별분석 LDA 이해하기  (0) 2022.09.18
클러스터형 인덱스와 보조 인덱스  (0) 2022.08.21
다항 회귀  (0) 2022.03.17
선형 회귀  (0) 2022.03.17
물리 삭제 vs 논리 삭제  (0) 2021.12.18

댓글