维度灾难
组学数据集中的特征数一般远大于样本数,直接应用机器学习可能导致过拟合问题。
理论上,可以通过在目标函数中引入正则项来解决上述问题。实践上还需要通过交叉验证估计正则项参数值。
交叉验证
交叉验证包括将数据集划分为训练集、模型选择集和测试集。训练集用于学习不同模型的参数,包括正则/复杂度参数。模型选择集用于评估不同模型的性能,并找到泛化误差最低的模型。测试集用于确认模型性能。如果在测试集上的表现与在模型选择集上的表现一致,一般认为避免了过拟合。
然而组学数据集的样本数通常较少,不足以划分为三个较大的数据集,因而在交叉验证中经常把训练集和模型选择集合并在一起。训练集进一步被分为n个相同大小的bags,其中n-1 bags用于训练,left-out bag作为模型选择集。然而由于样本太小,单个left-out bag不能用于误差估计和模型选择。需要通过重复分析来避免该问题。
另一个常见的错误是使用全部训练集数据筛选过的特征进行交叉验证,将导致高估性能。使用嵌套CV循环策略可以避免该问题。
混淆
组学数据集来源于单个研究时,可能会受到混淆因素的影响。由于随机划分数据集不一定消除混淆因素的影响,因而模型在训练集和测试集上仍然可以获得较为一致的性能表现。常见的例子包括case组和control组的年龄不匹配,选择的特征可能捕获的是年龄效应,而非目标表型的效应。
因此,独立的测试集是必要的。一个良好的独立测试集往往由独立实验室使用相同或等价的技术在等价的临床队列中产生。
参考文献
Avoiding common pitfalls in machine learning omic data science