相关案例和交叉验证

机器算法验证 机器学习 分类 交叉验证 自相关
2022-03-03 18:11:00

我发帖是为了询问是否有一种交叉验证方法可以对已经用 R 语言很好地实现的相关数据进行交叉验证。对这种方法的一些快速搜索显示了一些技术,如 h-block 交叉验证、hv-block 交叉验证和 leave-one-block-out (LOBO) 交叉验证,但据我所知,还没有在 R 上实现。

我的问题是一个简单的分类问题(有 295 个负例和 247 个正例),我需要一种 CV 技术来处理包含几个定义明确的可变大小块的数据集,这些块可能包含正例和负例。在每个块内,60 个感兴趣的预测变量中的一些(但不是全部)可能在案例之间高度相关。

绕过该问题的一种尝试是从每个块中随机选择一个案例,然后他们训练模型。不幸的是,这进一步将我的数据集减少到只有 151 个负数,而 113 个正数使模型的结果高度可变。此外,无论我做什么,我都会使用 adaboost 算法得到一些奇怪的 LOOCV 和 k 倍 CV 测试错误,这些错误低于训练错误。

我愿意接受各种建议。

编辑:问题是指在同一基因(块)内彼此接近的 SNV 突变。每个案例之间的接近度可以在一维(距离的核苷酸)中精确测量。基于周围环境的预测器,如序列保守,在相邻的突变中往往非常相似。

2个回答

我们有一篇讨论这个问题的论文正在出版。AFAIK,没有用于块交叉验证的复杂选项的 R 包,但本文在附录中附加了一些可能有用的代码。

罗伯茨博士等人。(2017) 具有时间、空间、层次或系统发育结构生态学的数据的交叉验证策略,出版中。

http://onlinelibrary.wiley.com/doi/10.1111/ecog.02881/abstract

https://github.com/aalfons/cvTools的开发版本cvTools一个参数,这可能是您正在寻找的。grouping