参考:
应用代码示例 https://blog.csdn.net/wendaomudong_l2d4/article/details/81063170
含义
https://www.jianshu.com/p/7e7b88a7e501
评价报告
https://blog.csdn.net/akadiao/article/details/78788864
一、从线性回归到逻辑回归
线性回归解决的是连续型数值的预测问题,例如预测房价,产品销量等。
逻辑回归解决的是分类问题,从分类数量上看,有二项分类和多项分类。
二、逻辑回归基本概念
三、模型效果评估
- 准确率
准确率 = 正确预测数 / 测试集样本数
Scikit-learn中自带的准确率计算方法
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(admission, pred_label) - 精确率
二项分类问题中,观察值和预测值关系的混淆矩阵表示:
精确率 = TP / (TP + FP)
真正例/所有被预测为正例的数据
- 召回率
召回率 = TP / (TP + FN)
Scikit-learn中提供了计算精确率和召回率的计算函数,可结合K折交叉验证(K-Fold Cross Validation)使用。
- 综合评价指标(F-measure)
(1)f1
综合评价指标:精确率和召回率的调和均值(harmonic mean),或加权平均值,也称为F-measure或F-score。F-measure 平衡了精确率和召回率。当F-measure较高的时候,说明模型效果比较好。(精确率和召回率都越高越好,但在一些极端情况下,两者是矛盾的)
F-measure = 2 * Precision * Recall / (Precision + Recall)
Scikit-learn中提供了直接计算F-measure的方法:
f1 = cross_val_score(lor, data[[‘gpa’]], data[‘Admission’], cv = kf, scoring = ‘f1’)
(2)ROC & AUC
假阳性概率(False Positive Rate)(误警率)
FPR = FP / (TN + FP)
1)ROC曲线(Receiver Operating Characteristic curve,ROC curve)
以假阳性概率为横坐标,以真阳性概率(召回率)为纵坐标所画的曲线。可以理解为它是一系列混淆矩阵的结果组合所画出的曲线。一般情况下,我们得到一个回归模型的混淆矩阵,都是在提前设定好一个阈值的前提下获得的。但如果我们调整这个阈值,得到的混淆矩阵就不同了。在模型预测的所有概率中,每一个概率值都可以作为一个阈值,相应的,我们就能得到一系列的混淆矩阵。对于每个混淆矩阵,我们都能计算出相应的假阳性概率FPR和真阳性概率TPR。然后我们以这些FPR为横坐标轴,以TPR为纵坐标轴,所得到的曲线就是ROC。
理想的情况下,如果存在一个阈值,大于这个阈值的都是阳性的,低于这个阈值的都是阴性的,则这个模型能够非常完美的区分阳性和阴性.此时对应的真阳性概率TPR为1,假阳性概率FPR为0,对应坐标轴上的**(0,1)点**,即左上角的点。所以如果ROC曲线经过该点,它就是完美的。
2)AUC(Area Under the Curve)是指ROC曲线下面的面积。从AUC定义的角度来理解,AUC就是从所有标签为1的样本中随机选取一个样本, 从所有标签为0的样本中随机选取一个样本,然后根据分类器对两个随机样本进行预测,假设标签为1的样本预测为1的概率为p1,标签为0的样本预测为1的概率为p0,那么p1>p0的概率就等于AUC。所以AUC反应的是分类器对样本的排序能力。
一般情况下,AUC值介于0.5和1之间,AUC值越大,说明分类器效果越好,ROC曲线越接近于(0,1)点。AUC值越小,说明分类器效果越差,跟随机分类没什么差别,ROC曲线越趋近于下图中的红线。如果AUC值小于0.5,则可能是样本数据标签出了问题。
另外值得注意的是,AUC对样本类别是否均衡并不敏感,这也是不均衡样本通常用AUC评价分类器性能的一个原因。
四、classification_report
其中,
左边第一列—分类的标签名,
support列—每个标签的出现次数,
precision—各个类别的精确度,
recall—召回率,
f1-score—F1值,
avg / total行(最后一行)----各列的的加权平均值均值
(support列为权值).