7

我正在评估许多不同的算法,它们的工作是预测事件发生的概率。

我正在大型数据集上测试算法。我使用“均方根误差”来衡量它们的有效性,它是((误差之和)平方)的平方根。误差是预测概率(0 到 1 之间的浮点值)与实际结果(0.0 或 1.0)之间的差异。

所以我知道 RMSE,以及算法测试的样本数量。

问题是有时 RMSE 值彼此非常接近,我需要一种方法来确定它们之间的差异是否只是偶然,或者它是否代表了实际的性能差异。

理想情况下,对于给定的 RMSE 值对,我想知道其中一个确实比另一个更好的概率是多少,以便我可以将此概率用作显着性阈值。

4

3 回答 3

11

MSE 是一个平均值,因此适用中心极限定理。因此,测试两个 MSE 是否相同与测试两个均值是否相等是相同的。与比较两种方法的标准测试相比,一个困难是您的样本是相关的——两者都来自相同的事件。但是 MSE 的差异与差异平方误差的平均值相同(平均值是线性的)。这建议按如下方式计算单样本 t 检验

  1. 对于每个x计算e过程 1 和 2 的错误。
  2. 计算平方误差的差异(e2^2-e1^2)
  3. 计算差异的平均值。
  4. 计算差异的标准差。
  5. 计算 t 统计量为mean/(sd/sqrt(n))
  6. 将您的 t 统计量与临界值进行比较或计算 p 值。例如,在 5% 置信水平下拒绝相等 if |t|>1.96

RMSE 是 MSE 的单调变换,因此该测试不应给出实质性不同的结果。但请注意不要假设 MRSE 是 RMSE。

一个更大的问题应该是过度拟合。确保使用未用于估计模型的数据来计算所有 MSE 统计数据。

于 2010-01-30T21:43:51.920 回答
4

你正在进入一个巨大而有争议的领域,不仅是计算领域,还有哲学领域。显着性检验和模型选择是贝叶斯学派和频率学派之间存在强烈分歧的主题。Triston 关于将数据集拆分为训练集和验证集的评论不会让贝叶斯主义者满意。

我是否可以建议 RMSE 不是概率的合适分数。如果样本是独立的,则正确的分数是分配给实际结果的概率的对数之和。(如果它们不是独立的,你手上就会一团糟。)我所描述的是对“插件”模型进行评分。正确的贝叶斯建模需要对模型参数进行积分,这在计算上非常困难。规范插件模型的贝叶斯方法是对不太可能(大)模型参数的分数添加惩罚。这被称为“重量衰减”。

我阅读了 Christopher Bishop 的Neural Networks for Pattern Recognition ,开始了我的探索之路。我使用它和Gill等人的Practical Optimization来编写对我来说效果很好的软件。

于 2010-01-31T00:16:58.793 回答
0

我在这里回答评论中的问题。这个话题太大了,无法在评论中处理。

悬崖笔记版本。

我们谈论的分数类型衡量概率。(这是否适合您正在做的事情是另一个问题。)如果您假设样本是独立的,则只需将所有概率相乘即可获得“总”概率。但这通常会导致小得离谱的数字,因此等价地,您将概率的对数相加。越大越好。零是完美的。

普遍存在的平方误差 -x^2,其中 x 是模型的误差,来自(通常不合理的)假设,即训练数据包含被“高斯噪声”破坏的观察值(测量值)。如果您查看 Wikipedia 或高斯(又名正态)分布的定义,您会发现它包含术语 e^(-x^2)。取其自然对数,瞧!-x^2。但是您的模型不会为测量产生最有可能的“预噪声”值。它们直接产生概率。所以要做的就是简单地将分配给观察到的事件的概率的对数相加。假设这些观察是无噪声的。如果训练数据说它发生了,它就发生了。

您最初的问题仍未得到解答。如何判断两个模型是否“显着”不同?这是一个模糊而困难的问题。它是许多争论甚至情感和怨恨的主题。这也不是您真正想要回答的问题。您想知道的是哪种模型可以为您提供最佳的预期利润,所有因素都考虑在内,包括每个软件包的成本等。

我很快就得打破这个了。这里不是开设建模和概率课程的地方,我也不是真正的教授资格。

于 2010-01-31T23:13:03.297 回答