로지스틱 회귀(Logistic Regression) 정리
분류와 선형회귀
분류(Classification)
로지스틱 회귀분석은, 사전에 정의해 놓은, 가능성 있는 여러 개의 클래스 레이블(class label)들 중에서 하나를 선택하는 것입니다. 즉, 분류라고 생각하시면 좋을 듯 합니다.
이진 분류(binary classification): 정확히 2개의 class label만이 존재(예시: 성별분류, 스팸메일 분류)
다중 분류(multiclass classification): 3개 이상의 class label 존재(예시: 도시 분류)
수학적 표현: y∈0,1
0: "Negative Class" (e.g., benign tumor)
1: "Positive Class" (e.g., malignant tumor)
의 형식으로, 딱 2개로 분류하는경우입니다. 다중 분류일경우 속하는 라벨의 수가 증가합니다.
분류문제에 선형회귀를 적용할 수 있을까?
이진분류에서 종속변수 y의 값: y=0 또는 y=1
선형회귀에서 가설함수 hθ(x)의 값:
hθ(x)>1 또는 hθ(x)<0의 경우가 존재
로지스틱 회귀(Logistic Regression):
0≤hθ(x)≤1
분류문제에 적용될 수 있다고 보입니다.
로지스틱 회귀(Logistic Regression)
로지스틱 회귀 모델
선형회귀의 가설함수 hθ(x)=θTx의 값이 0과 1사이의 값을 갖도록 변환합니다. 즉 선의 형태를 1과 0사이의 값으로 변환하고, 임계점을 통해 0 혹은 1로 분류할 수 있도록 합니다.
로지스틱 함수(Logistic Function)
아래와 같이 S-커브 함수를 나타냅니다.
실제 많은 자연, 사회현상에서는 특정 변수에 대한 확률 값이 선형이 아닌 S-커브 형태를 따르는 경우가 많습니다.
x값으로 어떤 값이든 받을 수 있지만, 출력결과(y)는 항상 0에서 1사이 값이 되는 형태입니다.

누적분포함수(cumulative distribution function) 요건을 충족하게 됩니다.
시그모이드 함수(sigmoid function)라고도 함
로지스틱 회귀 가설함수
hθ(x)=g(θTx)=P(y=1∣x;θ)
g(z)=1+e−z1 (시그모이드 함수)
예측 방법:
y=1 if hθ(x)≥0.5: g(z)≥0.5 when z≥0
y=0 if hθ(x)<0.5: g(z)<0.5 when z<0
위의 수식은 임계점을 0.5라고 판단하고, 0.5가 넘으면 y의 값이 1이고 넘지 않으면 0으로 판단하여 분류하는 형식입니다.
로지스틱 회귀 가설함수의 해석
hθ(x)=P(y=1∣x;θ): "Probability that y=1, given x, parameterized by θ"
P(y=0∣x;θ)+P(y=1∣x;θ)=1
P(y=0∣x;θ)=1−P(y=1∣x;θ)
예제:
x=[x0 x1]=[1 종양크기] 일때, hθ(x)=0.7 이라면
→ '악성종양일 확률이 70%'라고 해석할 수 있습니다.
Linear Regression within Logistic Regression
예를 들어, θ0=−3,θ1=1,θ2=1이라고 가정하면:
hθ(x)=g(θ0x0+θ1x1+θ2x2)
−3+x1+x2≥0 이라면, y=1로 예측: x1+x2≥3
−3+x1+x2<0 이라면, y=0로 예측: x1+x2<3
비용함수(Cost Function)
훈련 데이터셋
Training set: (x(1),y(1)),(x(2),y(2)),…,(x(m),y(m))
m개의 example로 이루어진 각각의 feature vector x에 대하여,
x=[x0 x1 ⋮ xn]∈Rn+1,x0=1,y∈0,1
다중선형회귀 비용함수
J(Θ)=2m1∑i=1m(hθ(x(i))−y(i))2
로지스틱 회귀 비용함수
로지스틱 회귀에서는 선형회귀의 비용함수를 더 이상 사용할 수 없습니다.
왜냐하면, 로지스틱 함수가 non-linear(비선형, 위의 시그모이드 함수의 형식)하므로 hθ(x)=1+e−θTx1이 되고, 선형회귀의 비용함수는 더 이상 convex 함수가 아님 → 수많은 local optima를 야기시킬 수 있습니다.

위의 사진과 같이 convex(볼록한) 함수가 아니게 되면 모델이 지역적으로 최솟값이라고 판단을 하게 되는 문제를 일으킬 수 있습니다.
로지스틱 회귀 비용함수
J(Θ)=m1∑i=1mCost(hθ(x(i)),y(i))
Cost(hθ(x),y)={−log(hθ(x))if y=1 −log(1−hθ(x))if y=0
특성은 다음과 같습니다.
Cost(hθ(x),y)=0 if hθ(x)=y
Cost(hθ(x),y)→∞ if y=0 and hθ(x)→1 or if y=1 and hθ(x)→0

위의 그래프와 마찬가지로 y값이 일치하면 비용이 0에 수렴하고, 틀릴경우 비용이 무한대로 수렴하는 로그함수의 형태를 가집니다.
간소화된 비용함수
Cost(hθ(x),y)=−ylog(hθ(x))−(1−y)log(1−hθ(x))
따라서 비용함수는 다음과 같이 정리할 수 있습니다.
J(Θ)=−m1∑i=1m[y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))]
비용함수 - Cross-Entropy와의 연관성
Cross-Entropy: 하나의 확률 분포를 다른 확률분포로 인코딩할 때 필요한 평균 정보량이라고 정의됩니다.
H(p,q)=−∑i=1p(i)logq(i)
p: 실제 확률분포 (정답)
q: 모델의 예측 확률 분포
분류에서는 p(i)=1 for 정답 클래스, 나머지는 0 (one-hot scheme)
즉, 해당 클래스의 logq(i)만 남게 되는 형태입니다.
Maximum Likelihood Estimation 유도 - BCE와 동일
Maximum Likelihood Estimation (MLE): Logistic Regression은 우도(likelihood)를 최대화하는 방식으로 학습합니다.
우도 함수: L(θ)=∏i=1mp^iyi(1−p^i)1−yi
Log Likelihood: log(L(θ))=∑i=1m[yilog(p^i)+(1−yi)log(1−p^i)]
Negative Log Likelihood: L=−logL(θ)=−∑i=1m[yilog(p^i)+(1−yi)log(1−p^i)]
목표: argminΘJ(Θ)
경사하강(Gradient Descent)
로지스틱 회귀 경사하강 알고리즘
repeat until convergence {
θj := θj - α ∂/∂θj J(Θ) (simultaneous update for all θj)
즉, 선형회귀의 경사하강 알고리즘과 동일해집니다.
편미분 계산
∂θj∂J(Θ)=m1∑i=1m(hθ(x(i))−y(i))xj(i)
시그모이드 함수 미분
σ′(x)=σ(x)⋅(1−σ(x)), where σ(x)=1+e−x1

위의 그래프와 같은 형태를 가지게 됩니다.
로지스틱 회귀 경사하강 알고리즘 (최종)
repeat until convergence {
θj := θj - α/m Σ (hθ(x^(i)) - y^(i))⋅x_j^(i) (simultaneous update for all θj)
}
선형회귀의 경사하강과 동일한 형태지만, 가설함수 hθ(x)의 정의가 다르게 됩니다. 중요한 부분이니 꼭 인지하고 있어야 합니다.
hθ(x)=1+e−θTx1
Logit의 개념
Logit 정의
확률 p에 대한 log-odds입니다.
logit(p)=log(odds)=log(1−pp)
p=P(y=1∣x)=σ(θTx)=1+e−θTx1
logit(p)=θTx
모델의 해석 관점
logit(p)=log(1−pp)=θTx
1−pp=exp(θTx)
예시: logit(p)=−3+0.5x1+0.8x2
x1이 1 증가할 때, odds는 e0.5≈1.65배 증가
x2가 1 증가할 때, odds는 e0.8≈2.23배 증가
실제 확률 변화는 출발 확률에 따라 달라집니다.
log(odds)=log(1−pp) → p=1+oddsodds
초기 확률(pold)이 10%일때 로지스틱 회귀계수 0.8의 의미:
odds = 0.111 → 0.111 × 2.23 = 0.247 → pnew≈1+0.2470.247=0.198 (약 9.8% 증가)
초기 확률(pold)이 90%일때 로지스틱 회귀계수 0.8의 의미:
odds = 9 → 9 × 2.23 = 20.1 → pnew≈1+20.120.1=0.95 (약 5% 증가)
다중분류(Multiclass Classification)
다중분류 개념
3개 이상의 class label 존재하는 경우입니다. 위의 경우에는 Binary Classification, 이진분류를 다뤘습니다.
다중분류 예시에는 다음과 같은 것들이 있습니다.
이메일(폴더링/태깅) – 직장/친구/가족/취미
뉴스기사 – 정치/경제/과학/연예/스포츠
날씨 – 맑음/흐림/비/눈
상품평 – 긍정/중립/부정
One-vs-All (One-vs-Rest) 방법
각 클래스 i에 대해서 로지스틱 회귀를 훈련하고 y=i일 확률을 예측함
새로운 입력 x에 대한 분류를 위해, hθ(i)(x)를 최대화 하는 i를 선택:
argmaxihθ(i)(x)
Multiclass Logistic Regression
K(≥3)개의 각 클래스에 대한 확률을 동시에 예측함
Softmax 함수를 사용하여 확률 계산:
P(y=k∣x)=softmax(zk)=∑j=0kexp(θjTx)exp(θkTx), where zk=θkTx
예측 결과는 아래의 수식으로 이뤄집니다.
확률이 가장 높은 클래스를 예측값으로 선택: y^=argmaxkP(y=k∣x)
예시) 1이 0.33, 2가 0.5, 3이 0.17이라면, 이 확률의 분포를 가진 변수는 2의 클래스에 속하게 됩니다.
다중분류 비용함수 (Cross-Entropy Loss)
J(Θ)=−∑i=1m∑k=1Kyi,klogP(y=k∣xi)
yi,k: 1-of-K coding scheme (one-hot encoding)
정규화 (Regularization)
L1 정규화 (Lasso)
규제강도(λ)가 클수록 계수에 0이 많아집니다.
계수에 대응하는 특성변수를 제거하는 역할을 합니다. (feature selection)
L2 정규화 (Ridge)
규제강도(λ)가 클수록 추정된 계수들의 절대값이 작아지게 됩니다.
규제화 파라미터
사이킷런(sklearn)에서는 C=1/λ로 규제화
C값이 작을수록 λ값이 커지므로 규제화 강도가 높아짐
C값이 클수록 λ값이 작아지므로 규제화 강도가 줄어듦
규제화에 관련된 실습 코드와 개념에 대해서는, 추후 다른 글로 공유드리겠습니다.
로지스틱 회귀 평가
성능 평가 지표
정확도(accuracy)
정확도 행렬(confusion matrix)
정밀도(precision)
재현율(recall)
F1 스코어
의 머신러닝의 전통적인 방법으로 측정합니다. 위의 평가 지표도 있다는 것만 알아두시고, 성능 평가 지표에 관련된 글을 추후 업로드 하겠습니다. 감사합니다.