끄적이는 개발노트

260608_강의 정리 (확률 모델 기초) 본문

머신러닝

260608_강의 정리 (확률 모델 기초)

크런키스틱 2026. 6. 8. 10:31
728x90

 

machine learning · 확률 모델
로지스틱 회귀와 확률 모델 기초
  • 확률의 기본 개념 — 주변·결합·조건부확률, 덧셈·곱셈 법칙, 전확률 정리
  • 우도(Likelihood)와 MLE — 데이터로부터 모수를 추정하는 원리
  • 로지스틱 회귀 — Odds, Logit 변환, 시그모이드, Solver 선택 기준까지
🎲
1. 확률의 기본 개념

"사건이 일어날 가능성을 수치로 표현하는 방법" — 머신러닝 확률 모델의 출발점

  • 주변확률 (Marginal Probability) — 다른 변수를 무시하고 특정 변수만의 확률
  • 결합확률 (Joint Probability) — 두 사건이 동시에 일어날 확률: P(A∩B) = n(A∩B) / n(S)
  • 조건부확률 (Conditional Probability) — A가 주어졌을 때 B의 확률: P(B|A) = P(A∩B) / P(A)
  • 덧셈 법칙 — P(A∪B) = P(A) + P(B) − P(A∩B)
  • 곱셈 법칙 — P(A∩B) = P(A) × P(B|A)
P(B|A) = P(A∩B) / P(A)
조건부확률 — A가 일어났을 때 B가 일어날 확률
P(B|A)
A가 주어졌을 때 B의 확률 — "| " 기호는 "~가 주어졌을 때"라는 뜻
남성(A)이라고 알 때, 사과를 좋아할(B) 확률
P(A∩B)
A와 B가 동시에 일어날 확률 — ∩ 기호는 "교집합(AND)"
전체 30명 중 남성이면서 사과를 좋아하는 사람 9명 → 9/30
P(A)
A 자체의 확률 — 전체 중 A가 차지하는 비율
전체 30명 중 남성 10명 → 10/30
💡 새 개념
전확률 정리 Law of Total Probability
  • 표본공간을 서로 배타적인 사건 B₁, B₂, …로 분할했을 때 사건 A의 확률을 구하는 법칙
  • P(A) = Σ P(Bᵢ) × P(A|Bᵢ) — Σ는 "모두 더하라"는 기호
전체 구매 확률 = (남성 비율 × 남성 구매율) + (여성 비율 × 여성 구매율)
📊 결합확률표 예시 — 성별 × 과일 선호
사과포도행의 합
9110
15520
열의 합24630
읽는 법
· P(사과) = 24/30 = 0.8 — 주변확률
· P(사과 ∩ 남) = 9/30 = 0.3 — 결합확률
· P(사과 | 남) = 9/10 = 0.9 — 조건부확률
🔄
2. 베이즈 정리

"새로운 증거를 보고 나의 믿음을 업데이트하는 방법" — 사후확률 계산의 핵심

P(H|E) = P(H) × P(E|H) / P(E)
사후확률 = 사전확률 × 우도 / 정규화 상수
H
Hypothesis — 가설
"이 메일이 스팸이다"
E
Evidence — 증거 (관측된 데이터)
"메일에 '광고'라는 단어가 있다"
P(H|E)
사후확률 (Posterior) — 증거를 본 후 업데이트된 확률
'광고' 단어를 봤을 때 스팸일 확률 → 이게 최종 목표
P(H)
사전확률 (Prior) — 증거 보기 전에 가진 믿음
원래 스팸 메일 비율이 30%로 알려져 있음
P(E|H)
우도 (Likelihood) — 가설이 참일 때 이 증거가 나올 확률
스팸이라면 '광고' 단어가 등장할 확률 = 80%
P(E)
정규화 상수 (Normalising Constant) — 결과가 0~1이 되도록 나눠주는 값
전확률 정리로 계산 — "어떤 상황에서든 '광고'가 등장할 전체 확률"
기억 포인트
· Posterior ∝ Likelihood × Prior (∝ 는 "비례한다"는 기호)
· 데이터가 많아질수록 Prior의 영향이 줄고 Likelihood가 지배함
📐
3. 우도(Likelihood)와 MLE

"데이터를 가장 잘 설명하는 파라미터를 찾는 과정" — 로지스틱 회귀 학습의 실체

L(w) = ∏ pᵢʸⁱ (1 − pᵢ)^(1−yᵢ)
이진 분류 우도 함수 — 모든 데이터에 대해 곱셈
L(w)
우도 (Likelihood) — 파라미터 w를 썼을 때, 지금 이 데이터가 관측될 가능성
w가 좋은 값일수록 L(w)이 커짐 → L을 최대화하는 w를 찾는 것이 MLE
w
파라미터 (가중치) — 모델이 학습으로 찾아야 하는 값
β₀, β₁처럼 x가 결과에 얼마나 영향을 주는지 나타내는 수치
곱셈 기호 (Product) — Σ(시그마)가 "다 더해라"라면, ∏(파이)는 "다 곱해라"
데이터 3개라면 L = (첫 번째 확률) × (두 번째 확률) × (세 번째 확률)
i
데이터 번호 인덱스 — 1번째, 2번째, … n번째 데이터를 순서대로 가리킴
pᵢ
i번째 데이터가 클래스 1일 확률 — 모델이 예측한 값 (0~1 사이)
i번째 메일이 스팸일 확률 → 예: 0.85
yᵢ
i번째 데이터의 실제 정답 — 0 또는 1만 가짐
스팸이면 yᵢ=1, 정상 메일이면 yᵢ=0
pᵢʸⁱ
yᵢ=1일 때만 pᵢ를 씀 — yᵢ=1이면 pᵢ¹=pᵢ, yᵢ=0이면 pᵢ⁰=1 (영향 없음)
정답이 스팸(1)이면 → 스팸 예측 확률 pᵢ를 그대로 사용
(1−pᵢ)^(1−yᵢ)
yᵢ=0일 때만 (1−pᵢ)를 씀 — "스팸이 아닐 확률"을 사용하는 부분
정답이 정상(0)이면 → 스팸 아닐 확률 (1−pᵢ)를 사용
한 줄 요약
· 정답이 1인 데이터 → 모델의 예측 확률 p를 곱함
· 정답이 0인 데이터 → 모델의 "아닐 확률" (1−p)를 곱함
· 이 전체 곱이 최대가 되는 w를 찾는 것 = MLE (최대우도추정)
연속형 변수의 우도 계산 흐름
1
히스토그램 생성
연속형 데이터를 구간으로 나눠 빈도를 시각화함
2
분포 추정
정규분포, 지수분포 등 적절한 분포를 가정하거나 추정함
3
확률밀도 계산
각 데이터 포인트의 확률밀도함수(PDF) 값을 계산함
4
밀도 곱셈 → 우도
모든 데이터 포인트의 밀도를 곱하면 전체 우도가 됨
분포를 아는가? — 방법 선택 분기
✅ 분포를 아는 경우 (Parametric)
정규, 포아송 등 분포를 가정하고 우도를 직접 계산함

MLE Bayes
⚠️ 분포를 모르는 경우 (Nonparametric)
데이터만으로 분포를 추정한 뒤 확률밀도를 계산함

KDE EDF
📊
4. 로지스틱 회귀

"결과를 0과 1 사이의 확률로 예측하는 분류 모델" — 선형회귀를 확률로 변환하는 핵심 아이디어

💡 새 개념
Odds 오즈
  • 성공 확률(π)과 실패 확률(1−π)의 비율: odds = π / (1−π)
  • 반대로 확률로 되돌리면: π = odds / (1 + odds)
당첨 확률 25%면 odds = 0.25/0.75 = 0.33 → 당첨:비당첨 = 1:3
Logit 변환 Log-Odds
  • Odds에 로그를 취해 선형 모델로 표현 가능하게 만듦
  • log(π / (1−π)) = β₀ + β₁X — 이 식이 Logit Form
Odds가 1이면 log(odds) = 0 → 확률 50%에 해당
시그모이드 함수 Sigmoid / Logistic Function
  • 임의의 실수 입력을 (0, 1) 사이 확률로 변환하는 S자 곡선
어떤 숫자든 S자 곡선으로 0~1 사이에 눌러 담는 함수
φ(z) = 1 / (1 + e⁻ᶻ)
시그모이드 함수 — z를 0~1 사이 확률로 압축
z
선형 결합값 — β₀ + β₁X 처럼 특성들을 더한 값. −∞ ~ +∞ 범위
키, 나이, 소득을 가중합해서 나온 숫자 → 범위 제한 없음
e
자연상수 ≈ 2.718 — 수학에서 자연스럽게 등장하는 특별한 상수
e² ≈ 7.39, e⁰ = 1, e⁻¹ ≈ 0.37
e⁻ᶻ
z가 클수록 작아지고, z가 작을수록 커지는 값
z=5 → e⁻⁵ ≈ 0.007 (거의 0) / z=−5 → e⁵ ≈ 148 (매우 큰 값)
φ(z)
최종 출력 확률 (0~1 사이)
· z → +∞ : 1/(1+0) = 1.0 (클래스 1 확실)
· z = 0 : 1/(1+1) = 0.5 (50대 50)
· z → −∞ : 1/∞ = 0.0 (클래스 0 확실)
log(π / (1−π)) = β₀ + β₁X
Logit Form — Odds에 로그를 취하면 선형식이 됨
π
예측 확률 — 클래스 1일 확률 (0~1 사이)
스팸일 확률 0.7
β₀
절편 (Intercept) — x=0일 때의 기준값. 편향(bias)이라고도 함
β₁
계수 (Coefficient) — X가 1 증가할 때 log-odds가 β₁만큼 변함
β₁ > 0 이면 X가 클수록 클래스 1 확률이 높아짐
X
입력 특성 (Feature) — 예측에 사용하는 변수
메일의 '광고' 단어 포함 여부, 발신자 도메인 등
해석 포인트 — Odds와 계수의 관계
· X가 1단위 증가할 때 Odds가 e^β₁배 변함
· β₁ > 0 → Odds 증가 → 클래스 1 확률 상승
· β₁ = 0 → X는 예측에 영향 없음
선형 결합 (Xβ)
Logit 변환
시그모이드
확률 π ∈ (0,1)
분류 결과
⚙️
5. scikit-learn 분류 모델과 규제

"과적합을 막는 페널티" — 규제(Regularization)를 포함한 주요 분류기

LogisticRegression 로지스틱 회귀 (규제 포함)
확률 기반 이진·다중 분류기 — L1/L2/ElasticNet 규제 지원
  • penalty — 규제 종류 선택: l1 / l2 / elasticnet / None
  • C — 규제 강도의 역수; C가 작을수록 규제가 강해짐 (과적합 억제)
  • LogisticRegressionCV — 교차검증으로 최적 C를 자동 탐색함
RidgeClassifier 릿지 분류기 (L2 규제 고정)
L2 규제가 내장된 선형 분류기 — 회귀 계수를 0에 가깝게 수축시킴
  • 확률 출력이 없고 결정 경계 기반 분류만 수행함
  • RidgeClassifierCV — 교차검증으로 최적 alpha 자동 탐색
  • 특성이 많고 다중공선성이 있을 때 유리함
SGDClassifier 확률적 경사하강법 분류기
대용량 데이터에서 미니배치 단위로 빠르게 학습하는 범용 분류기
  • loss 파라미터로 로지스틱 회귀·SVM·퍼셉트론 등 다양한 모델 구현 가능
  • penalty로 L1/L2/ElasticNet 규제 적용 가능
  • 데이터가 메모리에 담기 어려울 때 partial_fit으로 점진 학습 지원
💡 새 개념 — 규제(Regularization)
L1 규제 (Lasso) Penalty = |w|
  • 계수를 정확히 0으로 만들어 불필요한 특성을 제거함 — 자동 특성 선택 효과
100개 특성 중 유효한 5개만 남기고 나머지를 0으로 만듦
L2 규제 (Ridge) Penalty = w²
  • 계수를 0에 가깝게 수축시키되 완전히 0으로 만들지는 않음
  • 다중공선성 문제 완화에 효과적임
모든 특성을 골고루 약하게 사용하도록 유도함
ElasticNet L1 + L2 혼합
  • L1과 L2를 l1_ratio 파라미터로 혼합 — 두 규제의 장점을 함께 취함
특성 선택도 하면서 다중공선성도 처리해야 할 때 사용
C 값 선택 기준
· C 크게 (예: 100) → 규제 약함 → 훈련 데이터에 잘 맞음 → 과적합 위험
· C 작게 (예: 0.01) → 규제 강함 → 단순한 모델 → 과소적합 위험
· 교차검증으로 최적 C 탐색이 가장 안전한 방법 (LogisticRegressionCV 활용)
🔧
6. Solver — 최적화 알고리즘 선택

"우도를 최대화하는 파라미터를 어떻게 찾을 것인가" — solver마다 지원하는 규제와 분류 방식이 다름

Solver최적화 방식다중분류추천 상황
lbfgs준뉴턴법 (BFGS)O소·중규모 데이터, sklearn 기본값
liblinearCoordinate DescentX (OvR만)이진분류, L1 규제, 소규모 데이터
newton-cgNewton-CGOL2 규제, 중규모 데이터
newton-choleskyFull NewtonO샘플 수 < 특성 수인 경우
sag확률경사하강법O대규모 데이터, L2만 지원
sagaSAG + L1 지원O대규모 데이터, L1/L2/ElasticNet 모두 지원
Solver 선택 요령
· 기본값 → lbfgs (대부분 잘 작동함)
· L1 규제 필요 → liblinear (이진) 또는 saga (다중)
· 대용량 데이터 → sag / saga
· liblinear는 multinomial 소프트맥스를 지원하지 않고 OvR(One-vs-Rest)만 지원함에 주의
sklearn LogisticRegression Regularization MLE SGD
전체 요약
확률 모델 → 로지스틱 회귀 흐름 정리
· 확률의 기본 개념(주변·결합·조건부) → 전확률 정리 → 베이즈 정리로 사후확률 계산
· 우도 L(w) = 데이터가 관측될 확률의 곱 → MLE로 L을 최대화하는 w 추정
· Odds → Logit 변환 → 시그모이드 φ(z) = 1/(1+e⁻ᶻ) 로 확률 출력 → 분류
· 규제(L1/L2/ElasticNet)로 과적합 제어, C로 강도 조절, Solver로 최적화 방식 선택
728x90