我有一个大型数据集(> 300,000个观测值),代表了蛋白质之间的距离(RMSD)。我正在建立一个回归模型(Random Forest),该模型可以预测任何两种蛋白质之间的距离。
我的问题是,我对近距离比赛(短距离)更感兴趣,但是我的数据分布高度偏向于大多数距离。我不太在乎模型能够预测大距离的程度,因此我想确保模型能够准确预测近距离模型的距离。但是,当我在完整的数据上训练模型时,模型的性能不好,所以我想知道我能做的最佳采样方法是什么,以便我可以保证模型将尽可能准确地预测近距离匹配距离现在尽可能多地对数据进行分层,因为不幸的是,这种有偏差的数据分布代表了我将在其上验证和测试模型的真实数据分布。
以下是我的数据分布,其中第一列代表距离,第二列代表在该距离范围内的观测数量:
Distance Observations
0 330
1 1903
2 12210
3 35486
4 54640
5 62193
6 60728
7 47874
8 33666
9 21640
10 12535
11 6592
12 3159
13 1157
14 349
15 86
16 12
我将在这里尝试做的第一件事是建立距离log的回归模型,因为这将集中较大距离的范围。如果您使用的是广义线性模型,则为对数链接函数。对于其他方法,您可以通过估算输入x的回归函数并对结果取幂来手动执行此操作:
y = exp(f(x))
记住要使用一对训练的距离的log。
用于处理回归中的不平衡分布的流行技术包括: