Як обчислити збалансовану точність у python за допомогою sklearn
Збалансована точність – це показник, який ми можемо використовувати для оцінки продуктивності моделі класифікації .
Він розраховується таким чином:
Збалансована точність = (чутливість + специфічність) / 2
золото:
- Чутливість : «Справжній позитивний рівень» – відсоток позитивних випадків, які модель може виявити.
- Специфічність : «справжній негативний рівень» – відсоток негативних випадків, які модель може виявити.
Ця метрика особливо корисна, коли два класи незбалансовані, тобто один клас виглядає набагато більше, ніж інший.
Наприклад, припустімо, що спортивний аналітик використовує модель логістичної регресії , щоб передбачити, чи будуть 400 різних студентських баскетболістів задрафтовані в НБА.
Наступна матриця плутанини узагальнює прогнози, зроблені моделлю:
Щоб розрахувати збалансовану точність моделі, ми спочатку розрахуємо чутливість і специфічність:
- Чутливість : «справжній позитивний коефіцієнт» = 15 / (15 + 5) = 0,75
- Специфічність : «справжній негативний коефіцієнт» = 375 / (375 + 5) = 0,9868
Тоді ми можемо обчислити збалансовану точність наступним чином:
- Збалансована точність = (чутливість + специфічність) / 2
- Збалансована точність = (0,75 + 9868) / 2
- Збалансована точність = 0,8684
Збалансована точність моделі виявляється 0,8684 .
У наступному прикладі показано, як обчислити збалансовану точність для цього конкретного сценарію за допомогою функції Balanced_accuracy_score() із бібліотеки sklearn у Python.
Приклад: обчислення збалансованої точності в Python
Наступний код показує, як визначити масив прогнозованих класів і масив фактичних класів, а потім обчислити збалансовану точність моделі в Python:
import numpy as np from sklearn. metrics import balanced_accuracy_score #define array of actual classes actual = np. repeat ([1, 0], repeats=[20, 380]) #define array of predicted classes pred = np. repeat ([1, 0, 1, 0], repeats=[15, 5, 5, 375]) #calculate balanced accuracy score balanced_accuracy_score(actual, pred) 0.868421052631579
Збалансована точність становить 0,8684 . Це відповідає значенню, яке ми обчислили раніше вручну.
Примітка . Повну документацію щодо функції Balanced_accuracy_score() можна знайти тут .
Додаткові ресурси
Вступ до збалансованої точності
Як виконати логістичну регресію в Python
Як розрахувати результат F1 у Python