我正在尝试使用libsvm的直接java端口进行文本分类。
目前准确性较差,并且需要this guide来调整模型。 在这个阶段有两个疑点。
运行svm.svm_cross_validation
/ svm.svm_train
方法后,我得到以下输出,它是什么意思,我如何从中推断出伽玛和C?
优化完成,#iter = 1504 nu = 0.5800464037122964 obj = -299.9624358558652,rho = -0.9799716681242028 nSV = 3000,nBSV = 3000 总nSV = 3000 版本的libsvm = 3.2,java = 1.7
答案 0 :(得分:4)
我假设您按照[1]中的描述进行文本分类。
要获得你的特征值(简单缩放,不缩放,你想要什么),你有各种可能性[2]。
TFC 方法效果很好[1],详见[2]:
TermFrequency * log(N/n) * 1 / sum((TermFrequency_i * log(N/n_i))^2)
与
sum => every term in your document collection;
N => total number of documents;
n => number of documents to which a term is assigned
输出源自训练过程。对于训练(假设您正在使用RBF内核),参数gamma和C是默认值(如果您不通过CLI参数提供它们) - 对于CV也是如此。
获得最好的"对于您的分类问题,您需要进行网格搜索(在链接指南中进行了描述)。对于LIBSVM中的网格搜索,他们的没有内置功能。
[1] T. Joachims:支持向量机的文本分类:学习许多相关功能;施普林格:海德堡,德国,1998,doi:10.1007 / BFb0026683
[2] G. Salton和C. Buckley。自动文本检索中的术语加权方法。信息处理与管理,24(5):513 {523,1988。