我需要在两个类之间对某些值进行分类。 我有大约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生成的模型的这种情况?
答案 0 :(得分:0)
有点晚了,但是:
您有责任检查功能是否重要 - 因此您必须手动选择符合应用程序要求的功能。 SVM尝试使用您输入的功能获得最佳结果 - 忽略给定数据是没有意义的,因为选择将变得更清晰(但可能更错误)。
只有你可以知道哪些功能是好的,哪些不是。你必须手工/大脑找到它们。