关于混淆矩阵的概念,可参考此篇博文
混淆矩阵
1.混淆矩阵
混淆矩阵是机器学习中总结分类模型预测结果的情形分析表,以矩阵形式将数据集中的记录按照真实的类别与分类模型作出的分类判断两个标准进行汇总。这个名字来源于它可以非常容易的表明
多个类别是否有混淆
(也就是一个
class被预测成另一个class
)
下图是混淆矩阵的一个例子
其中灰色部分是真实分类和预测分类结果相一致的,绿色部分是真实分类和预测分类不一致的,即分类错误的。
2.confusion_matrix函数的使用
官方文档中给出的用法是
sklearn.metrics.confusion_matrix(y_true, y_pred, labels=None, sample_weight=None)
y_true: 是样本真实分类结果,y_pred: 是样本预测分类结果
labels:是所给出的类别,通过这个可对类别进行选择
sample_weight : 样本权重
实现例子:
from sklearn.metrics import confusion_matrix
y_true=[2,1,0,1,2,0]
y_pred=[2,0,0,1,2,1]
C=confusion_matrix(y_true, y_pred)
运行结果:
这儿没有标注类别:下图是标注类别以后,更加好理解
关于类别顺序可由 labels参数控制调整,例如 labels=[2,1,0],则类别将以这个顺序自上向下排列。默认数字类别是从小到大排列,英文类别是按首字母顺序排列
下面是官方文档上的一个例子
y_true = ["cat", "ant", "cat", "cat", "ant", "bird"]
y_pred = ["ant", "ant", "cat", "cat", "ant", "cat"]
confusion_matrix(y_true, y_pred, labels=["ant", "bird", "cat"])
array([[2, 0, 0],
[0, 0, 1],
[1, 0, 2]])
以上是关于confusion_matrix函数的用法,欢迎大家一起交流学习强调内容
关于混淆矩阵的概念,可参考此篇博文混淆矩阵1.混淆矩阵 混淆矩阵是机器学习中总结分类模型预测结果的情形分析表,以矩阵形式将数据集中的记录按照真实的类别与分类模型作出的分类判断两个标准进行汇总。这个名字来源于它可以非常容易的表明多个类别是否有混淆(也就是一个class被预测成另一个class)下图是混淆矩阵的一个例子 其中灰色部分是真实分类和预测分类结果相一致的,绿色部分是真实分类和预测分类不一致
在测试代码中,您需要使用适当的参数声明ConfusionMatrix类。
conf_mat = ConfusionMatrix(num_classes = 3, CONF_THRESHOLD = 0.3, IOU_THRESHOLD = 0.5)
该类具有一个名为process_batch的函数,您可以使用它来更新混淆矩阵。
用法示例可以是:
conf_mat.process_batch(preds, gt_boxes)其中preds是模型做出的预测,[N,6] x1,y1,x2,y2,置信度,类和gt_boxes是地面真相标签,[M,4] x1,y1,x2 ,y2,班级。
该存储库使用Pytorch存储库中的函数
代码与下面的存储库非常相似,该存储库的主要贡献是Co
confusionchart()函数用于创建分类问题的混淆矩阵图目录
示例1(通过trueLabels和predictedLabels创建混淆矩阵图)
示例2(通过现有的混淆矩阵创建混淆矩阵图)
示例3(按精度或召回率排序类)
confusion matrix
https://scikit-learn.org/stable/modules/model_evaluation.html
confusion [kən'fjuːʒ(ə)n]:n. 混淆,混乱,困惑
The confusion_matrix function evaluates classification accuracy by computing the confusion matrix with each row corresponding to the true
M计算出来是下面这样
比如第一个class airplane吧,923意思是true class是airplane, 而我们预测的label也是airplane的个数
而第一行第二列的4就表示true class是airplane, 而我们预测的label是automobile的个数是4
那么就相当于对角线上蓝色背景的都是预测对的
如果是2分类的情况,tru
混淆矩阵(confusion
matrix)也称误差矩阵,是表示精度评价的一种标准格式,用n行n列的矩阵形式来表示。具体评价指标有总体精度、制图精度、用户精度等,这些精度指标从不同的侧面反映了图像分类的精度。
在人工智能中,混淆矩阵(confusion
matrix)是可视化工具,特别用于监督学习,在无监督学习一般叫做匹配矩阵。在图像精度评价中,主要用于比较分类结果和...
import fasttext
import jieba
from sklearn.metrics import confusion_matrix, classification_report
def clean_txt(raw):
fil = re.compile(r"[^0-9a-zA-Z\u4e00-\u9fa5]+")
return fil.sub(' ', raw)
def seg(sentence, sw, apply=None):
if isinstance(apply, FunctionType) or isinstance(apply, MethodType):
sentence = apply(sentence)
return ' '.join([i for i in jieba.cut(sentence) if i.str
`confusion_matrix` 函数是 Scikit-learn 库中的一个评估分类模型性能的函数。它用于计算分类模型在测试集上的混淆矩阵,即真阳性(True Positive)、假阳性(False Positive)、真阴性(True Negative)、假阴性(False Negative)的数量。该函数的语法如下:
confusion_matrix(y_true, y_pred, labels=None, sample_weight=None, normalize=None)
其中,参数含义如下:
- `y_true`:测试集的真实标签;
- `y_pred`:分类器在测试集上的预测标签;
- `labels`:指定标签的值,可以是列表或者 None。如果为 None,则默认为所有不同的标签值;
- `sample_weight`:每个样本的权重,可以是 None 或者数组。如果为 None,则每个样本权重相等;
- `normalize`:指定混淆矩阵是否应该被规范化。如果为 None,则返回混淆矩阵中的元素数量。如果为 'true',则返回混淆矩阵中的元素比例。
该函数的返回值为混淆矩阵。例如,对于二分类问题,混淆矩阵如下:
| | 预测正类 | 预测负类 |
| ------- | -------- | -------- |
| 真实正类 | TP | FN |
| 真实负类 | FP | TN |
其中,TP 表示真正例数量,FN 表示假反例数量,FP 表示假正例数量,TN 表示真反例数量。