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
Visszatér
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:
- 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.
- A minta valódi értéke y_true = ['1', '1', '0', '0', '1', '1', '0'].
- ['1', '1', '0', '0', '1', '1', '0'] ezek a modell előrejelzett értékei a mintaadatokhoz.
- 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.
- 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.