首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在交叉验证中,目标变量的分布值可以用作特性吗?

在交叉验证中,目标变量的分布值可以用作特性吗?
EN

Data Science用户
提问于 2015-01-26 18:20:58
回答 4查看 576关注 0票数 1

我遇到了一个SVM预测模型,其中作者使用目标变量的概率分布值作为特征集中的一个特征。例如:

作者为每个玩家的每一个手势建立了一个模型,以猜测下一个手势将被执行。计算超过1000个游戏的分布可能看起来像(20%,10%,70%)。然后将这些数字作为特征变量来预测目标变量,以便进行交叉验证。

这合法吗?这听起来像是作弊。我认为在计算特性时,您必须将目标变量排除在测试集中,以避免“欺骗”。

EN

回答 4

Data Science用户

回答已采纳

发布于 2015-01-30 12:11:41

在与一些有经验的统计学家交谈后,这就是我所得到的。

至于论文的技术问题,我会担心数据泄漏或在当前模型中使用未来的信息。这也可能发生在交叉验证中。您应该确保每个模型只对过去的数据进行培训,并对未来的数据进行预测。我不知道他们是如何进行简历的,但这肯定很重要。防止所有泄漏源也是非常重要的。他们确实声称有一些看不见的例子,但并不清楚他们在这里写了什么代码。我不是说他们肯定会漏水,但我是说有可能发生。

票数 0
EN

Data Science用户

发布于 2015-01-26 19:24:51

这没什么不对的。如果您没有更好的信息,那么使用过去的性能(即先验概率)可以很好地工作,特别是当您的类分布非常不均匀时。

使用类优先级的示例方法是高斯最大似然分类和天真的贝叶斯

更新

既然你在这个问题上增加了更多的细节..。

假设您正在进行10次交叉验证(保留10%的数据用于验证这10个子集中的每个子集)。如果您使用整个数据集来建立优先级(包括10%的验证数据),那么是的,这是“欺骗”,因为10个子集模型中的每个模型都使用来自相应验证集的信息(也就是说,它不是真正的盲测试)。但是,如果只使用90%的数据重新计算每个折叠的优先级,那么这是一个“公平”的验证。

这种“欺骗”的效果的一个例子是,如果你的数据中有一个极端的离群点。通常,在k倍交叉验证中,会有一倍的异常值在验证数据中,而不是在培训数据中。在验证期间,当将相应的分类器应用于异常值时,它的性能可能会很差。但是,如果该折叠的培训数据包含全局统计(来自整个数据集),那么异常值将影响该折叠的统计数据(先验),从而可能导致人为的良好性能。

票数 2
EN

Data Science用户

发布于 2015-01-29 12:51:45

我同意使用这类功能没有什么不对。例如,在建模工作中,我使用了多次到达时间。然而,我注意到许多这类特性之间存在着“有趣的”协方差关系,因此您必须非常小心地在模型中使用多个分布特性。

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/4951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档