我有一个大型数据集(>300,000次观测),它代表蛋白质之间的距离(RMSD)。我正在建立一个回归模型(随机森林),用来预测两种蛋白质之间的距离。
我的问题是,我对近距离匹配(短距离)更感兴趣,但是我的数据分布有很大的偏倚,所以大部分距离都很大。我并不在乎模型能预测多远的距离,所以我想确保模型能够准确地预测接近模型的距离。然而,当我对模型进行完整数据的训练时,模型的性能并不好,所以我想知道我能做什么最好的抽样方法,这样我就可以保证模型能够尽可能准确地预测近匹配距离,同时对数据进行分层,因为不幸的是,这个有偏见的数据分布代表了真实世界的数据分布,我将对模型进行验证和测试。
以下是我的数据分布,其中第一列表示距离,第二列表示该距离范围内的观测数:
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发布于 2014-03-28 13:23:21
这里我要尝试的第一件事是建立一个距离日志的回归模型,因为这将集中于较大距离的范围。如果您使用的是一个通用的线性模型,这就是日志链接函数;对于其他方法,您可以通过估计输入x的回归函数并对结果进行指数表示来手动完成此操作:
Y= exp( f(x) )
记住要用距离的对数来训练一对。
发布于 2020-03-13 20:06:07
发布于 2020-05-19 20:58:51
正如前面提到的,我认为帮助您解决问题的可能是合成少数群体过度抽样回归技术(SMOTER)。
如果您是Python用户,我目前正在改进SMOGN算法的实现,SMOGN算法是SMOTER的一个变体。https://github.com/nickkunz/smogn
另外,在Kaggle上也有一些应用SMOGN来改进其预测结果的例子。https://www.kaggle.com/aleksandradeis/regression-addressing-extreme-rare-cases
https://stackoverflow.com/questions/22712334
复制相似问题