首页 > 编程知识 正文

准确率和召回率,probit回归

时间:2023-05-06 09:54:17 阅读:164376 作者:2598

1 .混淆矩阵混淆矩阵是二分类问题的多维衡量指标体系,在样本不平衡时极其有用混淆矩阵认为少数类为正例,多数类为负例。 决策树、随机森林等一般的分类算法中,也就是说少数类为1,多数类为0。 在SVM中,少数类为1,多数类为-1。 常见的混淆矩阵由{ 0,1 }表示。

混淆矩阵中,永远是真实值在前,预测值在后其实,11和00的对角线很容易看出所有的预测都是正确的,01和10的对角线所有的预测都是错误的。基于混淆矩阵,我们有六个不同的模型评估指标,这些评估指标的范围都在[0,1]之间以11和00为分子的所有指标越接近1越好,所以以01和10为分子的指标都越接近0越好。 对于所有指标,如果分母用橙色表示,分子用绿色表示,则为1.1精度(Accuracy )。 为了便于比较,让我们来看看什么是众所周知的精度。 也就是说,预测占总样品的准确比例。一般在样本不平衡问题下,不使用这个评估指标想象一下。 如果有999个反例、1个正例,且包含该正例在内的900个样本的预测是正确的,则准确率为90%。 这个一定好吗? 很明显,模型对正例的预测很差。 该评估指标在样本不平衡时不可用,因为模型只是学习反例的良好表现。

1.2精度/符合率(Precision )注意:精确度中这个对象指的是少数类(好瓜)的精确度,在下面要介绍的查全率中,针对的对象还是少数类,也即少数类的精确度和少数类的查全率

精确度表示在我们预测为正例的样本中,有多少被真正的预测对了例如,我们预测有60个正例。 其中,40是真正的正例,20是负例。 也就是说,预测是错误的。 精度为40/60。精度也称为precision。精确度是”将多数类判错后所需付出成本“的衡量。每次判断很多类型错误的成本非常高的时候,比如大众召回车辆,我们都在追求高精度。 精度越低,我们对很多班级的判断就越错误。 当然,如果我们的目标是在不付出一切代价的情况下捕获少数类,我不介意精度。

1.3召回率/recall(http://www.Sina.com/例如,我们的原始数据集有60个正例,其中40个被预测给我们(11 ),剩下的20个没有被真正预测(正召回率越高,我们捕捉到的数量就越多,召回率低就意味着我们没有捕捉到足够多的少数类。 如果想不惜一切代价找出少数几个类别,比如想找出潜在罪犯的例子,就追求高召回率。 相反,如果你不以尽可能捕获少数类别为目标,你就不需要在意召回率。

1.4为了兼顾F1-measure (f-score )精度和召回率,作为考虑两者平衡的综合指标,建立了两者的调和均值,称为F1-score。 两个数的调和均值倾向于接近两个数中较小的一个,所以通过尽可能追求高的F1-measure,可以保证精度和召回率都很高。 F1 measure分布在[ 0,1 ]之间,越接近1越好。

2 .查准率和查全率的矛盾,不是绝对的矛盾,而是在实际的APP中经常发生的事情。 个人理解:

认为Recall上升时,可以降低阈值,找到更多的潜在修正例。 例如,假设原来有100个正例,阈值为0.5。 此时,预测到了70个正例,剩下的30个正例被预测为负例。 这可能是阈值设置太大,所以要减小阈值。 例如缩小到0.3的话,也许能找到所有的90个正例。 相反,在减小阈值的同时分析precision,直接考虑极端情况,将阈值设定为0.1。 此时,我们对大部分样本进行正例预测,在负例几乎都是错误预测的情况下,precision会大幅降低。 通常,0.5是边界线,被认为偏向于大于0.5的正的例子(意味着少数小于0.5 )。 小于0.5偏向负的例子,意味着少数处理在0.5以上。 在追求其中少数的时候,必然会影响另一面的就是对矛盾的分析。 所以,这两个评价指标相对矛盾。 3. sklearn的模糊矩阵和一些API

4. ROC曲线4.1正品率正品率,显示了在所有反例(很多种类)中,我们的预测有多少是错误的。

4.2假正例的应用:ROC曲线描述在所有正例中,有多少被我们预测出来了:我们在追求高Recall时,Precision下降,假正率有一个非常重要的应用,http://www.Sina.com 我想知道每当我正确判断少数班级时,会有多少多数班级被错误判断。 假正率正好有助于我们衡量这种能力的变化。 http://www.Sina.com/http://www.Sina.com /

sion之间的平衡,让我们衡量模型在尽量捕捉少数类的时候,误伤多数类的情况如何变化,这就是我们的ROC曲线衡量的平衡。ROC(The Receiver Operating Characteristic Curve),源自二战时期用于敌机检测的雷达信号技术分析。ROC评价的就是如何在尽量捕获少数类的同时减少对多数类别的判错

黄色线包含的面积就是AUC(Aera under ROC curve)

那么怎么捕捉假正率和Recall之间的平衡呢?


我们希望我们的模型在尽量捕捉少数类的时候能够减少误伤多数类。横坐标是假正率,假正率越大,表示被误伤的多数类越多,所以我们希望我们的假正率不要太大,同时希望Recall尽量的大,也就是说如果我们画出来的ROC曲线整体在左上角,则表明模型效果是不错的。

当ROC曲线为凹的时候,曲线应该越靠近右下角越好,预测结果与真实结果完全相反,那也不算太糟糕,只需要把数据集的label翻转过来就好了。

最糟糕的情况是,无论曲线是凹的还是凸的,曲线位于图像中间,和虚线非常靠近,这时候就要思考模型的问题了。

我们现在知道了什么样的情况模型的效果是好的,但是我们还没有量化它,这时候AUC曲线就登场了

既然说ROC曲线越靠近左上角越好,那我们就用左上角包围的面积来量化模型的效果。

在sklearn中,我们使用sklearn.metrics.roc_curve来获取假正率FPR、Recall和阈值集合

这里有一个名词叫做”约登指数”,为Recall和FPR差距最大的点对应的阈值

在sklearn中,auc的计算使用:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。