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가 더 신뢰할 수 있는 지표
- 데이터 사이언스의 현실: 모델링보다 데이터 수집/전처리에 훨씬 많은 시간이 소요됨
'내일배움캠프 TIL' 카테고리의 다른 글
| 스파르타클럽 내일배움캠프 QA/QC 5기 04/21 TIL (0) | 2026.04.21 |
|---|---|
| 스파르타클럽 내일배움캠프 QA/QC 5기 04/20 TIL (0) | 2026.04.20 |
| 스파르타클럽 내일배움캠프 QA/QC 5기 04/16 TIL (0) | 2026.04.16 |
| 스파르타클럽 내일배움캠프 QA/QC 5기 04/15 TIL (1) | 2026.04.15 |
| 스파르타클럽 내일배움캠프 QA/QC 5기 04/14 TIL (0) | 2026.04.14 |