1. 학습
  2. /
  3. 강의
  4. /
  5. R의 caret로 배우는 Machine Learning

Connected

연습 문제

trainControl 사용자 정의하기

영상에서 보셨듯이, ROC 곡선 아래 면적(AUC)은 모델이 양성과 음성 클래스를 구분하는 능력을 하나의 숫자로 요약해 주는 매우 유용한 지표입니다(예: 지뢰와 바위 구분). AUC가 0.5이면 무작위 추측과 다르지 않고, 1.0이면 완벽하게 예측하는 모델이며, 0.0이면 완벽히 반대로 예측하는 모델입니다(거의 발생하지 않습니다).

이는 고정 임계값에서의 정확도로만 모델을 순위화하는 것보다 훨씬 유용한 경우가 많습니다. 모델마다 최적의 분류 임계값을 찾기 위해 서로 다른 보정 단계(각 단계에서 혼동 행렬 확인)가 필요할 수 있기 때문입니다.

caret의 trainControl() 함수를 사용하면 정확도 대신 AUC를 사용하여 모델의 하이퍼파라미터를 튜닝할 수 있습니다. 이를 쉽게 해 주는 도우미 함수가 twoClassSummary() 입니다.

twoClassSummary()를 사용할 때는 반드시 classProbs = TRUE 인자를 포함하세요. 그렇지 않으면 모델에서 오류가 발생합니다! (클래스 예측만으로는 AUC를 계산할 수 없습니다. 클래스 확률이 함께 필요합니다.)

지침

100 XP
  • defaultSummary 대신 twoClassSummary를 사용하도록 trainControl 객체를 설정하세요.
  • 10-겹 교차 검증을 사용하세요.
  • trainControl()에 클래스 확률을 반환하도록 반드시 지정하세요.