Precision - Recall曲线的精确理解

一、Precision - Recall 的平衡

1)基础理论

调整阈值的大小,可以调节精准率和召回率的比重;
阈值:threshold,分类边界值,score > threshold 时分类为 1,score < threshold 时分类为 0;
阈值增大,精准率提高,召回率降低;阈值减小,精准率降低,召回率提高;
精准率和召回率是相互牵制,互相矛盾的两个变量,不能同时增高;
逻辑回归的决策边界不一定非是 ,也可以是任意的值,可根据业务而定:,大于 threshold 时分类为 1,小于 threshold 时分类为 0;
推广到其它算法,先计算出一个分数值 score ,再与 threshold 比较做分类判定;

2)举例说明精准率和召回率相互制约的关系(一)

计算结果 score > 0 时,分类结果为 ★;score < 0 时,分类结果为 ●;
★ 类型为所关注的事件;
情景1:threshold = 0

精准率:4 / 5 = 0.80;
召回率:4 / 6 = 0.67;
情景2:threshold > 0;

精准率:2 / 2 = 1.00;
召回率:2 / 6 = 0.33;
情景3:threshold < 0;

精准率:6 / 8 = 0.75;
召回率:6 / 6 = 1.00;

3)举例说明精准率和召回率相互制约的关系(二)
LogisticRegression() 类中的 predict() 方法中,默认阈值 threshold 为 0,再根据 decision_function() 方法计算的待预测样本的 score 值进行对比分类:score < 0 分类结果为 0,score > 0 分类结果为 1;
log_reg.decision_function(X_test):计算所有待预测样本的 score 值,以向量的数量类型返回结果;
此处的 score 值不是概率值,是另一种判断分类的方式中样本的得分,根据样本的得分对样本进行分类;

你可能感兴趣的:(机器学习)