将scikit-learn详细日志写入外部文件

Ahm*_*tan 5 python svm scikit-learn cross-validation jupyter-notebook

我试图通过GridSearchCV过度拟合来优化SVR模型并使用它来解决这个问题,为解决这个问题,我尝试减少迭代次数而不是直到收敛为止。要比较这两种模型,我需要两种情况的迭代次数。

我尝试通过完成此操作,verbose = 1但在jupyter笔记本电脑中不起作用。我需要访问迭代次数并将其另存为变量以绘制优化结果。将详细日志写入外部文件可以解决此问题,但我无法做到。

我从上一个问题中获得了一些信息, 知道在SVR scikit-learn中收敛所需的迭代次数, 但仍然无法解决问题

这是我的代码示例:

model_1=SVR(kernel='rbf',C=316,epsilon=0, gamma=0.003162,max_iter=2500,verbose=1)
model_1.fit(tr_sets[:,:2],tr_sets[:,2])
Run Code Online (Sandbox Code Playgroud)

Chr*_*uer 3

如果我正确理解 scikit learn 中的日志记录,他们根本不使用 python 日志记录基础设施,而是直接使用 print() ,这使得捕获它变得极其困难,特别是与 jupyter 笔记本结合使用,它在捕获标准方面做了很多工作溪流。

啊哈找到了,它内部使用 joblibs 详细打印基础设施,这有我提到的问题。

https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/cross_validation.py

我过去曾使用过这个技巧来使用正常的日志记录工具来制作 joblib: https: //github.com/joblib/joblib/issues/190 但我不知道如何在 scikit learn 中进行这种猴子修补工作