스파르타클럽 내일배움캠프 QA/QC 5기 04/17 TIL

2026. 4. 17. 20:50내일배움캠프 TIL

오늘은 통계학 기초 4챕터와 머신러닝의 이해와 라이브러리 기초 수업을 끝까지 들었다.

통계학 기초

선형회귀의 종류와 범주형 변수 처리

1. 단순선형회귀 (챕터 4-1)

하나의 독립변수 X로 하나의 종속변수 Y를 직선으로 모델링하는 방법.

회귀식: Y = β0 + β1X (β0 = 절편, β1 = 기울기)

  • 데이터가 직선적 경향을 따를 때 사용
  • 간단하고 해석이 쉬움
  • 비선형 데이터에는 부적합
  • 예시: 광고비(X)와 매출(Y)의 관계 분석 및 예측
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)

2. 다중선형회귀 (챕터 4-2)

두 개 이상의 독립변수로 하나의 종속변수를 예측.

회귀식: Y = β0 + β1X1 + β2X2 + ... + βnXn

  • 여러 변수의 영향을 동시에 분석 가능 (예: TV/Radio/Newspaper 광고비 → 매출)
  • 다중공선성(Multicollinearity) 주의: 독립변수들 간 높은 상관관계가 있으면 각 변수의 개별 효과를 분리하기 어려워지고, 중요한 변수가 통계적으로 유의하지 않게 나타날 수 있음
    • 진단: 상관계수 약 0.7 이상이거나 VIF 값 10 이상
    • 해결: 상관 높은 변수 중 하나 제거, 또는 PCA 차원 축소

3. 범주형 변수 처리 (챕터 4-3)

회귀 모델에 문자형 데이터를 넣으려면 반드시 수치로 변환해야 함.

유형 예시 처리 방법

순서 있는 범주형 옷 사이즈(S/M/L/XL), 수능 등급 순서 반영 숫자 변환 (S→0, M→1 ...)
순서 없는 범주형 (2개) 성별 (남/여) 0, 1 직접 변환 가능
순서 없는 범주형 (3개+) 지역 (부산/대구/대전 ...) 원-핫 인코딩 필수
# pandas로 원-핫 인코딩
df = pd.get_dummies(df, drop_first=True)
# drop_first=True: 다중공선성 방지를 위해 첫 번째 더미 변수 제거

실습 예시: 성별(Gender) + 근무경력(Experience) → 연봉(Salary) 예측


4. 다항회귀 & 스플라인회귀 (챕터 4-4)

X와 Y의 관계가 곡선(비선형)일 때 사용하는 회귀.

다항회귀(Polynomial Regression)

  • 회귀식 예시 (2차): Y = β0 + β1X + β2X²
  • 고차 다항식일수록 과적합(overfitting) 위험 증가
  • 예시: 주택 면적과 가격 간의 비선형 관계
from sklearn.preprocessing import PolynomialFeatures
poly = PolynomialFeatures(degree=2)
X_poly = poly.fit_transform(X)
model = LinearRegression()
model.fit(X_poly, y)

스플라인회귀(Spline Regression)

  • 구간별로 다른 다항식을 적용해 전체적으로 매끄러운 곡선을 만듦
  • 시간에 따라 비선형 패턴이 계속 바뀔 때 적합
  • 매듭점(knots) 위치 선택이 성능에 중요한 영향을 미침

회귀 방식 선택 기준 요약

상황 선택

독립변수 1개, 선형 관계 단순선형회귀
독립변수 여러 개, 선형 관계 다중선형회귀
범주형 변수 포함 더미 변수 변환 후 회귀
비선형 관계 (전체 구간 동일 패턴) 다항회귀
비선형 관계 (구간마다 다른 패턴) 스플라인회귀

모델 평가 지표

from sklearn.metrics import mean_squared_error, r2_score
mse = mean_squared_error(y_test, y_pred)  # 낮을수록 좋음
r2  = r2_score(y_test, y_pred)            # 1에 가까울수록 좋음

 

 

머신러닝의 이해와 라이브러리 기초

로지스틱회귀와 분류 평가 지표

1. 로지스틱회귀란? (챕터 1-13, 1-14)

Y가 0 또는 1인 범주형 분류 문제를 풀기 위한 모델. 선형회귀로는 예측값이 확률 범위(0~1)를 벗어날 수 있어서 그대로 사용할 수 없음.

왜 S자 함수인가? — 오즈비와 로짓의 등장

  • 오즈비(Odds Ratio): 실패 확률 대비 성공 확률. P / (1 - P)
    • 확률이 높아질수록 오즈비가 급격히 발산해 선형성을 따르지 않음
  • 로짓(Logit): 오즈비에 로그를 씌워 선형성을 확보. log(P / (1 - P))
    • 로짓의 그래프가 선형적이어서 선형회귀 식에 활용 가능
    • 이게 바로 "로지스틱 회귀"라는 이름의 이유

로지스틱 함수 (시그모이드)

  • log(P / (1-P)) = w0 + w1X 에서 P에 대해 정리하면:
  • P = 1 / (1 + e^(-Logit))
  • 어떤 값을 넣어도 결과가 반드시 0과 1 사이로 들어옴
  • 확률 0.5 기준: 이상이면 Y=1(사건 발생), 미만이면 Y=0(사건 미발생)으로 분류

타이타닉 데이터 예시 (챕터 1-13)

  • Y(종속변수): 생존(1) / 사망(0)
  • X(독립변수): Pclass(티켓 등급), Sex(성별), Fare(요금), Age(나이) 등
  • 인사이트: 성별만으로 판단해도 정확도 78.6% — 하지만 데이터 과학적이지 않음

2. 분류 평가 지표 (챕터 1-15)

단순 정확도(Accuracy)는 클래스 불균형 상황에서 사기를 칠 수 있음.

예: 암 환자 5명/정상인 95명일 때, "모두 정상"으로 예측하면 정확도 95%지만 실제 암 환자는 한 명도 못 맞춤.

혼동 행렬(Confusion Matrix)

실제 양성(1) 실제 음성(0)

예측 양성(1) TP (맞음) FP (틀림)
예측 음성(0) FN (틀림) TN (맞음)

주요 지표 4가지

지표 공식 설명

정밀도(Precision) TP / (TP + FP) 양성으로 예측한 것 중 실제 양성 비율
재현율(Recall) TP / (TP + FN) 실제 양성 중 양성으로 예측한 비율
F1-Score 2 × (Precision × Recall) / (Precision + Recall) 정밀도와 재현율의 조화 평균
정확도(Accuracy) (TP + TN) / 전체 전체 중 맞춘 비율

Y값이 불균형할 때는 정확도 대신 F1-Score 사용.


3. 로지스틱회귀 실습 (챕터 1-16)

sklearn 주요 함수

from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, f1_score

model = LogisticRegression()
model.fit(X_train, y_train)

y_pred = model.predict(X_test)
y_proba = model.predict_proba(X_test)  # Y=1일 확률

print(accuracy_score(y_test, y_pred))
print(f1_score(y_test, y_pred))

주요 속성

  • model.classes_ : 클래스(Y)의 종류
  • model.coef_ : 가중치
  • model.intercept_ : 바이어스

타이타닉 실습 순서: Fare 단독 모델(1차) → Pclass, Sex, Fare 다중 모델(2차) → accuracy/f1_score 비교


4. 선형회귀 vs 로지스틱회귀 최종 정리 (챕터 1-18)

공통점

  • 모델 생성이 쉽고, 가중치를 통한 해석이 직관적
  • X변수에 범주형/수치형 변수 모두 사용 가능

차이점

구분 선형회귀 (회귀) 로지스틱회귀 (분류)

Y(종속변수) 수치형 범주형
평가 지표 MSE, R² Accuracy, F1-Score
sklearn 모델 LinearRegression LogisticRegression
sklearn 평가 mean_squared_error, r2_score accuracy_score, f1_score

공통 단점

  • 복잡한 비선형 관계 모델링에 한계
  • 선형회귀는 이상치에 민감, 범주형 인코딩 시 정보 손실 발생

핵심 요약

  • 종속변수 Y가 수치형 → 선형회귀 계열
  • 종속변수 Y가 범주형(0/1) → 로지스틱회귀
  • 로지스틱회귀의 핵심 원리: 로짓(log-odds) → 시그모이드 함수 → 확률 0~1 출력
  • 클래스 불균형 데이터에서는 정확도보다 F1-Score가 더 신뢰할 수 있는 지표
  • 데이터 사이언스의 현실: 모델링보다 데이터 수집/전처리에 훨씬 많은 시간이 소요됨