Оцінювання Моделі
Розділення даних
Після навчання нейронної мережі необхідно оцінити її ефективність на невідомих даних. Це дозволяє зрозуміти, чи дійсно модель навчилася корисним закономірностям, чи лише запам'ятала навчальні дані. Для цього датасет розділяють на дві частини:
- Навчальна вибірка: ця частина даних використовується для навчання нейронної мережі, дозволяючи їй коригувати ваги та зсуви за допомогою зворотного поширення помилки;
- Тестова вибірка: після навчання модель оцінюють на цій окремій вибірці, щоб виміряти, наскільки добре вона узагальнює нові, невідомі приклади.
Типове співвідношення — 80% навчання / 20% тестування, хоча воно може змінюватися залежно від розміру та складності датасету.
Розділення на навчальну та тестову вибірки зазвичай виконується за допомогою функції train_test_split()
з модуля sklearn.model_selection
:
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=...)
Параметр test_size
визначає частку датасету, яка буде використана як тестова вибірка. Наприклад, якщо встановити test_size=0.1
, то 10% даних буде використано для тестування, а решта 90% — для навчання.
Якщо модель добре працює на навчальних даних, але погано — на тестових, це може свідчити про перенавчання: модель запам'ятала навчальну вибірку замість того, щоб навчитися узагальнювати закономірності. Мета — досягти високої точності на тестових даних при збереженні гарної здатності до узагальнення.
Після навчання моделі необхідно кількісно оцінити її ефективність за допомогою метрик. Вибір метрики залежить від конкретного завдання класифікації.
Метрики класифікації
Для задач класифікації можна використовувати кілька основних метрик для оцінки прогнозів моделі:
- точність;
- точність позитивних передбачень (precision);
- повнота (recall);
- F1-міра.
Оскільки перцептрон виконує бінарну класифікацію, створення матриці плутанини допоможе краще зрозуміти ці метрики.
Матриця плутанини — це таблиця, яка підсумовує ефективність класифікації моделі шляхом порівняння прогнозованих міток із фактичними. Вона дає уявлення про кількість правильних і неправильних прогнозів для кожного класу (1
і 0
).
Точність (Accuracy) вимірює частку правильно класифікованих зразків від загальної кількості. Якщо модель правильно класифікує 90 із 100 зображень, її точність становить 90%.
accuracy=allcorrect=TP+TN+FP+FNTP+TNХоча точність є корисною, вона не завжди дає повну картину — особливо для незбалансованих наборів даних. Наприклад, у наборі даних, де 95% зразків належать до одного класу, модель може досягти 95% точності, просто завжди передбачаючи більшість класу — без фактичного навчання чомусь корисному. У таких випадках більш інформативними можуть бути precision, recall або F1-міра.
Точність (Precision) — це відсоток правильно передбачених позитивних випадків серед усіх передбачених позитивних. Ця метрика особливо важлива, коли хибнопозитивні результати є дорогими, наприклад, у виявленні спаму або шахрайства.
precision=predicted positivecorrect positive=TP+FPTPПовнота (Recall, чутливість) вимірює, скільки з фактичних позитивних випадків модель правильно ідентифікує. Висока повнота є критичною у ситуаціях, коли потрібно мінімізувати хибнонегативні результати, наприклад, у медичній діагностиці.
recall=all positivecorrect positive=TP+FNTPF1-міра — це гармонічне середнє точності та повноти, що забезпечує збалансовану оцінку, коли важливі як хибнопозитивні, так і хибнонегативні результати. Це корисно, коли набір даних є незбалансованим, тобто один клас зустрічається значно частіше за інший.
F1=precision+recall2×precision×recall1. Яка основна мета розділення вашого набору даних на навчальну та тестову вибірки?
2. Чому F1-міра може бути кращою за точність на незбалансованому наборі даних?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 4
Оцінювання Моделі
Свайпніть щоб показати меню
Розділення даних
Після навчання нейронної мережі необхідно оцінити її ефективність на невідомих даних. Це дозволяє зрозуміти, чи дійсно модель навчилася корисним закономірностям, чи лише запам'ятала навчальні дані. Для цього датасет розділяють на дві частини:
- Навчальна вибірка: ця частина даних використовується для навчання нейронної мережі, дозволяючи їй коригувати ваги та зсуви за допомогою зворотного поширення помилки;
- Тестова вибірка: після навчання модель оцінюють на цій окремій вибірці, щоб виміряти, наскільки добре вона узагальнює нові, невідомі приклади.
Типове співвідношення — 80% навчання / 20% тестування, хоча воно може змінюватися залежно від розміру та складності датасету.
Розділення на навчальну та тестову вибірки зазвичай виконується за допомогою функції train_test_split()
з модуля sklearn.model_selection
:
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=...)
Параметр test_size
визначає частку датасету, яка буде використана як тестова вибірка. Наприклад, якщо встановити test_size=0.1
, то 10% даних буде використано для тестування, а решта 90% — для навчання.
Якщо модель добре працює на навчальних даних, але погано — на тестових, це може свідчити про перенавчання: модель запам'ятала навчальну вибірку замість того, щоб навчитися узагальнювати закономірності. Мета — досягти високої точності на тестових даних при збереженні гарної здатності до узагальнення.
Після навчання моделі необхідно кількісно оцінити її ефективність за допомогою метрик. Вибір метрики залежить від конкретного завдання класифікації.
Метрики класифікації
Для задач класифікації можна використовувати кілька основних метрик для оцінки прогнозів моделі:
- точність;
- точність позитивних передбачень (precision);
- повнота (recall);
- F1-міра.
Оскільки перцептрон виконує бінарну класифікацію, створення матриці плутанини допоможе краще зрозуміти ці метрики.
Матриця плутанини — це таблиця, яка підсумовує ефективність класифікації моделі шляхом порівняння прогнозованих міток із фактичними. Вона дає уявлення про кількість правильних і неправильних прогнозів для кожного класу (1
і 0
).
Точність (Accuracy) вимірює частку правильно класифікованих зразків від загальної кількості. Якщо модель правильно класифікує 90 із 100 зображень, її точність становить 90%.
accuracy=allcorrect=TP+TN+FP+FNTP+TNХоча точність є корисною, вона не завжди дає повну картину — особливо для незбалансованих наборів даних. Наприклад, у наборі даних, де 95% зразків належать до одного класу, модель може досягти 95% точності, просто завжди передбачаючи більшість класу — без фактичного навчання чомусь корисному. У таких випадках більш інформативними можуть бути precision, recall або F1-міра.
Точність (Precision) — це відсоток правильно передбачених позитивних випадків серед усіх передбачених позитивних. Ця метрика особливо важлива, коли хибнопозитивні результати є дорогими, наприклад, у виявленні спаму або шахрайства.
precision=predicted positivecorrect positive=TP+FPTPПовнота (Recall, чутливість) вимірює, скільки з фактичних позитивних випадків модель правильно ідентифікує. Висока повнота є критичною у ситуаціях, коли потрібно мінімізувати хибнонегативні результати, наприклад, у медичній діагностиці.
recall=all positivecorrect positive=TP+FNTPF1-міра — це гармонічне середнє точності та повноти, що забезпечує збалансовану оцінку, коли важливі як хибнопозитивні, так і хибнонегативні результати. Це корисно, коли набір даних є незбалансованим, тобто один клас зустрічається значно частіше за інший.
F1=precision+recall2×precision×recall1. Яка основна мета розділення вашого набору даних на навчальну та тестову вибірки?
2. Чому F1-міра може бути кращою за точність на незбалансованому наборі даних?
Дякуємо за ваш відгук!