Paper Reading: Relating instance hardness to classifcation performance in a dataset: a visual approach
Paper Reading 是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限,可能有理解不到位的地方。具体的细节还需要以原文的内容为准,博客中的图表若未另外说明则均来自原文。
论文概况 | 详细 |
---|---|
标题 | 《Relating instance hardness to classifcation performance in a dataset: a visual approach》 |
作者 | Pedro Yuri Arbs Paiva, Camila Castro Moreno, Kate Smith‑Miles, Maria Gabriela Valeriano, Ana Carolina Lorena |
发表期刊 | Machine Learning |
发表年份 | 2022 |
期刊等级 | 中科院 SCI 期刊分区(2023年12月最新升级版)3 区,CCF-B |
论文代码 | https://pypi.org/project/pyhard/ |
作者单位:
- Instituto Tecnológico de Aeronáutica (ITA), São José dos Campos, São Paulo, Brazil
- Universidade Federal de São Paulo (Unifesp), São José dos Campos, São Paulo, Brazil
- School of Mathematics and Statistics, University of Melbourne, Melbourne, Victoria, Australia
研究动机#
机器学习中的一个众所周知的格言是:每个 ML 算法都有一个偏差,使得它比其他算法更适合某些类型的问题。学习应该使用哪种分类算法来解决特定的问题或实例可以通过元学习 MtL 进行建模,它旨在学习如何在 ML 算法的性能中映射问题特征。不过在 ML 研究中使用的常见且可取的做法是在一组实验中比较多个模型,使用相同的数据集和数据分区,并以评估指标的平均值和标准偏差值的相互比较。尽管选择的最优算法在数据集上具有良好的总体性能,但模型在实例的重要子集上可能不准确,这可能导致算法偏差和一些 ML 模型在实际运行时得到的欺骗性结果。
有工作提出了一种称为实例空间分析 ISA 的方法,它实现了在实例级别对算法进行分析,并在跨多个数据集分析 ML 的分类性能时取得了显著效果。首先用一组元特征描述公共数据库的分类数据集,然后对多种 ML 分类算法评估预测性能。然后创建一个将这些特征与算法性能相关的二维投影,通过呈现线性趋势揭示困难和容易的样本。这为理解每种分类算法的能力,实现自动算法选择提供了有价值的知识。但是在之前的工作中,分析是通过将一个实例视为一个完整的分类数据集来完成的,并且将每个数据集的算法性能报告为数据集中所有实例的平均误差。
文章贡献#
相比于原先的 ISA 方法将每个实例当做一个完整的数据集,本文将 ISA 框架扩展到对单个分类数据集的分析,同时将实例定义为数据集中的观察值实现更细粒度的分析。通过将原始数据投影到二维硬度嵌入中,可以仔细检查数据质量,并更深入地理解单个数据集中的分类器行为。本文重新实例硬度的概念,使用实例硬度评估分类数据集中每个实例的困难程度或错误分类的概率。通过将描述实例硬度的元特征与多个分类器的预测性能相关联,ISA 提供了每个分类器优缺点信息,还可以对数据集中的数据质量问题进行分析。同时本文提供了一个开源 Python 工具包 PyHard,它封装实现了 ISA,并提供了一个交互式可视化界面将实例硬度与分类性能联系起来。
实例空间分析#
ISA 框架#
实例空间分析 ISA 框架最初用于分析优化问题和算法,后来扩展到 ML 和其他领域。ISA 建立在算法选择问题 ASP 的基础上,在如下图的阴影区域所示。ASP 的目标是根据从过去解决的类似问题中收集的知识,自动化选择算法及超参数以解决新问题的过程。
ASP 中包括以下组件:
ASP 组件 | 符号 | 说明 |
---|---|---|
问题空间 | P | 所考虑的问题/领域中的所有实例 |
实例子空间 | I | 从 P 中采样的实例子集,其特征和解是可用的或易于计算的 |
特征空间 | F | 从属于 I 的实例中提取的一组描述性特征,也称元特征 |
算法空间 | A | 可用于解决 I 中的实例的算法组合 |
性能空间 | Y | 在 I 的实例上评估集合 A 中的算法的性能得到 Y |
元组的组合 (x,f(x),a,y(a,x)):实例 x∈I 描述了元特征 f(x)∈F,a∈A 是一个算法,y(a,x)∈Y 是将算法 a 应用于 x 的性能。所有算法 A 和所有实例 I 组成一个元数据集M。最优的算法 a* 可以通过对算法的训练和测试得到,即 a* = argmaxa||y(a,x)||。
实例空间分析 ISA 框架进一步扩展了 ASP 分析,以深入了解为什么一些实例比其他实例更难被预测。ISA 将特征和算法性能的信息结合在一个可以直观检查的新嵌入中,实现从元特征对应的多维空间到二维空间的映射 g(f(x)) 的优化问题,使实例的分布尽可能地显示线性趋势以帮助解释硬度方向。然后可以检查二维实例空间 IS 中算法性能好的和不好的区域,使用 ML 来得到最优算法 a* ,为 ASP 提供了具有可视化功能的方法。在实例空间中,还可以为每个算法定义称为算法足迹 φ(y(a,x)) 的强度区域,即算法 a 表现良好的 IS 区域。综上所述,ISA 方法的应用需要如下步骤,其中步骤 1 和问题域相关,涉及问题实例、元特征、算法和性能度量的选择。步骤 2 中元特征子集的选择可以通过使用任何合适的特征选择算法来完成。
- 构建元数据集 M;
- 只保留那些能够最好地区分算法性能的元特征,以此来减少 M 中的元特征集;
- 从元数据集 M 创建二维 IS;
- 在 IS 中构建算法的足迹,以测量整个 IS 的算法性能。
实例空间构造#
考虑从元数据域到二维实例空间寻找最佳映射的问题,通过基于预测的线性降维 PBLDR 方法实现。给定一个具有 n 个实例和 m 个元特征的元数据集 M,设 F∈Rm×n 是包含所有实例的元特征值的矩阵,Y∈Rn×a 为一种算法在n个相同实例的性能度量的矩阵。这组算法和实例的理想二维投影是通过找到矩阵 Ar∈R2×m、Br∈Rm×2 和 Cr∈Ra×2 来实现的,使近似误差最小化,如下公式所示。其中 Z∈R2×n 为二维空间中的矩阵实例坐标,Ar 为投影矩阵。
该优化问题的本质是寻求找到最优的线性变换矩阵 Ar,当检查每个算法的性能度量和每个特征的分布时,所有实例从 Rm 到 R2 的映射会在实例空间中产生最强的线性趋势。在新的空间中,元特征和算法性能的线性趋势最大化是由方程中的矩阵 Br 和 Cr 保证的。
假设 m<n 且 F 为满行秩,可得如下公式所示的备选优化问题。本文使用 Broyden-Fletcher-Goldfarb-Shanno(BFGS) 算法作为数值求解器对该问题进行了数值求解,在多次运行中选择特征空间中的距离与实例空间中的距离之间 Pearson 相关性最大的解。
足迹分析#
足迹是实例空间中算法根据经验性能分析的推断,有望在表现良好的一个区域。ISA 分析中将输出两种类型的足迹,第一个表示根据给定的算法性能阈值,算法显示出良好性能的 IS 区域;第二个区域对应于算法比组合中所有其他区域表现更好的区域。
为了构造具有良好性能的算法的足迹空间,首先需要对Y中包含的性能度量值进行二值化,根据设置的阈值将实例上每个算法的性能标记为简单或困难。对 A 中的每个算法都进行处理,得到一个二进制矩阵 Ybin,其中实例作为行、算法作为列。接下来使用 DBSCAN 来识别容易实例的高密度聚类,然后使用 a-shapes 来构建包围聚类内所有点的外壳。对于每个聚类外壳使用 Delaunay 三角剖分进行划分,并移除不满足最小纯度要求的三角形。剩余三角形的并集即为该算法的足迹,预期在此足迹内算法表现良好。
最佳性能的足迹的构建方式是类似的,此时需要考虑 IS 中算法之间的相对性能,即对于算法表现优于其他算法的实例所在的密集区域形成 Delaunay 三角剖分。同时还需要比较多个算法的最佳足迹,以去除因重叠而产生的矛盾区域。这些足迹通常较小,如果 IS 中不存在算法表现始终优于其他算法的区域,则这些足迹可能不存在。还可以为整个 IS 中的每个算法定义一些算法能力的客观度量:
度量 | 说明 |
---|---|
足迹面积 A | 跨多种算法进行归一化进行比较 |
足迹空间的密度 p | 足迹空间所包含的实例数与其面积之间的比率 |
足迹空间 p 的纯度 | 足迹空间所包含的良好实例的百分比 |
度量值越大表明算法在整个 IS 中的性能越好。较大的 A 表示该算法在大部分 IS 中表现出良好的性能,较大的 ρ 表示这样的区域是密集的,并且包含大量的实例。当 A 中包含的大多数实例都是好的时候 p 的值也会很大,在所选的特征集允许的情况下,一个强大的 IS 算法有望呈现一个大的标准化占地面积,密度接近 1,纯度接近 100%。
单个数据集的 ISA#
ISA 被用于分析机器学习中的公共基准数据集和经典的分类算法,以及最近的回归数据集和算法分析。本文主要介绍如何重新构建用于分析单个分类数据集的框架,主要关注通过将数据特征和元特征与算法性能相关联。给定包含 nD 个实例 xi∈X 和 mD 个输入特征的分类数据集 D,每个实例对应一个标签 yi∈Y 中,ISA 将包括:
ISA 组件 | 符号 | 说明 |
---|---|---|
问题空间 | P | 被约简为数据集 D |
实例子空间 | I | 包含所有独立实例 xi∈D |
特征空间 | F | 包含一组描述实例硬度的元特征,也称为硬度度量 HM |
算法空间 | A | 包含不同偏差的分类算法组合 |
性能空间 | Y | 记录A中各算法在每个实例下获得的性能 xi∈D |
ISA 的结构如下图所示,对于 D 中的每个实例 xi 将提取一组硬度度量,并且使用 A 中的每个算法通过交叉验证测试性能,用 y(a,xi) 表示。考虑元特征描述 A 中算法性能的能力,执行特征选择步骤,从而减少元特征子集 fc(f(xi),y)。将选择的元特征子集与多种分类算法的预测性能相结合,构建元数据集 M,从中提取坐标为 z1 和 z2 的二维实例空间投影。
硬度度量指标#
实例硬度 IH 是一个用于表明实例被错误分类的可能性的属性,也就是说,实例 xi 相对于分类假设 h 的硬度如下公式所示。其中 h∶X→Y 是将输入空间 X 中的特征映射到输出空间 Y 中的标签的假设或函数,在实践中 h 是由在具有超参数 β 的数据集 D ={(xi,yi)∣xi∈X∧yi∈Y} 上训练的学习算法 l 诱导的,即 h=l(D,β)。
经常被各种算法错误分类的实例可以被认为是困难的,简单的实例可能被任何考虑的算法正确分类。本文也将采用该表达式,将集合 L 实例化为 ISA 中的分类器池 A。
同时本文需要评估数据项的哪些特征使它们难以分类,提出硬度理论的论文中定义了一组硬度度量 HM,如下表所示。
k-Disagree Neighbors(k-不同意近邻,kDN):定义为给出 xi 最近的 k 个标签不一致的邻居的百分比,k 的值常设为 5。其中 kNN(xi) 表示数据集 D 中实例 xi 的 k 个最近邻居的集合。kDN(xi) 的值越高,该样本就被来自不同类的更多实例包围,它的分类就越困难。对于具有 nD 个实例和 mD 个输入特征的数据集 D,该度量的开销为 O(nD⋅mD)。
Disjunct Class Percentage(分离类百分比,DCP):使用 D 构建决策树,计算在 Disjunct 中与 xi 相同标签的实例的百分比。其中 Disjunt(xi) 实例 xi 位于的 disjunt 中包含的实例集。该指标的开销主要基于构建 DT 进行计算,因此其计算开销为 O(mD⋅nD⋅log2nD)。
Tree Depth(树深度,TD):返回在决策树 DT 中对 xi 进行分类的叶节点的深度,由树的最大深度进行归一化。depthDT(xi) 可以使用剪枝 TDP 和未剪枝 TDU 的决策树,更难分类的实例通常将位于树的更深层次。该指标的开销主要基于构建 DT 进行计算,因此其计算开销为 O(mD⋅nD⋅log2nD)。
Class Likelihood(类似然,CL):计算 xi 属于一个类别类的可能性,P(xi|yi) 表示 xi 属于 xi 的概率。为了便于计算,可以使用类似朴素贝叶斯分类的方法估计条件概率 P(xi|yi)。更简单的实例将得到更大的类似然值,因此输出的是它的补值,计算开销为 O(mD⋅nD)。
Class Likelihood Difference(类似然差,CLD):取 xi 相对于其标签的似然与任何其他类的最大似然之差。因为简单实例属于其类的置信度大于其他任何类,其类似然的差异更大,计算开销为 O(mD⋅nD)。
Fraction of features in overlapping areas(重叠区域特征占比,F1):F1 根据样本是否在数据集中的一个或多个特征重叠区域来定义实例硬度。该度量将实例 xi 的值位于类的重叠区域的特征的百分比按如下公式计算,其中 I 为指示函数。
fj 为 D 中的第 j 个特征向量,max(fyij) 和 min(fyij) 是类 yi∈{c1,c1} 中 fj 的最大值和最小值。特征 fj 的重叠程度是根据它在不同类中假设的最大值和最小值来测量的,如果不可能使用特征值的阈值来分离类,则可以认为一个特征具有重叠。对于大多数特征位于重叠区域的数据实例的 F1 值较大,对于多分类问题时经常将其分解为多个二分类问题再对其结果取平均。对于二元分类问题的开销为 O(mD⋅nD),多分类为 O(mD⋅nD⋅C)。
Fraction of nearby instances of different classes(不同类的相邻实例的比例,N1):此度量首先从 D 构建最小生成树 MST,每个实例对应一个顶点,根据其在输入空间中的距离将相邻实例连接起来,以获得关于边权之和的最小代价树。N1 给出了在 MST 中连接到的不同类的实例的百分比。较大的 N1(xi) 值表明 xi 更接近不同类别的实例,它是可能是边缘的或有噪声的样本,使其难以分类。该度量需要计算 D 中所有元素对之间的距离矩阵,计算开销主要为(mD⋅n2D)。
Ratio of the intra-class and extra-class distances(类内和类外距离的比值,N2):该指标首先计算 xi 到离它对应的类别最近的实例的距离,与它到不同类别最近的实例的距离之比。
其中 NN(xi)表示 xi 的最近邻居,ne(xi) 表示 xi 的非同类别的邻居:
据此得到 N2 的计算公式如下,较大的 N2(xi) 表示实例 xi 更接近于另一个类的实例,因此更难分类。该度量需要计算 D 中所有元素对之间的距离矩阵,计算开销主要为(mD⋅n2D)。
Local Set Cardinality(局部集合基数,LSC):实例 xi 的 Local-Set(LS) 是从 D 到 xi 的距离小于 xi 到 xi 最近非同类别样本的距离的点的集合。其中 ne(xi) 是 xi 最近非同类别样本,对于简单的实例可以获得更大的局部集。其计算开销主要为(mD⋅n2D)。
Local Set Radius(局部集合半径,LSR): 取 xi 的局部集合的归一化半径,对于更简单的实例将得到更大的半径。其计算开销主要为(mD⋅n2D)。
Usefulness(有用性,U):在其局部集中具有 xi 的实例的比例,如果一个实例易于分类,则它将接近其类中的许多实例,因此将更有用。其计算开销主要为(mD⋅n2D)。
Harmfulness(危害性,H):xi 是其他实例的最近非同类别样本的数量,该值越高这表明该实例更难分类,其危害性也会更高。
算法和性能评估#
本文考虑的候选分类算法有:Bagging(Bag)、Gradient Boosting(GB)、SVM、MLP、Logistic Regression(LR) 和 Random Forest(RF),也可以将其他算法添加到算法池中。为了评估分类器在 D 中的性能,首先使用交叉验证策略 CV 将 D 分成 r 折(默认 r=5),对于每个实例和算法组合都有一个性能估计。
如果考虑分类器在其预测中的置信度,则可以获得更细粒度的评估。因此本文选择了一种考虑与每个类相关的概率的度量,即对数损失或交叉熵性能度量,如下公式所示。其中 C 为数据集的类别数,yi,c 为类 C 是否为 xi 的实际标签的二进制值,pi,c 为分类器将 xi 属性为类 C 的校准概率,使用 Platt 缩放来校准概率值。
本文添加了一个超参数优化步骤,该步骤通过对外部循环的训练数据进行交叉验证来评估候选参数集。主要采用贝叶斯优化从算法池中每个分类器的超参数值范围中提取算法,目标是接近给定数据实例和分类算法可实现的最佳预测性能。在这个内部循环中,通过交叉验证对候选参数元组进行评估。综上所述,算法和性能评估步骤的流程图如下所示。
特征选择#
在生成 IS 投影之前,建议只在元数据集 M 中保留最具信息量的元特征。本文基于 y(aj,xi)在 M 中执行有监督元特征选择,即基于 D 中分类器实例的对数损失性能,其中 aj 是算法池中的第 j 个分类器。由于算法池中有 7 种分类算法,因此可以得到每一种分类算法的元特征排序,接着采用秩聚合方法对这些子集进行合并。假设目前没有先验知识,则首选更通用的特征排序标准。信息理论方法提供了该领域不可知论特征,独立于任何学习算法,能够捕获数据中存在的线性和非线性关系。其一般公式如式(24)所示,其中 fk 表示第 k 个特征向量,yj 是第 j 个算法的响应变量,Sj 是第 j 个算法选择的特征集。MI(fk,yj) 为互信息,MI(fi;fk|yj) 为条件互信息,Eval 是一个评估函数。
特征集 Sj 最初为空,第一个选择的特征是与响应变量 yj 互信息最大的特征。接着执行前特征选择过程,根据得分 J(fk) 候选特征其添加到 Sj 中。重复该步骤直到达到所选特征的期望数量 |Sj|=nf,默认情况下设置 nf=10。用于评估元特征的方法是最小冗余最大相关性 MRMR,效果是随着更多的特征被选择,逐渐减少特征冗余的影响,如公式(25)所示。MRMR 可以实现在最小化选择集中的冗余元功能的数量和保留最相关的功能之间存在权衡,尝试使特征集合多样化。MRMR 一开始会拒绝冗余特征,但随着选择信息特征变得更加困难就会容忍冗余。由于有 7 种不同的分类算法,因此将得到 7 个特征集 Sj。
实例空间表示和足迹#
考虑到元数据集 M 具有选定的元特征子集和考虑的七种算法的对数损失分类性能,本文的进一步使用 ISA 生成 2-D IS 并使用 PyISpace 实现的算法的足迹。PyISpace 包含了一个旋转步骤,以便标准化 IS 投影的解释,执行旋转使困难的实例总是被放置在空间的左上角,简单的实例被放置在空间的右下角。由于原始 IS 始终以原点为中心,因此应用了如式(26)所示的标准旋转。这种旋转保留了实例之间的距离,就像在原始实例空间中一样,因此没有拓扑变化。
这个旋转步骤首先需要找到原始 IS 相对于横坐标的角度,为此考虑指向硬实例质心的向量。为了定位这个质心,使用与构建算法足迹相同的二值化性能矩阵 Ybin,该矩阵表示对于每个实例和算法组合,与阈值相比获得的预测性能是好是坏。接下来计算每个实例的分类模式相对于算法的性能是好是坏,大多数算法实现良好预测性能的实例被归类为简单实例,硬实例是大多数算法没有达到良好预测性能的实例。知道了原始 IS 中硬实例的位置就能在这个空间中找到它们的质心,最后旋转角度为 θ=135◦−θbad,其中 θbad 是指向实例质心的矢量的角度,其中大多数时候实现了较差的预测性能。这个角度确保了困难的实例被放置在 IS 的左上方,而简单的实例被放置在右下方。
根据构建二值化矩阵 Ybin 所需的每个单独观测值的对数损失度量来定义分类算法的预测性能好坏是基于命题 1 交叉熵界的结果:对于任何 C 类的分类问题,logloss(xi) 是实例 xi 的对数损失,则交叉熵损失存在一个下界 Llower 和上界 Lupper,使得:
- 如果 logloss(xi)<Llower,则预测是正确的;
- 如果 logloss(xi)>Lupper,则预测不正确;
- 如果 Llower≤logloss(xi)≤Lupper,则预测可以是正确的,也可以是不正确的。
具体来说,这些边界可以设置为 Llower=-log(1/2)=log2 和 Lupper=-log(1/C)=logC。因此对于一个实例,如果 logloss 值低于 log2,则可以确定该实例被正确分类。如果 logloss 值大于 logC,则表明实例肯定被错误分类了。但是如果对数损失度量的值落在 log2 和 logC 之间的区间内,则对预测没有任何评价,也不知道它是正确的还是错误的。作为启发式算法,对于给定实例 xi,如果其值低于 log2 和 logC 的调和平均值,则认为该算法的对数损失性能良好。其思想是包含尽可能多的正确分类的实例,同时避免包含太多错误分类的实例。计算上如公式 (23) 所定义,对数损失函数的计算需要实例的实际标签和预测器为每个类分配的分类概率。
最后本文还引入了“实例容易度”的概念,通过将公式 (7) 中的值作为输入,并根据 IH 上的阈值定义实例的容易度。默认设置为 0.4,这意味着分类器池分配给实例的正确类的概率平均为 0.6。如果需要,可以使该值更严格或更平滑,可以获得实例空间区域的指示。足迹则可以从这些区域提取面积、密度和纯度的客观度量,跨实例空间的大部分实例被认为更容易。
实验结果#
本文提出了实例化 IH-ISA 框架,并将其封装进 PyHard 库,可以运行应用程序以可视化和交互式的方式探索结果。这个可视化应用程序允许用户与数据集的 IS 进行交互,并选择要通过交互式绘图进一步检查或保存的区域。在整个配置文件中,可以选择元特征集、算法组合、超参数优化和特征选择步骤。
案例研究:对于 COVID prognosis 数据集的 ISA 分析#
此处使用本文方法对 COVID-19 数据集进行了分析,该数据集包含从2020年3月1日~2021年4月15日收集的被诊断为COVID-19的公民的匿名数据,任务是预测公民是否需要住院治疗。数据集有 5156 名公民的数据,其中一半为需要住院。目标是分析该数据集的硬度分布,并从可视化和与 IS 的交互中提取一些见解。
下图给出数据集的 ISA,每个点对应于数据集的一个实例。在图 4a 中,根据 IH 值对观测值进行了着色,比较难的观测值用红色表示,比较容易的观测值用蓝色表示。使用旋转步骤,困难的实例集中在图的左上角,而容易的实例被放置在右下角。在图 4b 中,相同的观测值根据其原始标签着色,其中红点对应住院的公民,蓝点对应未住院的公民。对这些图的分析可以得到一些初步结论:大多数观察结果很容易被大多数算法正确分类,但在大多数情况下,住院公民群体要么有一个简单的概况被放置在 IS 的底部,要么有一个硬的概况在 IH 方面被涂成红色。相比之下,未住院的患者硬度大多为中等,其中包括低和中等 IH 值。有一类特定的非住院实例很难正确分类(z1<-2,z2 介于 1~2),下文将其称为“异常非住院组” ANH。在 IS 的中间点簇左下方的非住院类实例附近的住院个体(z1<-1,z2 介于 0~1)也值得研究,因为它们的硬度曲线与相反类的观察值更相似,它们将被称为“异常住院组 1”AH1。来自住院类的第二个感兴趣组由 IS 顶部的困难实例组成(z1 介于 -2.5~-1,z2 介于 2~3),将其命名为“异常住院组 2”AH2.
以下可视化图中展示了数据集的 IS 投影,根据所使用的一些元特征的值着色。
根据可视化效果可以分析出以下内容:
- 在 IS 顶部具有高 IH 值的实例也具有属于自己类别的低可能性(如图 a),并且与不共享其标签的元素分离放置(如图 b)分开放置。主要包括 ANH 和 AH2 组的实例,这些测量的高值表明这些群体具有与其他类别重叠的特征;
- IS 顶部具有高 IH 值的大多数实例也接近相反类的元素(如图 c),与类内距离相比其类间距离较低(如图 d),并且具有与不同标签的最近邻的比例很高(如图 e)。可见 ANH 和 AH1 组也被突出显示为困难,AH2 组的结果好坏参半。N2 特别表明了 AH2 的一些实例更接近它们类的一个实例,而不是它们最近的邻居;
- 除 ANH 组外的非住院的 TDP 值较高,对于住院类别的一个子集也很高(主要是 AH2 组的实例)。ANH 具有较低的 TDP 值,可见该组的观察值在与住院观察值相似的深度上进行分类。AH1 和 AH2 实例位于与非住院类的观察值相似的深度。将这些结果与之前的元特征相结合,可以推断这些组可能包含噪声或离群实例,具有与相反类相似的输入数据特征。
在下图中给出了分类器的良好(绿色)和最佳(紫色)足迹,这些分类器在为住院数据集构建的 IS 中获得了最大和最小的足迹区域。图 c 也显示了包含由组合的大多数算法更容易分类的实例的容易性足迹。Bagging 标准化足迹面积为 0.856,密度为 1.055,纯度为 0.972;MLP 归一化足迹面积为 0.926,密度为 1.007,纯度为 0.992。因此 MLP 在更大的 IS 区域中显示出良好的预测性能,并且在 99% 的情况下该区域也稍微纯净,并且包含良好的实例。除了 ANH 和 AH2 组外,MLP 在大多数情况下都表现出良好的预测性能,Bagging 在非住院组的情况下则不那么一致。但与其他算法相比,Bagging 在 IS 顶部的一些硬实例中具有一些最佳性能。Bagging 是组合中最佳归一化面积最大的算法,该数据集的简单占用面积为 0.859,密度为 1.06,纯度为 0.998,仅包含住院和非住院类中最简单的实例。也就是说排除了 ANH、AH1 和 AH2 中的所有实例。说明数据集中的大多数观察结果都很容易分类,但前两组的观察结果更具挑战性。
PyHard 还允许沿着 IS 绘制原始输入属性的值,如下图所示。年龄是影响 COVID 严重程度的一个众所周知的特征,如图 a 所示,暖色实例在容易住院的个体组中占主导地位,但在分类一些非住院个体时也增加了一些更高的难度。事实上,最容易出现不住院的公民往往是年轻人。一些住院的年轻患者来自难以分类的 AH2 组,来自 AH1 和 ANH 组的患者年龄较大。相关医学文献表明,老年人往往会演变成更严重的 COVID 病例,因此人们可能会认为需要住院治疗的病例在老年人中会更频繁。这可以部分解释为什么来自 ANH 和 AH2 组的一些实例很难分类,因为它们的年龄模式与通常的预期相冲突。
所有其他原始属性都是二元的,表明公民是否报告存在某种症状(红色)或未报告这种症状(蓝色)。所有不需要住院治疗的患者,除了一些来自 ANH 组的患者,没有饱和或呼吸窘迫问题,也没有报告肥胖或其他风险。ANH 组中有一些患者报告了低饱和度、呼吸窘迫和其他风险(该组中还有一例肥胖),这可能会影响他们更难分类,这些是在住院病例中更常见的症状和并发症。相比之下 AH1 和 AH2 组个体饱和度良好、无呼吸窘迫、无肥胖、无其他风险。因此他们在需要住院治疗的同时,在这些方面也存在矛盾的模式。糖尿病对实验难度的影响不大,有糖尿病和没有糖尿病的个体在 IS 中分布均匀。
通过本文方法的分析,能够突出显示数据集中具有相互冲突的原始属性值的一些实例。这些实例可能对应于异常值或被错误地标记,值得由领域专家进行更仔细的检查。基于这些见解,对来自 ANH 观察的原始数据的后续调查确定了 3 组实例:
- 尽管有症状和合并症,但已治愈且不需要住院治疗的人;
- 迅速进展至死亡且未及时寻求住院治疗的患者;
- 实际住院的人,但他们住院日期的信息缺失导致了错误的数据标签。
虽然前两组被正确标记,可以被认为是异常值,但后两组被错误标记,应该从数据集中丢弃或纠正,以建立更可靠的预测模型。AH1 组有许多症状轻微且住院治疗的个体,虽然它们在住院类的预期特征方面是异常的,但它们的表单可能缺少关于某些症状的信息,从而给输入属性值带来干扰。AH2 也可以在输入属性中呈现一些噪声,但是考虑到输入属性来自所属类的其他观察的一般模式,它们是正确的但非典型的观察。
综上所述,按一定的方法收集数据后预测住院风险是可行的,但是一些实例可能填错了或不完整,会影响其分类所达到的硬度水平。本文的方法可以突出这些有问题的实例,并探索它们难以分类的主要原因,无论是由于输入、输出中的标签错误还是异常。这些见解为在实际和关键环境中构建可信的 ML 预测模型提供了更丰富的分析基础。
案例研究:使用 ISA 检测 COMPAS 数据集算法偏差#
COMPAS(替代性制裁的惩教罪犯管理分析)数据集常用于分析样本和算法偏差,该数据集有 5278 个实例和 13 个输入属性,其中47%的实例来自两年的累犯类。当来自数据集的敏感输入属性影响预测结果时,算法偏差就会发生。在累犯数据的情况下,种族和性别等方面是受保护的属性,不应该是确定罪犯是否可能犯下新罪行的决定性因素。此处使用 ISA 识别由 COMPAS 数据集引起的预测误差中的潜在偏差,将比较在使用 race 作为输入属性分析时,以及将其作为受保护属性删除时,低 IH 和主要高 IH 实例的差异。这样做的理由是:即使不使用受保护的属性来训练模型,由于固有的数据收集偏差,它仍然可能间接影响模型。如果训练一个没有受保护属性的模型,但评估不同种族或性别的错误率存在差异,则可以假设存在偏见。
在一个分析中,使用 COMPAS 数据集的所有 13 个属性作为 ISA 的输入,另一个分析中特征列表中删除了 race_african-african 和 race_Caucasian。生成和分析了两个 ISA 投影如下图所示,根据每个实例空间的 IH 值着色。图 a 的 IS 投影与图 b 相似,说明无论是否使用种族属性,数据集的硬度轮廓都是保持不变的。
使用 PyHard 可以从两个实例空间中手动选择好/容易观察到的区域(IS 底部的蓝点)和坏/难观察到的区域(IS 顶部的红点),并比较它们的分布。此处将分析重点将放在数据集最相关的特征上:race_African-American、race_Caucasian、priors_count、age、sex。
下图中展示了 race 值的分布,可见当比较低 IH 值和高 IH 值时,图表显示了类别比例的反转。也就是说在低 IH 值的情况下,非累犯组的观察更频繁,而在高 IH 值的情况下,累犯组的观察更频繁。这证明对惯犯进行分类难度更大。无论是否使用 race 作为输入属性,图中每个类和每个种族的低 IH 实例的比例都非常相似,高 IH 的结果有一些小的变化。这表明无论是否将 race 作为分类模型的输入,两种情况下的硬度趋势非常相似。
下表中重点提取了难以分类的实例,并显示了具有高 IH 值的累犯和非累犯实例的汇总统计数据。在 IH 值较高的实例中,实际累犯的平均犯罪前科较低,导致分类模型错误地将其预测为非累犯。然而对具有高 IH 值的非累犯产生了错误决策,可能导致一个实际上是无辜的人被定罪。注意到即使从输入特征集省略 race 特征,分类算法对于非累犯高 IH 实例仍然有偏差。来自累犯和非累犯的硬实例的平均情况保持不变。
接着使用聚合混淆矩阵评估了 FP 和 FN 率,此信息可以通过对矩阵 Ybin 中的行求和来获得。接下来按 race 分解 FP 和 FN,如下表所示。可见即使种族属性被明确忽略,FP 在非裔美国人中更常见,说明算法可能存在公平性问题。进一步分析不将种族作为输入特征的 ISA 区域(如图 8b),主要有容易分类(z1 介于 1~2,z2介于 -3~-2)和最难分类的实例(z1 介于 -4~-3,z2介于 1~2)。容易分类的数据包含 27 个实例,均为年龄小于 45 岁的男性累犯。其中 88.9% 的人是非裔美国人,他们也有相当多的前科(在 12~28 之间)。因此 ML 算法发现对有大量前科的年轻男性累犯进行正确分类更容易,其中大多数也是非洲裔美国人。最难分类的部分包括 25 名男性非累犯,除了一个 51 岁的实例,其中的大多数人的年龄也不到 45 岁。先前犯罪的数量在 1~21 之间,其中有 76.0% 是非洲裔美国人。在最难分类的实例中所有人都有前科,而在最容易分类的实例中大多数都没有关注到这一特征(27 个实例中有 21 个没有前科)。因此算法在对未被标记为累犯但在其成人或青少年犯罪记录中有前科的年轻男性进行分类时面临困难,race 属性在该组中的显著性低于在最简单组中的显著性。
下图对比了最容易(蓝色)、最困难(红色)和所有其他实例(绿色)的前科和青少年犯罪的原始特征值。图 a 表示最简单的实例包含有大量犯罪前科的个体(所有累犯),其他数据通常只有少量犯罪前科。最难分类的实例有一个中间数量的前科记录,尽管最初被标记为非累犯。如图 b 所示,从青少年犯罪总数来看,虽然最容易和其他两个实例集合的青少年犯罪数量一般较低,但最难分类的实例显然有更多的青少年犯罪登记模式。
最容易分类(蓝色)、最难分类(红色)和其他(绿色)实例集中的一些元特征的值如下图所示。
这些数据也能体现最难分类实例的矛盾模式,最容易分类的实例显示低硬度值,而其他实例具有中间硬度度量值。所有这些结果都表明,最难分类的实例要么是噪声,要么是非典型的。
- 高 CL 值:表明该集合中的实例属于其类的可能性较低;
- 高 DCP 值:表明此类观测值往往与其他类别的大多数示例不一致;
- 高 kDN 值:表明大多数这些观测值是接近的,并且被其他类的实例所包围。
对 COMPAS 数据集进行的分析展示了如何使用 ISA 进行算法偏差分析,对于 COMPAS 数据集可以注意到,即使从输入集中省略敏感特征,实例的硬度曲线与使用整个属性集时观察到的硬度曲线相似。仔细检查最难分类的实例与最容易分类的实例的对比,也会发现该数据集中可能存在其他类型的问题,例如数据不一致。这些信息都可以用于公平性增强策略和数据清理策略。
案例分析:使用 ISA 分析标签噪声数据集#
现实世界的数据集经常受到数据质量问题的影响,例如由于数据收集、存储和传输中的错误导致存在噪声。此处研究了在数据集存在不同水平的标签噪声的影响下的 ISA 分析,主要是通过使用一个合成数据集,逐步以越来越快的速度向其引入随机标签噪声。下图 a 中展示了该合成数据集,由分布为 0.8 的高斯函数得到,每个类有 250 个数据项。这些类是相当线性可分的,但是存在重叠现象。图 b 显示了使用 IH 着色的数据,可见原始空间中最难的实例是那些在边界和重叠的类。
对于合成数据集用以下速率随机翻转类标签:5%、10%、20%、30%、40%、50%、70%、90% 和 100%,每种噪声率重复 10 次。下图 a 显示了在为不同噪声级别生成的实例空间中的平均容易足迹的面积,随着引入更多的噪声,可预期足迹面积将会减少。对于噪声水平的 40% 和 50%,达到良好性能的实例的足迹区域为零,这展示了 IH 值和足迹面积如何能够反映标签噪声对分类性能的有害影响。在 100% 噪声水平的极端情况下,所有数据点的标签都被翻转,因此分类问题等同于无噪声版本的分类问题。
图 b 展示了在分类算法的足迹区域,随着噪声水平的增加,具有良好分类性能的 IS 区域会减少,直到达到 50%。不同的分类算法在不同噪声水平上,可能存在比其他分类算法更健壮的情况。对于高噪声水平,所有算法的占用面积都大大减少,这表明它们在很少的 IS 实例上表现良好。通过监测同一数据集的噪声和干净的足迹区域的差异,在评估噪声清除技术的方面使用 ISA 是值得的。
优点和创新点#
个人认为,本文有如下一些优点和创新点可供参考学习:
- 相比原始 ISA 分析将单个实例作为整个数据集的局限,本文提出了针对单个数据集的 ISA,极大地扩展了 ISA 分析的应用范围;
- 本文的 ISA 通过将原始特征投影到二维空间,实现了对实例硬度和算法足迹的可视化,能够直观、具体地对数据和算法进行分析;
- 本文的工作在实例硬度的概念的基础上量化了实例的难分程度,且实现了不同硬度指标之间的信息互补和协同工作;
- 在实验部分,本文通过 3 个不同的案例展现了 ISA 方法在不同实际问题上的应用效果,图文并茂、内容具体、有说服力。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步