L2 Открытый урок · Новичок
L2.1. Как учатся машины: данные, модель, метрики
Типы машинного обучения, train, validation и test, переобучение и почему accuracy обманывает. Precision, recall и F1 на примере спам-фильтра.
- Объём
- 4 урока · 8 часов
- Компетенции
- AI-FUND-04·A, MATH-02·F
Решения задач уровня, наборы данных для практикумов и эталон проекта PRJ-02 выдаются ученикам курса. На сайте открыты теория, практикумы и задания.
Данные → модель → предсказание
Машинное обучение — это способ получить программу не написанием правил, а подбором параметров по примерам. Спам-фильтр не содержит списка «плохих слов», составленного человеком: он видел миллионы писем с пометкой «спам / не спам» и подобрал внутренние числа так, чтобы ошибаться как можно реже.
| Тип обучения | Откуда «правильные ответы» | Пример |
|---|---|---|
| С учителем (supervised) | люди разметили примеры | письмо → «спам» |
| Без учителя (unsupervised) | ответов нет, модель ищет структуру | группы похожих клиентов |
| Самоконтролируемое (self-supervised) | ответ спрятан в самих данных | закрыть слово в тексте и угадать его — так учатся LLM |
| С подкреплением (RL) | награда за действия | игра, где за победу +1 |
Почему LLM учатся «самоконтролируемо»: следующее слово в тексте — уже готовый правильный ответ. Не нужно размечать вручную, поэтому можно учиться на огромных объёмах текста.
Train, validation, test и переобучение
Данные делят на три части. На train модель учится. На validation выбирают настройки. На test — один раз, в конце — честно измеряют качество.
Переобучение — модель «зазубрила» обучающие примеры и плохо работает на новых. Признак: на train ошибок почти нет, на test — много. Аналогия: студент выучил ответы к билетам, а не предмет.
Метрики: почему accuracy обманывает
Спам-фильтр проверили на 1000 письмах, из них 100 — спам. Фильтр пометил как спам 90 писем, из которых 80 действительно спам.
| На самом деле спам | На самом деле не спам | |
|---|---|---|
| Фильтр сказал «спам» | 80 (верно найден — TP) | 10 (ложная тревога — FP) |
| Фильтр сказал «не спам» | 20 (пропущен — FN) | 890 (верно пропущен — TN) |
- Accuracy (доля верных) = (80 + 890) / 1000 = 0,97.
- Precision (из помеченных — сколько действительно спам) = 80 / 90 ≈ 0,889.
- Recall (из всего спама — сколько найдено) = 80 / 100 = 0,80.
- F1 (баланс precision и recall) = 2 · P · R / (P + R) ≈ 0,842.
А теперь «фильтр», который всё считает не спамом: accuracy = 900 / 1000 = 0,90, но recall = 0: он не нашёл ни одного спама. Высокая accuracy при дисбалансе классов ничего не значит. Выбирайте метрику под цену ошибки: пропустить мошенничество дороже ложной тревоги → важнее recall.
Практикум: метрики в таблице
В табличном редакторе (Excel, Google Таблицы, LibreOffice) — колонки «истина» и «предсказание» для 40 писем (набор выдаёт преподаватель). Посчитайте TP, FP, FN, TN формулами, затем accuracy, precision, recall, F1. Сравните с моделью «всё не спам». Ответьте письменно: какую метрику выбрать для фильтра банковского мошенничества и почему.
