Estoy tratando de optimizar un modelo de RVS y enfrentando un problema debido a un ajuste excesivo, para superar esto, he tratado de disminuir el número de iteraciones en lugar de dejarlo hasta la convergencia.
Para comparar los dos modelos necesito el número de iteraciones para ambos casos. ¿Cómo puedo saber la cantidad de iteraciones necesarias para la convergencia en caso de que esté abierta (max_iter = -1)?
Este es mi código:
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)
Edición: el problema ahora se resuelve para el IDE de IPython estableciendo verbose=2
pero aún es necesario verlo en el cuaderno Jupyter, el spyder o en un archivo externo, ya que la opción verbose parece funcionar solo con el IDE de IPython
Si desea ver el progreso de su SVR, ingrese verbose=2
al constructor de SVR. Tenga en cuenta que esto puede hacer que el progreso sea más lento en una magnitud
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)
La salida será
optimization finished, #iter = 4 obj = -4.366801, rho = -0.910470 nSV = 7, nBSV = 5
Donde #iter
es lo que buscas