Scikit-Learn随机森林回归:混合两组真实值(y)

时间:2019-01-24 11:28:18

标签: python scikit-learn random-forest

我正在用两组“真实” y值(经验值)训练随机森林。我可以轻易说出哪个更好。

但是,我想知道是否存在一种除蛮力之外的简单方法,可以从每组数据中挑选出能够产生最佳模型的值。换句话说,我想自动将这两个y集混合以产生一个新的理想集。

例如说生物活性。不同的实验和不同的数据库提供不同的值。这是一个简单的示例,在第3列和第4列中显示了两组不同的y值。

  

4a50,DQ7,47.6,45.4

     

3atu,ADP,47.7,30.7

     

5i9i,5HV,47.7,41.9

     

5jzn,GUI,47.7,34.2

     

4bjx,73B,48.0,44.0

     

4a6c,QG9,48.1,45.5

我知道第3列更好,因为我已经针对每个模型训练了不同的模型,并且因为我检查了几篇文章以验证哪个值是正确的,而3比4更正确。但是,我有成千上万的行并且无法阅读数千篇论文。

因此,我想知道是否存在一种算法,例如,将3用作真实y值的基础,但是当模型进行改进时会从4中选择值。

这将很有用,它将报告最后的y列,并且可以使用2个以上的列,但我想我可以弄清楚这一点。

现在的想法是找出是否已有解决方案,这样我就不需要重新发明轮子了。

最好

米罗

注意:功能(x)在另一个文件中。

2 个答案:

答案 0 :(得分:2)

问题在于,仅算法本身并不知道哪个标签更好。

您可以做什么:在您知道正确的数据上训练分类器。使用分类器为每个数据点指定一个值。将该值与您已经拥有的两个标签列表进行比较,然后选择更接近的标签。

该解决方案显然不是完美的,因为结果取决于分类程序的质量,该质量预测值,并且您仍然需要足够的带标签数据来训练分类器。另外,与您的两个标签列表相比,分类器本身还可以预测更好的值。

答案 1 :(得分:1)

在“随机森林”分类器模型拟合中,将第3列和第4列一起选择为目标/预测/ y值-并根据结果进行预测。因此,您的算法可以跟踪Y值及其与预测值的相关性。您的问题似乎是多输出分类问题,其中有您建议的多个目标/预测变量(多个y-值)。

随机森林使用随机森林支持此多输出分类。 Random Forest fit(X,y)方法支持y为类似于数组的 y:类似于数组,形状= [n_samples,n_outputs]

multioutput-classification

sklearn.ensemble.RandomForestClassifier.fit

Check multi-class and multi-output classification