Rozhodujúcou fázou pracovného postupu v oblasti vedy o údajoch je meranie presnosti nášho modelu pomocou vhodnej metriky. V tomto návode sa naučíme dve metódy na výpočet predpovedanej presnosti triedy zdrojovej vzorky: manuálne a pomocou knižnice scikit-learn Pythonu.
Tu je prehľad tém, o ktorých sme diskutovali v tomto návode.
- Manuálny výpočet skóre presnosti
- Výpočet presnosti_skóre pomocou scikit learn
- Scikit sa naučte príklady presnosti_skóre
- Ako funguje scikit learn presnosti_score?
Čo je presnosť?
Jednou zo široko používaných metrík, ktoré počítajú výkonnosť klasifikačných modelov, je presnosť. Percento označení, ktoré náš model úspešne predpovedal, predstavuje presnosť. Ak by napríklad náš model presne klasifikoval 80 zo 100 štítkov, jeho presnosť by bola 0,80.
Vytvorenie funkcie na výpočet skóre presnosti
Vytvorme funkciu Pythonu na výpočet skóre presnosti predpovedaných hodnôt za predpokladu, že už máme skutočné označenia vzorky a označenia predpovedali model.
kód
zoznam v jazyku Java
# 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
Vyššie uvedená funkcia akceptuje hodnoty pre predpovedané označenia klasifikačného modelu a skutočné označenia vzorky ako svoje argumenty a vypočíta skóre presnosti. Tu iterujeme každý pár pravdivých a predpovedaných označení paralelne, aby sme zaznamenali počet správnych predpovedí. Toto číslo potom vydelíme celkovým počtom štítkov, aby sme vypočítali skóre presnosti.
Funkciu teraz aplikujeme na vzorku.
triedenie výberu
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)
Výkon:
0.9777777777777777
Získame 0,978 ako skóre presnosti pre predpovede modelu klasifikácie vektorov podpory.
Všimnite si, že použitie numpy polí na vektorizáciu výpočtu rovnosti môže zefektívniť vyššie uvedený kód.
Presnosť pomocou funkcie Sklearn's assay_score()
Metóda presnosť_skóre() sklearn.metrics akceptuje skutočné označenia vzorky a označenia predpovedané modelom ako svoje parametre a vypočíta skóre presnosti ako plávajúcu hodnotu, ktorú možno tiež použiť na získanie skóre presnosti v Pythone. Existuje niekoľko užitočných funkcií na výpočet typických metrík hodnotenia v triede sklearn.metrics. Použime funkciu presnosti_score() sklearnu na výpočet skóre presnosti modelu klasifikácie vektorov podpory pomocou rovnakého vzorového súboru údajov ako predtým.
sklearn.metrics.accuracy_score(y_true, y_pred, *, normalize=True, sample_weight=None)
skontrolujte verziu java na linuxe
Používame to na výpočet skóre presnosti klasifikácie. Táto metóda počíta presnosť podskupiny pri klasifikácii viacerých značiek; predpokladaná podmnožina štítkov množiny údajov sa musí presne zhodovať so skutočnou množinou údajov štítkov v y_true.
Parametre
Návraty
Príklad Accuracy_score
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)
Výkon:
0.9777777777777777
Pri použití binárnych indikátorov štítkov s viacerými štítkami:
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)))
Výkon:
0.5
Ako funguje scikit learn presnosti_skóre
Metóda presnosti_skóre balíka sklearn.metrics priraďuje presnosť podmnožiny v klasifikácii viacerých značiek.
genericita v jazyku Java
Vyžaduje sa, aby sa označenia, ktoré model predpovedal pre danú vzorku, a skutočné označenia vzorky presne zhodovali.
Presnosť popisuje správanie modelu vo všetkých triedach. Ak sú všetky triedy porovnateľne významné, je to užitočné.
Na určenie presnosti modelu sa používa pomer počtu presných predpovedí k celkovému počtu vzoriek alebo celkovému počtu predpovedí.
základné otázky java interview
kód:
- Nižšie uvedený kód importuje dve knižnice. Importujeme sklearn.metrics na predpovedanie presnosti modelu a numpy knižníc.
- Skutočné hodnoty vzorky sú y_true = ['1', '1', '0', '0', '1', '1', '0'].
- ['1', '1', '0', '0', '1', '1', '0'] toto sú predpovedané hodnoty modelu pre vzorové údaje.
- Presnosť = ( matica[0][0] + matica[-1][-1] ) / numpy.sum(matica) sa používa na získanie skóre presnosti klasifikačného modelu.
- Skóre presnosti sa zobrazí ako výstup pomocou tlače (presnosť).
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)
Výkon:
Confusion Matrix: [[2 2] [3 0]] 0.2857142857142857
Takže v tomto návode sme sa naučili scikit-learn presnosť_score v Pythone a preskúmali sme niektoré príklady implementácie.