Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

566
Vistas
¿Por qué cuando uso GridSearchCV con puntuación roc_auc, la puntuación es diferente para grid_search.score(X,y) y roc_auc_score(y, y_predict)?

Estoy utilizando una validación cruzada estratificada de 10 veces para encontrar un modelo que prediga y (resultado binario) de X (X tiene 34 etiquetas) con el auc más alto. Configuré el GridSearchCV:

 log_reg = LogisticRegression() parameter_grid = {'penalty' : ["l1", "l2"],'C': np.arange(0.1, 3, 0.1),} cross_validation = StratifiedKFold(n_splits=10,shuffle=True,random_state=100) grid_search = GridSearchCV(log_reg, param_grid = parameter_grid,scoring='roc_auc', cv = cross_validation)

Y luego haz la validación cruzada:

 grid_search.fit(X, y) y_pr=grid_search.predict(X)

No entiendo lo siguiente: ¿por qué grid_search.score(X,y) y roc_auc_score(y, y_pr) dan resultados diferentes (el primero es 0,74 y el segundo es 0,63)? ¿Por qué estos comandos no hacen lo mismo en mi caso?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Esto se debe a una inicialización diferente de roc_auc cuando se usa en GridSearchCV.

Mira el código fuente aquí

 roc_auc_scorer = make_scorer(roc_auc_score, greater_is_better=True, needs_threshold=True)

Observe el tercer parámetro needs_threshold . Cuando sea verdadero, requerirá los valores continuos para y_pred , como probabilidades o puntajes de confianza que en gridsearch se calcularán a partir de log_reg.decision_function() .

Cuando llama explícitamente a roc_auc_score con y_pr , está utilizando .predict() que generará las etiquetas de clase previstas resultantes de los datos y no las probabilidades. Eso debería explicar la diferencia.

Tratar :

 y_pr=grid_search.decision_function(X) roc_auc_score(y, y_pr)

Si aún no obtiene los mismos resultados, actualice la pregunta con el código completo y algunos datos de muestra.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda