Оцінювання Моделі
Розподіл даних
Після навчання нейронної мережі важливо оцінити, наскільки добре вона працює на невідомих даних. Така оцінка дозволяє визначити, чи модель дійсно навчилася виявляти закономірності, чи лише запам’ятала навчальні приклади. Для цього набір даних поділяють на дві частини:
- Навчальна вибірка — використовується для навчання нейронної мережі шляхом коригування ваг і зміщень за допомогою зворотного поширення помилки;
- Тестова вибірка — використовується після навчання для оцінки здатності моделі до узагальнення на нових, невідомих даних.
Зазвичай дані ділять у співвідношенні 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% — для навчання.
Якщо модель добре працює на навчальній вибірці, але погано — на тестовій, це може свідчити про перенавчання — коли модель вивчає занадто специфічні закономірності навчальних даних замість узагальнення. Мета — досягти високої якості на обох вибірках, щоб модель добре узагальнювала.
Після розподілу даних і навчання моделі її ефективність слід оцінювати за допомогою відповідних метрик оцінки, які залежать від конкретного завдання класифікації.
Метрики класифікації
Для задач класифікації використовують кілька основних метрик для оцінки прогнозів моделі:
- Точність;
- Прецизійність;
- Повнота;
- 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+FPTPRecall (чутливість, sensitivity) вимірює, скільки з фактичних позитивних випадків модель правильно ідентифікує. Висока 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% — для навчання.
Якщо модель добре працює на навчальній вибірці, але погано — на тестовій, це може свідчити про перенавчання — коли модель вивчає занадто специфічні закономірності навчальних даних замість узагальнення. Мета — досягти високої якості на обох вибірках, щоб модель добре узагальнювала.
Після розподілу даних і навчання моделі її ефективність слід оцінювати за допомогою відповідних метрик оцінки, які залежать від конкретного завдання класифікації.
Метрики класифікації
Для задач класифікації використовують кілька основних метрик для оцінки прогнозів моделі:
- Точність;
- Прецизійність;
- Повнота;
- 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+FPTPRecall (чутливість, sensitivity) вимірює, скільки з фактичних позитивних випадків модель правильно ідентифікує. Висока recall є важливою у ситуаціях, коли потрібно мінімізувати хибнонегативні результати, наприклад, у медичній діагностиці.
recall=all positivecorrect positive=TP+FNTPF1-міра — це гармонічне середнє між точністю та повнотою, що забезпечує збалансовану оцінку, коли важливі як хибнопозитивні, так і хибнонегативні результати. Це корисно, коли набір даних є незбалансованим, тобто один клас зустрічається значно частіше за інший.
F1=precision+recall2×precision×recall1. Яка основна мета розділення вашого набору даних на тренувальну та тестову вибірки?
2. Чому F1-міра може бути кращою за точність на незбалансованому наборі даних?
Дякуємо за ваш відгук!