-
ensemble params모음scikit-learn 2025. 4. 24. 13:48
🌲 1. RandomForest (분류/회귀 공용)
다수의 결정 트리를 평균 또는 다수결로 합산
RandomForestClassifier / RandomForestRegressor
파라미터설명
n_estimators 생성할 트리 개수 (기본 100) max_depth 트리 최대 깊이 제한 min_samples_split 내부 노드를 나누기 위한 최소 샘플 수 max_features 각 노드 분할 시 고려할 최대 특성 수 random_state 결과 재현을 위한 시드 ⚡ 2. GradientBoosting / HistGradientBoosting
이전 오류를 보완하는 방식으로 트리를 연속적으로 학습
GradientBoostingClassifier / HistGradientBoostingRegressor
파라미터설명
learning_rate 다음 트리에 줄 학습률 (보통 0.01~0.1) n_estimators 부스팅할 트리 개수 max_depth 개별 트리의 최대 깊이 subsample 샘플의 일부로 학습하여 과적합 방지 loss 손실 함수 ('squared_error', 'log_loss' 등) 🐍 3. XGBoost
Regularized Gradient Boosting (정규화 포함)
XGBClassifier / XGBRegressor
파라미터설명
eta / learning_rate 학습률 gamma 분할에 필요한 최소 손실 감소 max_depth 트리의 최대 깊이 lambda, alpha L2 / L1 정규화 subsample, colsample_bytree 과적합 방지를 위한 샘플링 💡 4. LightGBM
대용량 학습에 유리한 Gradient Boosting Framework
LGBMClassifier / LGBMRegressor
파라미터설명
num_leaves 하나의 트리가 가질 수 있는 최대 리프 수 max_depth 트리의 최대 깊이 제한 learning_rate 학습률 feature_fraction 사용할 feature의 비율 bagging_fraction 사용할 데이터 샘플 비율 🧼 전처리 핵심 도구들 (sklearn.preprocessing)
🎭 LabelEncoder
범주형 라벨을 숫자로 변환
from sklearn.preprocessing import LabelEncoder le = LabelEncoder() y = le.fit_transform(y)
🧱 OneHotEncoder
범주형 변수를 이진 행렬로 변환
from sklearn.preprocessing import OneHotEncoder ohe = OneHotEncoder(sparse=False, handle_unknown='ignore') X_trans = ohe.fit_transform(X[['category']])
- handle_unknown='ignore': 새로운 값이 들어와도 오류 방지
- sparse=False: numpy 배열 반환
📏 StandardScaler
평균 0, 표준편차 1로 스케일링
from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X_scaled = scaler.fit_transform(X)
📈 MinMaxScaler
모든 값을 0~1 사이로 정규화
from sklearn.preprocessing import MinMaxScaler mm = MinMaxScaler() X_mm = mm.fit_transform(X)
⛓️ train_test_split
훈련용과 검증용 데이터 분리
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)
✨ 마무리: 정리 TIP
용도추천 모델
과적합 방지 + 안정성 RandomForest 정교한 최적화 HistGradientBoosting 커스텀 + 성능 XGBoost 대용량 + 속도 LightGBM 전처리 목적추천 도구
숫자 라벨화 LabelEncoder 범주 원핫 OneHotEncoder 스케일 정규화 StandardScaler / MinMaxScaler 'scikit-learn' 카테고리의 다른 글
randomforest과 boosting의 차이 (0) 2025.03.24 공통적으로 자주 등장하는 하이퍼파라미터 (0) 2025.03.24 GridSearchCV == 하이퍼파라미터 자동화 (0) 2025.03.24 gridsearch 그리드서치 (0) 2025.03.21 결정 트리 Decision Tree (0) 2025.03.21