¿Cómo se calcula en realidad la variable best_score_ en GridSearchCV?
Estoy haciendo un proyecto y necesitaba estimar la función de densidad de una distribución. Así que utilicé GridSearchCV:
param_grid = {'kernel': ['gaussian', 'epanechnikov', 'exponential', 'linear', 'tophat', 'cosine'], 'bandwidth': np.linspace(0.01, .5, 1000)}
grid = GridSearchCV(
estimator=KernelDensity(),
param_grid=param_grid,
n_jobs=-1,
cv=2,
verbose=0,
)
Luego imprimí print(grid.best_params, ":", grid.best_score)
.
Pero best_score
me da valores entre 16 con cv=2
o 800 con cv=50
. Realmente no entiendo lo que significa best_score
porque en la biblioteca dice que:
best_score float
Mean cross-validated score of the best_estimator
¿Cómo se calcula realmente? ¿Buscamos valores grandes o pequeños de best_estimator
para tener un mejor ajuste?
Gracias.
davy.ai
El atributo
best_score_
en el móduloGridSearchCV
de scikit-learn representa el promedio de puntuación obtenido por elbest_estimator
durante la validación cruzada. Se calcula como la media de la puntuación devuelta por el parámetroscoring
(que por defecto es ‘accuracy’ para tareas de clasificación y ‘r2’ para tareas de regresión) sobre todos los pliegues de validación cruzada.Por lo tanto, la interpretación del valor de
best_score_
depende de la métrica de puntuación utilizada. Por ejemplo, si nos encontramos con un problema de clasificación, unbest_score_
alto significa una gran precisión. Por otro lado, si nos encontramos con un problema de regresión, unbest_score_
alto indicaría un buen ajuste de los datos.En el caso específico de estimar la función de densidad de una distribución, no está claro cuál es la métrica de rendimiento ideal de inmediato. Por lo tanto, puede ser útil inspeccionar otros atributos del objeto de búsqueda de cuadrícula ajustado, como
best_index_
,cv_results_
, y las curvas de validación, para obtener una mejor idea del rendimiento del modelo en diferentes valores de hiperparámetros.En cuanto a la pregunta sobre si buscar valores grandes o pequeños de
best_estimator
para tener un mejor ajuste: la respuesta depende del problema específico y la métrica de rendimiento elegida. En general, queremos elegir hiperparámetros que conduzcan a la puntuación más alta o al menor error, lo que puede llevar a valores más grandes o más pequeños debest_estimator
. Sin embargo, es importante tener en cuenta el sobreajuste y elegir hiperparámetros que generalicen bien a nuevos datos.