1

我需要对两个类之间的一些值进行分类。我有大约 30 个值可以用作训练集,每个值都有 10 个不同的维度。我正在使用 libSVM(在 Python 中),它似乎工作得很好。

我也在尝试对 libSVM 计算的模型进行解释,因为我认为在分类过程中某些维度比其他维度更“重要”。

例如,考虑以下示例:

y, x = [1,1,1,-1,-1,-1],[[1,-1],[1,0],[1,1],[-1,-1],[-1,0],[-1,1]]
prob  = svm_problem(y, x)
param = svm_parameter()
param.kernel_type = LINEAR
param.C = 10
m = svm_train(prob, param)
svm_save_model('model_file', m)

很明显,x list 的元素的第二维对于这个数据集的分类是没有用的。

我的问题是:

有没有系统的方法来检测这些分析 libSVM 生成的模型的情况?

4

1 回答 1

0

有点晚了,但是:

检查一个特性是否重要是你的责任——所以你必须手动选择你的特性以满足你的应用程序的要求。SVM 尝试使用您输入的功能获得最佳结果 - 仅仅因为选择会变得更清晰(但可能更错误)而忽略给定的数据没有多大意义。

只有你才能知道哪些功能好,哪些不好。你必须用手/大脑找到它们。

于 2012-04-08T17:16:56.670 回答