로지스틱 회귀 (Logistic Regression)
1. 로지스틱 회귀란?
- 로지스틱 회귀는 이름은 회귀 분류이지만 이진 분류(binary classification)를 위한 지도 학습 알고리즘입니다. 종속 변수(target)가 0과 1 같은 범주형 값을 가지는 경우에 사용됩니다.
- 선형 회귀처럼 독립 변수와 종속 변수 간의 관계를 찾지만, 출력이 연속적인 값 대신 확률로 나타납니다.
2. 시그모이드 함수 (Sigmoid Function)
- 로지스틱 회귀는 시그모이드 함수를 사용해 결과값을 0과 1 사이의 확률로 변환합니다.
\[
\sigma(z) = \frac{1}{1 + e^{-z}}
\]
- 여기서 \(z\)는 선형 회귀의 예측값으로, 독립 변수들의 선형 결합입니다. 즉, \(z = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \dots \).
3. 비용 함수 (Cost Function)
- Cost Function은 에러를 가지고 정의된 함수라고도 말할 수 있습니다.
- 로지스틱 회귀는 MSE(평균 제곱 오차) 대신 이항 크로스 엔트로피(Binary Cross-Entropy) 비용 함수를 최소화합니다.
- 이번에는 제가 작성한 것으로 설명을 하겠습니다.
해당 그래프에서 우선 잔차와 h(\(\theta\))를 사용하여 계산에 필요한 값을 찾아줍니다.
우선 Cost Function( J (\(\theta\)) )에서 중요한 것은 어떻게 최솟값을 가지게 하느냐에 집중하는 것입니다.
J (\(\theta\)) 값을 미분을 해주면 최솟값을 찾게되면서 \(\theta\)의 최솟값도 구할 수 있습니다.
그럼 저희는 Cost Function의 최솟값을 구하였으니 이 Cost Function을 경사 하강법으로 최적화하여 최적의 파라미터를 찾아주면 되는 것입니다.
4. Gradiant Descent(경사하강법)
경사 하강법은 말 그대로 산을 내려가는 것이라고 생각하시면 됩니다. 하지만 산에서 내려갈 때 최대한 빠르게 가고 싶을 것입니다. 이때 중요한 것은 '어느 방향으로, 얼마나 많이' 내려갈지 결정하는 것입니다.
- 방향: 우리는 산을 내려갈 때 가장 가파른 길을 선택합니다. 수학적으로는 이 가파른 방향이 기울기(gradient)로 표현됩니다. 기울기는 우리가 서 있는 지점에서 가장 빠르게 내려갈 수 있는 방향을 알려줍니다.
- 속도: 내려가는 속도를 조절하는 요소가 바로 학습률(learning rate)입니다. 학습률이 너무 크면 산 위로 다시 올라가버리는 상황이 발생할 수 있고, 너무 작으면 조금씩만 움직여 시간이 오래 걸립니다. 따라서 적절한 학습률을 설정하는 것이 중요합니다.
그럼 이제 저희에게는 필요한것은 기울기와 학습률입니다. 기울기는 저희가 앞에서 구한 Cost Function을 미분해주면 기울기가 될 것입니다!! 그리고 학습률은 python에서 보면 저희가 정해줄 것입니다.
해당 내용들을 다시 정리해보았습니다.
6. 장점 및 단점
- 장점: 단순하고 해석이 쉬워 이진 분류 문제에서 자주 사용됩니다. 확률 기반의 결과를 제공해 예측의 불확실성을 다룰 수 있습니다.
- 단점: 선형적으로 분리 가능한 데이터에 적합하며, 복잡한 비선형 관계를 잘 다루지 못합니다.
7. 저는 다음 작성 글에 Python을 활용하여 Pima 부족의 당뇨병 질환 발생 데이터에 로지스틱 회귀를 통해 구별 해보겠습니다.
이 글은 제로베이스 데이터 분석 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.
'Data Analyst > ML' 카테고리의 다른 글
[Zero-base] Cross Validation(교차 검증) - 1 (0) | 2024.10.04 |
---|---|
[Zero-base] Logistic Regression - 2 (0) | 2024.10.03 |
[Zero-base] Pipeline (0) | 2024.10.03 |
[Zero-base] Scaling & 분류 모델 평가 (1) | 2024.10.03 |
[Zero-base] Linear Regression(Wine 구별, Scaler) (0) | 2024.10.01 |