ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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

     

     

Designed by Tistory.