| 扬声器 |
抄本 |
| 迈克尔·克罗蒂 |
您好。感谢您收看 |
| |
我们讨论不平衡分类插件,它允许您在 JMP Pro 中比较采样技术和模型。 |
| |
我是 Michael Crotty,JMP 文档团队的统计撰稿人之一。今天我的共同演讲者是 Colleen McKendry,她也来自统计文档团队。这是我们与 Marie Gaudard 合作完成的。 |
| |
以下是我们今天演讲的简要提纲。我们将讨论我们创建的插件的目的、不平衡分类问题的一些背景知识,以及如何在这种情况下获得分类模型。 |
| |
我们将研究插件中包含的一些适用于不平衡分类问题的采样方法。 |
| |
我们将看看插件中可用的选项 |
| |
并讨论如何获取插件,然后 Colleen 将展示插件的示例和演示。 |
| |
社区提供的幻灯片中还有参考资料和包含额外背景信息的附录。 |
| |
因此,我们的插件(不平衡分类插件)的目的是让您应用针对不平衡数据设计的各种采样技术。 |
| |
您可以比较应用这些技术的结果以及 JMP Pro 中提供的各种预测模型。 |
| |
您可以使用精确召回曲线、ROC 曲线和增益曲线以及其他测量方法来比较这些模型和采样技术拟合度。 |
| |
这使您可以选择使用曲线进行分类的阈值。 |
| |
您还可以将 Tomek、SMOTE 和 SMOTE plus Tomek 采样技术直接应用于您的数据,这样您就可以使用现有的 JMP 平台和 |
| |
如果您不喜欢我们选择的大部分默认方法选项,请对新采样的数据进行微调建模选项。 |
| |
需要注意的是,Tomek、SMOTE 和 SMOTE 加 Tomek 采样技术可用于名义和序数以及连续预测变量。 |
| |
以下是关于不平衡数据问题的一些背景信息。 |
| |
因此,一般来说,您可能会得到多项式响应,但我们将重点关注二进制的响应变量,关键点在于一个响应级别的观察数量远远大于另一个响应级别的观察数量。 |
| |
我们将这些响应级别分别称为多数类别级别和少数类别级别。因此,大多数情况下,少数类别级别是你感兴趣的预测和检测级别。这可能类似于检测欺诈、疾病或信用风险的存在。 |
| |
我们希望根据回归变量来预测类别成员资格。 |
| |
为此,我们开发了一个预测模型,该模型将成员资格概率分配给少数类,然后我们选择一个阈值来优化 |
| |
各种标准。这些标准可能是误分类率、真阳性率、假阳性率等等。然后,如果预测的少数类概率超过设定的阈值,我们就将观察结果归类到少数类。 |
| |
那么我们如何获得分类模型呢? |
| |
JMP 中有很多不同的平台可以预测二元变量、二元结果 |
| |
当存在回归变量时,我们需要一种方法来比较这些模型。一些传统的指标,比如分类准确率,对于不平衡数据并不适用。举一个极端的例子,你可以考虑2%少数类的情况。 |
| |
我可以给你98%的准确率,只要把所有观察结果都归类为多数情况。但这不是一个有用的模型,你也不会想用它。 |
| |
因为你没有预测......你没有正确地将任何目标案例预测为少数案例,但总体准确率会达到 98%,这听起来相当不错。 |
| |
因此,人们开始探索其他方法来衡量不平衡分类模型中的分类准确率。其中之一就是精确召回率曲线。 |
| |
它们通常用于不平衡数据,并绘制阳性预测值或精确度与真实阳性率召回率的关系。 |
| |
并且由于精度考虑了大多数实例,因此 PR 曲线比 ROC 曲线对类别不平衡更为敏感。 |
| |
因此,PR 曲线能够更好地凸显模型在不平衡数据方面的差异。因此,PR 曲线是我们插件报告中首先显示的。 |
| |
处理不平衡分类数据的另一种方法是使用有助于对少数类进行建模的采样方法。 |
| |
总的来说,这些只是对响应分布施加更多平衡的不同方法,反过来,这有助于更好地划分多数类和少数类观测值之间的界限。因此,在我们的附加模块中,我们有七种不同的采样技术。 |
| |
我们不会过多谈论前四个,我们会专注于后三个,但很快,不加权就意味着它听起来是这样的。我们不会做任何……不会做任何改变,就是这样 |
| |
本质上,如果您不采用任何类型的采样方法来解释不平衡,那么您将做什么呢? |
| |
加权将对少数情况进行加权,以使多数类和少数类的权重总和相同。 |
| |
随机欠采样将随机排除大多数情况以达到平衡的情况,而随机过采样将随机复制 |
| |
少数案件再次达到平衡状态。 |
| |
然后我们将在接下来的幻灯片中详细讨论接下来的三种更高级的方法。 |
| |
因此,第一个先进的方法是 SMOTE,它代表合成少数过采样技术。 |
| |
这基本上是一种更复杂的过采样形式,因为我们在数据中添加了更多的少数情况。 |
| |
我们通过生成与现有少数类观察相似的新观察来实现这一点,但我们并不是像过采样那样简单地复制它们。 |
| |
因此,我们使用 Gower 距离函数并对每个少数类观测执行 K 个最近邻,然后生成观测来填充由这些邻居定义的空间。 |
| |
在这张图中,你可以看到我们用红色标记了少数情况。我们选择了三个最近的邻居。 |
| |
我们会随机选择其中一个。它恰好是下面这个,然后我们生成一个案例,另一个少数案例,它位于这个小阴影框的某个位置。这是二维的。如果你有 |
| |
预测变量有 n 个维度,那么阴影区域就是一个 n 维空间。 |
| |
但需要指出的关键一点是,你可以选择最近邻居的数量 |
| |
随机选择,你还可以选择执行此操作的次数 |
| |
该算法针对少数情况。 |
| |
下一个采样方法是 Tomek 链接法。这种方法的作用是尝试更好地定义少数类和多数类之间的界限。为此,它会从多数类中移除那些与少数类观测值接近的观测值。 |
| |
再次,我们使用 Gower 距离来查找 Tomek 链接,Tomek 链接是一对属于不同类别的最近邻。因此,一个多数类和一个少数类彼此是最近邻。 |
| |
为了减少这些实例的重叠,可以移除对中的一个或两个成员。在我们插件的主选项“评估模型”中,我们只移除多数实例。然而,在 Tomek 选项中,您可以使用任何一种移除方式。 |
| |
最后一种采样方法是 SMOTE 加 Tomek。这种方法结合了前两种采样方法。 |
| |
它将它们结合起来的方式是应用这种模式算法来生成新的少数观测值,然后一旦你获得了原始数据,再加上一堆生成的新少数案例, |
| |
tt 应用于 Tomek 算法,以查找属于不同类别的最近邻对。在此方法中,Tomek 对中的两个观测值均被移除。 |
| |
因此,当您安装不平衡分类插件时,它有四个选项,它们都显示为插件菜单下的子菜单项。 |
| |
第一个是“评估模型”选项,它允许你使用各种采样技术来拟合各种模型。接下来的三个是独立的对话框,用于执行我们刚才讨论的三种采样技术。 |
| |
因此,在插件的评估模型选项中,它提供了一个不平衡分类报告,以便于比较模型和采样技术组合。 |
| |
它显示 PR 曲线和 ROC 曲线以及增益曲线,对于 PR 和 ROC 曲线,它显示曲线下的面积,通常,每条曲线下的面积越大,模型拟合度越好。 |
| |
它提供了按类别预测的概率图,帮助您了解每个模型的拟合情况。 |
| |
它还提供了技术和阈值数据表,该表包含一个允许您重现报告的脚本 |
| |
这是第一次运行插件时生成的。我们想强调的是,如果你运行这个插件,并且想要保存结果而不重写整个 |
| |
建模和采样方法算法,您可以保存此技术和阈值表,这将允许您保存结果并重现报告。 |
| |
现在我们来看看评估模型选项的对话框。它允许你从多种模型和采样技术中进行选择。 |
| |
你可以输入你的二元类变量和所有 X 预测变量,然后 |
| |
为了适应所有模型和 |
| |
在测试集上进行评估时,我们会将数据随机分成训练集、验证集和测试集。您可以提供……您可以设置每个数据集的比例。 |
| |
如果您想重现结果,可以使用随机种子选项。此外,还有 SMOTE 选项 |
| |
正如我之前提到的,您可以选择最近邻居的数量,从中选择一个作为用于生成新案例的最近邻居,并且每个少数案例的复制就是对每个少数观察重复该算法的次数。 |
| |
同样,还有另外三个采样选项 |
| |
插件中的选项分别对应 Tomek、SMOTE 和 SMOTE + Tomek。在 Tomek 采样选项中,它会在你的数据表中添加两列,可用作预测的权重……适用于你想要的任何预测模型。 |
| |
第一列仅删除链接中的大多数最近邻居,另一列删除 Tomek 链接的两个成员,因此您可以选择该选项。 |
| |
SMOTE 观察将把综合观察添加到您的数据表中。 |
| |
它还将提供一个源列,以便您可以识别哪个 |
| |
添加了观测值。SMOTE 加 Tomek 添加了合成观测值和加权列,该加权列删除了 Tomek 链接的两个成员。 |
| |
Tomek 采样和 SMOTE 加 Tomek 的加权列, |
| |
它只是一个指标列,可以在 JMP 建模平台中用作权重。如果包含,则为 1;如果排除,则为 0。 |
| |
其他三个采样选项对话框大部分看上去基本一样。 |
| |
其中一个选项是“显示中间表”,而不是“评估模型”选项对话框中的选项。该选项适用于 SMOTE 和 SMOTE plus Tomek。 |
| |
基本上,它允许您查看用于构建 SMOTE 观测的数据表。通常情况下,您不需要查看它,但如果您想更好地理解这些观测是如何生成的,可以查看这些中间表。 |
| |
并且它们都在文档中进行了解释。 |
| |
再次强调,您可以通过社区获取该插件, |
| |
通过此页面查看 2020 年美洲探索峰会的演讲 |
| |
社区的一部分。正如我刚才提到的,插件中提供了文档。只需点击“帮助”按钮即可。 |
| |
现在是时候让科琳在插件的演示中展示一个示例了。 |
| 科琳·麦肯德里 |
谢谢Michael。我现在要演示一下这个插件,为了演示,我会用到这个乳房X光检查的演示数据。 |
| |
因此,乳房 X 线摄影数据集是基于用于研究乳房 X 线摄影图像中微钙化情况的一组数字化胶片乳房 X 线摄影照片。 |
| |
在这些数据中,每个记录都被分类为 1 或 0。1 表示图像中看到钙化,0 表示没有看到钙化。 |
| |
在这个数据集中,您看到钙化的图像就是您感兴趣的预测图像,因此类别级别一就是您感兴趣的类别级别。 |
| |
在完整的数据集中,有 6 个连续预测变量和大约 11,000 个观测值。 |
| |
但为了减少本演示的运行时间,我们只使用完整数据集的一个子集。所以它大约占了一半的观测值。也就是大约 5500 个观测值。 |
| |
被归类为 1 的观测值,也就是你感兴趣的内容,在完整数据集和我们使用的演示数据集中,约占总观测值的 2.31%。因此,少数类观测值的比例约为 2%。 |
| |
现在我要切换到 JMP |
| |
到 |
| |
所以我有乳房 X 线摄影演示数据。 |
| |
我们将要打开,我已经安装了插件。所以我的下拉菜单中有不平衡分类插件,我将使用评估模型选项。 |
| |
这里我们有启动窗口,我们将指定二元类变量,你的预测变量,我们将选择所有模型和所有技术,我们将指定 |
| |
随机种子。 |
| |
然后单击“确定”。 |
| |
在运行这个插件的时候,我会解释一下后台实际发生了什么。插件做的第一件事就是将数据表拆分成训练数据集和测试数据集。 |
| |
因此,您有两个单独的数据表,然后在训练数据表中,这些观察结果被进一步分为训练和验证观察结果,并且验证用于模型拟合。 |
| |
一旦你有了这两个数据集, |
| |
有指示变量...指示列,它们被添加到您指定的每种采样技术的训练数据表中,涉及 SMOTE 的技术除外。 |
| |
因此,这些列被添加并用作加权列,它们仅指定观察结果是否包含在分析中。 |
| |
如果您使用 SMOTE 指定了采样技术,则会在数据表中添加额外的行。这些行就是生成的观测值。 |
| |
因此,一旦生成了列和行,那么对于每个模型,每个模型都会适合每种采样技术。所以如果你选择所有 |
| |
就像我们刚才做的一样,总共有42个不同的模型正在进行拟合。这就是目前发生的一切。在 |
| |
在目前的演示中,我们有 42 个模型正在拟合。一旦模型拟合完成,就会收集相关信息,并将其汇总到结果报告中。这份报告 |
| |
希望它很快就会弹出来,报告就在这里。你还可以得到一个技术和阈值表,以及一个汇总表。 |
| |
我们来看看运行插件后会得到什么。首先我们有训练集。你可以看到这里是加权列,也就是添加的权重列。这些列是为这些观测值的预测概率而添加的。 |
| |
然后我们有测试集。它不包含任何加权列,但它确实包含测试集观测值的预测概率。 |
| |
我们有结果报告 |
| |
以及技术和阈值数据表。Michael 在 |
| |
之前说过,但这很重要,因为如果你想保存结果并再次查看结果,这就是你想要保存的内容 |
| |
无需重新运行整个脚本。所以这个数据表就是你要保存的,它包含可以重现的脚本 |
| |
结果报告和汇总表,这是我最后要展示的内容。它只包含每种采样技术、模型组合及其 AUC 值的摘要。 |
| |
现在来看看实际结果窗口,顶部是对话规范。它包含了你在启动窗口中指定的信息。 |
| |
因此,如果您忘记了指定的任何内容,例如随机种子或分配的比例,您只需打开它并查看即可。 |
| |
我们还有二分类分布。也就是类别变量在训练集和测试集中的分布。其设计目的是确保比例相同,在本例中为 2.3。 |
| |
然后我们还有缺失阈值。这不是特别重要,但它只是给出了 |
| |
指示类变量的值是否缺少预测值,然后在此处显示。 |
| |
对于实际结果,我们有这些标签图。因此,我们有精确率/召回率曲线、ROC 曲线和累积增益曲线。对于 PR 曲线和 ROC 曲线,我们也有相应的 AUC 值。 |
| |
我们还有按类别预测概率的图表。当你一次只查看几个类别时,这些图表会更有用,我们稍后会讲到。 |
| |
然后我们有一个数据过滤器将所有这些图表和结果连接在一起。 |
| |
现在我们可以看一下实际的分析结果。首先,我要对它们进行排序。 |
| |
因此,您已经可以看到 ROC 曲线和 PR 曲线,PR 曲线之间的差异比 ROC 曲线之间的差异要大得多。 |
| |
如果我们选择前五个,那么它们的 AUC 实际上都是 0.97。 |
| |
你可以看到它们彼此非常接近,基本上是互相叠加的。很难确定哪个模型实际上更好,你应该选择哪一个。 |
| |
这就是为什么,尤其是在数据不平衡的情况下,精确率/召回率曲线非常重要。如果我们切换回来,我们可以看到,那些在 ROC 曲线上 AUC 值最高的模型, |
| |
它们在精确率/召回率曲线上确实分布很分散。而且实际上……它们在 PR 曲线上并没有最高的 AUC 值。 |
| |
所以也许那里......也许那里有一个更好的模型可供我们选择。 |
| |
所以现在我要关注前两个,即提升树 Tomek 和 SVM Tomek,我将使用数据过滤器来实现。 |
| |
然后我们只想看看那些将要显示和包含的内容。 |
| |
所以现在我们有了这两个模型的曲线,蓝色曲线是提升树,红色曲线是 SVM。 |
| |
你可以在这些曲线中看到,它们在不同的真阳性率值上相互重叠。所以你可以用这些曲线 |
| |
选择分析中使用的模型,可能基于可接受的真阳性率。如果我添加一些参考线,我们就能看出这一点。请原谅我的手,等我打字的时候你就能看到了。 |
| |
好的,假设这些是您可能感兴趣的一些不同的真实阳性率。因此,例如,对于您拥有的任何数据集,您想要的真实阳性率为 0.55。 |
| |
你可以选择阈值,使其成为真阳性率。在这种情况下, |
| |
对于真正的阳性率,提升树Tomek模型的精确度更高。所以你可以选择这个模型。 |
| |
但是,如果您希望真实阳性率达到 0.85 左右,那么 SVM 模型可能是更好的选择,因为它对该特定真实阳性率具有更高的精度。 |
| |
然后,如果您的真实阳性率更高,为 0.95,您会再次翻转,也许您会想要选择提升树模型。 |
| |
因此您可以使用这些曲线来选择最适合您的数据的模型。 |
| |
现在我们再看一下这些图,现在只有几张。这显示了我们选择的模型中每个类别的预测概率分布。在这个例子中,你可以看到,在SVM中,大多数 |
| |
在整个预测概率范围内的概率,其中提升树可以更好地将它们保持在较低端。 |
| |
这次演示就到这里,但在结束之前,我只想再演示一件事。这是一个如何使用评估的示例 |
| |
模型选项。但假设您只想使用特定的采样技术,您可以在这里操作。启动窗口看起来大致相同。您可以指定二分类和预测因子,然后点击“确定”。 |
| |
这将生成一个新的数据表,并且您有 |
| |
指示柱。 |
| |
您的指标列仅显示观察结果是否应包含在分析中。 |
| |
然后因为它是 SMOTE 加 Tomek,所以您还可以获得所有这些 SMOTE 生成的观察结果。 |
| |
现在你有了这个新的数据表,你可以使用任何类型的模型和任何你想要的选项,只需将此列用作权重或频率列,然后以此为基础进行操作即可。至此,我们关于不平衡分类插件的演示就结束了。感谢观看。 |