我遇到了一个SVM预测模型,其中作者使用目标变量的概率分布值作为特征集中的一个特征。例如:
作者为每个玩家的每一个手势建立了一个模型,以猜测下一个手势将被执行。计算超过1000个游戏的分布可能看起来像(20%,10%,70%)。然后将这些数字作为特征变量来预测目标变量,以便进行交叉验证。
这合法吗?这听起来像是作弊。我认为在计算特性时,您必须将目标变量排除在测试集中,以避免“欺骗”。
发布于 2015-01-30 12:11:41
在与一些有经验的统计学家交谈后,这就是我所得到的。
至于论文的技术问题,我会担心数据泄漏或在当前模型中使用未来的信息。这也可能发生在交叉验证中。您应该确保每个模型只对过去的数据进行培训,并对未来的数据进行预测。我不知道他们是如何进行简历的,但这肯定很重要。防止所有泄漏源也是非常重要的。他们确实声称有一些看不见的例子,但并不清楚他们在这里写了什么代码。我不是说他们肯定会漏水,但我是说有可能发生。
发布于 2015-01-26 19:24:51
这没什么不对的。如果您没有更好的信息,那么使用过去的性能(即先验概率)可以很好地工作,特别是当您的类分布非常不均匀时。
使用类优先级的示例方法是高斯最大似然分类和天真的贝叶斯。
更新
既然你在这个问题上增加了更多的细节..。
假设您正在进行10次交叉验证(保留10%的数据用于验证这10个子集中的每个子集)。如果您使用整个数据集来建立优先级(包括10%的验证数据),那么是的,这是“欺骗”,因为10个子集模型中的每个模型都使用来自相应验证集的信息(也就是说,它不是真正的盲测试)。但是,如果只使用90%的数据重新计算每个折叠的优先级,那么这是一个“公平”的验证。
这种“欺骗”的效果的一个例子是,如果你的数据中有一个极端的离群点。通常,在k倍交叉验证中,会有一倍的异常值在验证数据中,而不是在培训数据中。在验证期间,当将相应的分类器应用于异常值时,它的性能可能会很差。但是,如果该折叠的培训数据包含全局统计(来自整个数据集),那么异常值将影响该折叠的统计数据(先验),从而可能导致人为的良好性能。
发布于 2015-01-29 12:51:45
我同意使用这类功能没有什么不对。例如,在建模工作中,我使用了多次到达时间。然而,我注意到许多这类特性之间存在着“有趣的”协方差关系,因此您必须非常小心地在模型中使用多个分布特性。
https://datascience.stackexchange.com/questions/4951
复制相似问题