본문 바로가기

파이썬/파이썬 기초

하이퍼파라미터와 파라미터의 차이 정확히 짚고 넘어가자

머신러닝에서 자주 나오는 용어인 하이퍼파라미터와 파라미터.

 

 

많은 사람들이 두 개념을 혼동해서 사용하지만 엄밀히 말하면 완전히 다른 개념이기 때문에 사용에 주의해야 한다. 나도 여태까지 정확한 차이를 몰라서 혼동해서 사용했었다ㅜ 이번 기회에 제대로 짚고 넘어가자!

 

 

1. 파라미터

 

파라미터는 매개변수라고도 한다. 모델 내부에서 결정되는 값으로 모델링 과정에서 자동으로 정해지며 사용자가 조정하는 값이 아니다.

 

 

새로운 샘플이 주어지면 예측하기 위해서 파라미터가 필요하다. 파라미터는 데이터로부터 추정/학습되는 것이며 학습된 모델의 일부로 저장된다.

 

 

파라미터 예시

-선형회귀나 로지스틱회귀에서 결정계수

-SVM의 서포트 백터

 

 

 

2. 하이퍼파라미터

 

파라미터는 모델링 과정에서는 매우 중요한 요소이지만 우리가 직접 값을 지정해줄 일은 전혀 없기 때문에 '파라미터 튜닝', '최적의 파라미터 값 찾기' 등에서 말하는 파라미터는 하이퍼파라미터를 의미한다.

 

 

하이퍼파라미터는 사용자가 직접 세팅하는 값이다. 모델마다, 데이터셋마다 최적의 하이퍼파라미터 값이 다 다르다. 그렇기 때문에 효율화를 위해서 베이지안 옵티마이제이션이나 그리드 서치, 랜덤 서치 등을 통해 최적의 하이퍼파라미터 값을 찾아 모델을 만드는 것이다.

 

 

하이퍼파라미터는 위와 같이 모델마다 다 다르다. 기본적으로 default값이 있지만 deafualt값이 항상 좋은 것은 아니기 때문에 튜닝 과정이 필요하다.

 

 

하이퍼파라미터 예시

-Tree 모델의 max_depth, max_leaf_nodes

-부스팅 모델의 learning_rate

-SVM의 C, gamma

-K-NN의 k 

 

 

한마디로 정리하자면 아래 표와 같다.

 

하이퍼파라미터 튜닝 관련해서 자세한 내용이 궁금하다면 아래 포스팅을 참고

베이지안 옵티마이제이션

그리드 서치