es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El atributo best_score_ en el módulo GridSearchCV de scikit-learn representa el promedio de puntuación obtenido por el best_estimator durante la validación cruzada. Se calcula como la media de la puntuación devuelta por el parámetro scoring (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, un best_score_ alto significa una gran precisión. Por otro lado, si nos encontramos con un problema de regresión, un best_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 de best_estimator. Sin embargo, es importante tener en cuenta el sobreajuste y elegir hiperparámetros que generalicen bien a nuevos datos.

Comments are closed.