logo

Accuracy_Score in Sklearn

Ein entscheidender Schritt im Data-Science-Workflow besteht darin, die Genauigkeit unseres Modells mithilfe der entsprechenden Metrik zu messen. In diesem Tutorial lernen wir zwei Methoden zum Berechnen der vorhergesagten Klassengenauigkeit des Quellbeispiels kennen: manuell und mithilfe der Scikit-Learn-Bibliothek von Python.

Hier finden Sie eine Übersicht über die Themen, die wir in diesem Tutorial besprochen haben.

  • Manuelle Berechnung des precision_score
  • Berechnen des Accuracy_Score mit Scikit Learn
  • Scikit lernt die Beispiele von precision_score
  • Wie funktioniert Scikit Learn Accuracy_Score?

Was ist Genauigkeit?

Eine der am häufigsten verwendeten Metriken zur Berechnung der Leistung von Klassifizierungsmodellen ist die Genauigkeit. Der Prozentsatz der Beschriftungen, die unser Modell erfolgreich vorhergesagt hat, wird durch die Genauigkeit dargestellt. Wenn unser Modell beispielsweise 80 von 100 Etiketten genau klassifizieren würde, wäre seine Genauigkeit 0,80.

Erstellen einer Funktion zur Berechnung des Genauigkeitswerts

Erstellen wir eine Python-Funktion, um die Genauigkeitsbewertung der vorhergesagten Werte zu berechnen, vorausgesetzt, wir haben bereits die wahren Beschriftungen der Stichprobe und die Beschriftungen, die das Modell vorhergesagt hat.

Code

 # 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 

Die obige Funktion akzeptiert Werte für die vorhergesagten Bezeichnungen des Klassifizierungsmodells und die wahren Bezeichnungen der Stichprobe als Argumente und berechnet die Genauigkeitsbewertung. Hier durchlaufen wir parallel jedes Paar wahrer und vorhergesagter Labels, um die Anzahl der richtigen Vorhersagen aufzuzeichnen. Anschließend dividieren wir diese Zahl durch die Gesamtzahl der Labels, um den Genauigkeitswert zu berechnen.

jdbc

Wir werden die Funktion jetzt auf ein Beispiel anwenden.

Code

 # 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) 

Ausgabe:

 0.9777777777777777 

Wir erhalten 0,978 als Genauigkeitswert für die Vorhersagen des Support Vector Classification-Modells.

Beachten Sie, dass die Verwendung von Numpy-Arrays zur Vektorisierung der Gleichheitsberechnung den oben genannten Code effizienter machen kann.

Genauigkeit mit Sklearns precision_score()

Die Methode precision_score() von sklearn.metrics akzeptiert die wahren Beschriftungen der Stichprobe und die vom Modell vorhergesagten Beschriftungen als Parameter und berechnet die Genauigkeitsbewertung als Gleitkommawert, der ebenfalls zum Erhalten der Genauigkeitsbewertung in Python verwendet werden kann. In der Klasse sklearn.metrics gibt es mehrere hilfreiche Funktionen zur Berechnung typischer Bewertungsmetriken. Lassen Sie uns die Funktion precision_score() von sklearn verwenden, um die Genauigkeitsbewertung des Support Vector Classification-Modells unter Verwendung desselben Beispieldatensatzes wie zuvor zu berechnen.

Durchquerung vorbestellen

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

Wir verwenden dies zur Berechnung des Genauigkeitswerts der Klassifizierung. Diese Methode berechnet die Untergruppengenauigkeit bei der Klassifizierung mit mehreren Etiketten. Die vorhergesagte Teilmenge der Beschriftungen eines Datensatzes muss genau mit dem tatsächlichen Datensatz der Beschriftungen in y_true übereinstimmen.

Hashset Java

Parameter

    y_true (1d-Array-ähnlich oder Array, das die Bezeichnung/sparse-Matrix angibt):Dies sind die wahren Etiketten für eine bestimmte Probe.y_pred (1d-Array-ähnlich oder Array, das Label/sparse-Matrix angibt):Vorhergesagte Bezeichnungen, die ein Klassifizierungsmodell zurückgegeben hat.normalisieren (bool, Standard = True):Es gibt die Anzahl der erfolgreich klassifizierten vorhergesagten Stichproben an, wenn die Antwort „Falsch“ ist. Gibt den Anteil korrekt klassifizierter vorhergesagter Stichproben zurück, wenn True.sample_weight (Array-artig von Form (n,), Standard = Keine):Probengewichte.

Kehrt zurück

    Ergebnis (Float):Es gibt das Verhältnis erfolgreich klassifizierter Stichproben (Float) an, wenn normalize == True; andernfalls wird die Anzahl der erfolgreich klassifizierten vorhergesagten Stichproben (int) zurückgegeben. 1 ist 100 % Genauigkeit für normalize == True und die Anzahl der mit normalize == False bereitgestellten Proben.

Beispiel für Accuracy_score

Code

 # 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) 

Ausgabe:

 0.9777777777777777 

Bei Verwendung von binären Label-Indikatoren mit mehreren Labels:

Code

 # 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))) 

Ausgabe:

 0.5 

So funktioniert Scikit Learn Accuracy_Score

Die Methode precision_score des Pakets sklearn.metrics weist Teilmengengenauigkeit bei der Multi-Label-Klassifizierung zu.

Es ist erforderlich, dass die Beschriftungen, die das Modell für die gegebene Stichprobe vorhergesagt hat, und die tatsächlichen Beschriftungen der Stichprobe genau übereinstimmen.

Java wechseln

Die Genauigkeit beschreibt das Verhalten des Modells über alle Klassen hinweg. Wenn alle Klassen vergleichbar aussagekräftig sind, ist es hilfreich.

Zur Bestimmung der Genauigkeit des Modells wird das Verhältnis der Anzahl genauer Vorhersagen zur Gesamtzahl der Stichproben oder zur Gesamtzahl der Vorhersagen verwendet.

Code:

  1. Der folgende Code importiert zwei Bibliotheken. Wir importieren sklearn.metrics zur Vorhersage der Modellgenauigkeit und Numpy-Bibliotheken.
  2. Die wahren Werte der Stichprobe sind y_true = ['1', '1', '0', '0', '1', '1', '0'].
  3. ['1', '1', '0', '0', '1', '1', '0'] Dies sind die vorhergesagten Werte des Modells für die Beispieldaten.
  4. Genauigkeit = ( Matrix[0][0] + Matrix[-1][-1] ) / numpy.sum(matrix) wird verwendet, um die Genauigkeitsbewertung des Klassifizierungsmodells zu erhalten.
  5. Der Genauigkeitswert wird als Ausgabe mit print(accuracy) angezeigt.

Code

 # 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) 

Ausgabe:

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

In diesem Tutorial haben wir Scikit-Learn Accuracy_score in Python gelernt und einige Implementierungsbeispiele untersucht.