logo

Accuracy_Score у Sklearn

Вирішальним етапом у робочому процесі обробки даних є вимірювання точності нашої моделі за допомогою відповідної метрики. У цьому підручнику ми дізнаємося про два методи обчислення прогнозованої точності класу вихідного зразка: вручну та за допомогою бібліотеки 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.

Параметри

    y_true (1d-подібний до масиву або масив, що вказує на мітку/розріджену матрицю):Це справжні мітки для даного зразка.y_pred (масив, схожий на 1d, або масив, що вказує на мітку / розріджену матрицю):Передбачені мітки, які повернула модель класифікації.нормалізувати (bool, за замовчуванням = True):Він дає кількість успішно класифікованих прогнозованих зразків, якщо відповідь хибна. Повертає частку правильно класифікованих прогнозованих зразків, якщо True.sample_weight (форма, подібна до масиву (n,), за замовчуванням = Немає):Зразкові ваги.

Повернення

    оцінка (поплавок):Він дає відношення успішно класифікованих зразків (float), якщо normalize == True; інакше він повертає кількість успішно класифікованих прогнозованих вибірок (int). 1 означає 100% точність для normalize == True і кількості зразків, наданих з normalize == False.

Приклад 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 призначає точність підмножини в класифікації з кількома мітками.

Необхідно, щоб мітки, передбачені моделлю для даного зразка, і справжні мітки зразка точно співпадали.

Точність описує поведінку моделі в усіх класах. Якщо всі класи порівняно важливі, це корисно.

Відношення кількості точних прогнозів до загальної кількості вибірок або загальної кількості прогнозів використовується для визначення точності моделі.

код:

  1. Наведений нижче код імпортує дві бібліотеки. Ми імпортуємо sklearn.metrics для прогнозування точності моделі та бібліотек numpy.
  2. Справжні значення вибірки: y_true = ['1', '1', '0', '0', '1', '1', '0'].
  3. ['1', '1', '0', '0', '1', '1', '0'] це прогнозовані значення моделі для вибіркових даних.
  4. Accuracy = ( matrix[0][0] + matrix[-1][-1] ) / numpy.sum(matrix) використовується для отримання показника точності моделі класифікації.
  5. Оцінка точності відображається як результат за допомогою 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 і розглянули деякі приклади впровадження.