• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

GrideSearchCV와 분류 모델의 차이

21.02.06 11:21 작성 조회수 104

0

안녕하세요.

4장을 공부하면서 이해가 부족한 부분이 있어서 질문 드립니다.

다름아니고 내용 중에서는 결정트리나 랜덤 포레스트, GBM같은 것들이 있지 않습니까.

가령 랜덤포레스트를 이용한 다고 할 때에는 처음에 랜덤 포레스트의 정확도에 대해서 먼저 언급하시고,

그 위에 내용에서는 GridSearchCV를 이용해 하이퍼파라미터를 튜닝한 다음에 '예측 정확도'를 구한 뒤 다시 랜덤포레스트에 넣어서 '예측 정확도'를 구하는 부분에 대해서 이해가 잘 되지 않습니다.

1)

처음에 랜덤 포레스트로 정확도를 구할 때에는 하이퍼 파라미터에 대한 지정을 하지 않았으니 최적화되지 않은 경우에 대해서 무작위로 계산을 했을 때 나올 수 있는 값에 대해서 언급한 것이고

후자에서는 GridSearchCV를 이용해서 하이퍼 파라미터를 설정 해놓았으니 최고 수준으로 정확도를 뽑을 수 있을 때 랜덤 포레스트와 같은 분류 기준을 사용해서 정확도를 다시 구하는 것인지 궁금합니다.

2)

그리고 이럴 경우에는 GridSearchCV를 통해서 정확도를 한번 구한 다음에 다시 분류 기준을 설정하는 이유는 GridSearchCV 보다 더 나은 성능을 요구할 수 있기 때문에 랜덤포레스트나 GBM을 이용하는 것인지 궁금합니다.

감사합니다.

답변 1

답변을 작성해보세요.

1

안녕하십니까,

이전에 비슷한 질문을 올리셔서 연장 선상에서 말씀 드리겠습니다. 1, 2번 질문 모두에 대한 답변입니다.

GridSearchCV의 원래 목표는 최적 하이퍼 파라미터를 찾는 것입니다. Cross Validation으로 최고 성능이 나왔을 때의 하이퍼 파라미터를 찾는 것이 목표입니다. 큰 이유가 없습니다. 단지 최적 하이퍼 파라미터를 찾는것이 GridSearchCV의 목표입니다. 다만 GridSearchCV가 학습/검증을 반복하면서 하이퍼 파라미터를 찾고, refit=True라고 설정하면 최적 하이퍼 파라미터로 Classifier를 재 학습하므로 GridSearch만 가지고도 학습과 테스트를 수행할 수 있습니다.

하지만 일반적인 방법은 GridSearchCV로 최적 하이퍼 파라미터를 찾고, 찾은 하이퍼 파라미터로 Classifier(여기서는 Random Forest 객체)를 재 학습 시키는 것입니다.

GridSearchCV와 Classifier가 하는 일이 서로 다릅니다. 다만 GridSearchCV를 이용해서 Classifier를 학습 시킬 수 있기 때문에 두개가 겹치는 영역이 있지만, 앞에 말씀드린대로 본래의 영역을 서로 다릅니다.

그리고 GridSearchCV는 학습 데이터를 쪼개서 학습과 검증 데이터로 학습과 검증을 수행합니다. 그리고 Classifier는 학습 데이터로 학습하고, 검증 데이터가 아닌 테스트 데이터로 최종 테스트를 하는 역할을 수행합니다.

요약하자면, 성능적인 특징이 있어서 그렇게 한게 아니라, GridSearchCV, Classifier가 행하는 일에 충실하고자 그렇게 코드를 만들었을 뿐입니다.

감사합니다.