들어가며

지금까지 모델의 정확도를 높이기 위해서 데이터를 정제하고 여러 가지 모델을 테스트를 해보았습니다. 이번에는 데이터 정제가 끝나고 모델 또한 확정되었을 때 마지막으로 정확도를 올리기 위한 시도인 모델 세부 튜닝에 대해서 설명해보도록 하겠습니다.

모델 세부 튜닝 (그리드 탐색)

세부 튜닝을 한다는 의미는 각 추정기와 변환기의 하이퍼 파라미터를 변경시켜 테스트한다는 의미입니다. 이것을 그리드 탐색이라고 지칭합니다. 그리드 탐색을 수동으로 조정하는 것은 매우 지루한 작업이기 때문에 이를 자동화시켜줄 GridSearchCV를 사용해봅시다.

원하는 하이퍼파라미터의 조합을 인자로 넣어서 실행할 경우 자동으로 가장 최적화된 하이퍼 파라미터의 조합을 출력해줍니다.

사용법

 GridSearchCV를 사용하면 위 처럼 하이퍼 파라미터가 최적화된 추정 기를 출력하고 각 파라미터에 따른 점수 또한 확인할 수 있습니다. 위 하이퍼 파라미터 조합 점수들을 확인하니 max_features와 n_estimators가 클수록 평균 오차가 작아 모델의 정확성이 좋을 것을 확인할 수 있습니다.

랜덤 탐색

그리드 탐색은 조합이 비교적 적어서 보유한 컴퓨팅 자원으로 충분히 실행가능한 경우에 사용됩니다. 만약에 조합이 너무 커서 그리드 탐색을 하기에는 현실적으로 불가능할 경우 어떻게 해야 할까요? 이를 위해서 RandomizedSearchCV를 이용한 랜덤 탐색을 사용할 수 있습니다. 랜덤 탐색은 각 반복마다 하이퍼 파라미터에 다른 임의의 수를 대입하여 지정한 횟수만큼 평가합니다. 랜덤 탐색의 장점은 두 가지입니다.

  1. 랜덤 탐색은 1000회를 입력할 경우 각 하이퍼파라미터에 1000개의 서로 다른 값을 입력합니다. 그리드 탐색으로 1000개의 조합을 탐색하려면 임의로 1000개의 값을 설정해야하지만 랜덤탐색은 자동으로 진행합니다.
  2. 반복 횟수를 조 잘하는 것만으로 컴퓨팅 자원의 소비를 제어할 수 있습니다.

+ Recent posts