Кључна фаза у току рада науке о подацима је мерење тачности нашег модела коришћењем одговарајуће метрике. У овом водичу ћемо научити две методе за израчунавање предвиђене тачности класе изворног узорка: ручно и коришћење Питхон-ове библиотеке сцикит-леарн.
Ево резимеа тема о којима смо разговарали у овом водичу.
- Ручно израчунавање аццураци_сцоре
- Израчунавање аццураци_сцоре помоћу сцикит леарн
- Сцикит учи аццураци_сцоре примере
- Како сцикит учи аццураци_сцоре ради?
Шта је тачност?
Једна од широко коришћених метрика која израчунава перформансе модела класификације је тачност. Проценат ознака које је наш модел успешно предвидео представља тачност. На пример, ако би наш модел тачно класификовао 80 од 100 ознака, његова тачност би била 0,80.
Креирање функције за израчунавање резултата тачности
Хајде да направимо Питхон функцију за израчунавање оцене тачности предвиђених вредности, с обзиром да већ имамо праве ознаке узорка и да су ознаке предвиделе модел.
Код
# 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
Горња функција прихвата вредности за предвиђене ознаке модела класификације и праве ознаке узорка као своје аргументе и израчунава оцену тачности. Овде понављамо сваки пар тачних и предвиђених ознака паралелно да бисмо забележили број тачних предвиђања. Затим делимо тај број са укупним бројем ознака да бисмо израчунали оцену тачности.
10 мл до оз
Сада ћемо применити функцију на узорку.
Код
# 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)
Излаз:
0.9777777777777777
Добијамо 0,978 као оцену тачности за предвиђања модела класификације вектора подршке.
Имајте на уму да коришћење нумпи низова за векторизацију израчунавања једнакости може учинити горе поменути код ефикаснијим.
Тачност помоћу Склеарнове аццураци_сцоре()
Метода аццураци_сцоре() за склеарн.метрицс, прихвата праве ознаке узорка и ознаке које је модел предвидео као своје параметре и израчунава оцену тачности као флоат вредност, која се такође може користити за добијање оцене тачности у Питхон-у. Постоји неколико корисних функција за израчунавање типичних метрика евалуације у класи склеарн.метрицс. Хајде да користимо склеарн-ову функцију аццураци_сцоре() да бисмо израчунали оцену тачности модела за класификацију вектора подршке користећи исти скуп података узорка као раније.
склеарн.метрицс.аццураци_сцоре(и_труе, и_пред, *, нормализе=Тачно, сампле_веигхт=Ништа)
Ово користимо за израчунавање оцене тачности класификације. Овај метод израчунава тачност подгрупа у класификацији са више ознака; предвиђени подскуп ознака скупа података мора се тачно подударати са стварним скупом података ознака у и_труе.
Параметерс
Повратак
Пример Аццураци_сцоре
Код
# 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)
Излаз:
0.9777777777777777
Када користите индикаторе бинарних ознака са више ознака:
Код
стринг у цео број јава
# 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)))
Излаз:
0.5
Како функционише сцикит леарн аццураци_сцоре
Метода аццураци_сцоре пакета склеарн.метрицс додељује тачност подскупа у класификацији са више ознака.
Потребно је да се ознаке које је модел предвидео за дати узорак и праве ознаке узорка тачно поклапају.
Тачност описује понашање модела у свим класама. Ако су све класе упоредиво значајне, то је од помоћи.
Однос броја тачних предвиђања и укупног броја узорака или укупног броја предвиђања користи се за одређивање тачности модела.
код:
- Код испод увози две библиотеке. Увозимо склеарн.метрицс за предвиђање тачности модела и нумпи библиотеке.
- Праве вредности узорка су и_труе = ['1', '1', '0', '0', '1', '1', '0'].
- ['1', '1', '0', '0', '1', '1', '0'] ово су предвиђене вредности модела за податке узорка.
- Тачност = ( матрица[0][0] + матрица[-1][-1] ) / нумпи.сум(матрик) се користи за добијање оцене тачности модела класификације.
- Оцена тачности се приказује као резултат коришћењем принт(аццураци).
Код
# 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)
Излаз:
маркуее хтмл
Confusion Matrix: [[2 2] [3 0]] 0.2857142857142857
Дакле, у овом водичу смо научили сцикит-леарн аццураци_сцоре у Питхон-у и испитали неке примере имплементације.