我正在尝试优化 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)
编辑: IPython IDE 现在通过设置 verbose=2
解决了这个问题,但仍然需要在 Jupyter notebook、spyder 中查看或写入外部文件作为详细选项似乎只适用于 IPython IDE
最佳答案
如果您想查看 SVR 的进度,请在 SVR 的构造函数中输入 verbose=2
- 请注意,这会使进度减慢
from sklearn.svm import SVR
import numpy as np
n_samples, n_features = 10, 5
np.random.seed(0)
y = np.random.randn(n_samples)
X = np.random.randn(n_samples, n_features)
clf = SVR(C=1.0, epsilon=0.2,verbose=2)
clf.fit(X, y)
输出将是
optimization finished, #iter = 4
obj = -4.366801, rho = -0.910470
nSV = 7, nBSV = 5
#iter
就是你要找的东西
关于python - 了解 SVR scikit-learn 收敛所需的迭代次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41486610/