작성
·
69
0
grid_dtree = GridSearchCV(dtree, param_grid=parameters, cv=3, refit=True, return_train_score=True)
grid_dtree.fit(X_train, y_train)
강의에서는 지금까지 정확도를 도출할때 이미 훈련 데이터로 학습된 모델을 통해 X_test 데이터의 예측값을 구하고 이를 실제 y_test 값과 비교하여 일치도를 구하는 방식으로 하였습니다. 하지만 위의 코드에서는 test 데이터 없이 train 데이터만 grid_dtree에 넣었는데 어떻게 파라미터별 정확도를 평가할 수 있는건지 이해가 안갑니다!! GridSearchCV를 통한 파라미터별 정확도는 어떻게 도출되는것인가요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
네, 질문하신 GridSearchCV의 작동 방식에 대해 설명해드리겠습니다. GridSearchCV는 교차 검증을 사용하여 모델의 하이퍼파라미터를 튜닝할 때 사용되는 방법입니다. 여기서 사용된 cv=3은 데이터를 3개의 폴드로 나누어 각각을 검증 집합으로 사용하고 나머지를 훈련 집합으로 사용하여 총 3번의 교차 검증을 실시한다는 의미입니다.
이 과정에서 각 폴드마다 훈련 데이터와 검증 데이터가 변경이 되기 때문에, 모든 훈련 데이터셋을 사용하여 여러 하이퍼파라미터 조합에 대해 모델을 학습시킬 수 있고, 이를 바탕으로 각 파라미터 조합별로 평가됩니다. 이렇게 평가된 결과들 중 가장 좋은 성능을 보이는 파라미터 조합을 찾아, 최종적으로 이 파라미터 조합을 사용하여 전체 훈련 데이터셋에 대해 다시 학습시키게 됩니다(refit=True).
따라서 test 데이터가 따로 사용되지 않아도, 교차 검증 과정에서 검증 데이터를 사용하여 파라미터 조합별 정확도를 판단하게 되는 것입니다. 이를 통해 최적의 하이퍼파라미터를 도출하고, 최종적으로는 이 하이퍼파라미터를 사용하여 모델을 학습시킨 뒤, 실제로 사용하지 않은 test 데이터셋에 대해 성능을 평가하게 됩니다.
정리하자면, GridSearchCV는 각기 다른 하이퍼파라미터 설정에서 교차 검증을 통해 모델 성능을 평가하고, 이 중 가장 좋은 성능을 나타내는 파라미터 설정을 찾아내는 프로세스입니다. 이 과정에서 훈련 데이터만 사용할 수 있으며, 최적의 하이퍼파라미터를 찾은 후 이를 사용해 모델을 재학습시켜 최종 모델을 완성하게 됩니다.