총점 산출
정밀도(precision)와 재현율(recall)은 서로 다른 가중치를 둘 수 있으므로 F-beta 점수는 중요한 평가 지표입니다. 또한 AUC-ROC는 정밀도와 재현율을 보완하는 중요한 지표입니다. 이전에 살펴본 것처럼, 어떤 모델은 AUC가 높지만 정밀도가 낮을 수도 있기 때문입니다. 이 연습 문제에서는 각 분류기에 대해 전체 평가 지표 세트를 계산합니다.
각 분류기의 이름을 출력해 주는 print_estimator_name() 함수가 제공됩니다. 작업 공간에는 X_train, y_train, X_test, y_test가 준비되어 있으며, 특성은 이미 표준화되어 있습니다. pandas는 pd로, sklearn도 작업 공간에서 사용할 수 있습니다.
이 연습은 강의의 일부입니다
Python으로 Machine Learning을 활용한 CTR 예측
연습 안내
- 은닉 유닛 10개로 구성된 은닉층 1개와 최대 반복 50회로 MLP 분류기를 정의하세요.
- 각 분류기에 대해 학습하고 예측하세요.
sklearn의 구현을 사용해 정밀도, 재현율, F-beta 점수, 그리고 ROC의 AUC 점수를 구하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Create classifiers
clfs = [LogisticRegression(), DecisionTreeClassifier(), RandomForestClassifier(),
____(____ = (10, ), ____ = 50)]
# Produce all evaluation metrics for each classifier
for clf in clfs:
print("Evaluating classifier: %s" %(print_estimator_name(clf)))
y_score = clf.fit(X_train, y_train).____(X_test)
y_pred = clf.fit(X_train, y_train).____(X_test)
prec = ____(y_test, y_pred, average = 'weighted')
recall = ____(y_test, y_pred, average = 'weighted')
fbeta = ____(y_test, y_pred, beta = 0.5, average = 'weighted')
roc_auc = ____(y_test, y_score[:, 1])
print("Precision: %s: Recall: %s, F-beta score: %s, AUC of ROC curve: %s"
%(prec, recall, fbeta, roc_auc))