我正在尝试优化 SVR 模型并因过度拟合而面临问题,为了克服这个问题,我尝试减少迭代次数而不是将其保留到收敛。
为了比较这两种模型,我需要两种情况下的迭代次数。在打开(max_iter=-1)的情况下,如何知道收敛所需的迭代次数?
这是我的代码:
model_1=SVR(kernel='rbf', C=316, epsilon=0, gamma=0.003162,max_iter=2500)
model_1.fit(tr_sets[:,:2],tr_sets[:,2])
print(model_1.score)
model_2=SVR(kernel='rbf', C=316, epsilon=0, gamma=0.003162,max_iter=-1)
model_2.fit(tr_sets[:,:2],tr_sets[:,2])
print(model_2.score)
Run Code Online (Sandbox Code Playgroud)
编辑:现在通过设置解决了 IPython IDE 的问题,verbose=2
但仍需要在 Jupyter notebook、spyder 中查看或写入外部文件,因为详细选项似乎仅适用于 IPython IDE
假设您function
在Python中有一些通过循环工作的函数:例如,它可以是一个评估某个数学表达式的函数,例如x**2
,对于数组中的所有元素,例如([1, 2, ..., 100])
(显然这是一个玩具示例).是否有可能编写一个代码,每次function
经过循环并获得结果时,会执行一些代码,例如print("Loop %s has been executed" % i)
?因此,在我们的示例中,x**1
计算时,程序打印Loop 1 has been executed
,然后x**2
计算,打印Loop 2 has been executed
,依此类推.
请注意,困难来自于我不对函数进行编程的事实,它是来自某个包的预先存在的函数(更具体地说,我感兴趣的函数将GridSearchCV
来自包scikit learn
).