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

2026. 4. 16. 19:55내일배움캠프 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)

두 개 이상의 독립변수(X1, X2, ..., Xn)로 하나의 종속변수 Y를 예측.

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

  • 여러 변수의 영향을 동시에 분석 가능
  • 다중공선성 주의: 독립변수들 간에 높은 상관관계가 있으면 문제 발생
    • 진단: 상관계수 확인(약 0.7 이상) 또는 VIF 값 10 이상
    • 해결: 상관 높은 변수 하나 제거, 또는 PCA로 차원 축소
  • 예시: TV/Radio/Newspaper 광고비로 매출 예측

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: 다중공선성 방지를 위해 첫 번째 더미 변수 제거

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

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

  • 회귀식 예시 (2차): Y = β0 + β1X + β2X²
  • 고차 다항식은 과적합(overfitting) 위험 있음
from sklearn.preprocessing import PolynomialFeatures
polynomial_features = PolynomialFeatures(degree=2)
X_poly = polynomial_features.fit_transform(X)

스플라인회귀: 구간별로 다른 회귀식을 적용해 복잡한 비선형 관계를 모델링.

  • 구간마다 다른 다항식 → 전체적으로 매끄러운 곡선 생성
  • 매듭점(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-8)

머신러닝 실습에 필요한 주요 파이썬 라이브러리:

라이브러리 용도

scikit-learn Python 머신러닝
numpy 고성능 수치 계산
pandas 테이블형 데이터 처리
matplotlib 기본 시각화
seaborn 고급 시각화

자주 쓰는 sklearn 함수:

  • model.coef_ : 회귀 계수
  • model.intercept_ : 편향(bias)
  • model.fit(X, y) : 학습
  • model.predict(X) : 예측

실습 흐름: 라이브러리 설치 → 모델 불러오고 훈련 → 산점도 시각화 → 평가


2. tips 데이터 실습 (챕터 1-10)

seaborn 내장 tips 데이터셋으로 실제 회귀 분석 진행.

컬럼 설명

total_bill 전체 지불 금액
tip 팁 금액 (종속변수 Y)
sex 성별
smoker 흡연 유무
day 요일
time 식사 시간 (점심/저녁)
size 식사 인원
  • total_bill(X)로 tip(Y)을 예측하는 단순선형회귀 진행
  • 성별 같은 범주형 변수도 인코딩해서 모델에 투입 가능

3. 범주형 데이터의 이해 (챕터 1-11)

데이터를 두 가지로 분류:

수치형 데이터

  • 연속형: 키, 몸무게처럼 무한히 나뉠 수 있는 값
  • 이산형: 주사위 눈, 나이처럼 유한하게 나뉘는 값

범주형 데이터

  • 순서형: 학점, 등급처럼 순서 의미 있음
  • 명목형: 혈액형, 성별처럼 순서 의미 없음

머신러닝 모델은 숫자 입력만 가능 → 범주형을 숫자로 바꾸는 인코딩(Encoding) 필요.

# 단순 이진 인코딩
df['sex'] = df['sex'].map({'Male': 1, 'Female': 0})

# 원-핫 인코딩
df = pd.get_dummies(df, drop_first=True)

4. 선형회귀의 가정과 한계 (챕터 1-12)

선형회귀가 좋은 성능을 내려면 아래 4가지 가정이 충족되어야 함:

  1. 선형성: Y와 X 사이에 선형 관계가 존재해야 함
  2. 등분산성: 오차의 분산이 모든 X 수준에서 일정해야 함
  3. 정규성: 오차 항이 정규 분포를 따라야 함
  4. 독립성: X 변수들이 서로 독립적이어야 함 → 다중공선성 문제와 연결

다중공선성 해결 방법:

  • 상관계수 행렬 또는 pairplot으로 상관 높은 변수 확인
  • 상관 높은 변수 중 하나만 선택
  • PCA(주성분 분석)로 차원 축소 후 변수 1개로 통합

선형회귀 장단점 정리:

장점 단점

직관적이고 해석 쉬움 X-Y 선형성 가정 필요
학습 속도 빠름 이상치에 민감 (평균 포함 지표)
X-Y 관계 정량화 가능 범주형 인코딩 시 정보 손실

데이터 프로세스 전체 흐름

데이터 수집 → 데이터 전처리 → EDA → 모델링 & 평가 → 배포
               (이상치/결측치 처리,     (기술통계,   (최적화)
                인코딩, 스케일링,        시각화)
                데이터 분리)

이번 챕터에서는 전처리(인코딩), 모델링, 평가에 집중.


핵심 요약

  • 실습 핵심 라이브러리: sklearn, pandas, seaborn
  • 범주형 변수는 반드시 인코딩 후 모델에 투입
  • 선형회귀는 선형성 가정이 깨지면 성능 저하 → 가정 확인 필수
  • 독립변수 간 높은 상관관계 → 다중공선성 → VIF 또는 상관행렬로 진단