我需要对两个类之间的一些值进行分类。我有大约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列表元素的第二个维度对于对该数据集进行分类是无用的。
我的问题是:
对libSVM生成的模型进行分析,有没有系统的方法来检测这类情况?
发布于 2012-04-09 01:16:57
有点晚了,但是:
检查某个功能是否重要是您的责任--因此您必须手动选择您的功能,使其满足应用程序的要求。SVM试图用你输入的特征获得最好的结果--仅仅因为选择会变得更清晰(但可能更错误)而忽略给定的数据是没有多大意义的。
只有你才能知道哪些功能好,哪些不好。你必须用手/脑来找到它们。
https://stackoverflow.com/questions/7843891
复制相似问题