首页 » python机器学习 » python机器学习全文在线阅读

《python机器学习》6.5.2 优化分类模型的准确率和召回率

关灯直达底部

预测误差(error,ERR)和准确率(accuracy,ACC)都提供了误分类样本数量的相关信息。误差可以理解为预测错误样本的数量与所有被预测样本数量的比值,而准确率计算方法则是正确预测样本的数量与所有被预测样本数量的比值:

预测准确率也可以通过误差直接计算:

对于类别数量不均衡的分类问题来说,真正率(TPR)与假正率(FPR)是非常有用的性能指标:

以肿瘤诊断为例,我们更为关注的是正确检测出恶性肿瘤,使得病人得到恰当治疗。然而,降低良性肿瘤(假正)错误地划分为恶性肿瘤事例的数量固然重要,但对患者来说影响并不大。与FPR相反,真正率提供了有关正确识别出来的恶性肿瘤样本(或相关样本)的有用信息。

准确率(precision,PRE)和召回率(recall,REC)是与真正率、真负率相关的性能评价指标,实际上,召回率与真正率含义相同:

在实践中,常采用准确率与召回率的组合,称为F1分数:

所有这些评分指标均以在scikit-learn中实现,可以从sklearn.metric模块中导入使用,示例代码如下:

此外,通过评分参数,我们还可以在GridSerch中使用包括准确率在内的其他多种不同评分标准。可通过网址http://scikit-learn.org/stable/modules/model_evaluation.html了解评分参数可使用的所有不同值的列表。

请记住scikit-learn中将正类类标标识为1。如果我们想指定一个不同的正类类标,可通过make_scorer函数来构建我们自己的评分,那样我们就可以将其以参数的形式提供给GridSearchCV: