分类模型评估利器-混淆矩阵

相关文章

地理时空动态模拟工具介绍(上)

地理时空动态模拟工具介绍(下)地理时空动态模拟工具的使用方法

前言

混淆矩阵(Confusion Matrix)是机器学习领域中用于评估分类模型性能的一种工具。它通过矩阵的形式,将模型的预测结果与实际分类进行比较,从而可以直观地展示分类模型的性能及精度。通常,混淆矩阵用于二分类问题(例如是否患有某种疾病),但是在GIS的分类模型中,多分类问题更为常见(例如多种土地利用类型)。

01 混淆矩阵的类别介绍

二分类混淆矩阵

对于二分类问题,混淆矩阵包含四个主要部分:

  1. True Positive (TP):模型正确预测为正类的实例数量。(真阳性)

  2. False Positive (FP):模型错误预测为正类(实际上是负类)的实例数量。(假阳性)

  3. False Negative (FN):模型错误预测为负类(实际上是正类)的实例数量。(假阴性)

  4. True Negative (TN):模型正确预测为负类的实例数量。(真阴性)

二分类混淆矩阵的结构如下:

|------|------|------|
| | 实际正类 | 实际负类 |
| 预测正类 | TP | FP |
| 预测负类 | FN | TN |

多分类混淆矩阵

多分类混淆矩阵的每行代表预测类别,每列代表实际类别,对角线上的值表示正确分类的数量,非对角线上的值表示错误分类的数量。

例如,对于一个有3个类别(A、B、C)的多分类问题,混淆矩阵的结构如下:

|----------|------|------|------|
| | 实际为A | 实际为B | 实际为C |
| 预测为A | a11 | a12 | a13 |
| 预测为B | a21 | a22 | a23 |
| 预测为C | a31 | a32 | a33 |

其中a11、a22、a33为正确的分类。类别还可以更多。同样,多分类矩阵将非对角线上的值进行合并,也可得到二分类中的TP、FP、TN、FN等相关值。

02 混淆矩阵的扩展

通过混淆矩阵,我们可以计算出多种评估指标,例如:

• 准确率(Accuracy):(TP + TN) / (TP + TN + FP + FN)

• 精确率(Precision):TP / (TP + FP)

• 召回率(Recall):TP / (TP + FN)

• F1分数(F1-Score):2 * (Precision * Recall) / (Precision + Recall)

这些指标可以帮助我们更加全面评估模型的性能,更常用于深度学习等方法中。

03 如何读懂GeoScene Pro中的混淆矩阵

Pro中的混淆矩阵,除有分类之外,还会包含U_Accuracy、P_Accuracy以及kappa系数等信息。以下表为例。

|------------|--------|--------|--------|-----|------------|--------|
| 实际 预测 | C_1 | C_2 | C_3 | 总计 | U_Accuracy | kappa |
| C_1 | 49 | 4 | 4 | 57 | 0.8594 | 0 |
| C_2 | 2 | 40 | 2 | 44 | 0.9091 | 0 |
| C_3 | 3 | 3 | 59 | 65 | 0.9077 | 0 |
| 总计 | 54 | 47 | 65 | 166 | 0 | 0 |
| P_Accuracy | 0.9074 | 0.8511 | 0.9077 | 0 | 0.8916 | 0 |
| kappa | 0 | 0 | 0 | 0 | 0 | 0.8357 |

矩阵中共有3类样本。对角线上预测全部正确的共有49+40+59个样本,总数量为166,其交并比(IoU)为148/166=0.8916。

U_Accuracy字段叫做用户精度,也叫错分误差,表示预测中其他类被错分为成指定类。以第一行为例, 49个1类判断正确,4个实际为2类以及4个实际为3类的样本被错误判断为1类,1类的U_Accuracy为49/57。

P_Accuracy字段叫做制作者精度,也叫漏分误差,表示预测中指定类错报成其他类。以第一列为例,其中49个1类判断正确,2个实际为1类的样本错报成2类,3个实际为1类的样本错报成3类,1类的P_Accuracy为54/57。

表中的0.8916为整体精度。

kappa系数为0.8357,它是混淆矩阵的核心,用于整体评估分类的精度。

其公式如下:

是每一类正确分类的样本数量之和除以总样本数,即上文中提及的交并比=0.8916。

的计算公式如下:

各类实际样本数量为

,预测样本数量为

,总样本数量为n,类别总数为C。

的实际计算方法为

在带入Kappa公式

在分类模型精度评估中,Kappa指数如果大于0.75,就可以认为该模型整体精度比较高,预测结果可信。

04 如何在GeoScene Pro软件中计算混淆矩阵

上一节中我们已经了解到混淆矩阵主要用在分类问题中,用于对比预测和实际类型,从而计算分类结果的精度。在Pro中共计三步来完成混淆矩阵的计算。

第一步:使用创建精度评估点工具构建随机点。

创建精度评估点工具可以创建随机采样点,用于分类后精度评估,同时还可以将预测数据或实际数据的分类结果提取至采样点中。

创建精度评估点工具

该工具中的"输入栅格数据或要素类数据"可以是预测或实际类型数据本,需要注意必须与"目标字段"参数对应。

第二步:使用更新精度评估点工具补充随机点属性。

更新精度评估点工具可以选择实际或预测类型数据,也必须与"目标字段"参数对应。

更新精度评估点工具

上述两步运行完成后,打开精度评估点的属性表,包含Classfied字段(预测分类属性),GrndTruth字段(实际分类属性)。

精度评估表的属性表

第三步:使用计算混淆矩阵工具计算结果。

计算混淆矩阵工具

即可得到混淆矩阵。

混淆矩阵表

为简化上述步骤,还可以将上述工具制作成模型构建器。

混淆矩阵模型构建器

进一步还可以将模型构建器进行封装,制作成地理处理工具。

混淆矩阵综合工具

相关推荐
玩大数据的龙威8 小时前
农经权二轮延包—各种地块示意图
python·arcgis
ZH15455891318 小时前
Flutter for OpenHarmony Python学习助手实战:数据库操作与管理的实现
python·学习·flutter
Junlan278 小时前
Cursor使用入门及连接服务器方法(更新中)
服务器·人工智能·笔记
robot_learner8 小时前
OpenClaw, 突然走红的智能体
人工智能
belldeep8 小时前
python:用 Flask 3 , mistune 2 和 mermaid.min.js 10.9 来实现 Markdown 中 mermaid 图表的渲染
javascript·python·flask
ujainu小8 小时前
CANN仓库内容深度解读:昇腾AI生态的基石与AIGC发展的引擎
人工智能·aigc
喵手8 小时前
Python爬虫实战:电商价格监控系统 - 从定时任务到历史趋势分析的完整实战(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·电商价格监控系统·从定时任务到历史趋势分析·采集结果sqlite存储
rcc86288 小时前
AI应用核心技能:从入门到精通的实战指南
人工智能·机器学习
霖大侠8 小时前
【无标题】
人工智能·深度学习·机器学习
喵手8 小时前
Python爬虫实战:京东/淘宝搜索多页爬虫实战 - 从反爬对抗到数据入库的完整工程化方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·京东淘宝页面数据采集·反爬对抗到数据入库·采集结果csv导出