【问题标题】:SVM LibSVM Ignore Feature 1,3,5 when PredictingSVM LibSVM 在预测时忽略特征 1,3,5
【发布时间】:2013-05-02 17:38:28
【问题描述】:

这个问题一般是关于 LibSVM 或 SVM。 我想知道是否可以使用相同的 SVM 模型对不同长度的特征向量进行分类。

假设我们用以下特征向量的大约 1000 个实例训练 SVM: [特征1 特征2 特征3 特征4 特征5]

现在我想预测一个长度为 5 的测试向量。 如果我收到的概率很低,我现在想检查包含第 2-5 列的测试向量的第一个子集。所以我想关闭 1 功能。

我现在的问题是:是否可以告诉 SVM 仅检查特征 2-5 以进行预测(例如使用权重),还是我必须训练不同的 SVM 模型。一个用于 5 个功能,另一个用于 4 个功能等等......?

提前谢谢...

马库斯

【问题讨论】:

    标签: matlab svm libsvm prediction feature-selection


    【解决方案1】:

    您始终可以通过修改文件从测试点中删除功能,但我强烈建议您不要使用这种方法。当所有特征都存在时,SVM 模型是有效的。如果您使用的是线性内核,只需将给定的特征设置为 0 就会隐含地导致它被忽略(尽管您不应该这样做)。当使用其他内核时,这是非常不行的。

    使用与用于训练的特征集不同的特征集进行预测并不是一个好方法。

    我强烈建议为您希望在预测中使用的特征子集训练一个新模型。

    【讨论】:

    • 感谢您的快速回答:
    • 我感兴趣的是,是否有可能告诉 SVM 忽略我的测试数据的第一个列,并根据第 3,4 和 5 列做出决定
    • LIBSVM 中没有这样的选项。这也没有任何意义,SVM 模型是专门针对一组特征进行训练的。使用用于训练的子集不会产生有用的结果,并且可能会引入严重的偏见。
    • 好的,所以肯定有必要训练不同的模型。感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 2020-09-04
    • 2020-02-22
    • 2012-08-27
    • 2015-03-03
    • 1970-01-01
    • 2013-01-13
    • 2015-04-03
    • 2018-07-23
    相关资源
    最近更新 更多