伯努利响应的贝叶斯机器学习方法我有一个数据集,我有大约2000个观察大约150个特征或协变量。 我试图预测0/1的结果。 结果是疾病风险评分R1。 该测定产生数据库中的所有特征值(F1,...,F150),以及相关疾病(R0)的风险值。 我们的想法是R0对R1具有高度预测性,如果我们使用F1,...,F150这些功能,我们可能会有一些更新规则,我们可以应用于R0。 换句话说,我正在考虑使用R0作为先前分布R1的Bernoulli参数,并以某种方式训练更新公式以基于F1,...,F150的值在R0上使用。
训练算法必须允许建立0/1概率分数模型,其允许我们指定分数的先前值。 这听起来像是一个相当棘手的贝叶斯问题。 但我之前没有这样做,我不确定如何将特征信息合并到参数更新表达式中。
我们会产生第二个概率分数吗?
我们会在进入logit变换之前使用线性预测器吗?
我们会以某种加法方式修改R0,还是通过一些乘法因子来修改R0?
显然,我有更多的问题而不是答案。 如果有人能指出我正确的方向,那将是伟大的。 如果JMP允许这种事情,我很乐意听到它。
回复:伯努利响应机器学习的贝叶斯方法是的,100%的功能用于计算p0。 该系统实际上生成了数千个功能,但我们需要能够验证离线计算p0的算法。 所以我们发现(通过阅读代码)用于计算p0并保存它们的每个特征。 请注意,作为功能函数的p0的“计算”过于复杂和隐含,以至于无法将其写下来(并行和串行配置中的数百个二进制分类器,我没有构建系统)。 但我们知道我们已经捕获了所有必要和充分的功能来进行离线模拟并验证p0的计算。
我的目标不是修改有关计算p0的模型的任何内容。 它是否偶然地看到,相同的特征可能包含一些“魔法”信息,这些信息可以让我们预测其他一些疾病。 我的想法是不太可能的,特别是因为特征是以某种最佳和最小的方式专门生成,预测D0。 可能有一些信息理论方法来测试这种假设。
再一次,我需要提出一个公平的,有原则的观察,要么表明这个概念不会起作用,要么就会发生。 很容易产生大量的红旗(协变量漂移作为例子)。 我试图使用某种修改过的“贝叶斯”方法是我使用设计生成的最佳统计数据的方式,然后查看是否存在某些独立的,残留的信息救命预测D1。 我是一个怀疑论者,但我是一个群体,其他人(管理层)有一种教条主义的观点,机器学习可以神奇地解决任何可以想象的问题。 他们并不认为大多数这些模型(LASSO,ridge,PLS)在一天结束时只是简单的主效应(广义)线性模型。
再一次,我感谢您的参与。 这非常有帮助。
回复:伯努利响应机器学习的贝叶斯方法我有点困惑 - 你说你的模型使用了100%的功能(其中150个!)。实际上我运行的所有机器学习模型都没有使用所有功能。您可以尽可能地输入它们,但很少(从不)它们都被使用。 在任何情况下,如果您认为您的模型过于复杂,您可以单独删除每个功能(繁琐,但有人可能会帮助编写脚本)以查看性能下降的程度。另一个版本 - 我在其他软件中看到但尚未在JMP中看到 - 是用随机数据替换每个特征(一次一个)并比较性能。
您似乎也希望通过向已有的模型添加内容来确定是否可以获得更好的预测(如果所有功能都在其中,还有什么可以添加?)。 我认为有很多方法可以做到这一点 - 但我更多地考虑尝试不同的模型,并使用某种集成方法来组合它们,而不是使用其他功能。贝叶斯模型平均是实现此目的的一种方法。但是你最初使用你的第一个模型作为先验然后添加功能来产生“贝叶斯更新”的想法对我来说仍然没有意义。
回复:伯努利响应机器学习的贝叶斯方法谢谢戴尔,
我可能非常同意你的意见。 该项目的整个目的是查看已经用于在D0上训练的特征是否可能具有一些可用于预测D1的“正交”信息。 重申一下,p0的原始模型中的噪声是否是100%基于特征的极其复杂的模型,包含可用于训练p1的任何信息。 我想保持p0作为初始估计值,因为它已被证明对D0非常有用。
如果我继续前进并且非常地使用像LASSO(或脊或PLS或......)这样的东西来根据特征训练p1的模型,我会比仅使用p0预测D1获得更好的性能。 但我怀疑我可能会在不知不觉中接受所有简历的噪音培训。 此外,我从独立实验中得到的证据表明,p1的模型存在协变量偏移,而p0对不同的数据集具有很强的弹性。
当然,归结为我要对你的概念给出一个大拇指向上或向下,所以我想同时挑战cocept并给它最好的机会。 这就是为什么我倾向于这种“贝叶斯”方法。 我同意,将它称为贝叶斯是一种拉伸,因为我们没有观察到伯努利事件,我们只能在模型中查看先前参数的谓词。
我很感激你的想法。
回复:伯努利响应机器学习的贝叶斯方法我绝不是贝叶斯专家,但在我看来,你想做的事情是不正确的。贝叶斯更新通常是指合并新信息 - 例如附加数据点。为何添加其他功能?只需将它们放入原始模型中即可。或者,如果使用类似提升树的东西,该算法已经将使用这些功能根据其进行错误分类的程度来“更新”其预测。换句话说,我认为你建议一种看似“贝叶斯”的装置,但实际上只是考虑模型中的其他特征,检查每个特征对模型的贡献程度。这基本上就是所有预测模型所做的事情 - 手动保留一些功能,然后添加它们以查看预测变化的方式,就像手动执行预测模型自动执行的操作一样。
如果我对此错了,请有人理顺我。