天天看点

python机器学习 二分类 混淆矩阵_机器学习 回归 分类 评价指标 python实例

python机器学习 二分类 混淆矩阵_机器学习 回归 分类 评价指标 python实例
python机器学习 二分类 混淆矩阵_机器学习 回归 分类 评价指标 python实例
Scikit-learn函数

Precision 精准度

from sklearn.metrics import precision_score   
           

Recall 召回率

from sklearn.metrics import recall_score   
           

F1值

from sklearn.metrics import f1_score   
           

Confusion Matrix 混淆矩阵

from sklearn.metrics import confusion_matrix   
           

ROC ROC曲线

from sklearn.metrics import roc   
           

AUC ROC曲线下的面积

from sklearn.metrics import auc
           

1. 混淆矩阵

对于一个二分类问题,可以将训练集的真实类别与模型预测得到的类别组合,得到以下四种类型:TP(True Positive),TN(True Nagetive),FP(False Positive),FN(False Nagetive)。所有的训练集中的样例都可以被分为这四种类型,组成一个混淆矩阵。

混淆矩阵

(Confusion Matrix)是一个普遍适用的工具,它可以帮助我们更好地了解分类中的错误。混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用n行n列的矩阵形式来表示,是对有监督学习分类算法准确率进行评估的工具。通过将模型预测的数据与测试数据进行对比,使用准确率,覆盖率和命中率等指标对模型的分类效果进行度量。 混淆矩阵是一个N X N矩阵,N为分类的个数。假如我们面对的是一个二分类问题,也就是N=2,我们就得到一个2 X 2矩阵,如下表所示。

python机器学习 二分类 混淆矩阵_机器学习 回归 分类 评价指标 python实例

显示列名 统计不合格个数

def confusion_matrix(y_pred,y_true):
    # y_pred, y_true =[1,0,1,0], [0,0,1,0]
    from sklearn.metrics import confusion_matrix
    import pandas as pd
    # y_pred是预测标签
    matrix=confusion_matrix(y_true=y_true, y_pred=y_pred)
    matrix=pd.DataFrame(matrix)
    print(matrix)
    # columns=['predict 1: %d'%y_pred.count(1),'predict 0: %d'%y_pred.count(0)]
    columns=['predict 0: %d'%y_pred.count(0),'predict 1: %d'%y_pred.count(1)]
    matrix.columns= columns
    # print(x)
    matrix.index.name = 'test_num%d'%len(y_pred)
    # index=['test 1: %d'%y_true.count(1),'test 0: %d'%y_true.count(0)]
    index=['test 0: %d'%y_true.count(0),'test 1: %d'%y_true.count(1)]
    matrix.index=index
    print(matrix)
if __name__ == "__main__":
    confusion_matrix()
           

2. 精确率Precision、召回率Recall和F1值

  精确率(正确率)

召回率

是广泛用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量。其中精度是检索出相关文档数与检索出的文档总数的比率,衡量的是检索系统的

查准率

;召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的

查全率

  一般来说,Precision就是检索出来的条目(比如:文档、网页等)有多少是准确的,Recall就是所有准确的条目有多少被检索出来了,两者的定义分别如下:

Precision = 提取出的正确信息条数 / 提取出的信息条数
python机器学习 二分类 混淆矩阵_机器学习 回归 分类 评价指标 python实例
Recall = 提取出的正确信息条数 / 样本中的信息条数
python机器学习 二分类 混淆矩阵_机器学习 回归 分类 评价指标 python实例

  精准度(又称查准率)和召回率(又称查全率)是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低,而查全率高时,查准率往往偏低。所以通常只有在一些简单任务中,才可能使得查准率和查全率都很高。

from sklearn.metrics import classification_report
# y_pred是预测标签
y_pred, y_true =[1,0,1,0], [0,0,1,0]
print(classification_report(y_true=y_true, y_pred=y_pred))
           

参考:

模型评价方法​www.jianshu.com

python机器学习 二分类 混淆矩阵_机器学习 回归 分类 评价指标 python实例

Python机器学习笔记:常用评估指标的用法 - 战争热诚 - 博客园​www.cnblogs.com

python机器学习 二分类 混淆矩阵_机器学习 回归 分类 评价指标 python实例