로지스틱 회귀 모델
1. 개요
1. 개요
로지스틱 회귀 모델은 통계학과 머신 러닝에서 주로 사용되는 분류 알고리즘이다. 이름에 '회귀'가 포함되어 있지만, 실제로는 연속적인 값을 예측하는 선형 회귀와 달리, 종속 변수가 범주형(예: 참/거짓, 0/1, A/B/C)인 경우에 사용된다. 이 모델은 입력 변수(독립 변수)와 출력 변수(종속 변수) 사이의 관계를 모델링하여, 주어진 입력에 대해 출력이 특정 범주에 속할 확률을 추정한다. 이 확률 기반 예측은 이후 결정 경계를 설정하여 최종적인 클래스 레이블로 변환된다.
로지스틱 회귀의 핵심은 로지스틱 함수(또는 시그모이드 함수)를 사용하는 데 있다. 이 함수는 어떠한 실수 값을 입력으로 받아 0과 1 사이의 값으로 변환한다. 이 출력값은 사건이 발생할 확률로 해석된다. 예를 들어, 이메일이 스팸일 확률이 0.8 이상이면 '스팸'으로, 그렇지 않으면 '정상 메일'로 분류하는 방식이다. 이러한 특성 때문에 이진 분류 문제에 가장 널리 적용되며, 다항 로지스틱 회귀를 통해 세 개 이상의 범주를 분류하는 문제로도 확장될 수 있다.
로지스틱 회귀 모델은 해석이 용이하고 계산 효율이 높다는 장점을 지닌다. 각 입력 변수에 대한 계수(가중치)는 해당 변수가 결과에 미치는 영향의 방향과 크기를 나타내며, 오즈비를 통해 정량적으로 해석될 수 있다. 이는 의료 진단, 신용 평가, 마케팅 반응 예측 등 의사 결정이 중요한 다양한 분야에서 모델의 예측 근거를 이해하는 데 유용하게 활용된다. 구현의 간편함과 강력한 성능 덕분에 현실 세계의 분류 문제를 해결하는 데 있어 기본적이면서도 효과적인 도구로 자리 잡았다.
2. 수학적 원리
2. 수학적 원리
로지스틱 회귀 모델의 핵심은 로지스틱 함수를 사용하여 입력 변수와 이산적인 출력 범주 사이의 관계를 모델링하는 것이다. 이 함수는 시그모이드(S자형) 곡선의 형태를 띠며, 어떤 실수값이든 0과 1 사이의 확률값으로 변환한다. 표준 로지스틱 함수는 σ(z) = 1 / (1 + e^{-z})로 정의되며, 여기서 z는 입력 특성의 선형 조합(θ^T x)이다. 이 변환 덕분에 선형 회귀와 달리 분류 문제에 직접 적용할 수 있다.
모델의 가설 함수 h_θ(x)는 주어진 입력 x에 대해 출력이 1(양성 클래스)일 확률을 추정한다: P(y=1 | x; θ) = σ(θ^T x). 이 확률값을 기반으로 결정 경계를 설정한다. 일반적으로 0.5를 임계값으로 사용하여, h_θ(x) ≥ 0.5이면 y=1로, 그렇지 않으면 y=0으로 예측한다. 결정 경계 자체는 θ^T x = 0인 선형 방정식으로 정의되므로, 2차원에서는 직선, 3차원에서는 평면이 된다.
로지스틱 회귀 모델의 파라미터 θ를 학습시키기 위해 사용되는 비용 함수는 최대우도추정 원칙에서 유도된다. 선형 회귀에서 쓰이는 평균 제곱 오차를 그대로 사용하면 비볼록(non-convex) 함수가 되어 최적화가 어려우므로, 다음과 같은 로그 손실 함수를 사용한다:
J(θ) = - (1/m) Σ [y^{(i)} log(h_θ(x^{(i)})) + (1 - y^{(i)}) log(1 - h_θ(x^{(i)}))].
이 함수는 예측 확률이 실제 레이블과 얼마나 일치하는지를 측정하며, 이를 최소화하는 θ를 찾는 것이 목표이다.
2.1. 로지스틱 함수와 시그모이드 곡선
2.1. 로지스틱 함수와 시그모이드 곡선
로지스틱 회귀 모델의 핵심은 로지스틱 함수를 사용하여 입력 변수와 출력 범주 사이의 확률적 관계를 모델링하는 것이다. 로지스틱 함수는 S자 형태의 곡선을 그리기 때문에 시그모이드 곡선이라고도 불린다. 이 함수는 모든 실수 입력값을 0과 1 사이의 확률 값으로 변환하는 역할을 한다.
로지스틱 함수의 표준적인 형태는 다음과 같다.
$$ f(z) = \frac{1}{1 + e^{-z}} $$
여기서 $z$는 선형 조합 $z = \beta_0 + \beta_1 x_1 + ... + \beta_n x_n$을 나타낸다. $e$는 자연상수이다. 입력 $z$가 매우 커지면 $e^{-z}$는 0에 가까워지고, $f(z)$는 1에 수렴한다. 반대로 $z$가 매우 작아지면 $e^{-z}$는 매우 커지고, $f(z)$는 0에 수렴한다. $z$가 0일 때 함수값은 정확히 0.5가 된다.
시그모이드 곡선의 특성은 다음과 같이 정리할 수 있다.
특성 | 설명 |
|---|---|
값의 범위 | 출력값이 항상 (0, 1) 구간에 존재한다. |
단조 증가 | 입력값 $z$가 증가하면 출력 확률도 항상 증가한다. |
점근적 | $z \to +\infty$ 이면 $f(z) \to 1$, $z \to -\infty$ 이면 $f(z) \to 0$에 접근한다. |
중앙점 | $f(0) = 0.5$이며, 이 지점에서 곡선의 기울기가 가장 가파르다. |
이러한 수학적 특성 덕분에 로지스틱 함수는 선형 회귀의 결과를 확률로 해석할 수 있게 만드는 '연결 함수' 역할을 한다. 선형 방정식의 결과 $z$가 어떤 값이든, 최종 출력은 항상 유효한 확률 값이 된다. 이 확률값을 기준으로(일반적으로 0.5) 결정 경계를 설정하여 이진 분류를 수행한다.
2.2. 가설 함수와 결정 경계
2.2. 가설 함수와 결정 경계
로지스틱 회귀 모델의 가설 함수는 입력 변수와 예측하고자 하는 결과 사이의 관계를 표현하는 수학적 공식이다. 이진 분류 문제에서 가설 함수 h(x)는 주어진 입력 x에 대해 출력이 1(긍정 클래스)일 확률을 추정한다. 이 확률 추정은 로지스틱 함수 또는 시그모이드 함수를 통해 0과 1 사이의 값으로 변환된다. 함수의 일반적인 형태는 h(x) = g(θᵀx) = 1 / (1 + e^(-θᵀx))이다. 여기서 θ는 모델이 학습할 가중치 벡터이고, θᵀx는 입력 특성의 선형 조합을 의미한다.
결정 경계는 입력 공간을 서로 다른 클래스로 나누는 경계선 또는 경계면이다. 로지스틱 회귀에서 결정 경계는 가설 함수의 출력이 정확히 0.5가 되는 지점들의 집합으로 정의된다. 이는 선형 결합 θᵀx의 값이 0이 되는 지점, 즉 θᵀx = 0인 초평면에 해당한다. 예측은 이 경계를 기준으로 수행된다: h(x) ≥ 0.5이면 y=1로, h(x) < 0.5이면 y=0으로 분류한다.
결정 경계의 형태는 특성의 선형 조합 방식에 따라 달라진다. 가장 기본적인 형태는 선형 결정 경계이다. 예를 들어, 두 개의 특성 x₁과 x₂를 가진 모델에서 경계는 θ₀ + θ₁x₁ + θ₂x₂ = 0으로 표현되는 직선이다. 그러나 다항식 특성을 도입하면 비선형 결정 경계를 생성할 수 있다. x₁²이나 x₁x₂ 같은 고차항을 특성에 포함시키면, 결정 경계는 원, 타원 또는 더 복잡한 곡선 형태를 띨 수 있다.
결정 경계 유형 | 수학적 표현 (예시) | 형태 |
|---|---|---|
선형 경계 | θ₀ + θ₁x₁ + θ₂x₂ = 0 | 직선 |
비선형 경계 (원형) | θ₀ + θ₁x₁² + θ₂x₂² = 0 | 원 |
비선형 경계 (타원) | θ₀ + θ₁x₁² + θ₂x₂² + θ₃x₁x₂ = 0 | 타원 또는 곡선 |
결정 경계의 위치와 모양은 학습 과정에서 최적화되는 모수 θ의 값에 의해 완전히 결정된다. 모델 학습의 목표는 주어진 데이터를 가장 잘 구분하는, 즉 최대우도추정 기준에서 가장 적합한 θ를 찾아 결정 경계를 설정하는 것이다.
2.3. 비용 함수와 최대우도추정
2.3. 비용 함수와 최대우도추정
로지스틱 회귀 모델을 학습시키기 위해서는 모델의 예측 오차를 정량화하는 비용 함수가 필요하다. 선형 회귀에서 주로 사용되는 평균 제곱 오차는 로지스틱 회귀의 시그모이드 함수 출력에 적용할 경우 볼록하지 않은(non-convex) 형태가 되어 최적화가 어려워진다. 따라서 로지스틱 회귀에서는 최대우도추정 원리를 기반으로 한 로그 손실 함수를 비용 함수로 사용한다.
이 비용 함수는 실제 레이블(y)과 모델의 예측 확률(h(x)) 사이의 차이를 측정한다. 함수는 다음과 같은 형태를 가진다.
실제 클래스 (y) | 비용 함수 항 |
|---|---|
1 | -log(h(x)) |
0 | -log(1 - h(x)) |
두 경우를 하나의 식으로 통합하면, m개의 훈련 샘플에 대한 전체 비용 함수 J(θ)는 다음과 같이 표현된다[1].
J(θ) = -(1/m) Σ [y⁽ⁱ⁾ log(h(x⁽ⁱ⁾)) + (1 - y⁽ⁱ⁾) log(1 - h(x⁽ⁱ⁾))]
이 함수는 최대우도추정의 관점에서 유도된다. MLE는 주어진 데이터를 관찰할 가능도(우도)를 최대화하는 모델 파라미터를 찾는 통계적 방법이다. 로지스틱 회귀에서는 각 샘플이 해당 클래스에 속할 확률을 베르누이 분포로 모델링하고, 모든 샘플의 우도를 곱한 가능도 함수를 최대화한다. 일반적으로 곱셈 대신 로그를 취한 로그 가능도를 최대화하며, 이는 위의 비용 함수 J(θ)를 최소화하는 것과 수학적으로 동일하다.
이 비용 함수는 볼록한(convex) 형태를 가지므로 경사 하강법과 같은 최적화 알고리즘을 통해 전역 최소점을 찾을 수 있다. 비용 함수를 최소화하는 파라미터 θ를 찾는 과정이 바로 모델이 데이터의 패턴을 학습하는 과정이다.
3. 모델 학습
3. 모델 학습
로지스틱 회귀 모델의 학습은 주어진 훈련 데이터를 바탕으로 모델의 가중치와 편향을 최적화하는 과정이다. 이 과정의 핵심 목표는 비용 함수를 최소화하는 모델 매개변수를 찾는 것이다. 로지스틱 회귀에서는 일반적으로 최대우도추정 원리를 기반으로 한 비용 함수를 사용하며, 이를 최적화하기 위해 경사 하강법이 널리 활용된다.
경사 하강법은 비용 함수의 기울기(그래디언트)를 계산하고, 그 반대 방향으로 매개변수를 조금씩 업데이트하는 반복적 알고리즘이다. 각 반복(에포크)에서 모든 훈련 샘플에 대한 그래디언트를 평균내어 계산하는 방식을 배치 경사 하강법이라고 한다. 이는 정확한 방향으로 업데이트하지만, 데이터셋이 클 경우 계산 비용이 높아질 수 있다. 이를 보완하기 위해 무작위로 하나의 샘플만 사용하는 확률적 경사 하강법이나, 작은 묶음(미니배치)의 샘플을 사용하는 미니배치 경사 하강법이 사용되기도 한다. 학습의 속도와 정확도를 조절하는 핵심 하이퍼파라미터는 학습률이다. 학습률이 너무 크면 최소점을 지나칠 수 있고, 너무 작으면 학습 속도가 매우 느려진다.
로지스틱 회귀 모델은 특히 특성의 수가 많거나 훈련 데이터에 과도하게 적응(과적합)되는 경향이 있을 수 있다. 이를 방지하고 모델의 일반화 성능을 높이기 위해 정규화 기법이 적용된다. 가장 일반적인 방법은 비용 함수에 패널티 항을 추가하는 것이다. L2 정규화(릿지 정규화)는 가중치의 제곱합에 비례하는 패널티를 부과하여 가중치의 크기를 전반적으로 줄이는 효과가 있다. L1 정규화(라쏘 정규화)는 가중치의 절댓값에 비례하는 패널티를 부과하여, 불필요한 특성의 가중치를 정확히 0으로 만들어 특성 선택의 효과를 동시에 가져올 수 있다. L1과 L2를 혼합한 엘라스틱넷 정규화도 사용된다.
학습 과정은 일반적으로 사전에 정의된 종료 조건을 만족할 때까지 진행된다. 종료 조건은 최대 반복 횟수에 도달하거나, 비용 함수의 값이나 매개변수의 업데이트 크기가 임계값 이하로 떨어지는 경우 등이다. 학습이 완료되면, 최적화된 가중치와 편향을 사용하여 새로운 데이터에 대한 클래스 확률을 예측할 수 있다.
3.1. 경사 하강법
3.1. 경사 하강법
경사 하강법은 로지스틱 회귀 모델의 매개변수를 학습하기 위해 가장 널리 사용되는 최적화 알고리즘이다. 이 방법은 비용 함수의 기울기(경사)를 계산하여, 비용을 최소화하는 방향으로 매개변수를 반복적으로 업데이트한다. 로지스틱 회귀에서 사용되는 비용 함수는 일반적으로 로그 손실 함수이며, 이 함수는 볼록 함수의 성질을 가지므로 경사 하강법을 통해 전역 최솟값을 찾을 수 있다.
알고리즘은 먼저 가중치와 편향 같은 매개변수에 임의의 초깃값을 부여한다. 이후 각 반복(에포크)마다 현재 매개변수 값에서 비용 함수의 편미분을 계산한다. 계산된 기울기의 반대 방향, 즉 비용이 감소하는 방향으로 매개변수를 조정한다. 이 조정의 크기는 학습률이라는 하이퍼파라미터에 의해 결정된다. 학습률이 너무 크면 최솟점을 지나쳐 발산할 수 있고, 너무 작으면 수렴 속도가 매우 느려진다.
변수/개념 | 설명 |
|---|---|
학습률(α) | 매 반복 시 매개변수를 업데이트하는 보폭을 결정하는 하이퍼파라미터이다. |
에포크 | 전체 훈련 데이터셋에 대해 경사 하강법을 한 번 적용하는 주기이다. |
배치 경사 하강법 | 매개변수 업데이트를 위해 매 반복마다 전체 훈련 데이터의 기울기를 사용한다. |
확률적 경사 하강법(SGD) | 매개변수 업데이트를 위해 매 반복마다 단 하나의 훈련 샘플을 무작위로 선택한다. |
미니배치 경사 하강법 | 매개변수 업데이트를 위해 미리 정해진 크기(예: 32, 64)의 작은 데이터 샘플 배치를 사용한다. |
실제 구현에서는 모든 데이터를 한 번에 처리하는 배치 경사 하강법보다는, 계산 효율성과 국소 최솟점 탈출 능력을 향상시킨 확률적 경사 하강법이나 미니배치 경사 하강법이 더 자주 사용된다. 학습이 진행됨에 따라 비용 함수의 값이 감소하는지를 모니터링하여 알고리즘이 올바르게 수렴하고 있는지 확인한다. 일정 횟수의 에포크 이후 또는 비용 함수의 감소가 거의 없어지면 알고리즘을 중단하고 최종 매개변수를 얻는다.
3.2. 정규화 기법
3.2. 정규화 기법
로지스틱 회귀 모델의 과적합을 방지하고 일반화 성능을 향상시키기 위해 정규화 기법이 적용된다. 정규화는 모델의 복잡도를 제어하는 방법으로, 특히 고차원 데이터나 특성의 수가 많을 때 유용하다. 로지스틱 회귀에서는 주로 비용 함수에 페널티 항을 추가하여 가중치의 크기를 제한하는 방식을 사용한다.
가장 일반적인 두 가지 정규화 방법은 L1 정규화와 L2 정규화이다. L1 정규화는 라쏘 회귀라고도 불리며, 비용 함수에 가중치의 절댓값의 합을 페널티 항으로 더한다. 이는 불필요한 특성의 가중치를 정확히 0으로 만들 수 있어 특성 선택의 효과를 동시에 가져온다. 반면, L2 정규화는 릿지 회귀라고도 불리며, 가중치의 제곱의 합을 페널티 항으로 더한다. 이는 모든 가중치를 균일하게 작게 유지하려는 경향이 있다.
정규화 유형 | 페널티 항 | 주요 효과 | 특징 |
|---|---|---|---|
L1 정규화 (라쏘) | λ Σ \ | w\ | |
L2 정규화 (릿지) | λ Σ w² | 가중치 축소, 일반화 향상 | 모든 계수를 균일하게 작게 만듦 |
정규화의 강도는 하이퍼파라미터인 정규화 매개변수(보통 λ 또는 C로 표기)로 조절한다. λ 값이 크거나 C 값이 작을수록 페널티가 강해져 가중치가 더욱 제한되고 모델이 단순해진다. 반대로 λ 값이 작거나 C 값이 크면 페널티가 약해져 모델이 훈련 데이터에 더욱 가깝게 적합될 수 있다. 최적의 정규화 강도는 일반적으로 교차 검증을 통해 결정한다.
4. 모델 평가
4. 모델 평가
로지스틱 회귀 모델의 성능을 정량적으로 평가하기 위해 여러 지표가 사용된다. 이진 분류 문제에서 가장 기본적인 평가 도구는 혼동 행렬이다. 혼동 행렬은 모델의 예측 결과와 실제 값을 2x2 표로 교차하여 나타내며, 참양성, 거짓양성, 거짓음성, 참음성의 네 가지 경우의 수를 보여준다. 이 표를 바탕으로 다양한 평가 지표를 계산할 수 있다.
실제 \ 예측 | 양성 예측 | 음성 예측 |
|---|---|---|
실제 양성 | 참양성(TP) | 거짓음성(FN) |
실제 음성 | 거짓양성(FP) | 참음성(TN) |
혼동 행렬에서 파생되는 주요 지표로는 정확도, 정밀도, 재현율, F1 점수가 있다. 정확도는 전체 예측 중 맞춘 비율((TP+TN)/(TP+TN+FP+FN))을 의미하지만, 데이터의 클래스 불균형이 심할 경우 왜곡될 수 있다. 정밀도는 모델이 양성이라고 예측한 샘플 중 실제 양성인 비율(TP/(TP+FP))로, 거짓양성을 줄이는 것이 중요할 때 핵심 지표가 된다. 재현율은 실제 양성인 샘플 중 모델이 양성으로 맞춘 비율(TP/(TP+FN))로, 거짓음성을 최소화해야 하는 상황(예: 질병 진단)에서 중요하게 여겨진다. F1 점수는 정밀도와 재현율의 조화 평균으로, 두 지표 간의 균형을 종합적으로 평가한다.
모델의 성능을 임계값의 변화에 따라 종합적으로 평가하는 방법으로는 ROC 곡선과 AUC가 있다. ROC 곡선은 분류 임계값을 변화시키면서 거짓양성률(FP/(FP+TN))에 대한 참양성률(재현율, TP/(TP+FN))을 그래프로 나타낸 것이다. 이 곡선 아래의 면적을 AUC(Area Under the Curve)라고 하며, 1에 가까울수록 우수한 분류 성능을 의미한다. AUC는 0.5(무작위 추측 수준)부터 1 사이의 값을 가지며, 클래스 불균형에 비교적 강건한 평가 지표로 널리 사용된다[2].
4.1. 혼동 행렬
4.1. 혼동 행렬
혼동 행렬은 이진 분류 모델의 성능을 평가할 때 예측 결과와 실제 클래스를 네 가지 경우의 수로 교차 표시한 표이다. 이 표는 모델이 얼마나 정확하게 분류했는지, 그리고 어떤 종류의 오류를 발생시키는지를 한눈에 파악할 수 있게 해준다. 행렬의 행은 실제 클래스를, 열은 모델이 예측한 클래스를 나타낸다.
표준적인 이진 분류에서 네 가지 결과는 다음과 같이 정의된다.
예측 Positive | 예측 Negative | |
|---|---|---|
실제 Positive | True Positive(TP) | False Negative(FN) |
실제 Negative | False Positive(FP) | True Negative(TN) |
True Positive와 True Negative는 모델이 올바르게 분류한 경우이다. False Positive는 실제로는 부정 클래스인데 긍정으로 잘못 예측한 경우(1종 오류)이며, False Negative는 실제로는 긍정 클래스인데 부정으로 잘못 예측한 경우(2종 오류)이다.
혼동 행렬 자체는 숫자로 구성된 표이지만, 이를 기반으로 정밀도, 재현율, F1 점수 등 여러 핵심 성능 지표를 계산한다. 예를 들어, 재현율은 TP / (TP + FN)으로 계산되며, 실제 긍정 샘플 중 모델이 얼마나 올바르게 찾아냈는지를 나타낸다. 각 지표는 모델의 서로 다른 측면을 강조하므로, 적용 분야에 따라 중요하게 여겨지는 지표가 달라진다[3].
4.2. 정확도, 정밀도, 재현율, F1 점수
4.2. 정확도, 정밀도, 재현율, F1 점수
이진 분류 모델의 성능을 평가하는 데는 단순한 정확도 외에도 여러 지표가 필요하다. 특히 데이터의 클래스 분포가 불균형할 때는 정확도만으로는 모델의 진짜 성능을 판단하기 어렵다. 이러한 문제를 해결하기 위해 혼동 행렬을 기반으로 한 정밀도, 재현율, 그리고 이를 종합한 F1 점수가 널리 사용된다.
정밀도는 모델이 양성(Positive)이라고 예측한 샘플 중 실제로 양성인 샘플의 비율이다. 이는 '거짓 양성'을 얼마나 줄였는지를 나타내며, 스팸 메일 필터링처럼 잘못된 양성 판정(정상 메일을 스팸으로 분류)의 비용이 클 때 중요한 지표가 된다. 재현율은 실제 양성인 샘플 중 모델이 양성으로 올바르게 예측한 샘플의 비율이다. 이는 '거짓 음성'을 얼마나 피했는지를 보여주며, 질병 진단처럼 실제 양성(환자)을 놓치는 경우의 비용이 클 때 핵심 평가 기준이 된다.
정밀도와 재현율은 일반적으로 트레이드오프 관계에 있다. 하나를 높이면 다른 하나는 낮아지는 경향이 있어, 두 지표를 동시에 고려해야 한다. 이를 위해 두 지표의 조화 평균인 F1 점수를 사용한다. F1 점수는 정밀도와 재현율이 모두 높을수록 높은 값을 가지며, 두 지표를 균형 있게 종합한 단일 점수를 제공한다. 모델 비교나 하이퍼파라미터 튜닝 시 유용한 기준이 된다.
지표 | 정의 | 공식 (혼동 행렬 기준) | 강조하는 측면 |
|---|---|---|---|
정밀도 | 양성 예측의 정확도 | TP / (TP + FP) | 예측의 신뢰성, 거짓 양성 감소 |
재현율 | 실제 양성의 검출 능력 | TP / (TP + FN) | 포괄성, 거짓 음성 감소 |
F1 점수 | 정밀도와 재현율의 조화 평균 | 2 * (정밀도 * 재현율) / (정밀도 + 재현율) | 정밀도와 재현율의 균형 |
적절한 평가 지표의 선택은 비즈니스 목표와 문제의 맥락에 달려 있다. 예를 들어, 신용 사기 탐지에서는 사기를 놓치지 않는 것(재현율)이 매우 중요할 수 있지만, 추천 시스템에서는 사용자에게 정말 관련 높은 아이템만 보여주는 것(정밀도)이 더 중요할 수 있다.
4.3. ROC 곡선과 AUC
4.3. ROC 곡선과 AUC
ROC 곡선은 이진 분류 모델의 성능을 평가하기 위한 그래픽 도구이다. 이 곡선은 분류기의 임계값을 변화시키면서 계산된 진양성률과 위양성률의 관계를 나타낸다. 진양성률은 재현율과 동일하며, 실제 양성인 샘플 중에서 모델이 올바르게 양성으로 예측한 비율을 의미한다. 위양성률은 실제 음성인 샘플 중에서 모델이 잘못하여 양성으로 예측한 비율을 의미한다. ROC 곡선은 좌상단에 가까울수록, 즉 진양성률이 높고 위양성률이 낮은 상태를 유지할수록 모델의 성능이 우수함을 나타낸다.
ROC 곡선 아래의 면적을 AUC라고 한다. AUC 값은 0과 1 사이의 값을 가지며, 완벽한 분류기의 경우 1의 값을 가진다. 무작위 추측에 해당하는 분류기의 ROC 곡선은 대각선이 되며, 이때의 AUC 값은 0.5이다. 따라서 AUC 값이 0.5에 가까울수록 모델의 분별력이 없음을 의미하고, 1에 가까울수록 우수한 성능을 가진 모델임을 의미한다. AUC는 모델의 예측 확률 점수를 기반으로 한 종합적인 평가 지표로, 특히 불균형 데이터셋에서도 비교적 안정적인 평가가 가능하다는 장점이 있다.
AUC 값 범위 | 모델 성능 해석 |
|---|---|
0.9 ~ 1.0 | 매우 우수한 분류 성능 |
0.8 ~ 0.9 | 좋은 성능 |
0.7 ~ 0.8 | 괜찮은 성능 |
0.6 ~ 0.7 | 보통의 성능 |
0.5 ~ 0.6 | 낮은 성능 |
0.5 | 무작위 추측 수준 |
ROC 곡선과 AUC는 단일 지표인 정확도가 가진 한계를 보완한다. 특히 양성과 음성 클래스의 분포가 균형잡히지 않은 경우, 정확도는 오해의 소지가 있을 수 있다. 예를 들어, 데이터의 95%가 음성인 경우 모든 샘플을 음성으로 예측하는 모델의 정확도는 95%가 되지만, 이 모델은 양성 샘플을 전혀 찾아내지 못한다. ROC 곡선과 AUC는 이러한 문제에서 자유로우며, 임계값에 관계없이 모델의 예측 능력을 전반적으로 평가하는 데 유용하다.
5. 다항 로지스틱 회귀
5. 다항 로지스틱 회귀
다항 로지스틱 회귀는 종속 변수가 두 개 이상의 범주를 가질 때 사용하는 로지스틱 회귀 모델의 확장 형태이다. 이진 분류 문제를 해결하는 기본 로지스틱 회귀와 달리, 세 개 이상의 클래스를 분류할 수 있다. 이를 다중 클래스 분류라고 부른다.
다항 로지스틱 회귀는 주로 두 가지 방식으로 구현된다. 첫 번째는 One-vs-Rest(OvR, 일대다) 방식이다. 이 방식은 각 클래스를 '긍정' 클래스로 설정하고 나머지 모든 클래스를 '부정' 클래스로 묶어, 클래스 개수만큼의 이진 분류기를 훈련시킨다. 예를 들어, A, B, C 세 클래스가 있다면 'A vs (B,C)', 'B vs (A,C)', 'C vs (A,B)' 분류기를 각각 만든다. 최종 예측은 각 분류기가 출력한 확률 중 가장 높은 값을 가진 클래스를 선택하는 방식으로 이루어진다. 두 번째 방식은 소프트맥스 함수를 사용하는 방식이다. 이는 보다 직접적인 일반화로, 모델이 각 클래스에 대한 점수를 출력하면 소프트맥스 함수가 이 점수들을 정규화하여 각 클래스에 속할 확률의 합이 1이 되도록 만든다. 수식은 다음과 같다.
클래스 | 가설 함수 (확률) |
|---|---|
클래스 1 | P(y=1) = e^(z₁) / (e^(z₁) + e^(z₂) + ... + e^(zₖ)) |
클래스 2 | P(y=2) = e^(z₂) / (e^(z₁) + e^(z₂) + ... + e^(zₖ)) |
... | ... |
클래스 k | P(y=k) = e^(zₖ) / (e^(z₁) + e^(z₂) + ... + e^(zₖ)) |
여기서 z₁, z₂, ..., zₖ는 각 클래스에 대한 선형 방정식(θᵀX)의 결과값이다. 소프트맥스 함수를 사용한 모델은 교차 엔트로피 비용 함수를 최소화하는 방향으로 학습된다.
이 모델은 의료 진단에서 다양한 질병 유형을 분류하거나, 자연어 처리에서 문서를 여러 주제로 분류하며, 이미지 인식에서 손글씨 숫자(0~9)를 구분하는 등 광범위하게 적용된다. 구현 시에는 사이킷런(Scikit-learn)의 LogisticRegression 클래스에서 multi_class 매개변수를 'ovr' 또는 'multinomial'(소프트맥스)으로 설정하여 쉽게 사용할 수 있다. 클래스 간 불균형이 심하거나 특성의 수가 매우 많을 경우에는 적절한 정규화 기법을 적용하는 것이 중요하다.
6. 실전 적용
6. 실전 적용
실전에서 로지스틱 회귀 모델을 구축할 때는 데이터의 특성에 맞는 전처리와 적절한 라이브러리 활용이 중요하다.
데이터 전처리 요령
로지스틱 회귀는 선형 모델의 일종이므로, 데이터의 스케일과 분포가 성능에 영향을 미친다. 연속형 변수는 표준화나 정규화를 적용하여 모든 특성이 비슷한 범위를 갖도록 조정하는 것이 좋다. 이는 특히 경사 하강법을 사용한 최적화 과정에서 수렴 속도를 높인다. 범주형 변수는 원-핫 인코딩을 통해 수치형으로 변환해야 한다. 또한, 모델의 과적합을 방지하고 해석력을 높이기 위해 다중공선성을 확인하고 불필요한 변수를 제거하는 과정이 필요하다. 결측치 처리도 중요한 단계이며, 평균 대체나 KNN 기반 대체 등의 방법이 사용된다.
주요 라이브러리 활용 예시
파이썬의 scikit-learn 라이브러리는 로지스틱 회귀 구현을 위한 표준 도구이다. 기본적인 사용법은 다음과 같다.
```python
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
# 데이터 스케일링
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2)
# 모델 생성 및 학습
model = LogisticRegression(penalty='l2', C=1.0, max_iter=1000)
model.fit(X_train, y_train)
# 예측
y_pred = model.predict(X_test)
```
LogisticRegression 클래스의 주요 하이퍼파라미터로는 정규화 유형(penalty), 정규화 강도의 역수(C), 최적화 알고리즘(solver) 등이 있다. C 값이 클수록 정규화가 약해지고 모델이 훈련 데이터에 더 복잡하게 적합한다. statsmodels 라이브러리는 계수의 통계적 유의성을 검정하는 등 보다 상세한 회귀 분석 결과를 제공하는 데 유용하다.
6.1. 데이터 전처리 요령
6.1. 데이터 전처리 요령
로지스틱 회귀 모델을 효과적으로 학습시키기 위해서는 입력 데이터에 대한 적절한 전처리가 필수적이다. 모델의 성능과 안정성은 데이터의 품질에 크게 의존한다.
데이터 전처리의 첫 단계는 결측치 처리이다. 결측치가 많은 변수는 제거하는 것이 일반적이며, 중요한 변수의 경우 평균, 중앙값, 최빈값 등으로 대체하거나 KNN 같은 알고리즘을 이용해 예측값으로 채울 수 있다. 다음으로는 이상치 탐지와 처리가 필요하다. 로지스틱 회귀는 이상치에 민감할 수 있으므로, IQR 방법이나 Z-score를 사용해 이상치를 식별한 후 제거하거나 조정한다. 범주형 변수는 원-핫 인코딩을 통해 수치형으로 변환해야 한다. 순서가 없는 범주형 변수에 라벨 인코딩을 적용하면 모델이 잘못된 순서 관계를 학습할 위험이 있다.
전처리 단계 | 주요 기법 | 주의사항 |
|---|---|---|
결측치 처리 | 제거, 평균/중앙값 대체, KNN 대체 | 변수의 중요도와 결측 비율을 고려해 방법 선택 |
이상치 처리 | 도메인 지식을 활용해 실제 이상치 여부 판단 | |
범주형 변수 인코딩 | 더미 변수 함정을 피하기 위해 한 범주를 드롭 | |
특성 스케일링 | 경사 하강법 사용 시 반드시 필요 |
마지막으로, 특성 스케일링은 특히 경사 하강법을 사용할 때 중요한 단계이다. 입력 특성들의 스케일이 크게 다르면 학습 속도가 느려지고 최적점에 수렴하기 어려울 수 있다. 표준화는 각 특성을 평균 0, 표준편차 1로 변환하며, 정규화는 값을 특정 범위(예: 0과 1 사이)로 조정한다. 로지스틱 회귀에서는 표준화가 더 일반적으로 권장된다. 또한, 특성 간의 높은 상관관계(다중공선성)는 모델 계수의 해석을 어렵게 만들 수 있으므로, 상관관계 분석을 통해 불필요한 변수를 제거하거나 주성분 분석을 적용해 차원을 축소할 수 있다.
6.2. 주요 라이브러리 활용 예시
6.2. 주요 라이브러리 활용 예시
로지스틱 회귀 모델을 구현하기 위해 가장 널리 사용되는 파이썬 라이브러리는 scikit-learn과 statsmodels이다. 두 라이브러리는 접근 방식과 제공 정보에 차이가 있다. scikit-learn은 통일된 API와 높은 성능에 중점을 두어 예측 모델 구축에 적합하며, statsmodels는 통계적 추론과 모델 해석에 더 많은 세부 정보를 제공한다.
다음은 scikit-learn을 사용한 기본적인 이항 분류 예시이다.
```python
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
# 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 특성 스케일링 (선택적)
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
# 모델 생성 및 학습
model = LogisticRegression(penalty='l2', C=1.0, solver='lbfgs', max_iter=1000)
model.fit(X_train_scaled, y_train)
# 예측
y_pred = model.predict(X_test_scaled)
y_pred_proba = model.predict_proba(X_test_scaled)[:, 1]
```
solver 매개변수로 최적화 알고리즘('lbfgs', 'liblinear', 'saga' 등)을, penalty로 정규화 유형('l2', 'l1', 'none')을, C로 정규화 강도를 조절할 수 있다.
반면, statsmodels는 회귀 계수에 대한 p-값과 신뢰 구간 같은 통계적 정보를 상세히 제공한다. 이는 변수의 유의성을 검정하거나 모델을 해석할 때 유용하다.
```python
import statsmodels.api as sm
# 상수항 추가
X_train_sm = sm.add_constant(X_train)
# 모델 적합
logit_model = sm.Logit(y_train, X_train_sm)
result = logit_model.fit(disp=0) # 최적화 과정 출력 억제
# 결과 요약 출력 (계수, p-value, 신뢰구간 등 포함)
print(result.summary())
```
다항 분류(다항 로지스틱 회귀)의 경우, scikit-learn에서는 LogisticRegression의 multi_class 매개변수를 'multinomial' 또는 'ovr'(One-vs-Rest)로 설정하여 처리한다. statsmodels에서는 MNLogit 클래스를 사용한다.
7. 장단점
7. 장단점
로지스틱 회귀 모델은 해석의 용이성과 구현의 간편함으로 널리 사용되지만, 선형적 결정 경계와 과적합 가능성 등의 한계도 존재한다.
주요 장점은 다음과 같다. 첫째, 모델의 출력이 확률값으로 해석 가능하다. 이는 단순한 분류 결과뿐만 아니라 예측에 대한 확신도를 제공하여 의사결정에 유용한 정보가 된다. 둘째, 계수의 크기와 부호를 통해 각 특징이 결과에 미치는 영향의 방향과 상대적 중요도를 직관적으로 이해할 수 있다. 셋째, 계산 비용이 비교적 저렴하고 구현이 쉽다. 또한 선형 회귀와 달리 종속 변수가 범주형이어도 적용 가능하며, 이진 분류뿐만 아니라 다항 로지스틱 회귀를 통해 다중 클래스 분류에도 사용될 수 있다.
반면, 다음과 같은 단점과 한계를 가진다. 가장 큰 제약은 기본적으로 특징과 로그 오즈 간의 선형 관계를 가정한다는 점이다. 이는 복잡한 비선형 관계를 가진 데이터에는 적합하지 않을 수 있다. 둘째, 과적합에 취약할 수 있으며, 특히 특징의 수가 많거나 서로 높은 상관관계를 가질 때 성능이 저하된다. 이러한 문제를 완화하기 위해 L1 정규화 또는 L2 정규화를 적용하는 것이 일반적이다. 셋째, 결정 경계가 선형이므로, 특징 공간에서 클래스들이 선형적으로 분리 가능한 경우에 가장 잘 작동한다.
장점 | 단점 |
|---|---|
결과의 확률적 해석 가능 | 특징과 로그 오즈 간 선형성 가정 |
모델 계수의 해석 용이성 | 복잡한 비선형 관계 모델링 부적합 |
계산 효율성과 구현 용이성 | 다중공선성이나 고차원 데이터에서 과적합 가능성 |
이진 및 다중 클래스 분류 모두 적용 가능 | 선형 결정 경계의 한계 |
따라서 로지스틱 회귀는 탐색적 데이터 분석이나 베이스라인 모델 구축에 유용하며, 모델의 투명성과 해석 가능성이 중요한 의료, 금융, 사회과학 분야에서 선호된다. 그러나 데이터의 관계가 매우 복잡하거나 비선형적일 경우, 서포트 벡터 머신, 의사결정 나무, 신경망과 같은 더 복잡한 알고리즘이 더 나은 성능을 보일 수 있다.
