머신러닝 (Machine Learning)
- 정의: 통계적/수학적 기법을 이용해 데이터로부터 패턴을 추출하는 인공지능 기법.
- 학습의 형태:
- 지도 학습 (Supervised Learning): 입력(x)과 정답(y)이 짝지어진 데이터에서 관계를 학습. (예: 사고 차량 사진 → 예상 수리비)
- 비지도 학습 (Unsupervised Learning): 데이터의 내재적 구조를 학습.
- 강화 학습 (Reinforcement Learning): 환경과 상호작용하여 보상을 최대화하는 행동을 학습.
지도 학습
- 머신 러닝의 대부분(90% 이상)을 차지.
- 아직 y가 관찰되지 않은 새로운 x에 대해 y를 예측하는 것이 목표.
회귀 vs 분류
- 회귀 (Regression): 종속변수(y)가 연속적인 숫자. (예: 가격, 수리비) -> 오차를 줄이는 것이 중요.
- 분류 (Classification): 종속변수(y)가 이산적인 범주. (예: 불량/정상, 상환/미상환) -> 오분류를 줄이는 것이 중요.
지도학습 모델의 종류
- 가중치 방식:
- 입력 특성에 가중치를 곱해 점수를 도출.
- 예: 선형 모형, 로지스틱 회귀, 딥러닝.
- 의사결정나무 방식:
- 스무고개처럼 특성을 기준으로 분기를 반복.
- 예: Decision Tree, Random Forest, Gradient Boosting.
회귀 실습
데이터 준비 및 분할
- 데이터 분할: 훈련(Train) 데이터와 테스트(Test) 데이터로 분리.
- 목적 1: 일반화 성능 평가 (처음 보는 데이터에 대한 성능 확인).
- 목적 2: 과적합(Overfitting) 방지.
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=42)
k-최근접 이웃 (k-NN)
- 가장 가까운 k개의 이웃 데이터를 참조하여 예측.
- 회귀는 평균, 분류는 다수결로 예측.
- 특징: 별도의 훈련 과정이 없는 게으른 학습(Lazy Learning).
from sklearn.neighbors import KNeighborsRegressor
model = KNeighborsRegressor(n_neighbors=5)
model.fit(X_train, y_train)
선형 모형 (Linear Regression)
- 독립변수에 가중치를 곱하여 더하는 방식. 가장 널리 사용됨.
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
- 평가: 결정계수(R2) 사용 (1에 가까울수록 좋음).
model.score(X_test, y_test)