组合模型如果说我今年从美洲发现峰会学到了一件事,那就是平均和/或创建集成模型是多么普遍,这是我听说过但从未考虑过的事情(作为一个建模新手)。 所以我决定这么做。 制作集成模型很容易;我将模型保存为预测公式,并简单地将其作为预测变量包含在下一轮模型筛选中(使用 JMP Pro 16 的模型筛选)。 模型平均似乎更简单,但让我感到困惑。 如果我找到两个我喜欢的模型,将它们作为预测公式保存到我的数据表中,然后创建一个将它们组合在一起的新列,似乎概率被组合在一起,但公式不是我所使用的语法可以将其应用于新数据(它仅显示概率的平均值)。 如果我将两个模型发布到 Formula Depot,我可以很容易地以这种方式对它们进行平均,这就是我当前的解决方法,但我是否也应该能够在表本身中对它们进行平均? 我认为问题可能是,因为预测公式有一个公式和一个概率,当我将它们组合起来时,只有概率被平均,而当我实际上想对公式本身进行平均时。 我是否可以以允许我将平均公式复制到新数据表中并使用新数据对其进行测试的方式对两者进行平均? 如果没有,Formula Depot 就是为了做到这一点而设计的,所以这没什么大不了的。 我只是想有几个选择! 也许我只是将概率部分删除到列的信息单元格中仅保留公式的位置?
预测建模和机器学习回复:组合模型是的! 像往常一样,我相信您对尝试预测一个自然变量的奇怪性质是正确的,其中您实际上需要两个方程,从而使事情变得更加棘手。 我希望做的是最终拥有足够大的样本量,达到真正的梯度,可以是 1-10、1-5 或 1-100,想法是一样的:1 = 糟糕,最高的数字 = 很好。 即使在这种情况下,我要么有两个类别(抗漂白与漂白敏感),要么有时有三个(前两个+“中间”)。 我可能会尝试将它们分别重新编码为 1、50 和 100,分别表示易感、中度和耐药,然后看看会得到什么样的结果。 我认为获得和分析的样本越多,将 Y 设为连续变量就越有意义。 我现在正在使用 20 个样本,基本上没有足够的数据来超出 2-3 个 bin。 但是,当我将分类重新编码为连续变量时,看看我的模型是否看起来非常不同,这将很有趣。 这肯定会让所有的模型构建变得更加无缝。 事实上,本质上它不会像“健康”与“生病”那么简单;我确实希望得到一个跨越健康范围的梯度,就像你在人类中看到的那样(例如,你在 JMP 糖尿病数据集中看到的)。 不过,关于概率分数,这个练习的有趣之处在于,我从来没有真正看过这么多;我直接进入JMP的“猜测”。 但现在看看实际的概率非常有趣,因为这就是我最终想要报告的:珊瑚 A 有 95% 的机会白化。 因此,通过这个模型平均练习,我意外地发现了一些我之前完全错过的很酷的细微差别! 正如我之前所说,即使我暂时“卡在”分类响应中,Formula Depot 的模型平均功能也能很好地解决这个问题。
您会很高兴知道,由于您的 GUI,我最近提交的论文(主要描述了阶段 1 = 实验室实验)中有超过 20,000 个神经网络模型(21,450 个,但谁在数?!)。 显然,只有少数通过了所有质量控制,在文本中详细讨论的就更少了,但是了解哪些神经网络参数对我来说最重要的调整是非常有用的。 另外,我想构建最简单、(可能)最简约的模型,因此如果一个 NN 有两个隐藏层,每个隐藏层有三个激活节点,而第二个模型有一层带有 NTANH(3),其他条件相同,我我会选择后者,尽管我想这并不重要,因为即使是最简单的也相当复杂。 今年我在 Discovery 寻求学习的一件事(感谢 Chris Gotwalt)是,NN Profiler 下的变量重要性指标是否可以用来从本质上告诉您哪些分析物在模型中最具影响力。 旧规则是神经网络是一个黑匣子,要挖掘哪些响应变量是最重要的太复杂了,但我很高兴看到这并不完全正确。 它们很难解释吗? 是的。 您能说一种蛋白质的行为可以通过模型的预测能力以一种特定的、易于定义的方式进行扩展吗? 也许不会。 但如果一位分子生物学家问我:“哪些珊瑚蛋白在你最好的神经网络模型中最重要”,我至少可以从神经网络分析器的可变重要性特征中列出一些。 这实际上就是我选择在演讲中讨论 gen-reg 模型的原因;我不确定我是否可以“信任”神经网络的分析器(!),但现在我发现我可以。 但无论如何,这就是为什么作为一个建模新手,我从这类研讨会中受益匪浅。 再次感谢您深思熟虑的回复以及您的所有帮助。
回复:组合模型你好@abmayfield ,
喜欢你的演讲,但必须点播观看,无法参加现场观看和问答。
通常,如果您正在执行典型的回归公式(数字形式),您将能够对预测列进行平均。 您只需取两者的平均值即可。 但是,由于您正在使用分类值“是”或“否”(甚至可能),它会变得更加复杂,因为它必须将数字 X 输入转换为逻辑函数,然后找到概率并将结果与 IfMax( ) 功能。
以 Big Class 文件为例。 如果你尝试用 :height 和 :weight 来预测 :sex,你会得到一个逻辑输出函数,在我的例子中,我试图预测 sex = M。 但有一些中间函数用于确定 Prob[M] 和 Prob[F]。 线性函数就是这样,比如 Lin[M] = a + b*:height + c*:weight,其中 a、b 和 c 只是拟合系数。 为了获得概率,JMP 对 Prob[M] 使用变换 1/(1_exp(-Lin[M])),对 Prob[F] 使用变换 1/(1+exp(Lin[M]),这只是 1-问题[M]. 最可能的结果是 MaxIf(Prob[M]=>M, Prob[F]=>F),Prob[y] 较大的一个是最可能的结果,M 或 F。
就您而言,如果您处理分类结果,我认为您需要对 Lin[Y] 函数进行平均,然后将其转换为概率。 它是与数据拟合的线性函数,而不是概率函数,因此这就是为什么在转换线性函数之前需要进行平均。
如果您可以将结果更改为连续响应,那么预测公式的简单平均值就很简单。 只要建模类型是名义型或有序型,JMP 就会将其视为离散级别并每次执行逻辑建模。
我不得不使用连续比例的一个想法是表示给定区域内的漂白百分比。 假设您评估了 100 cm^2(一块 10cmx10cm 的斑块)珊瑚,并确定大约 2cmX3cm(或 6cm^2)发生白化,那么白化百分比将为 60%。 通过这种方式,您可能会更准确地表示珊瑚样本的白化程度,并且您现在可以通过回归与分类进行建模的连续响应。
希望这可以帮助!,
DS
聚苯乙烯 探索峰会很棒。 我喜欢很多演讲。 另外,我正在更新 GUI 以根据用户输入自动生成调整表。 新版本准备好后我会通知您。 通过生成带有您希望执行的运行次数的空间填充设计,应该有助于进一步自动化该过程。
回复:组合模型根据您的描述,听起来您想要平均预测(离散)而不是概率(连续)。我还没见过这样做的。有一种技术,即保形预测,旨在查看模型预测的稳健程度。但您所描述的内容如下所示:假设有 2 个类需要预测,并且您将它们编码为连续的 0 和 1。假设您有 3 个模型:其中 2 个预测特定情况下的 0,1 个预测 1然后,你的“平均”会产生 1/3 的结果,我猜你会把它视为获得 1 的概率。有趣的想法,但我不确定这种方法有什么统计基础。此外,它似乎仅限于二元分类(尽管这只是一个限制)。我很想看看您还能得到什么其他回复。