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 en y_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 es None, se utiliza el orden numérico o lexicográfico de las etiquetas en y_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 con normalize == False.

Ver también

accuracy_score

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