【问题标题】:Decision Level Fusion of SVR outputsSVR输出的决策级融合
【发布时间】:2014-06-10 13:17:34
【问题描述】:

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

有什么想法吗?

谢谢:)

【问题讨论】:

    标签: matlab regression svm post-processing liblinear


    【解决方案1】:

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

    一个)

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

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

    两个)

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

    通常你使用Cross-validation

    在你的情况下,你有

    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 产生的分数,但它仍然以一种不偏不倚的方式这样做,因为后者从未在这些标签上进行过训练!

    您可能还会发现这个paper 非常有用

    【讨论】:

    • 能否请您澄清一下将模型 1 的预测作为特征应用于训练集 2 是什么意思?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 2012-12-02
    • 2017-06-05
    • 2016-06-28
    • 1970-01-01
    相关资源
    最近更新 更多