Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

568
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda