SVM LibSVM 在预测时忽略特征 1,3,5
Posted
技术标签:
【中文标题】SVM LibSVM 在预测时忽略特征 1,3,5【英文标题】:SVM LibSVM Ignore Feature 1,3,5 when Predicting 【发布时间】: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 个功能等等......?
提前谢谢...
马库斯
【问题讨论】:
【参考方案1】:您始终可以通过修改文件从测试点中删除功能,但我强烈建议您不要使用这种方法。当所有特征都存在时,SVM 模型是有效的。如果您使用的是线性内核,只需将给定的特征设置为 0 就会隐含地导致它被忽略(尽管您不应该这样做)。当使用其他内核时,这是非常不行的。
使用与用于训练的特征集不同的特征集进行预测并不是一个好方法。
我强烈建议为您希望在预测中使用的特征子集训练一个新模型。
【讨论】:
感谢您的快速回答: 我感兴趣的是,是否有可能告诉 SVM 忽略我的测试数据的第一个列,并根据第 3,4 和 5 列做出决定 LIBSVM 中没有这样的选项。这也没有任何意义,SVM 模型是专门针对一组特征进行训练的。使用用于训练的子集不会产生有用的结果,并且可能会引入严重的偏见。 好的,所以肯定有必要训练不同的模型。感谢您的帮助以上是关于SVM LibSVM 在预测时忽略特征 1,3,5的主要内容,如果未能解决你的问题,请参考以下文章