본문 바로가기
Machine Learning/scikit-learn

[하이퍼 파라미터] hyper parameter란?

by ISLA! 2023. 8. 17.

 

하이퍼 파라미터란?

  • 모델링할 때 사용자가 직접 세팅해주는 값
  • 머신러닝 모델을 쓸 때 사용자가 직접 세팅해야하는 값이 많다 ▶︎ 그 모든 값을 하이퍼 파라미터라 한다
  • 하이퍼 파라미터는 정해진 최적의 값이 존재하지 않으며, 하이퍼 파라미터 설정에 따라 성능 변화에 큰 차이를 보이기도 한다
  • 하이퍼 파라미터를 조정함으로써 모델 성능을 향상 시킬 수 있다.
  • 또한, 모델의 복잡도를 제어하여 과적합을 방지하는 등의 이점을 가지고 있다.

 

사이킷런 RandomForestRegressor의 하이퍼 파라미터 예시

  • n_estimators : 결정트리의 개수(default = 10)
  • criterion : 분할된 것(split)의 품질을 측정하는 기능
  •   예시 : absolute_error 
  • max_depth : 트리의 최대 깊이
  • min_samples_split : 노드를 분할하기 위한 최소한의 샘플 데이터 수
# 중식계 예측을 위한 features    
features = features[:-1]

# 독립변수 X와 종속변수 y 업데이트    
X = train[features]    
y = train['중식계']

from sklearn.ensemble import RandomForestRegressor    

# 1. 모델 정의    
lunch_model = RandomForestRegressor(n_estimators=200, criterion='absolute_error')

# 2. 모델 학습    
# fit() 메소드 이용    
lunch_model.fit(X,y)

# 3. 예측    
# predict() 메소드 이용    
lunch_count_predict = lunch_model.predict(test[features])

# 예측값 시각화     
plt.figure(dpi=150)    
plt.plot(lunch_count_predict, alpha=0.6, label='pred')    
plt.legend()    
plt.show()

 

👀 파라미터 vs. 하이퍼파라미터
      ▶︎ 파라미터(parameter; 매개변수)는 학습과정에서 생성되는 변수로, 사용자가 임의로 설정하는 값이 아니다
728x90