시작하기무료로 시작하기

정밀도가 가장 높은 모델 선택하기

올해 상사가 스포츠 경기 세 번을 보러 갈 수 있도록 지원해 주겠다고 했어요. 좋아하는 팀의 홈 경기가 41번 있는데, 그중에서 팀이 분명히 이길 세 번의 홈 경기에 가고 싶어요. 이를 위해 어떤 경기를 이길지 결정하는 모델을 만듭니다.

이를 위해 랜덤 서치 알고리즘을 만들고, 팀이 이기도록 모델의 정밀도(precision)에 초점을 맞추려고 합니다. 또한 최적의 모델과 최적의 하이퍼파라미터를 기록해 두어, 내년에도(모델이 잘 작동한다면 물론) 다시 사용할 수 있도록 하려고 합니다. 이미 랜덤 포레스트 분류 모델 rfc를 사용하기로 했고, 하이퍼파라미터 분포 param_dist도 준비해 두었습니다.

이 연습은 강의의 일부입니다

Python에서의 모델 검증

강의 보기

연습 안내

  • make_scorer(<scoring_function>)을 사용해 정밀도 스코어러 precision을 만드세요.
  • rfcparam_dist를 사용해 랜덤 서치를 완성하세요.
  • rs.cv_results_를 사용해 평균 테스트 점수를 출력하세요.
  • 전체 최적 점수를 출력하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

from sklearn.metrics import precision_score, make_scorer

# Create a precision scorer
precision = ____(____)
# Finalize the random search
rs = RandomizedSearchCV(
  estimator=____, param_distributions=____,
  scoring = precision,
  cv=5, n_iter=10, random_state=1111)
rs.fit(X, y)

# print the mean test scores:
print('The accuracy for each run was: {}.'.format(rs.cv_results_['____']))
# print the best model score:
print('The best accuracy for a single model was: {}'.format(rs.____))
코드 편집 및 실행