分类模型的评估(三)

在前两篇文章里(《分类模型的评估(一)》《分类模型的评估(二)》),针对二分类问题,我们分别讨论了

  • 评估某个给定分类结果的指标:查准率(Precision)、查全率(Recall)以及F-score
  • 综合评估分类模型整体效果的指标:ROC曲线-AUC值

这篇文章将借助一个具体的例子来讨论上述指标的代码实现(使用Python)

一、什么是Python

Python是一门计算机编程语言,它在数据科学领域的应用极其广泛,具体的江湖地位可用图1来表示。

图1

限于篇幅,Python的安装和语法介绍在此就不展开了,有需要的同学可以参考这个网页

其实我在这里单列一节出来讲Python,主要是为了展示我画的图1。

二、数据集以及模型简介

为了更具体地讨论实现,我们使用美国个人收入的普查数据来搭建模型(源自美国加州大学欧文分校,点击这里下载)。数据中具体的变量以及说明如表1所示。

表1

需要被预测的年收入分类(label)是一个二元变量,因此使用逻辑回归来解决这个二分类问题。另外为了建模方便,我们在这里只使用数值型自变量。

注意:本篇文章的完整代码这里

三、Precision,Recall以及F-score

针对一个给定的预测结果,Precision,Recall以及F-score的实现十分简单,如下所示。其中参数“pred”是模型的预测结果、“label”是真实结果、beta是F-score的beta权重。

import numpy as np

def PrecisionRecallFscore(pred, label, beta=1):
    """
    计算预测结果的Precision, Recall以及Fscore
    """
    bins = np.array([0, 0.5, 1])
    tp, fp, fn, tn = np.histogram2d(label, pred, bins=bins)[0].flatten()
    precision = tp / (tp + fp)
    recall = tp / (tp + fn)
    fscore = (1 +
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值