详细日志缩写在 SVC、scikit-learn 中的含义

Ahm*_*tan 5 python svm verbose scikit-learn

我在 scikit-learn 中寻找 SVC 函数的详细日志缩写的含义?

如果 nSV 是支持向量的数量,#iter 是迭代次数,nBSV, rho,obj 是什么意思?

这是一个例子:

import numpy as np
from sklearn.svm import SVR
sets=np.loadtxt('data\Exp Rot.txt')         # reading data
model=SVR(kernel='rbf',C=100,gamma=1,max_iter=100000,verbose=True)
model.fit(sets[:,:2],sets[:,2])
print(model.score)
Run Code Online (Sandbox Code Playgroud)

这是结果

这是控制台中的详细日志

sas*_*cha 5

scikit-learn 使用libsvm 的支持向量机实现(LinearSVC 将使用相同作者的liblinear)。官方网站有自己的常见问题解答在这里回答这个问题

摘抄:

问:训练 C-SVM 的输出如下。他们的意思是什么?

优化完成,#iter = 219

nu = 0.431030

obj = -100.877286,rho = 0.424632

nSV = 132,nBSV = 107

总 nSV = 132

obj 是对偶 SVM 问题的最优目标值

rho 是决策函数 sgn(w^Tx - rho) 中的偏差项

nSV 和 nBSV 是支持向量和有界支持向量的数量(即 alpha_i = C)

nu-svm 是 C-SVM 的某种等效形式,其中 C 由 nu 代替

nu 只是显示相应的参数。更多细节在 libsvm 文档中

链接到上述 libsvm 文档(PDF!)