来源: DeepHub IMBA本文约1000字,建议阅读5分钟本文讨论了如何在多分类中使用混淆矩阵评估模型的性能。 什么是混淆矩阵? 它显示了实际值和预测值之间的差异。...对于多分类来说,它是一个 N * N 矩阵,其中 n 是编号。输出列中的类别,也称为目标属性。一二分类任务中包含了 2 个类也就是一个 2*2 矩阵,一般情况下介绍混淆矩阵都会以二分类为例。...那么将得到一个 3*3 矩阵依此类推。通过上面描述我们知道,混淆矩阵的类将具有相同数量的行和列。...考虑这个混淆矩阵在下图 1 中的数据集的输出列中具有 A、B、C 类。...”Recall (A)= 正确分类 / 总实际值 = 15/20 = 0.75 正确率Accuracy :被分对的样本数除以所有的样本数 Accuracy (A) = 正确分类的总数 / 实际分类的总数
遥感影像分类评估 书接上回,今天我们来看一看遥感影像分类是如何进行评估的。 01 概念 首先我们先了解一下什么是遥感影像分类。...放到混淆矩阵中,就是分类器将整幅影像正确分类为A的像元数(对角线上A类的值)与真实情况下A的像元数(真实情况A的像元数总和)之比。...放到混淆矩阵中,是分类器将整幅影像正确分类为A的像元数和(对角线上A类的值)与分类器分出的所有A类像元数(预测值为A的像元数总和)之比。...04 错分误差 指对于分类结果中的某种类型,与参考图像类型不一致的概率。放到混淆矩阵中,就是被分类器分为A类的像元中,分类出错的像元数所占的比率。...我们也就不难发现,错分误差+用户精度=1 05 漏分误差 指对于参考图像上的某种类型,被分类器分为其他类别的概率。放到混淆矩阵中就是真实情况为A类的像元数中有多少像元数被分类器分为了别的类别。
前面说过混淆矩阵是我们在处理分类问题时,很重要的指标,那么如何更好的把混淆矩阵给打印出来呢,直接做表或者是前端可视化,小编曾经就尝试过用前端(D5)做出来,然后截图,显得不那么好看。。...,放一下你的混淆矩阵就可以,当然可视化混淆矩阵这一步也可以直接在模型运行中完成。...通过混淆矩阵, 可以很容易看出系统是否会弄混两个类, 这也是混淆矩阵名字的由来....sample_weight=None # array-like of shape = [n_samples], Optional sample weights ) 在 scikit-learn 中, 计算混淆矩阵用来评估分类的准确度...打印混淆矩阵实例就是小编分享给大家的全部内容了,希望能给大家一个参考。
分类模型的评估指标有很多,今天小编给大家准备的是混淆矩阵。 简介 首先我们来解释一下什么是分类模型的评估指标。...分类模型,也可称为分类器,即一个可以经过训练,实现将数据集合中的所有元素分配给一个现有类别的模型。 评估指标,即评估分类模型所能实现的分类结果质量高低的指标。...其有两种表现形式:定量指标和图表指标;定量指标即以具体数值来表示分类质量;图表指标即以图表的形式来表示分类质量,以达到增强可视化评估的效果。 我们今天介绍的混淆矩阵就是一个图表形式的指标。...由以上内容可以获得结论:对于一款分类模型,TP值与TN值的数量越多,FP值与FN值的数量越少,模型的分类精度就越高。 02 样本二级指标 混淆矩阵统计的是样本在各个一级指标的数量。...特异度:TN/(TN+FP)=53/(53+20)≈73% 3 ---三级指标 F1 Score=2PR/(P+R)=(2*0.5*0.74)/(0.5+0.74) ≈0.6 以上就是在机器学习领域中的混淆矩阵及它所引申出的几个评估指标
SVM 回顾一下之前的SVM,找到一个间隔最大的函数,使得正负样本离该函数是最远的,是否最远不是看哪个点离函数最远,而是找到一个离函数最近的点看他是不是和该分割函数离的最近的。 ?...之前讲SVM的算法:https://www.jianshu.com/p/8fd28df734a0 线性分类 线性SVM就是一种线性分类的方法。输入 ? ,输出 ? ,每一个样本的权重是 ?...比如要做的图像识别有三个类别 ? ,假设这张图片有4个像素,拉伸成单列: ? 得到的结果很明显是dog分数最大,cat的分数最低,但是图片很明显是猫,什么分类器是错误的。...损失函数 之前的SVM是把正负样本离分割函数有足够的空间,虽然正确的是猫,但是猫的得分是最低的,常规方法是将猫的分数提高,这样才可以提高猫的正确率。...所以正确的分类score应该是要大于其他的分类score一个阈值: ? ? 就是正确分类的分数, ? 就是其他分类的分数。所以,这个损失函数就是: ?
学习完了复杂的理论知识,很多朋友可能非常想通过一个实际的例子,动手编写出一个SVM程序,应用到实际中。那么本文就将带领大家动手写出自己的SVM程序,并且应用到图像的分类问题中。...这就是SVM的基本思想:尽量让所有样本距离分类超平面越远越好。 2. 线性分类与得分函数 在线性分类器算法中,输入为x,输出为y,令权重系数为W,常数项系数为b。...我们定义得分函数s为: s=Wx+bs=Wx+b s=Wx+b 这是线性分类器的一般形式,得分函数s所属类别值越大,表示预测该类别的概率越大。...从s的值来说,dog score最高,cat score最低,则预测为狗的概率更大一些。而该图片真实标签是一只猫,显然,从得分函数s上来看,该线性分类器的预测结果是错误的。...线性SVM实战 首先,简单介绍一下我们将要用到的经典数据集:CIFAR-10。 CIFAR-10数据集由60000张3×32×32的 RGB 彩色图片构成,共10个分类。
尝试原型化图像分类器来分类垃圾和可回收物 - 这个分类器可以在光学分拣系统中应用。...构建图像分类器 训练一个卷积神经网络,用fastai库(建在PyTorch上)将图像分类为纸板,玻璃,金属,纸张,塑料或垃圾。使用了由Gary Thung和Mindy Yang手动收集的图像数据集。...这种拟合方法的优点在于学习率随着每个时期而降低,能够越来越接近最佳状态。在8.6%时,验证错误看起来非常好......看看它如何对测试数据执行。 首先可以看看哪些图像分类错误。...检查第一张图像是否真的是玻璃。 ? 接下来将从测试数据集中获取实际标签。 ? 看起来前五个预测相匹配! 这个模型如何整体表现?可以使用混淆矩阵来找出答案。 测试混淆矩阵 ?...混淆矩阵数组 打算让这个矩阵更漂亮一点: ? 同样,该模型似乎混淆了金属玻璃和塑料玻璃。有了更多的时间,相信进一步的调查可以帮助减少这些错误。 ?
how-to-train-an-image-classifier-in-pytorch-and-use-it-to-perform-basic-inference-on-single-images-99465a1e9bf5 如果你刚刚开始使用PyTorch并想学习如何进行基本的图像分类...它将介绍如何组织训练数据,使用预训练神经网络训练模型,然后预测其他图像。 为此,我将使用由Google地图中的地图图块组成的数据集,并根据它们包含的地形特征对它们进行分类。...我会在另一篇文章中介绍如何使用它(简而言之:为了识别无人机起飞或降落的安全区域)。但是现在,我只想使用一些训练数据来对这些地图图块进行分类。 下面的代码片段来自Jupyter Notebook。...如果你使用云端虚拟机进行深度学习开发并且不知道如何远程打开notebook,请查看我的教程。 组织训练数据集 PyTorch希望数据按文件夹组织,每个类对应一个文件夹。...从代码中可以看出基本过程非常直观:加载批量图像并执行前向传播循环。然后计算损失函数,并使用优化器在反向传播中应用梯度下降。 PyTorch就这么简单。
本文将解释什么是数据增强,谷歌AutoAugment如何搜索最佳增强策略,以及如何将这些策略应用到您自己的图像分类问题。...一个主要策略由5个子策略组成,每个子策略依次应用2个图像操作,每个图像操作都有两个参数:应用它的概率和操作的幅值(70%的概率执行旋转30度的操作) 这种策略在训练时是如何应用在图片上的呢?...如何训练AutoAugment ? AutoAugment像NASNet一样训练——一个源自Google的用于搜索最优图像分类模型结构的增强学习方法。...如果我们同时使用这两种方法:在使用ImageNet AutoAugment 策略时微调ImageNet的权重?这些优化的效果会叠加起来,为我们解决新的图像分类问题提供新的最佳方法吗?...通常情况下,基本上都可以额外获得显著的改进。 如何将AutoAugment策略应用于您的问题 我在本文附录中创建了一个包含最佳ImageNet、CIFAR-10和SVHN策略的repo。
AI 科技评论按:当训练好的图像分类器遇到了训练数据里不存在的类别的图像时,显然它会给出离谱的预测。那么我们应该如何改进分类器、如何克服这个问题呢?...而坏消息是,这样做会引发一连串其它的问题: 「未知」类应该包含怎样的样本?可能属于该类的自然图像无穷无尽,所以你应该如何选择哪些图片应该被纳入该类? 在「未知」类中,每种不同类别的物体需要包含多少?...你可以创建一个用户界面,指引人们在运行分类器之前确保摄像头画面中已经出现了要分类的目标,这和那些要求你对支票或其他文档进行拍照的应用程序经常做的是一样的。...稍微复杂一点的方案是,你可以编写一个独立的图像分类器,它试图去识别那些那些主图像分类器不能识别的情况。...该门模型将在运行完整的图像分类器之前运行,如果它没有检测到一些看起来像是植物的东西,它就会提前跳出程序并且返回表明没有发现任何植物的错误信息。
本小节主要介绍如何求解多分类问题中的指标,着重介绍多分类问题中的混淆矩阵,将混淆矩阵进行处理转换为error_matrix矩阵,并通过可视化的方式直观的观察分类算法错误分类的地方。...本小节来简单看一下如何利用前几个小节学习的指标来处理多分类问题,在前几个小节的二分类问题中介绍了一个非常重要的小工具混淆矩阵,由混淆矩阵推导出了很多重要的指标,因此最后着重介绍多分类问题中的混淆矩阵。...接下来简单介绍一种能够直观的看到犯错误比较多的位置的方法,也就是将整个混淆矩阵映射成灰度图像。...这里将混淆矩阵映射成灰度图像,因此传入plt.cm.gray; 调用plt.show()绘制混淆矩阵映射的灰度图像; 通过matplotlib将混淆矩阵映射成了灰度图像,在灰度图像上越亮的地方代表数值越大...通过error_matrix矩阵映射的灰度图像,可以非常直观的看到算法把那些类别的样本分类错误,并且可以根据灰度图像的亮度来确定算法在那些类别的分类上犯错误最多,最重要的是能够直观的看到算法具体犯了什么错误
一个良好的数据集——用于图像分类的CIFAR-10 许多关于深度学习的图像分类的介绍都是从MNIST开始的,MNIST是一个手写数字的标准数据集。...此外,MNIST并不是一个典型的图像数据集——控制它不太可能教给你可迁移的技能,而这些技能对于其他分类问题是有用的。...我们将在CIFAR-10上工作,这是一个经典的小彩色图像集。60000个32×32彩色图像,10个类,每个类有6000个图像。...我们不再使用one-class分类器(即逻辑回归、随机森林或XGBoost),而是创建一个由块(称为层)构成的网络。...你甚至可以查看错误分类的图片。然而,这个线性模型主要是在图像上寻找颜色和它们的位置。 Neptune通道仪表盘中显示的错误分类的图像 整体得分并不令人印象深刻。
——啊,怎么还要解释ROC,ROC如何如何,表明模型表现良好……”如果不明白这些评估指标的背后的直觉,就很可能陷入这样的机械解释中,不敢多说一句,就怕哪里说错。...本文从混淆矩阵(Confusion Matrix,或分类矩阵,Classification Matrix)开始,它最简单,而且是大多数指标的基础。...good 0.06789 good good 0.61195 bad good 0.15306 good Confusion Matrix, 混淆矩阵...我们需要知道,这个模型到底预测对了多少,预测错了多少,混淆矩阵就把所有这些信息,都归到一个表里: 预测 1 0 实 1 d, True Positive c, False Negative c+...一些准备 说,混淆矩阵(Confusion Matrix)是我们永远值得信赖的朋友: 预测 1 0 实 1 d, True Positive c, False Negative c+d,
笔者寄语:分类器算法最后都会有一个预测精度,而预测精度都会写一个混淆矩阵,所有的训练数据都会落入这个矩阵中,而对角线上的数字代表了预测正确的数目,即True Positive+True Nagetive...(混淆矩阵,准确率,召回率,F1,mAP) 1、TPR与TNR 同时可以相应算出TPR(真正率或称为灵敏度)和TNR(真负率或称为特异度)。...如果我们选择一系列的临界点,就会得到一系列的TPR和TNR,将这些值对应的点连接起来,就构成了ROC曲线。ROC曲线可以帮助我们清楚的了解到这个分类器的性能表现,还能方便比较不同分类器的性能。...该比例代表着分类器预测精度。...,例如常见的ROCR包,它不仅可以用来画图,还能计算ROC曲线下面积AUC,以评价分类器的综合性能,该数值取0-1之间,越大越好。
一般,深度学习的教材或者是视频,作者都会通过 MNIST 这个数据集,讲解深度学习的效果,但这个数据集太小了,而且是单色图片,随便弄些模型就可以取得比较好的结果,但如果我们不满足于此,想要训练一个神经网络来对彩色图像进行分类...核心包:torchvision.datasets、torch.utils.data.DataLoader 在本文中,我们的目的是用 pytorch 创建基于 CIFAR-10 数据集的图像分类器。...如何加载呢?...-10 这个数据集,这个模块定义了它如何去下载数据集,及如何从本地加载现成的数据。...,所以每 1 次 epoch,打印一下 loss 值和准确度。
CIFAR-10数据集包含10个类别的彩色图像,每个类别有6000张图像,总计60000张图像,图像尺寸为32x32像素。数据集划分为训练集(50000张图像)和测试集(10000张图像)。...其核心思想是通过多层次的非线性变换来学习和提取数据的高层次抽象表示。 3 实验分析 混淆矩阵是分类问题中常用的评估分类器性能的工具,用于比较分类器预测结果与实际标签之间的一致性。...混淆矩阵包含四个主要条目。基于混淆矩阵,可以计算出准确率、精确率、召回率和F1值等一系列分类性能指标。...以下是六种分类算法在混淆矩阵实验中的结果: 图1 混淆矩阵 图2 RF 图3 CatBoost 图4 XGBoost 图5 LightGBM 图6 BP神经网络 图7 深度学习 XGBoost模型的精确度为...相较于之前提到的随机森林模型和CatBoost模型,XGBoost模型的性能进一步提升,这表明XGBoost在CIFAR-10数据集上对图像分类任务的性能更好。
【阅读原文】 图像分类是一个认为几乎解决了的问题。...GAN生成样本图片 去除混淆的图像 训练神经网络的第一步不是写任何的神经网络的代码,而是彻底观察你的数据。这一步至关重要。...深入观察以后,我发现这些图像是被人工错误分类了。 ? 混淆的图像 有些图像的预测概率在0.5到0.6之间,理论上可能是这个图像表现出不止一个类别,所以模型给他们分配了相同的概率,我也把这些图像剔除了。...观察这些图像,这个理论最终被证明是正确的。 方法 2 fast.ai提供了一个方便的插件“图像清理器插件”,它允许你为自己的模型清理和准备数据。图像清理器可以清洗不属于你数据集的图像。...反向重复以上操作,得到另外五张图像,一共十张。测试时间增加的方法无论如何比10-crop技巧要快。 集成 机器学习中的集成是一种使用多种学习算法的技术,这种技术可以获得比单一算法更好的预测性能。
我们除了开放 Facets 源代码,还创建了演示网站,允许任何人在浏览器中直接可视化数据集而无需安装任何软件或设置,也无需数据离开你的计算机。...如果数据点有与其相关的图像,则图像可以用作视觉表示。 ? ? Facets Dive 可视化显示了加州大学尔湾分校人口普查测试数据集中的 16281 个数据点。...我们利用 Dive 检查了 CIFAR-10 数据集,并发现了一只青蛙猫——一只被标记为猫的青蛙。 ? ? 使用 Facets Dive 探索 CIFAR-10 数据集。...在这里,基本分类标签为行,预测分类标签为列。 这种组合就产生了混淆矩阵视图,我们可以在其中找到特定类型的错误分类。在上面的例子中,我们可以看到机器学习模型错误地将一些猫的图片分类为青蛙。...把真实图形放在混淆矩阵中让我们发现的一个有趣现象是:这些「真猫」中的一只被模型预测为青蛙是因为它在视觉检查中被定义为青蛙,这是由于模型训练的数据集中它被人为地错误分类了。 ? 你能区分出猫和青蛙吗?
我们还介绍了k-Nearest Neighbor (k-NN)分类器,该分类器的基本思想是通过将测试图像与训练集带标签的图像进行比较,来给测试图像打上分类标签。...其中大小为[K x D]的矩阵W和大小为[K x 1]列向量b为该函数的参数。还是以CIFAR-10为例, ?...需要注意的几点: 首先,一个单独的矩阵乘法 ? 就高效地并行评估10个不同的分类器(每个分类器针对一个分类),其中每个类的分类器就是W的一个行向量; 注意我们认为输入数据 ?...理解线性分类器 线性分类器计算图像中3个颜色通道中所有像素的值与权重的矩阵乘,从而得到分类分值。...对于这些数字的几何解释是:如果改变其中一行的数字,会看见分类器在空间中对应的直线开始向着不同方向旋转。而偏差b,则允许分类器对应的直线平移。需要注意的是,如果没有偏差,无论权重如何,在 ?
领取专属 10元无门槛券
手把手带您无忧上云