logo

Precisione_Punteggio in Sklearn

Una fase cruciale nel flusso di lavoro della scienza dei dati è misurare l'accuratezza del nostro modello utilizzando la metrica appropriata. In questo tutorial impareremo due metodi per calcolare l'accuratezza della classe prevista dell'esempio di origine: manualmente e utilizzando la libreria scikit-learn di Python.

Ecco una carrellata degli argomenti che abbiamo trattato in questo tutorial.

  • Calcolo manuale del punteggio_accuratezza
  • Calcolo dell'accuratezza_score utilizzando scikit learn
  • Scikit impara gli esempi di Precision_score
  • Come funziona scikit impara Precision_score?

Cos'è la precisione?

Uno dei parametri ampiamente utilizzati per calcolare le prestazioni dei modelli di classificazione è l'accuratezza. La percentuale di etichette previste con successo dal nostro modello è rappresentata dall'accuratezza. Ad esempio, se il nostro modello classificasse accuratamente 80 etichette su 100, la sua precisione sarebbe 0,80.

Creazione di una funzione per calcolare il punteggio di accuratezza

Creiamo una funzione Python per calcolare il punteggio di accuratezza dei valori previsti, dato che disponiamo già delle etichette reali del campione e che le etichette hanno previsto il modello.

Codice

ordinamento di un arraylist java
 # Python program to define a function to compute accuracy score of model's predicted class # Defining a function which takes true values of the sample and values predicted by the model def compute_accuracy(Y_true, Y_pred): correctly_predicted = 0 # iterating over every label and checking it with the true sample for true_label, predicted in zip(Y_true, Y_pred): if true_label == predicted: correctly_predicted += 1 # computing the accuracy score accuracy_score = correctly_predicted / len(Y_true) return accuracy_score 

La funzione precedente accetta valori per le etichette previste del modello di classificazione e le etichette vere del campione come argomenti e calcola il punteggio di accuratezza. Qui, iteriamo attraverso ciascuna coppia di etichette vero e previsto in parallelo per registrare il numero di previsioni corrette. Quindi dividiamo quel numero per il numero totale di etichette per calcolare il punteggio di precisione.

Applicheremo ora la funzione su un campione.

Codice

 # Python program to compute accuracy score using the function compute_accuracy # Importing the required libraries import numpy as np from sklearn.model_selection import train_test_split from sklearn.svm import SVC from sklearn.datasets import load_iris # Loading the dataset X, Y = load_iris(return_X_y = True) # Splitting the dataset in training and test data X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.3, random_state = 0) # Training the model using the Support Vector Classification class of sklearn svc = SVC() svc.fit(X_train, Y_train) # Computing the accuracy score of the model Y_pred = svc.predict(X_test) score = compute_accuracy(Y_test, Y_pred) print(score) 

Produzione:

 0.9777777777777777 

Otteniamo 0,978 come punteggio di precisione per le previsioni del modello Support Vector Classification.

Tieni presente che l'utilizzo di array Numpy per vettorizzare il calcolo dell'uguaglianza può rendere più efficiente il codice sopra menzionato.

Precisione utilizzando accuratety_score() di Sklearn

Il metodo accurate_score() di sklearn.metrics accetta le etichette reali del campione e le etichette previste dal modello come parametri e calcola il punteggio di accuratezza come valore float, che può essere utilizzato allo stesso modo per ottenere il punteggio di accuratezza in Python. Esistono diverse funzioni utili per calcolare le metriche di valutazione tipiche nella classe sklearn.metrics. Usiamo la funzione accurate_score() di sklearn per calcolare il punteggio di accuratezza del modello Support Vector Classification utilizzando lo stesso set di dati di esempio di prima.

sklearn.metrics.accuracy_score(y_true, y_pred, *, normalize=True, sample_weight=None)

Lo usiamo per calcolare il punteggio di accuratezza della classificazione. Questo metodo calcola l'accuratezza dei sottogruppi nella classificazione multietichetta; il sottoinsieme di etichette previsto di un set di dati deve corrispondere esattamente al set di dati effettivo delle etichette in y_true.

Parametri

    y_true (simile ad array 1d o array che indica etichetta/matrice sparsa):Queste sono le vere etichette per un dato campione.y_pred (simile ad array 1d o array che indica etichetta/matrice sparsa):Etichette previste restituite da un modello di classificazione.normalizza (bool, default = True):Fornisce il numero di campioni previsti classificati con successo se la risposta è Falsa. Restituisce la proporzione dei campioni previsti correttamente classificati se Vero.sample_weight (simile ad un array di forma (n,), default = Nessuno):Pesi campione.

ritorna

    punteggio (flottante):Fornisce il rapporto dei campioni classificati con successo (float) se normalizza == True; in caso contrario, restituisce il conteggio dei campioni previsti classificati correttamente (int). 1 corrisponde a una precisione del 100% per normalize == True e il conteggio dei campioni forniti con normalize == False.

Esempio di Precisione_punteggio

Codice

 # Python program to compute accuracy score using the function accuracy_score # Importing the required libraries import numpy as np from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score from sklearn.svm import SVC from sklearn.datasets import load_iris # Loading the dataset X, Y = load_iris(return_X_y = True) # Splitting the dataset in training and test data X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.3, random_state = 0) # Training the model using the Support Vector Classification class of sklearn svc = SVC() svc.fit(X_train, Y_train) # Computing the accuracy_score of the model Y_pred = svc.predict(X_test) score = accuracy_score(Y_test, Y_pred) print(score) 

Produzione:

 0.9777777777777777 

Quando si utilizzano indicatori di etichette binarie con più etichette:

Codice

 # Python program to show how to calculate accuracy score for multi-label data import numpy as np accuracy_score(np.array([[1, 1], [2, 1]]), np.ones((2, 2))) 

Produzione:

 0.5 

Come funziona Scikit Learn Precision_score

Il metodo Precision_score del pacchetto sklearn.metrics assegna la precisione del sottoinsieme nella classificazione multi-etichetta.

È necessario che le etichette previste dal modello per il campione dato e le etichette reali del campione corrispondano esattamente.

se di Rudyard Kipling riassunto

L'accuratezza descrive il comportamento del modello in tutte le classi. Se tutte le classi sono comparabilmente significative, è utile.

Il rapporto tra il conteggio delle previsioni accurate e il numero totale di campioni o il numero totale di previsioni viene utilizzato per determinare l'accuratezza del modello.

Codice:

  1. Il codice seguente importa due librerie. Stiamo importando sklearn.metrics per prevedere l'accuratezza del modello e le librerie numpy.
  2. I valori veri del campione sono y_true = ['1', '1', '0', '0', '1', '1', '0'].
  3. ['1', '1', '0', '0', '1', '1', '0'] questi sono i valori previsti dal modello per i dati campione.
  4. Accuratezza = (matrice[0][0] + matrice[-1][-1] ) / numpy.sum(matrice) viene utilizzato per ottenere il punteggio di accuratezza del modello di classificazione.
  5. Il punteggio di precisione viene visualizzato come output utilizzando print(precisione).

Codice

 # Pythpn program to show how accuracy_score works # import libraries import numpy as np import sklearn.metrics # Creating a true and predicted sample Y_true = ['1', '1', '0', '0', '1', '1', '0'] Y_pred = ['1', '0', '1', '1', '0', '1', '1'] # finding a confusion matrix matrix = sklearn.metrics.confusion_matrix(Y_true, Y_pred) matrix = np.flip(matrix) print('Confusion Matrix: 
', matrix) accuracy = (matrix[0][0] + matrix[-1][-1]) / np.sum(matrix) print(accuracy) 

Produzione:

 Confusion Matrix: [[2 2] [3 0]] 0.2857142857142857 

Quindi, in questo tutorial, abbiamo imparato scikit-learn accurate_score in Python ed esaminato alcuni esempi di implementazione.