Būtisks datu zinātnes darbplūsmas posms ir mūsu modeļa precizitātes mērīšana, izmantojot atbilstošu metriku. Šajā apmācībā mēs uzzināsim divas metodes, kā aprēķināt avota parauga paredzēto klases precizitāti: manuāli un izmantojot Python scikit-learn bibliotēku.
Šeit ir apkopotas tēmas, kuras mēs esam apsprieduši šajā apmācībā.
- Manuāli accuracy_score aprēķināšana
- Accuracy_score aprēķināšana, izmantojot scikit learning
- Scikit mācieties accuracy_score piemērus
- Kā darbojas scikit learning accuracy_score?
Kas ir precizitāte?
Viena no plaši izmantotajām metrikām, kas aprēķina klasifikācijas modeļu veiktspēju, ir precizitāte. Iezīmju procentuālo daļu, ko mūsu modelis veiksmīgi paredzēja, norāda precizitāte. Piemēram, ja mūsu modelis precīzi klasificētu 80 no 100 etiķetēm, tā precizitāte būtu 0,80.
Funkcijas izveide, lai aprēķinātu precizitātes rādītāju
Izveidosim Python funkciju, lai aprēķinātu paredzamo vērtību precizitātes punktu, ņemot vērā, ka mums jau ir parauga patiesās etiķetes un etiķetes paredzēja modeli.
Kods
# 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
Iepriekš minētā funkcija pieņem klasifikācijas modeļa paredzēto apzīmējumu un parauga patieso apzīmējumu vērtības kā savus argumentus un aprēķina precizitātes rādītāju. Šeit mēs paralēli atkārtojam katru patieso un paredzamo iezīmju pāri, lai reģistrētu pareizo prognožu skaitu. Pēc tam mēs dalām šo skaitli ar kopējo etiķešu skaitu, lai aprēķinātu precizitātes rādītāju.
kā atrast bloķētus numurus operētājsistēmā Android
Mēs tagad izmantosim funkciju paraugam.
Kods
# 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)
Izvade:
0.9777777777777777
Mēs iegūstam 0,978 kā atbalsta vektoru klasifikācijas modeļa prognožu precizitātes rādītāju.
Ņemiet vērā, ka vienlīdzības aprēķinu vektorizēšanai izmantojot numpy masīvus, iepriekšminētais kods var būt efektīvāks.
Precizitāte, izmantojot Sklearn accuracy_score()
Metode accuracy_score() sklearn.metrics, pieņem parauga patiesās etiķetes un modeļa paredzētās etiķetes kā tā parametrus un aprēķina precizitātes rādītāju kā peldošu vērtību, ko tāpat var izmantot, lai iegūtu precizitātes rādītāju programmā Python. Klasē sklearn.metrics ir vairākas noderīgas funkcijas, lai aprēķinātu tipiskus novērtējuma metriku. Izmantosim sklearn funkciju accuracy_score(), lai aprēķinātu atbalsta vektoru klasifikācijas modeļa precizitātes rādītāju, izmantojot to pašu parauga datu kopu kā iepriekš.
sklearn.metrics.accuracy_score(y_true, y_pred, *, normalize=true, sample_weight=nav)
Mēs to izmantojam, lai aprēķinātu klasifikācijas precizitātes rādītāju. Šī metode aprēķina apakšgrupu precizitāti vairāku etiķešu klasifikācijā; datu kopas paredzamajai iezīmju apakškopai precīzi jāatbilst faktiskajai iezīmju datu kopai y_true.
Parametri
Atgriežas
Accuracy_score piemērs
Kods
# 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)
Izvade:
0.9777777777777777
Izmantojot bināros etiķešu indikatorus ar vairākām etiķetēm:
Kods
atšķirība starp lauvu un tīģeri
# 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)))
Izvade:
0.5
Kā darbojas scikit learning accuracy_score
Paketes sklearn.metrics metode accuracy_score piešķir apakškopas precizitāti vairāku etiķešu klasifikācijā.
Nepieciešams, lai uzlīmes, ko modelis ir paredzējis dotajam paraugam, un patiesās parauga etiķetes precīzi atbilstu.
Precizitāte raksturo modeļa uzvedību visās klasēs. Ja visas klases ir salīdzinoši nozīmīgas, tas ir noderīgi.
Modeļa precizitātes noteikšanai tiek izmantota precīzo prognožu skaita attiecība pret kopējo paraugu skaitu vai kopējo prognožu skaitu.
Kods:
- Tālāk norādītais kods importē divas bibliotēkas. Mēs importējam sklearn.metrics, lai prognozētu modeļa precizitāti un neskaidras bibliotēkas.
- Parauga patiesās vērtības ir y_true = ['1', '1', '0', '0', '1', '1', '0'].
- ['1', '1', '0', '0', '1', '1', '0'] šīs ir modeļa prognozētās vērtības izlases datiem.
- Precizitāte = ( matrica[0][0] + matrica[-1][-1] ) / numpy.sum(matrica) tiek izmantota, lai iegūtu klasifikācijas modeļa precizitātes rādītāju.
- Precizitātes rādītājs tiek parādīts kā izvade, izmantojot izdruku (precizitāte).
Kods
# 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)
Izvade:
sniegs vs ledus
Confusion Matrix: [[2 2] [3 0]] 0.2857142857142857
Tāpēc šajā apmācībā mēs uzzinājām scikit-learn accuracy_score programmā Python un izskatījām dažus ieviešanas piemērus.