随机森林对不平衡数据的回归

时间:2013-03-21 13:18:56

标签: r regression sampling random-forest cross-validation

我正在使用随机森林的r包来根据它们的氨基酸序列预测蛋白质对之间的距离,主要兴趣是接近的蛋白质(具有较小的距离)。我的训练数据集由10k对蛋白质和它们之间的实际距离组成。然而,非常少的蛋白质对(小于0.2%)之间的距离很小,问题在于训练有素的随机森林在预测距离较远的蛋白质之间的距离非常准确,对于距离较小的蛋白质非常差。他们。我尝试在训练数据中对距离较远的蛋白质进行下采样,但结果仍然不佳。我对近距离蛋白质(那些距离很小的对)更感兴趣。 由于我的训练精度为78且测试精度为51%,因此有一个非常清晰的过拟合信号 任何建议都非常感谢

2 个答案:

答案 0 :(得分:1)

我认为,针对您的问题,可能会有所帮助的是用于回归的综合少数族裔过度采样技术(SMOTER)。关于此主题有一些研究。但是,就像您可能遇到的那样,与同类分类(SMOTE)相比,它的探索程度仍然较低。

我可能会建议您引用以下论文,具体取决于您对从研究角度进行理解的兴趣。我非常感谢在生成综合观测结果时引入高斯噪声。

如果您对实用解决方案更感兴趣,第一作者在她的Github页面上提供了R实现。 https://github.com/paobranco/SMOGN-LIDTA17

如果您更喜欢Python,那么我最近分发了SMOGN算法的完全Pythonic实现,该实现现已可用并且正在进行单元测试。 https://github.com/nickkunz/smogn

Branco,P.,Torgo,L.,Ribeiro,R.(2017年)。 “ SMOGN:不均衡回归的预处理方法”。机器学习研究学报,74:36-50。http://proceedings.mlr.press/v74/branco17a/branco17a.pdf

答案 1 :(得分:0)

一些建议:

1)从gbm包中查看GBM。

2)创建更多功能,以帮助RF了解驱动距离的因素。

3)绘制错误与个别变量,以寻找什么是驾驶关系。 (ggplot2非常适合使用coloursize选项。)

4)您还可以根据距离为y变量分配1或0(即,如果距离< x;设置为1 /如果距离> = x;设置为0)。一旦你有两个类,就可以使用RF中的strata参数来创建均匀平衡的样本,并使用RF的importance()和varImpPlot()函数查看哪些变量驱动距离差异。

5)尝试使用距离相关变量的日志。 RF通常非常适合补偿非线性但尝试不会有害。

我的猜测是#2是你想花时间的地方,虽然它也是最难的,需要最多的思考。