我有两组预测相同输出的特征。但不是一次训练所有东西,我想分别训练它们并融合决策。在 SVM 分类中,我们可以获取可用于训练另一个 SVM 的类的概率值。但是在 SVR 中,我们怎么能做到这一点呢?
有任何想法吗?
谢谢 :)
我有两组预测相同输出的特征。但不是一次训练所有东西,我想分别训练它们并融合决策。在 SVM 分类中,我们可以获取可用于训练另一个 SVM 的类的概率值。但是在 SVR 中,我们怎么能做到这一点呢?
有任何想法吗?
谢谢 :)
这里有几个选择。最受欢迎的两个是:
一)
建立两个模型并简单地平均结果。
它在实践中往往效果很好。
二)
您可以以与有概率时非常相似的方式进行操作。问题是,您需要控制过度拟合。我的意思是,用一组特征产生分数并应用于标签与以前完全相同的另一组特征是“危险的”(即使新特征是不同的)。这是因为新应用的分数是在这些标签上训练的,因此过度拟合(超表现)。
通常你使用交叉验证
在你的情况下,你有
一些伪代码:
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 产生的分数,但它仍然以一种不偏不倚的方式这样做,因为后者从未在这些标签上进行过训练!
您可能还会发现这篇论文非常有用