我在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]而不是详细?我该怎么办才能得到一份详细的信息?
答案 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不是非常详细:它不会在整个迭代过程中提供逐步消息,除非迭代出现问题。