| 扬声器 |
文字稿 |
| 米娅·斯蒂芬斯 |
可能不会需要45分钟。 |
| |
好了,没事了。 |
| |
该死,为什么突然弹出这条短信? |
| Jason Wiggins,JMP |
你看到了吗,我正要问,我已经开始录音了,但是有人会进来把开头剪到结尾。 |
| 米娅·斯蒂芬斯 |
我觉得你是在录音。 |
| Jason Wiggins,JMP |
是的。 |
| |
如果你想让我停下来,我可以停下来。 |
| |
一。 |
| Jason Wiggins,JMP |
好了,录制开始了。 |
| 米娅·斯蒂芬斯 |
您好,我叫 MIA Stevens,我是 JMP 产品经理。 |
| |
今天我们要讨论的是 JMPed 16 或 JMP pro 16 型号中首次出现的屏幕筛选功能。 |
| |
实际上,让我重新开始吧。 |
| Jason Wiggins,JMP |
录制重新开始。 |
| 米娅·斯蒂芬斯 |
大家好,我是米娅·斯蒂芬斯。 |
| |
我是JMP的产品经理。今天我们要讨论的是模型筛选。模型筛选是JMP Pro 16中的一个新平台,它允许您同时拟合多个模型,从而简化您的预测建模工作流程。 |
| |
所以我们首先要谈谈预测建模的含义,这与更经典的建模或解释性建模形成对比。 |
| |
我们将了解您可以在 JMP Pro 中构建的模型类型,并简要讨论预测建模工作流程。然后,我们将了解如何使用模型筛选来简化此工作流程。 |
| |
我们将看到几个不同的指标来比较竞争模型,我们将使用 JMP Pro 中的两个不同示例,我将使用 JMP Pro 16.1。 |
| |
首先,预测建模是什么意思? |
| |
我们大多数人在大学、学院或公司都上过统计学课程,通常情况下,当我们学习统计建模时,我们学的是解释性建模。 |
| |
我的意思是,你对研究某个 Y 变量(即感兴趣的响应)作为几个 X 变量(即输入变量)的函数感兴趣。 |
| |
因此,我们可能对识别重要变量感兴趣,也许我们处于解决问题的某种情境中,想要尝试识别最重要的 X,最重要的潜在原因。 |
| |
因此,通过解释性建模,我们或许能够识别出,例如,X1、X3 和 X6 是 Y 变化的潜在原因,这可能会引导您使用设计的实验进一步研究这些变量。 |
| |
我们可能还有兴趣量化这种关系的性质,例如,我们可能有兴趣了解我们的响应 Y 平均而言如何随 X 的变化而变化。 |
| |
X 变化一个单位,Y 就会变化五个单位。 |
| |
所以,当我们谈论建模、统计建模或回归分析时,我们通常想到的就是这个。 |
| |
与之相反,预测建模则是准确预测或分类未来结果。 |
| |
因此,在经典建模中,我们通常是在描述均值,即总体均值。而在预测建模中,我们想知道接下来会发生什么。例如,这位客户会流失吗?这位客户会继续留任吗? |
| |
接受信用卡付款吗?机器会不会发生故障?所以我们感兴趣的是预测接下来会发生什么。因此,我们感兴趣的是预测的准确性。 |
| |
在预测建模中,我们倾向于拟合和比较许多不同的可能模型,这涉及到一些非常先进的技术。 |
| |
而且,其中一些技术可能不太容易解释。因此,提到神经网络,人们通常会认为神经网络有点像个黑箱。 |
| |
对于这些更复杂的模型,过拟合可能是一个问题,我所说的过拟合是指我们往往会……我们可能会拟合一个比我们需要的复杂得多的模型。 |
| |
因此,在预测建模中,我们通常会使用模型验证。我们使用模型验证来防止过拟合和欠拟合。模型验证涉及数据分割,一种典型的分割方法是保留一部分数据…… |
| |
嗯,我们用一部分数据来训练模型,一部分数据留作备用,可能还有第三组数据也留作备用。我们使用这些数据的方式是,用训练数据来拟合我们的模型。 |
| |
然后我们观察模型在验证集上的表现。第三步可能会用到,这通常被称为测试集。 |
| |
因为验证……JMP 中的验证数据通常用于控制模型的大小。我们稍后会看到它的实际应用。 |
| |
我不会详细介绍验证,但如果您对此主题比较陌生,那么本演示文稿的最后有一些幻灯片是我从我们的免费在线课程 STIPS 中借用的,它们说明了为什么验证很重要。 |
| |
JMP Pro 中有很多不同类型的预测模型可供您选择。 |
| |
其中一些模型可以通过拟合模型获得,因此,如果您有一个连续响应变量,则可以拟合线性回归模型。如果您有一个分类响应变量,则可以拟合 |
| |
逻辑回归模型。这可以是有序回归模型、多项式回归模型或二项式回归模型。您可以拟合广义线性模型或惩罚回归模型,例如弹性网络、Lasso 回归和岭回归。 |
| |
预测建模菜单中有很多选项,例如神经网络。您可以在 JMP Pro 中拟合神经网络。 |
| |
两层结构,多个节点,多个激活函数,以及提升算法。通常在 JMP 中是这样。 |
| |
您可以使用同一平台拟合分类响应或连续响应的模型。您可以拟合各种不同类型的决策树,如果您有分类树,也可以进行拟合。 |
| |
如果响应变量是分类变量,则可以使用回归树;如果响应变量是连续变量,则可以使用回归树。您还可以拟合一些更复杂的树状模型,例如自助森林和提升树。此外,还有其他一些方法可供选择。 |
| |
多元方法下还有几种预测建模平台,例如判别分析和偏最小二乘法。当然,这并非全部方法,需要指出的是,拟合模型中也提供了偏最小二乘法。 |
| |
问题是,为什么我们需要这么多模型?在经典的解释性建模中,我们通常学习的是回归分析,但显然还有很多很多其他类型的模型可以拟合。 |
| |
原因在于,没有哪一种模型永远是最佳的。最佳模型通常取决于数据的结构。 |
| |
你有多少个变量,你是纯粹的连续变量 X,还是连续变量和分类变量的混合,以及是否存在非线性行为。 |
| |
因此,没有哪一种模型总能做到预测最准确。所以我们通常会尝试几种不同的模型,然后选择效果最好的模型或模型组合。 |
| |
我们是在更广泛的分析工作流程的背景下考虑预测建模的。 |
| |
当然,我们试图解决的是某种类型的问题,可能是商业问题,也可能是工程问题。 |
| |
但是,我们需要收集数据,这些数据可能来自各种不同的来源,我们需要将这些数据配对,我们需要整理这些数据。 |
| |
我们探索并可视化数据,以了解我们现有的数据以及需要补充的数据。预测建模部分属于“分析数据和构建模型”的范畴,在我看来,这才是真正乐趣的开始。 |
| |
因此,JMP 中的经典工作流程是拟合模型并进行验证。 |
| |
然后,您可以将预测公式保存到数据表中,或者将其发布到公式库,我们稍后会看到这一点。 |
| |
然后你再拟合另一个模型。例如,你可以先拟合一个回归模型,然后再拟合一个基于树的模型。然后你重复这个过程,拟合几种不同类型的模型。 |
| |
然后使用模型比较来评估每个模型在验证数据上的性能。记住,我们使用训练数据来拟合模型,但要比较模型以确定哪个模型的预测最准确,我们需要使用验证数据或测试数据。 |
| |
我们会选择最佳模型或最佳模型组合。 |
| |
然后我们部署模型,所以这是一种典型的工作流程。 |
| |
现在,有了模型筛选功能,这个过程就简化了。因此,您可以将所有所需的模型都整合到模型筛选平台中。 |
| |
使用验证数据比较这些模型,选择最佳模型。您可以探索这些模型,甚至可以从模型筛选中拟合新模型,然后轻松部署最佳模型。 |
| |
为了更深入地了解这一点,我们将举几个例子,第一个例子你可能比较熟悉。 |
| |
糖尿病数据位于样本数据目录中。因此,研究人员希望能够预测疾病进展速度。 |
| |
基线测量一年后,共有10个基线变量和442名患者,我们将考察两种类型的响应。响应Y是一个定量指标,用于衡量疾病在一年内的进展程度。 |
| |
此外,还有二元反应,高/低,高表示疾病进展速度快,低表示疾病进展速度慢。 |
| |
这里的建模目标是预测最有可能出现高疾病进展速度的患者,以便采取纠正措施。 |
| |
所以,最终,我们希望能够构建一个模型,根据患者的人口统计变量和我们目前掌握的基线信息,对未来的患者进行分类。因此,我们希望能够…… |
| |
准确预测他们的疾病进展速度是否快,以便我们采取相应措施。好的,这就是目前的情况。 |
| |
在深入探讨 JMP 之前,我想先谈谈我们如何决定哪个模型的预测效果最好。 |
| |
我之前提到过,我们会使用验证集或测试集,并且我们可以使用几种不同类型的度量方法。 |
| |
对于连续响应,我们使用均方根误差 (RMSE),或者使用相关指标均方根误差 (RASE),即预测误差,这里越低越好。 |
| |
我们还可以使用平均绝对误差 (AAE)、平均绝对偏差 (MAD) 或平均绝对误差 (MAE),同样,数值越低越好。所以,这些都是……这些都是……这些都是平均误差的度量方法。 |
| |
然后是 R 平方,R 平方实际上是衡量拟合优度的指标,越高越好。 |
| |
因此,我们倾向于使用这些方法来测量连续性反应;还有许多其他类型的测量方法可供选择。 |
| |
对于分类响应,我们通常感兴趣的是误分类率或错误率或准确率,而对于分类响应,我们可能感兴趣的是精确度。 |
| |
还有其他一些衡量指标,例如 ROC 曲线下的面积、灵敏度和特异性,这些指标有好几种不同的名称。 |
| |
此外,我们在模型筛选中还添加了一些其他指标,这些指标在处理不平衡数据时非常有效。例如 F1 分数和 MCC(马修斯相关系数),MCC 是一个可以取值于……的值。 |
| |
或者说,这是一个取值范围在 -1 到 +1 之间的指标,它擅长衡量分类数据在所有四个可能类别(真阳性、真阴性、假阳性和假阴性)中的分类情况。 |
| |
那么,我们……我们继续进入JMP的世界吧。 |
| |
我这就打开数据。 |
| |
所以这些是……我再放大一点,这些是糖尿病数据。 |
| |
如果您想尝试使用这些数据,可以访问一个使用这些数据的博客,也可以在“帮助”下的“示例数据”中找到它们。 |
| |
我们还有一个响应变量 Y,我把它放大一点,它是我们衡量疾病进展的连续变量。然后我们还有一个二元变量 Y,结果为低或高,我们会逐一分析它们。 |
| |
首先,让我们来看看,如果您拥有 JMP 15 或不使用模型筛选,并且拥有 JMP Pro,您将如何拟合预测模型来预测 Y(连续响应)? |
| |
请注意,我们有几个人口统计变量。 |
| |
所以有 10 个这样的列,还有一个验证列,验证列将我们的数据划分为训练数据和验证数据。 |
| |
所以我们将使用训练数据来拟合我们的模型,然后我们将看看当我们把模型应用到验证数据上时,它的表现如何。 |
| |
要创建此列,可以使用分析、预测建模、创建验证列等实用程序,这样就可以创建验证列。 |
| |
您可能希望将某些变量用作分层列,例如,您希望确保数据在各层之间保持平衡。 |
| |
验证集。我直接点击“确定”就行了。 |
| |
这样我们就可以将一定比例的数据分配到不同的数据集中。 |
| |
这里还有一些其他的实用选项,比如随机种子,如果你在教学,并且希望所有学生都拥有相同的分区,那么随机种子就非常好用。 |
| |
所以这是以前使用的。 |
| |
分析方面,我们先来看Y列,也就是连续响应变量。如果我要拟合预测模型,一个自然的起点是拟合回归模型,而JMP中的回归模型就在“拟合模型”下。 |
| |
我的回答是“是”,我将进行拟合……首先拟合一个仅包含主效应的模型。 |
| |
我将在此验证字段中输入验证方法,默认情况下,该方法采用的是标准最小二乘法。但如果您熟悉 JMP 和 JMP Pro,您就会知道在“方法”选项下有很多不同的设置。 |
| |
当我点击运行时, |
| |
JMP 16 的一个变化是,如果我们查看实际值与预测值对比图或任何其他图表,会发现有一些点……这里有一些点是 V 形的,而不是圆点。 |
| |
这表明这些点实际上被分配给了验证集,所以我们基本上看到的是: |
| |
你知道,这个模型在周围随机噪声中的预测效果如何,你可以看到存在一定程度的离散性。 |
| |
记住,我们正在用训练数据拟合模型,并观察它在验证数据上的表现。下面是一些统计数据。所以,每次进行验证时,你都会看到训练集和验证集的额外统计数据。 |
| |
我们可以看到这里有两个指标。一个是R平方,另一个是RASE。 |
| |
通常情况下,当你用一组数据拟合模型,然后将该模型应用于新数据时,它在新数据上的表现不会像在旧数据上那样好。因此我们可以看到,验证集的R平方值较低,而RASE(即误差)则略高一些。 |
| |
曾经……我们在预测分析器下方看到的一件事 |
| |
注意到这一点了吗……注意到总胆固醇和低密度脂蛋白胆固醇在两端呈扇形分布。 |
| |
当我拖着 |
| |
注意胆固醇值的置信区间有多宽。当我把它拉到低端时, |
| |
它变得非常宽,当我把它拖到高端时,情况也是如此。事实上,每个预测变量的这些区间都会变得非常宽。 |
| |
这有点超出本次演讲的范围,但这是因为我们在这个地区实际上没有数据,或者说数据量很少。如果我……你看一下,我这就…… |
| |
例如,选取总胆固醇和低密度脂蛋白胆固醇这两个变量……对于胆固醇和低密度脂蛋白胆固醇而言。 |
| |
请注意,这两者之间存在很强的相关性。我没有该地区的任何数据。 |
| |
所以,如果你拟合了一个预测模型或任何类型的模型,其中你看到这些波段呈扇形扩散, |
| |
这表明你在该区域的预测精度不会很高。JMP Pro 中有一项新功能, |
| |
这叫做外推控制,它可以在出现问题时发出警告。所以如果我把这个拖长, |
| |
请注意,它提示我,这里可能存在推断误差;你的预测可能存在问题。如果我启用推断控制, |
| |
请注意,它截断了这些区间,其含义是:你不能对这些区间之外的情况进行预测,这样做是无效的。 |
| |
这有点超出本文的范围,但如果你在预测分析器中看到某些频段呈扇形扩散, |
| |
这通常是因为你的预测因子彼此相关,而且……也可能是你在这些地区没有足够的数据来进行预测。所以,了解这一点很重要。 |
| |
好了,回到正题,我拟合了这个模型,简化了模型,我觉得这就是我的最终模型。 |
| |
我将通过保存预测公式把这个模型保存到我的数据表中。你会看到数据表中新增了一列。我刚刚构建了一个线性模型,所以它把这个公式也保存到了数据表中。 |
| |
另一种方法是发布这个公式,我打算把它发布到公式库。 |
| |
所以,最终,我打算拟合几种不同类型的模型(然后我就结束这个话题了),我想比较这些模型,以便我能利用这些比较结果…… |
| |
我可以通过保存公式并转到分析、预测建模、模型比较来实现这一点,我马上就去做,或者将其保存到公式库中。 |
| |
将其保存到公式库的好处在于,我现在有了评分代码。例如,如果这是我想要应用于新数据的最终模型, |
| |
我可以复制这个脚本,并将其应用于新数据的评分。 |
| |
(我不会在这里这样做),或者如果我想在生产环境中使用此模型,我可以用各种不同的语言编写代码。 |
| |
以上是一个简单的线性模型。如果我想拟合不同类型的模型呢? |
| |
我可以在这里拟合一个更复杂的模型。 |
| |
所以我可以拟合一个广义回归模型,也许我想拟合一个 Lasso 模型,所以我点击这里。 |
| |
这里有一些广义回归模型的比较,但假设我想保存这个模型,对吧。 |
| |
我并没有太关注细节,但我会把这个保存下来。我会把预测公式保存下来。也许我还会把它发表出来。 |
| |
去这里,发布这条消息。 |
| |
我可能会重复这个过程,我可能会拟合一个包含交互作用的模型。然后,我可能会继续拟合神经网络模型或分区模型、基于树的模型,如果我有一个分类响应变量,那么这些模型都将适用。 |
| |
分类树。如果我有一个连续响应变量,则可以拟合回归树。我还可以拟合自助法森林,它是由许多较小的树或提升树组成的集合,因此我可以拟合几种不同类型的模型。 |
| |
一旦我得到模型并将公式保存出来或发布到公式库,我就想找出哪个模型的预测最准确。 |
| |
所以我打算采用模型对比的方法。 |
| |
我只需将验证作为我的判断变量即可。 |
| |
因为我想看看模型在验证数据上的表现如何。所以,我只用这两个模型,然后查看验证数据(训练数据我会暂时放在一边), |
| |
我可以看到最小二乘模型的平均误差较低,但最小二乘模型的 RASE 值略高。 |
| |
我的广义 Lasso 的 R 平方值略有改善。 |
| |
所以,如果我们使用的是 JMP 15 Pro 或 JMP Pro 15,或者不使用模型筛选功能,这就是我们进行预测建模的典型方法。模型筛选功能可以让我们在一步之内完成所有操作。接下来,我将进入预测建模并启动模型筛选。 |
| |
如果您看一下这里角落里的模型筛选功能,它使我们能够根据我们拥有的数据类型,启动每个合适的平台。 |
| |
然后自动运行这些模型。这样我们就不用手动从菜单中选择模型了,可以直接在这里自动运行。所以我要拟合同类型的模型,这里是一个只包含主效应的模型。 |
| |
这些是我的 X。我将使用相同的验证方式。 |
| |
这里有很多选项,我们稍后会讨论,现在我点击确定。请注意,我这里有决策树、引导森林、提升树和K近邻算法。 |
| |
默认情况下朴素贝叶斯算法是关闭的,我可以拟合一个神经网络模型。 |
| |
底部还有其他的。请注意,我安装了 XGBoost 插件,所以 XGBoost 可用。 |
| |
这是一个可以访问开源库的免费插件,如果你已经在 JMP Pro 中安装了它,那么就可以从模型筛选平台启动它。所以我先不启用它,直接点击“确定”。 |
| |
所以它正在运行模型,就是这样。它已经运行完毕,但实际上跳过了一个步骤,对吧?它已经自动为我运行了所有这些模型。 |
| |
而且,还有一些模拟可以用来确定调参的最佳初始值,所以我们拟合了所有这些模型。 |
| |
它会报告每个模型的验证训练和验证统计数据。现在要找出哪个模型最好, |
| |
选择主导项。而“选择主导项”的基本作用是在所有可用指标上创建一个边界,所以我在这里点击了“选择主导项”。 |
| |
研究发现,对于这些数据,最佳模型是神经增强模型,该模型的详细信息请参见上方的“神经”部分。 |
| |
所以所有细节其实就是启动平台并在此平台内收集所有信息。 |
| |
这里包含了神经网络的所有细节,它基本上运行了一个带有三个节点的TanH算法,并进行了提升。我可以查看训练统计数据和验证统计数据,如果我想查看实际拟合的模型, |
| |
这是底层模型。 |
| |
好的,所以……所以这是我表现最好的模型。如果我想更仔细地查看这些模型,可以从这里进行探索,这里有一些选项,我可以查看实际值与预测值的对比图。 |
| |
我可以比较这些模型,正如预期的那样,我们的训练数据中的变异性比验证数据和实际值与预测值之间的变异性要小一些。如果我想深入研究这一点,我可以关闭某些模型。 |
| |
我还可以启动性能分析器,如果你的版本是 16.1,性能分析器是一个可选功能。如果你的版本是 16.0,它实际上是一个隐藏选项,而且我这里使用的是专业版。性能分析器很好用,因为它允许我们探索适合我们的模型,所以我选择了三个模型。 |
| |
让我把它放大一点。 |
| |
或许没那么大。 |
| |
所以我创建了一个自助森林,这是一个基于树的模型,它基本上是将许多不同树的结果加在一起。 |
| |
我有一个提升模型,神经网络模型在捕捉非线性行为方面做得非常出色。我还有一个 Lasso 模型,它本质上就是一个线性模型。 |
| |
你可以很清楚地看到这些模型。注意看广义 Lasso 模型,对吧,我得到了 BMI 之间的这种线性关系 |
| |
以及响应。使用神经增强算法,我可以看到存在一些曲线。我在这里使用 LTG 算法也能看到这一点,而使用 Bootstrap Forest 算法,我可以看到一个小小的阶跃函数,对吧?所以它实际上是在近似我们这里存在的非线性关系。 |
| |
因此,如果我们最终确定神经增强模型是最佳选择, |
| |
然后我们基本上可以启动模型,从这里启动它,我们可以将公式保存到数据表中,或者我们可以将它们发布到公式库进行部署。 |
| |
这样既节省了很多时间,又让我们能够探索我们的模型。 |
| |
如果响应变量是分类变量呢?记住,我们有 Y 是二元变量。我们可以用同样的方法使用 Y 是二元变量,所以我接下来会进入分析,再次调用模型筛选,然后点击召回,并将 Y 替换为 Y 是二元变量。 |
| |
我们可以在其中运行相同类型的模型。如果某种模型不适用,它就不会运行。例如,最小二乘回归在这里就不适用,所以它实际上不会运行。 |
| |
这里有几个选项。如果我选择设置随机种子,比如 1、2、3、4、5,这将保证结果的可重复性;如果我从详细信息中启动模型, |
| |
它会……它会得出同样的结果。我这里还有一些其他的验证方法。 |
| |
因此,结果表明,在很多情况下,使用传统的训练集、验证集和测试集划分方法会更有效。 |
| |
实际上,这种方法并非最佳选择,尤其是在小数据集的情况下。因此,我可能会改用 K 折交叉验证,我们还有嵌套交叉验证。 |
| |
而且你可以进行重复的 K 折交叉验证。所以这是一个不错的选择,尤其适合数据集较小的情况。 |
| |
底部还有一些其他选项。因此,您可能需要添加双向交互或二次函数。 |
| |
如果您知道存在缺失值,则可能需要使用信息性缺失值处理方法。其他方法适用于其他广义回归方法。如果您参与了 JMP 17 的早期采用者计划,您会注意到菜单对话框的这一部分。 |
| |
或者说,模型启动对话框的布局稍微调整了一下,让它更流畅一些。好的,那我这里就用默认设置,随机生成一个种子,然后点击确定。 |
| |
所以它正在运行所有这些模型。再说一遍,速度非常非常快。现在,因为我的响应变量是二元的,所以我还有一些额外的指标。我有两个 |
| |
R平方值,我这里有误分类率,也就是曲线下的面积,RASE。记住,这和均方根误差有关。我再次点击“选择主导算法”,它又找到了神经网络增强算法,但这并非总是如此。 |
| |
如果我选择我认为最好的模型,也就是红色三角形下的选项,您可以查看这些模型的 ROC 曲线,而且,同样,我可以勾选相应的复选框来启用或禁用模型。让我来看一下。 |
| |
选择此项。我最喜欢的新功能之一,也是模型比较平台和 JMP 17 中新增的,是任何进行分类建模的建模平台都可以使用的功能,它叫做决策阈值。 |
| |
我认为这是我们在 JMP 16 中添加的最强大的功能之一。 |
| |
因此,在选定这三个模型后,它给了我这三个模型的分类摘要。 |
| |
我打算把画面放大一点,这样我们就能看得更清楚一些。 |
| |
所以我们这样理解:如果我们只看神经网络增强算法,它向我们展示了神经网络增强算法的两个类别……我们预测的是高概率。所以这些是高概率的拟合结果。 |
| |
临界值为 0.5,因此低于 0.5 的值被归类为低;高于 0.5 的值被归类为高。 |
| |
所以,如果我们看一下这里的红色方块,这些点都被判定为低值,但实际上值很高,我们可以看到这里的数字。总共有29个这样的点,所以这些是假阴性结果。 |
| |
下方红色方框内的物品被归类为高风险。 |
| |
但实际上这些都是低值。所以这些人都是假阳性。 |
| |
底部有一些指标和图表,可以帮助我们理解这些数据,并帮助我们做出一些决策。这里也有一些指标,我们可以看到相同的数值,例如29个漏诊病例和17个误诊病例。 |
| |
我们还可以看到真正的优点和缺点。我最喜欢这一点是,它让我能够探索不同的阈值。 |
| |
因此,根据您的建模目标,例如,我们可能希望具有较高的灵敏度,但我们真的不希望特异性较低。 |
| |
灵敏度,这个关键点非常有用,灵敏度是真阳性率;特异性是真阴性率。 |
| |
你知道,我们能不能找到一个在这两方面都表现得更好的临界值?通过点击并拖动,你可以更改分类的临界值。 |
| |
并尝试找到一个效果更好的临界值。例如,在 0.26 时(我这里用一个整数),临界值为 0.25 时,灵敏度更高,同时仍能保持较高的特异性。 |
| |
我保存的那些图表对于解读这些数据也很有用,它们能让我们全面了解错误分类的情况。 |
| |
按阈值、按比例,然后进行真实分类。所以,如果我想找到一个平衡特异性和灵敏度的点,我可以参考这张图。 |
| |
所以,这些实线代表灵敏度,虚线代表特异性,那么是否存在这样一个点,在灵敏度仍然高于某个特定值的情况下…… |
| |
灵敏度是多少?我的特异性又是多少?我们可以……我们可以平衡这两者。所以如果我看这里,我可以看到这是这两条线的交点。 |
| |
如果数据不平衡,这一点就显得尤为重要。我们来看另一个例子。好了,我就讲到这里。 |
| |
不保存这个。我先关闭公式库。顺便说一下,公式库是独立的,它基本上不依赖于我们之前使用的数据集。因此,将模型应用到新数据上非常方便。我这就关闭它。 |
| |
所以,接下来这个数据集,也就是名为“信用卡营销”的数据集,其场景是这样的: |
| |
我们正在进行一些关于信用卡优惠接受度的市场调查。调查结果显示,优惠已被接受。但需要注意的是,只有 5.5% 的优惠被接受。 |
| |
利用历史数据,已被接受。这实际上是一个精心设计的实验,我们正在研究不同的奖励机制和不同的邮件类型。 |
| |
虽然财务信息有所不同,但本次实验的设计重点在于奖励和邮件类型。我们将专注于这一特定的建模目标:识别最有可能接受信用卡优惠的客户。 |
| |
通过这样做,我们将尝试 |
| |
将该模型应用于新客户,并根据对这些新客户的分类,决定是否向他们发送优惠信息。 |
| |
因此,如果客户不太可能接受优惠,我们就不会向他们发送。如果他们极有可能接受,我们就会向他们发送。 |
| |
这就是目前的情况,回到JMP,我们已经接受了offer。我一边讲解数据,一边运行一个已保存的脚本。 |
| |
我们有10000个观测值,所以这需要一些时间,现在它正在运行这些模型,我这里使用的是默认设置。我已经接受了报价。 |
| |
奖励类型包括航空里程、现金返还或积分。邮件类型为信件或明信片。其余信息则与银行业务相关……包括历史银行信息和一些人口统计信息。 |
| |
您可以看到它正在运行支持向量机。支持向量机运行速度可能有点慢,尤其是在处理大数据集时;事实上,默认情况下,如果观测值超过 10,000 个,它将不会运行。 |
| |
我们可以看到平均余额。数据被分配到训练集和验证集,JMP 会自动将 0 识别为训练集,1 识别为验证集。好的,现在所有模型都运行完毕了。 |
| |
如果我选择显性,我们可以看到它选择了逐步拟合和决策树。 |
| |
但我想要指出这个误分类率。 |
| |
所以,这……这确实是我们大海捞针时经常遇到的情况,对吧。如果我看一下这些数据,然后我运行一下这些数据的分布…… |
| |
我把画面放大一点,这样我们就能看得更清楚些,好吗?我现在正在查看验证数据,请注意…… |
| |
6.25、6.2、6.3% |
| |
在这些数值中,有一部分人对报价做出了回应,而这正是我们在这里得到的误分类率。 |
| |
为了更好地理解这一点,我将启用决策阈值。 |
| |
再把它放大一点。 |
| |
请注意,预测的“是”全部为零,这是因为预测的概率都相对较低。 |
| |
请记住,在经典的混淆矩阵中,截止值为 0.5,如果您有不平衡的数据,在这种情况下,您不太可能将很多观测值分类为“是”。 |
| |
当我点击并拖动时, |
| |
当我算出第一组要点时,就开始看到一些预测结果为“是”。实际上,我会开启这些指标。 |
| |
当数据严重不平衡时,预测概率可能会非常低。 |
| |
因此,有了这个滑块,你就可以探索不同的截止点。 |
| |
这会影响您的灵敏度和特异性。因此,在这种情况下,我们可能会说,如果我们发送…… |
| |
我这里就填 0.05……如果我们向预测概率最高的 5% 的用户发送信用卡优惠信息,那么我们的敏感度就是 0.05。 |
| |
这两个模型之间的差异约为 0.72 和 0.75,而且我们的特异性仍然很高。因此,有了这个……这个阈值,这个滑块,就可以让你从模型中获得更多有用的信息。 |
| |
所以,如果……在0.5的阈值下,我可以看到确实有一些真阳性结果。但我也看到了很多假阳性结果,对吧,所以这里存在一种权衡。 |
| |
现在,在这种情况下,您可能还会面临一些经济上的影响。没错。所以,考虑一下这个问题是很有必要的…… |
| |
利润矩阵。还有一个按钮。 |
| |
我点击了这个。 |
| |
利润矩阵是特定列的列属性,我们可以设置 |
| |
该值,即概率阈值的截止值,可以作为列属性,或者我们也可以代入数值。例如,在经典场景中,它可能需要花费 5 美元。 |
| |
如果我们选择向某人发送报价。 |
| |
如果他们接受提议, |
| |
也许它值 100 美元。所以如果我们选择向某人发出报价,而他们没有回应,我们就损失 5 美元。 |
| |
如果我们选择向某人发送报价,而他们也做出了回应,那么我们平均可能赚到 100 美元。但也可能错失了一些机会,也许我们会说我们损失了 100 美元。 |
| |
如果他们没有回应。通常这样做的代价是,这里会留空,我们只需为“是”填入相应的值。如果我应用此设置并单击“确定”, |
| |
然后添加一些新值,对吧。所以,现在我们有了一个利润矩阵,如果我查看我们的指标,就可以看到预测利润。 |
| |
平均而言,对于该数据集中的每个客户,如果我们应用决策树模型,他们将获得 1.50 美元;如果我们应用逐步模型,他们将获得略少一些的收益。 |
| |
因此,在数据不平衡且存在一些潜在成本的情况下,使用利润矩阵是合理的。如果我们没有潜在成本, |
| |
那么,这个滑块可以帮助我们选择一个合适的阈值,从而达到我们的建模目标。它可以是最大化灵敏度、最大化特异性,或者其他目标。 |
| |
这就是模型筛选的基本过程。 |
| |
让我关闭这个窗口,回到幻灯片部分。 |
| |
我们已经简单讨论了一下预测建模以及预测建模的含义。 |
| |
我们已经看到,使用验证可以轻松地拟合和比较许多模型,而模型筛选的全部意义就在于简化这一工作流程。 |
| |
你仍然可以外出试穿单个模型,但模型筛选功能允许你在一个平台上同时试穿所有模型,然后比较这些模型。 |
| |
更多信息,有很多不同类型的指标可用,分类数据也有很多指标。这里有一个非常棒的 |
| |
维基百科上有一个关于灵敏度、特异性以及所有各种指标的页面,我发现它非常有用,因为我当时正在深入研究并了解如何解释所提供的指标。 |
| |
关于预测建模以及JMP Pro中的模型筛选,有很多资源可供参考。 |
| |
在我们的……在我们的用户社区里。我再次提到STIPS。STIPS是我们开设的用于解决工业问题的统计思维课程。 |
| |
第七个模块是预测建模入门,所以如果您是预测建模的新手,我建议您先看看这个模块。此外,我们社区里还有一个博客,专门使用糖尿病数据。最后,当然,还有任何新功能。 |
| |
将会经历迭代改进的过程。模型筛选功能是在 JMP Pro 16 中引入的。我们已经在着手开发 JMP Pro 17,并且已经有很多改进正在进行中。 |
| |
所以,如果您有兴趣了解即将推出的内容,这为您提供了一个提供反馈意见的机会。 |
| |
如果您有兴趣加入早期用户计划,请联系我们,我们会帮您办理相关手续。感谢您的时间,希望您在接下来的会议中一切顺利。 |