Ejemplos [aprendizaje automático Notas] traza la curva ROC Python

Ejemplos de la curva ROC dibujado Python

ROC es sinónimo de "característica de funcionamiento del receptor" (Receiver Operating Characteristic) curva.

resultado la predicción de la muestra del alumno según especie, en este orden uno por uno como la predicción ejemplo muestra positiva, calcula cada valor de dos cantidad significativa (TPR, FPR), respectivamente, que es una cruz de coordenadas representan gráficamente . La curva PR usando precisión, índice de repetición de diferentes verticales, horizontales, el eje longitudinal de la curva ROC es "verdadero ejemplo Rate" (tasa de verdaderos positivos, TTR), el eje horizontal es la "tasa de falsos positivos Ejemplo" (tasa de falsos positivos, FPR).

Como se muestra:

La figura hacerse utilizando la siguiente Python:

# -*- coding: utf-8 -*-
"""
Created on Tue Mar 24 19:04:21 2020

@author: Bean029
"""

import numpy as np
import matplotlib.pyplot as plt
from itertools import cycle

from sklearn import svm, datasets
from sklearn.metrics import roc_curve, auc
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import label_binarize
from sklearn.multiclass import OneVsRestClassifier
from scipy import interp
from sklearn.metrics import roc_auc_score

# Import some data to play with
iris = datasets.load_iris()
X = iris.data
y = iris.target

# Binarize the output
y = label_binarize(y, classes=[0, 1, 2])
n_classes = y.shape[1]

# Add noisy features to make the problem harder
random_state = np.random.RandomState(0)
n_samples, n_features = X.shape
X = np.c_[X, random_state.randn(n_samples, 200 * n_features)]

# shuffle and split training and test sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.5,
                                                    random_state=0)

# Learn to predict each class against the other
classifier = OneVsRestClassifier(svm.SVC(kernel='linear', probability=True,
                                 random_state=random_state))
y_score = classifier.fit(X_train, y_train).decision_function(X_test)

# Compute ROC curve and ROC area for each class
fpr = dict()
tpr = dict()
roc_auc = dict()
for i in range(n_classes):
    fpr[i], tpr[i], _ = roc_curve(y_test[:, i], y_score[:, i])
    roc_auc[i] = auc(fpr[i], tpr[i])

# Compute micro-average ROC curve and ROC area
fpr["micro"], tpr["micro"], _ = roc_curve(y_test.ravel(), y_score.ravel())
roc_auc["micro"] = auc(fpr["micro"], tpr["micro"])

plt.figure()
lw = 2
plt.plot(fpr[2], tpr[2], color='darkorange',
         lw=lw, label='ROC curve (area = %0.2f)' % roc_auc[2])
plt.plot([0, 1], [0, 1], color='navy', lw=lw, linestyle='--')
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver operating characteristic example')
plt.legend(loc="lower right")
plt.show()

curva curva de intercambio República de China y PR

curva ROC es mucho relativamente estable, tanto en el suficientemente, el juicio reflejada ROC modelo de curva de suficiente positivo y muestra negativa. Por lo tanto, para el mismo modelo, República Popular China y la curva ROC pueden explicar algunos problemas, pero ambos tienen cierta relevancia, si desea revisar el efecto de los modelos, se puede poner las dos curvas se dibujan evaluación integral. Para supervisada problema de clasificación binaria, en muestras positivas y negativas son suficientes, se puede utilizar directamente curva ROC, AUC, KS efecto modelo de evaluación. En el proceso de determinación del umbral, el rendimiento de clasificación puede ser evaluada de acuerdo con el modelo de precisión, Recall o F1. Para el problema de múltiples clasificación, podemos calcular la precisión, recordar y F1 para cada categoría, como un modelo de índice de evaluación integral.

Área bajo la curva ROC, entre 0,1 y 1, como el valor de evaluación de la calidad puede ser intuitivamente clasificador, mejor será el valor.

curva ROC es característico de la velocidad verdadera tasa positiva falsa positiva del eje Y y el eje X.

Esto significa que la esquina superior izquierda de la tabla es el punto "ideal" - la tasa de falsos positivos fue de 0, 1 verdadera tasa positiva. Esto no es muy realista, pero sí significa una mayor área bajo la curva (AUC) es generalmente mejor.

curvas "Pendiente" ROC es también importante, ya que la maximización de la tasa de positivos verdaderos y reducir al mínimo la tasa de falsos positivos es deseable.

curva ROC suele utilizar para estudiar la clasificación binaria de la salida del clasificador. Para ampliar y área de la curva ROC ROC a la clasificación multi-etiqueta, es necesario a la salida binariza. Cada etiqueta puede dibujar una curva ROC, pero puede ser una predicción binaria (microscópica media) por cada elemento de la matriz es considerado como el indicador de etiqueta representa gráficamente la curva ROC.

 

Publicados 619 artículos originales · ganado elogios 185 · vistas 660 000 +

Supongo que te gusta

Origin blog.csdn.net/seagal890/article/details/105081188
Recomendado
Clasificación