0

我有两组预测相同输出的特征。但不是一次训练所有东西,我想分别训练它们并融合决策。在 SVM 分类中,我们可以获取可用于训练另一个 SVM 的类的概率值。但是在 SVR 中,我们怎么能做到这一点呢?

有任何想法吗?

谢谢 :)

4

1 回答 1

0

这里有几个选择。最受欢迎的两个是:

一)

建立两个模型并简单地平均结果。

它在实践中往往效果很好。

二)

您可以以与有概率时非常相似的方式进行操作。问题是,您需要控制过度拟合。我的意思是,用一组特征产生分数并应用于标签与以前完全相同的另一组特征是“危险的”(即使新特征是不同的)。这是因为新应用的分数是在这些标签上训练的,因此过度拟合(超表现)。

通常你使用交叉验证

在你的情况下,你有

  1. train_set_1 具有 X1 特征和标签 Y
  2. train_set_2 具有 X2 特征和相同标签 Y

一些伪代码:

randomly split 50-50 both train_set_1 and train_set_2 at exactly the same points along with the Y (output array)

所以现在你有:

a.train_set_1 (50% of training_set_1)
b.train_set_1 (the rest of 50% of training_set_1)
a.train_set_2 (50% of training_set_2)
b.train_set_2 (the rest of 50% of training_set_2)
a.Y (50% of the output array that corresponds to the same sets as a.train_set_1 and a.train_set_2)
b.Y (50% of the output array that corresponds to the same sets as b.train_set_1 and b.train_set_2)

这是关键部分

Build a svr with a.train_set_1 (that contains X1 features) and output a.Y and

Apply that model's prediction as a feature to b.train_set_2 .

By this I mean, you score the b.train_set_2 base on your first model. Then you take this score and paste it next to your a.train_set_2 .So now this set will have X2 features + 1 more feature, the score produced by the first model.

Then build your final model on b.train_set_2 and b.Y 

新模型虽然使用了从 training_set_1 产生的分数,但它仍然以一种不偏不倚的方式这样做,因为后者从未在这些标签上进行过训练!

您可能还会发现这篇论文非常有用

于 2014-04-28T15:47:43.667 回答