안녕하세요. AICE 시험을 준비하며 꼭 알아야 할 머신러닝 핵심 개념들을 정리해 보았습니다.
1. 데이터 스케일링 (Scaling) 3대장
데이터를 모델에 학습시키기 전, 피처들의 단위를 맞춰주는 전처리 과정입니다. 왜 할까요? 만약 '키(cm)'와 '나이(세)'를 함께 사용한다면, '키'의 숫자 범위가 훨씬 커서 모델이 '키' 피처를 더 중요하다고 잘못 판단할 수 있기 때문입니다.
1) StandardScaler (표준화)
from sklearn.preprocessing import StandardScaler
# 1. 스케일러 객체 생성
scaler_std = StandardScaler()
# 2. 데이터에 맞게 '학습(fit)'하고 '변환(transform)'
X_scaled_std = scaler_std.fit_transform(X)
print("StandardScaler 변환 결과:\n", X_scaled_std)
2) MinMaxScaler (정규화)
StandardScaler와 달리 아웃라이어(이상치)에 매우 민감합니다. 예를 들어 [1, 2, 3, 100]이 있다면, 1, 2, 3은 0에 가깝게, 100은 1에 가깝게 매핑되어 버립니다.from sklearn.preprocessing import MinMaxScaler
# 1. 스케일러 객체 생성
scaler_mms = MinMaxScaler()
# 2. 데이터에 맞게 '학습(fit)'하고 '변환(transform)'
X_scaled_mms = scaler_mms.fit_transform(X)
print("MinMaxScaler 변환 결과:\n", X_scaled_mms)
3) RobustScaler (로버스트 스케일링)
from sklearn.preprocessing import RobustScaler
# 1. 스케일러 객체 생성
scaler_rs = RobustScaler()
# 2. 데이터에 맞게 '학습(fit)'하고 '변환(transform)'
X_scaled_rs = scaler_rs.fit_transform(X)
print("RobustScaler 변환 결과:\n", X_scaled_rs)
정리
| 스케일러 | 기준 통계량 | 이상치(Outlier) 영향 | 주요 사용처 |
|---|---|---|---|
| StandardScaler | 평균(0), 표준편차(1) | 민감함 | 일반적인 모델, 정규분포형 데이터 |
| MinMaxScaler | 최소~최대 → [0,1] | 매우 민감 | 이미지, 명확한 범위 |
| RobustScaler | 중앙값, IQR | 강건함 | 이상치 많은 데이터 |
2. 예측의 두 갈래: 회귀 vs. 분류
머신러닝(지도학습)은 크게 '회귀'와 '분류'로 나뉩니다.
3. 주요 회귀(Regression) 모델
1) 선형 회귀 (Linear Regression)

from sklearn.linear_model import LinearRegression
model_lr = LinearRegression()
model_lr.fit(X_train, y_train)
2) 로지스틱 회귀 (Logistic Regression)
💡 보통 0.5를 기준으로 0.5보다 크면 1 (True), 작으면 0 (False)으로 분류합니다.

from sklearn.linear_model import LogisticRegression
model_lr = LogisticRegression()
model_lr.fit(X_train, y_train)
1) DecisionTree (결정 트리)
개념: 데이터를 '스무고개' 하듯이 'If-Then' 규칙으로 쪼개나가며 예측하는 모델입니다.
특징:
from sklearn.tree import DecisionTreeClassifier
model_dt = DecisionTreeClassifier(max_depth=10, random_state=42)
model_dt.fit(X_train_scaled, y_train)
2) RandomForest (랜덤 포레스트)
from sklearn.ensemble import RandomForestClassifier
model_rf = RandomForestClassifier(n_estimators=100, random_state=42)
model_rf.fit(X_train_scaled, y_train)
3) XGBoost (eXtreme Gradient Boosting)
from xgboost import XGBClassifier
model_xgb = XGBClassifier(n_estimators=5, random_state=42)
model_xgb.fit(X_train_scaled, y_train)
4) LightGBM (Light Gradient Boosting Machine)
from lightgbm import LGBMClassifier
model_lgbm = LGBMClassifier(n_estimators=3, random_state=42)
model_lgbm.fit(X_train_scaled, y_train)
이 패턴은 제가 아까 설명드린 모든 트리 기반 모델에 동일하게 적용됩니다:
| 분류 (Classification) | 회귀 (Regression) |
|---|---|
DecisionTreeClassifier | DecisionTreeRegressor |
RandomForestClassifier | RandomForestRegressor |
XGBClassifier | XGBRegressor |
LGBMClassifier | LGBMRegressor |
트리 모델 구조 요약
DecisionTree → RandomForest → XGBoost → LightGBM
(단일 트리) (다수 트리 병렬) (부스팅, 순차적 개선) (부스팅 + 속도최적화)
마치며
AICE 시험 준비에 이 정리 내용이 도움이 되길 바랍니다!
DecisionTree.RandomForest.XGBoost 또는 LightGBM.