在scikit-learn中没有详细的Nu_SVR

时间:2017-12-16 19:32:53

标签: scikit-learn svm libsvm

我在scikit学习中使用SVM,并且需要详细了解我的模型在训练时的表现。 但是我无法在SVM中获得详细信息并且我不断获得以下输出:*

 begin training ....
 [LibSVM]

这是我写的代码:

print("begin training ....")
svm = NuSVR(kernel="rbf",C=20, nu=0.9,verbose=True)
svm.fit(trX,trY)
print(".... training ended")

那么为什么我得到[LibSVM]而不是详细?我该怎么办才能得到一份详细的信息?

1 个答案:

答案 0 :(得分:2)

您可能在Jupyter笔记本或其他重定向标准输出(stdout)流的环境中使用此功能。

NuSVR的fit方法将任务推送到用C ++编写的LibSVM(source here)。已编译的C ++代码将信息性消息写入stdout。当在NuSVR中设置verbose=True时,它将尝试从stdout获取这些消息,但如果某些笔记本环境阻碍,则不一定能够正常工作。

在普通的Python控制台中测试它(或者像pythonanywhere.com一样正常)会产生一个详细的消息:

*
optimization finished, #iter = 260
epsilon = -0.000005
obj = -255.403240, rho = -1.521151
nSV = 30, nBSV = 12
[LibSVM]NuSVR(C=20, cache_size=200, coef0=0.0, degree=3, gamma='auto', kernel='rbf',
   max_iter=-1, nu=0.9, shrinking=True, tol=0.001, verbose=True)

LibSVM不是非常详细:它不会在整个迭代过程中提供逐步消息,除非迭代出现问题。