我有一个分类任务,我使用了svm_perf应用程序。
问题是,在训练模型后,我想知道是否可以获取特征的权重。
有一个-a参数可以输出alphas,老实说,我不记得SVM中的alphas,我认为权重总是w。
回答:
如果你在实现线性SVM,有一个基于svm_learn
和svm_perf_
learn输出的模型文件的Python脚本。更具体地说,权重就是w=SUM_i (y_i*alpha_i*sv_i)
,其中sv_i
是支持向量,y_i
是训练样本的类别。
如果你使用的是非线性SVM,我认为权重系数与输入空间没有直接关系。不过,你可以得到决策函数:
f(x) = sgn( SUM_i (alpha_i*y_i*K(sv_i,x)) + b );
其中K
是你的核函数。