综合评分
请记住,精确率与召回率可能需要不同的权重,因此 F-beta 分数是一个重要的评估指标。此外,ROC 曲线下的 AUC 是对精确率和召回率的有力补充指标,您之前也看到,模型可能出现 AUC 很高但精确率很低的情况。在本练习中,您将为每个分类器计算完整的一组评估指标。
已为您提供 print_estimator_name() 函数,用于输出每个分类器的名称。工作区中已提供 X_train、y_train、X_test、y_test,并且特征已标准化。pandas 已以 pd 导入,sklearn 也已可用。
本练习是课程的一部分
用 Python 预测 CTR 的机器学习实战
练习说明
- 定义一个具有 1 个隐藏层(10 个隐藏单元)且最大迭代次数为 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))