logo

Accuracy_Score a Sklearnben

Az adattudományi munkafolyamat döntő szakasza a modell pontosságának mérése a megfelelő mérőszám segítségével. Ebben az oktatóanyagban két módszert tanulunk meg a forrásminta előrejelzett osztálypontosságának kiszámítására: manuálisan és a Python scikit-learn könyvtárának használatával.

Íme egy összefoglaló az oktatóanyagban tárgyalt témákról.

  • Accuracy_score manuális kiszámítása
  • Accuracy_score kiszámítása scikit learning segítségével
  • Scikit tanulja meg az accuracy_score példáit
  • Hogyan működik a scikit learning accuracy_score?

Mi az a pontosság?

Az osztályozási modellek teljesítményét számító egyik széles körben használt mérőszám a pontosság. A modellünk által sikeresen előre jelzett címkék százalékos arányát a pontosság jelenti. Például, ha modellünk pontosan besorolna 100 címkéből 80-at, akkor a pontossága 0,80 lenne.

Függvény létrehozása a pontossági pontszám kiszámításához

Hozzon létre egy Python-függvényt az előrejelzett értékek pontossági pontszámának kiszámításához, mivel már rendelkezünk a minta valódi címkéivel, és a címkék előre jelezték a modellt.

Kód

 # 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 

A fenti függvény argumentumaként elfogadja az osztályozási modell előrejelzett címkéinek és a minta valódi címkéinek értékeit, és kiszámítja a pontossági pontszámot. Itt párhuzamosan iterálunk minden igaz és előre jelzett címkét, hogy rögzítsük a helyes előrejelzések számát. Ezután ezt a számot elosztjuk a címkék teljes számával, hogy kiszámítsuk a pontossági pontszámot.

java részstring metódus

A függvényt most egy mintán fogjuk alkalmazni.

Kód

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

Kimenet:

csak nick
 0.9777777777777777 

A Support Vector Classification modell előrejelzéseinek pontossági pontszámaként 0,978-at kapunk.

Ne feledje, hogy a numpy tömbök használata az egyenlőségszámítás vektorizálására hatékonyabbá teheti a fent említett kódot.

Pontosság a Sklearn accuracy_score() használatával

A sklearn.metrics accuracy_score() metódusa elfogadja a minta valódi címkéit és a modell által előre jelzett címkéket paramétereiként, és a pontossági pontszámot lebegő értékként számítja ki, amely szintén felhasználható a Python pontossági pontszámának megszerzésére. A sklearn.metrics osztályban számos hasznos funkció található a tipikus kiértékelési metrikák kiszámításához. Használjuk a sklearn accuracy_score() függvényét a Support Vector Classification modell pontossági pontszámának kiszámításához ugyanazzal a mintaadatkészlettel, mint korábban.

sklearn.metrics.accuracy_score(y_true, y_pred, *, normalize=Igaz, sample_weight=Nincs)

Ezt használjuk az osztályozás pontossági pontszámának kiszámításához. Ez a módszer az alcsoportok pontosságát számítja ki a többcímkés osztályozásnál; egy adatkészlet előre jelzett címkéinek részhalmazának pontosan meg kell egyeznie az y_true címkék tényleges adatkészletével.

Paraméterek

    y_true (1d tömbszerű vagy tömbjelző címke / ritka mátrix):Ezek a valódi címkék egy adott mintához.y_pred (1d tömbszerű vagy tömbjelző címke / ritka mátrix):Előre jelzett címkék, amelyek szerint egy besorolási modellt adott vissza.normalizálás (bool, alapértelmezett = igaz):Megadja a sikeresen osztályozott előrejelzett minták számát, ha a válasz hamis. A helyesen osztályozott előrejelzett minták arányát adja vissza, ha igaz.sample_weight (tömbszerű alakzat (n,), alapértelmezett = Nincs):Mintasúlyok.

Visszatér

    pontszám (lebegő):Megadja a sikeresen osztályozott minták arányát (float), ha normalize == True; ellenkező esetben a sikeresen osztályozott előrejelzett minták számát adja vissza (int). Az 1 a normalizálás == igaz 100%-os pontossága, a normalizálással biztosított minták száma pedig == False.

Példa az Accuracy_score-ra

Kód

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

Kimenet:

 0.9777777777777777 

Ha bináris címkejelzőket használ több címkével:

string metódusok java-ban

Kód

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

Kimenet:

 0.5 

Hogyan működik a scikit learning accuracy_score

A sklearn.metrics csomag accuracy_score metódusa részhalmaz pontosságot rendel hozzá a többcímkés osztályozáshoz.

Szükséges, hogy a modell által az adott mintára előre jelzett címkék és a minta valódi címkéi pontosan megegyezzenek.

linkelt lista

A pontosság a modell viselkedését írja le minden osztályban. Ha az összes osztály összehasonlíthatóan jelentős, akkor hasznos.

A pontos előrejelzések számának a minták teljes számához vagy az összes jóslathoz viszonyított arányát használják a modell pontosságának meghatározására.

Kód:

  1. Az alábbi kód két könyvtárat importál. A sklearn.metrics adatokat importáljuk a modellek pontosságának és a számtalan könyvtárak előrejelzéséhez.
  2. A minta valódi értéke y_true = ['1', '1', '0', '0', '1', '1', '0'].
  3. ['1', '1', '0', '0', '1', '1', '0'] ezek a modell előrejelzett értékei a mintaadatokhoz.
  4. A pontosság = ( mátrix[0][0] + mátrix[-1][-1] ) / numpy.sum(mátrix) az osztályozási modell pontossági pontszámának kiszámítására szolgál.
  5. A pontossági pontszám a nyomtatás (pontosság) használatával jelenik meg kimenetként.

Kód

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

Kimenet:

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

Tehát ebben az oktatóanyagban megtanultuk a scikit-learn accuracy_score Pythonban, és megvizsgáltunk néhány megvalósítási példát.