sklearn.metrics
.top_k_accuracy_score¶
- sklearn.metrics.top_k_accuracy_score()¶
Puntuación de clasificación de Precisión Top-k.
Esta métrica calcula el número de veces en que la etiqueta correcta se encuentra entre las
k
mejores etiquetas predichas (clasificadas por las puntuaciones predichas). Ten en cuenta que el caso de multietiquetas no está cubierto aquí.Lee más en el Manual de usuario
- Parámetros
- y_truearray-like de forma (n_samples,)
Etiquetas verdaderas.
- y_scorearray-like de forma (n_samples,) o (n_samples, n_classes)
Puntuaciones objetivo. Pueden ser estimaciones de probabilidad o valores de decisión sin umbral (como los devueltos por decision_function en algunos clasificadores). El caso binario espera puntuaciones con forma (n_samples,) mientras que el caso multiclase espera puntuaciones con forma (n_samples, n_classes). En el caso multiclase, el orden de las puntuaciones de las clases debe corresponder al orden de
labels
, si se proporciona, o bien al orden numérico o lexicográfico de las etiquetas eny_true
.- kint, default=2
Número de resultados más probables considerados para encontrar la etiqueta correcta.
- normalizebool, default=True
Si es
True
, devuelve la fracción de muestras clasificadas correctamente. En caso contrario, devuelve el número de muestras clasificadas correctamente.- sample_weightarray-like de forma (n_samples,), default=None
Ponderaciones de las muestras. Si es
None
, todas las muestras tienen la misma ponderación.- labelsarray-like de forma (n_classes,), default=None
Sólo multiclase. Lista de etiquetas que indexan las clases en
y_score
. Si esNone
, se utiliza el orden numérico o lexicográfico de las etiquetas eny_true
.
- Devuelve
- scorefloat
La puntuación de precisión top-k. El mejor rendimiento es 1 con
normalize == True
y el número de muestras connormalize == False
.
Ver también
Notas
En los casos en los que se asignan dos o más etiquetas con puntuaciones de predicción iguales, se elegirán primero las etiquetas con los índices más altos. Esto podría afectar el resultado si la etiqueta correcta cae después del umbral debido a eso.
Ejemplos
>>> import numpy as np >>> from sklearn.metrics import top_k_accuracy_score >>> y_true = np.array([0, 1, 2, 2]) >>> y_score = np.array([[0.5, 0.2, 0.2], # 0 is in top 2 ... [0.3, 0.4, 0.2], # 1 is in top 2 ... [0.2, 0.4, 0.3], # 2 is in top 2 ... [0.7, 0.2, 0.1]]) # 2 isn't in top 2 >>> top_k_accuracy_score(y_true, y_score, k=2) 0.75 >>> # Not normalizing gives the number of "correctly" classified samples >>> top_k_accuracy_score(y_true, y_score, k=2, normalize=False) 3