logo

Accuracy_Score Sklearnissa

Ratkaiseva vaihe datatieteen työnkulussa on mallin tarkkuuden mittaaminen sopivalla mittarilla. Tässä opetusohjelmassa opimme kaksi menetelmää lähdenäytteen ennustetun luokan tarkkuuden laskemiseen: manuaalisesti ja Pythonin scikit-learn-kirjaston avulla.

Tässä on yhteenveto aiheista, joita olemme keskustelleet tässä opetusohjelmassa.

  • Accuracy_score lasketaan manuaalisesti
  • Accuracy_score lasketaan scikit learning -ohjelman avulla
  • Scikit oppia accuracy_score-esimerkkejä
  • Kuinka scikit learning accuracy_score toimii?

Mikä on tarkkuus?

Yksi laajalti käytetyistä luokittelumallien suorituskyvyn laskemista mittareista on tarkkuus. Niiden tarrojen prosenttiosuus, jotka mallimme ennusti onnistuneesti, esitetään tarkkuudella. Jos mallimme esimerkiksi luokiteltaisi tarkasti 80 100:sta tarrasta, sen tarkkuus olisi 0,80.

Funktion luominen tarkkuuspisteiden laskemiseksi

Luodaan Python-funktio laskemaan ennustettujen arvojen tarkkuuspisteet, koska meillä on jo näytteen todelliset tunnisteet ja tarrat ennustivat mallin.

Koodi

 # 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 

Yllä oleva funktio hyväksyy luokitusmallin ennustettujen merkintöjen ja näytteen todellisten nimikkeiden arvot argumentteinaan ja laskee tarkkuuspisteet. Tässä iteroimme jokaisen todellisen ja ennustetun otsikon parin läpi rinnakkain tallentaaksemme oikeiden ennusteiden määrän. Sitten jaamme tämän luvun tarrojen kokonaismäärällä tarkkuuspisteiden laskemiseksi.

Käytämme funktiota nyt näytteeseen.

Koodi

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

Lähtö:

 0.9777777777777777 

Saamme Support Vector Classification -mallin ennusteiden tarkkuuspisteeksi 0,978.

Huomaa, että numpy-taulukoiden käyttäminen tasa-arvolaskennan vektorisoimiseen voi tehdä yllä mainitusta koodista tehokkaampaa.

Tarkkuus käyttämällä Sklearnin accuracy_score()

Sklearn.metrics-menetelmän accuracy_score()-menetelmä hyväksyy näytteen todelliset ja mallin ennustamat tarrat parametreiksi ja laskee tarkkuuspisteet kelluvana arvona, jota voidaan myös käyttää tarkkuuspisteiden saamiseksi Pythonissa. Sklearn.metrics-luokassa on useita hyödyllisiä toimintoja tyypillisten arviointimittojen laskemiseen. Käytämme sklearnin accuracy_score()-funktiota tukivektoriluokitusmallin tarkkuuspisteiden laskemiseen käyttämällä samaa mallitietoaineistoa kuin aiemmin.

java while-silmukka

sklearn.metrics.accuracy_score(y_true, y_pred, *, normalize=True, sample_weight=Ei mitään)

Käytämme tätä luokituksen tarkkuuspisteiden laskemiseen. Tämä menetelmä laskee alaryhmän tarkkuuden usean etiketin luokituksessa; tietojoukon ennustetun otsikoiden osajoukon on vastattava tarkasti y_true:n todellista tunnisteiden tietojoukkoa.

Parametrit

    y_true (1d-taulukkomainen tai taulukkoa osoittava nimike / harva matriisi):Nämä ovat todelliset etiketit tietylle näytteelle.y_pred (1d taulukkomainen tai taulukkoa osoittava etiketti / harva matriisi):Ennustetut tunnisteet, joiden mukaan luokitusmalli on palannut.normalisoi (bool, oletus = tosi):Se antaa onnistuneesti luokiteltujen ennustettujen näytteiden määrän, jos vastaus on epätosi. Palauttaa oikein luokiteltujen ennustettujen näytteiden osuuden, jos se on tosi.sample_weight (matriisimainen muoto (n,), oletus = Ei mitään):Näytepainot.

Palauttaa

    pisteet (kelluke):Se antaa onnistuneesti luokiteltujen näytteiden suhteen (float), jos normalisoi == True; muussa tapauksessa se palauttaa onnistuneesti luokiteltujen ennustettujen näytteiden määrän (int). 1 on 100 %:n tarkkuus normalisoinnissa == True ja normalisoimalla annettujen näytteiden lukumäärä == False.

Esimerkki arvosta Accuracy_score

Koodi

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

Lähtö:

 0.9777777777777777 

Kun käytät binääritunnisteita useilla nimiöillä:

Koodi

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

Lähtö:

 0.5 

Kuinka scikit learning accuracy_score toimii

Sklearn.metrics-paketin accuracy_score-menetelmä määrittää osajoukon tarkkuuden usean tunnisteen luokituksessa.

javascript-merkkijono korvaa

Edellytyksenä on, että mallin annetulle näytteelle ennustamat etiketit ja näytteen todelliset etiketit vastaavat tarkasti.

Tarkkuus kuvaa mallin käyttäytymistä kaikissa luokissa. Jos kaikki luokat ovat verrattain merkittäviä, se on hyödyllistä.

Tarkkojen ennusteiden määrän suhdetta näytteiden kokonaismäärään tai ennusteiden kokonaismäärään käytetään mallin tarkkuuden määrittämiseen.

Koodi:

  1. Alla oleva koodi tuo kaksi kirjastoa. Tuomme sklearn.metrics-aineistoa mallien tarkkuuden ja numpykirjastojen ennustamiseen.
  2. Otoksen todelliset arvot ovat y_true = ['1', '1', '0', '0', '1', '1', '0'].
  3. ['1', '1', '0', '0', '1', '1', '0'] nämä ovat mallin ennustetut arvot näytetiedoille.
  4. Tarkkuus = ( matriisi[0][0] + matriisi[-1][-1] ) / numpy.sum(matriisi) käytetään luokittelumallin tarkkuuspisteiden saamiseksi.
  5. Tarkkuuspisteet näytetään tulosteena käyttämällä tulostusta (tarkkuus).

Koodi

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

Lähtö:

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

Joten tässä opetusohjelmassa opimme scikit-learn accuracy_score Pythonissa ja tutkimme joitain toteutusesimerkkejä.