스파르타클럽 내일배움캠프 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가지 가정이 충족되어야 함:
- 선형성: Y와 X 사이에 선형 관계가 존재해야 함
- 등분산성: 오차의 분산이 모든 X 수준에서 일정해야 함
- 정규성: 오차 항이 정규 분포를 따라야 함
- 독립성: X 변수들이 서로 독립적이어야 함 → 다중공선성 문제와 연결
다중공선성 해결 방법:
- 상관계수 행렬 또는 pairplot으로 상관 높은 변수 확인
- 상관 높은 변수 중 하나만 선택
- PCA(주성분 분석)로 차원 축소 후 변수 1개로 통합
선형회귀 장단점 정리:
장점 단점
| 직관적이고 해석 쉬움 | X-Y 선형성 가정 필요 |
| 학습 속도 빠름 | 이상치에 민감 (평균 포함 지표) |
| X-Y 관계 정량화 가능 | 범주형 인코딩 시 정보 손실 |
데이터 프로세스 전체 흐름
데이터 수집 → 데이터 전처리 → EDA → 모델링 & 평가 → 배포
(이상치/결측치 처리, (기술통계, (최적화)
인코딩, 스케일링, 시각화)
데이터 분리)
이번 챕터에서는 전처리(인코딩), 모델링, 평가에 집중.
핵심 요약
- 실습 핵심 라이브러리: sklearn, pandas, seaborn
- 범주형 변수는 반드시 인코딩 후 모델에 투입
- 선형회귀는 선형성 가정이 깨지면 성능 저하 → 가정 확인 필수
- 독립변수 간 높은 상관관계 → 다중공선성 → VIF 또는 상관행렬로 진단
'내일배움캠프 TIL' 카테고리의 다른 글
| 스파르타클럽 내일배움캠프 QA/QC 5기 04/20 TIL (0) | 2026.04.20 |
|---|---|
| 스파르타클럽 내일배움캠프 QA/QC 5기 04/17 TIL (0) | 2026.04.17 |
| 스파르타클럽 내일배움캠프 QA/QC 5기 04/15 TIL (1) | 2026.04.15 |
| 스파르타클럽 내일배움캠프 QA/QC 5기 04/14 TIL (0) | 2026.04.14 |
| 스파르타클럽 내일배움캠프 QA/QC 5기 04/13 TIL (0) | 2026.04.13 |