Вирішальним етапом у робочому процесі обробки даних є вимірювання точності нашої моделі за допомогою відповідної метрики. У цьому підручнику ми дізнаємося про два методи обчислення прогнозованої точності класу вихідного зразка: вручну та за допомогою бібліотеки scikit-learn Python.
Ось короткий перелік тем, які ми обговорювали в цьому посібнику.
- Розрахунок accuracy_score вручну
- Розрахунок accuracy_score за допомогою scikit learn
- Scikit вивчає приклади accuracy_score
- Як scikit вивчає accuracy_score?
Що таке точність?
Одним із широко використовуваних показників, які обчислюють продуктивність моделей класифікації, є точність. Відсоток міток, які наша модель успішно передбачила, представлено точністю. Наприклад, якби наша модель точно класифікувала 80 із 100 етикеток, її точність становила б 0,80.
Створення функції для обчислення оцінки точності
Давайте створимо функцію Python для обчислення показника точності прогнозованих значень, враховуючи, що ми вже маємо справжні мітки зразка, а мітки передбачили модель.
Код
# 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
Наведена вище функція приймає значення прогнозованих міток моделі класифікації та істинних міток вибірки як аргументи та обчислює оцінку точності. Тут ми паралельно переглядаємо кожну пару істинних і передбачених міток, щоб записати кількість правильних передбачень. Потім ми ділимо це число на загальну кількість міток, щоб обчислити показник точності.
Зараз ми застосуємо функцію до зразка.
Код
що таке модуль у c++
# 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 як показник точності прогнозів моделі класифікації опорного вектора.
Зверніть увагу, що використання масивів numpy для векторизації обчислення рівності може зробити згаданий вище код більш ефективним.
Точність за допомогою accuracy_score() Sklearn
Метод accuracy_score() sklearn.metrics приймає справжні мітки зразка та мітки, передбачувані моделлю, як свої параметри та обчислює оцінку точності як плаваюче значення, яке також можна використовувати для отримання оцінки точності в Python. У класі sklearn.metrics є кілька корисних функцій для обчислення типових показників оцінювання. Давайте скористаємося функцією accuracy_score() sklearn, щоб обчислити оцінку точності моделі класифікації опорних векторів, використовуючи той самий набір даних зразка, що й раніше.
sklearn.metrics.accuracy_score(y_true, y_pred, *, normalize=True, sample_weight=None)
Ми використовуємо це для обчислення показника точності класифікації. Цей метод обчислює точність підгрупи в класифікації з кількома мітками; передбачена підмножина міток набору даних має точно відповідати фактичному набору міток у y_true.
Параметри
Повернення
Приклад Accuracy_score
Код
# 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
Як працює scikit learn accuracy_score
Метод accuracy_score пакета sklearn.metrics призначає точність підмножини в класифікації з кількома мітками.
Необхідно, щоб мітки, передбачені моделлю для даного зразка, і справжні мітки зразка точно співпадали.
Точність описує поведінку моделі в усіх класах. Якщо всі класи порівняно важливі, це корисно.
Відношення кількості точних прогнозів до загальної кількості вибірок або загальної кількості прогнозів використовується для визначення точності моделі.
код:
- Наведений нижче код імпортує дві бібліотеки. Ми імпортуємо sklearn.metrics для прогнозування точності моделі та бібліотек numpy.
- Справжні значення вибірки: y_true = ['1', '1', '0', '0', '1', '1', '0'].
- ['1', '1', '0', '0', '1', '1', '0'] це прогнозовані значення моделі для вибіркових даних.
- Accuracy = ( matrix[0][0] + matrix[-1][-1] ) / numpy.sum(matrix) використовується для отримання показника точності моделі класифікації.
- Оцінка точності відображається як результат за допомогою print(accuracy).
Код
# 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
Отже, у цьому підручнику ми вивчили scikit-learn accuracy_score у Python і розглянули деякі приклади впровадження.