Data Science/머신러닝

모델 성능 튜닝

Boxya 2025. 4. 3. 22:40

[KT] AIVLE SCHOOL 7일차

 

하이퍼 파라미터(Hyperparameter)

  • 알고리즘을 사용해 모델링할 때 모델 성능을 최적화하기 위해 조절할 수 있는 매개변수
    • KNN 알고리즘의 n_neighbors, Decision Tree 알고리즘의 max_depth 등
  • 튜닝하는 방법에 정답은 없음, 지식과 경험 그리고 다양한 시도로 튜닝
  • 모델의 성능 향상을 위해 최선의 하이퍼파라미터 값을 찾는 다양한 시도를 해야 함
  • 다양한 시도 방법
    • Grid Search
    • Random Search
      • 사용법
        1. 함수 불러오기
        2. 파라미터 값 범위 지정
          • 딕셔너리로 값 범위 지정
          • 미지정 파라미터 값은 기본값으로 지정
          • 리스트 형태 또는 range() 함수 등을 사용해 적절한 step 설정
        3. 모델 선언
          • 기본 모델 선언
          • Random Search 모델 선언
          • n_iter에 수행 횟수(임의로 선택할 파라미터 조합 수) 지정
          • 적절한 cv 값 지정
        4. 모델 학습
          • 기본 모델이 아니라 Ranodm Search 모델 학습
          • 모델 학습 과정이 최선의 파라미터 값을 찾는 과정
          • 경우에 따라 많은 시간이 소요될 수 있음
        5. 결과 확인
          • 학습 결과를 열어보면 딕셔너리 형태
          • 선택된 최선의 파라미터 값과 그때의 성능 확인 가능
        6. 예측 및 평가
          • 최선의 파라미터 값으로 모델이 자동으로 학습된 상태
          • 곧 바로 예측 및 평가를 진행할 수 있음

 

함수 불러오기
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import RandomizedSearchCV

# 파라미터 선언
param = {'n_neighbors': range(1, 500, 10),
'metric': ['euclidean', 'manhattan']}

# 기본모델 선언
knn_model = KNeighborsClassifier()
# Random Search 선언
model = RandomizedSearchCV(knn_model,
param,
cv=3,
n_iter=20)

# 학습하기
model.fit(x_train, y_train)

# 수행 정보
model.cv_results_
# 최적 파라미터
model.best_params_
# 최고 성능
model.best_score_
  • Grid Search, Random Search를 사용할 때 내부적인 K-Fold Cross Validation을 위해 cv 값을 지정하므로
  • 실제 수행되는 횟수는 파라미터 조합 수 x cv 값이 됨

 

KNN

  • k 값(n_neighbors)에 따라 성능이 달라짐
  • 보통 데이터 건수의 제곱근으로 결정하는 경우가 종종 있음
  • k 값이 가장 클 때(= 전체 데이터 개수) 가장 단순 모델 -> 평균, 최빈값
  • k 값이 작을 수록 복잡한 모델이 됨

Decision Tree

  • max_depth
    • 트리의 최대 깊이 제한
    • 기본값
      • 완벽하게 클래스 결정 값이 될 때까지 깊이를 계속 키우며 분할하거나
      • 노드가 가지는 데이터 개수가 min_samples_split보다 작아질 때까지 계속 깊이를 증가시킴
    • 이 값이 작을 수록 트리 깊이가 제한되어 모델이 단순해 짐
  • min_samples_leaf
    • leaf가 되기 위한 최소한의 샘플 데이터 수
    • 이 값이 클 수록 모델이 단순해 짐
  • min_samples_split
    • 노드를 분할하기 위한 최소한의 샘플 데이터 수
    • 이 값이 클 수록 모델이 단순해 짐
  • 위 파라미터 값을 조정해 모델을 단순화 시켜 과대적합 위험을 줄임

'Data Science > 머신러닝' 카테고리의 다른 글

머신러닝 알고리즘  (0) 2025.04.03
모델 성능 평가(분류)  (0) 2025.04.03
모델 성능 평가(회귀)  (0) 2025.04.03
머신러닝 모델링  (0) 2025.04.03