Домашнє завдання

Наскрізний проєкт

Тема була про порядок дій, а не про новий прийом. Тому й завдання перевіряють порядок: не «яка вийшла метрика», а «чи можна цьому числу вірити».


рівень 1Рівень 1 — База

Візьми зошит із практики й доведи його до кінця ще раз, змінивши рівно одну річпоріг рішення.

  1. Навчи фінальну модель на всій навчальній частині (це вже зроблено в зошиті).
  2. Отримай ймовірності на тесті: фінальна_модель.predict_proba(...)[:, 1].
  3. Для порогів 0.3, 0.5, 0.7 порахуй чотири числа: скільки шахраїв пропущено, скільки чесних продавців потурбовано, precision і recall.
  4. Склади з цього таблицю на три рядки.

Далі — головне питання, і воно не технічне. Уяви, що ти відповідаєш за дошку оголошень. Який поріг ти б поставив і чому? Відповідь має спиратись не на «F1 найбільший», а на ціну двох помилок.

Зроблено, якщо: є таблиця з трьох рядків із чотирма числами в кожному, і є одне-два речення про вибраний поріг, у яких сказано, чия помилка тобі дорожча — покупця чи чесного продавця.


рівень 2Рівень 2 — Плюс

У розділі 8 практики ми з'ясували, що 62 % помилок сидять у 8 % рядків — тих, де ціни немає. Перевір, чи можна це полагодити ознакою.

Додай до додати_ознаки дві нові:

Проміряй оцінити() тричі: без нових ознак, із першою, з обома. Потім подивись на матрицю помилок і скажи, чи змінилась частка помилок серед рядків без ціни.

Увага: результат «жодна з двох ознак нічого не дала» — правильна відповідь, якщо це те, що показали числа. Ховати невдалу спробу не можна; тема саме про це.

Зроблено, якщо: є три значення F1, є частка помилок серед рядків без ціни до і після, і є висновок одним реченням — спрацювало чи ні, і чому ти так думаєш.


рівень 3Рівень 3 — Виклик

Проведи власний наскрізний проєкт на своїх даних. Не на нашій дошці — на будь-якій таблиці, яка тобі цікава: витрати з банківської виписки, статистика ігор улюбленої команди, оцінки в школі, будь-що з відкритих даних. Головна вимога — ти маєш розуміти предметну область, бо без цього не вийде ні постановки, ні аналізу помилок.

Пройди всі кроки в тому самому порядку й запиши результат кожного:

крок що має бути в звіті
1. Постановка що передбачаємо, у який момент, кому це потрібно, ціна кожної помилки, обрана метрика — до будь-якого навчання
2. Поділ тест відкладено першою дією; сказано, скільки рядків і чому саме стільки
3. Розвідка тільки на навчальній частині; окремо перевірено, чи немає колонки, якої в момент прогнозу ще не існує
4. Базова лінія число дурного прогнозу
5. Перша модель проста модель у конвеєрі, крос-валідація
6. Ітерації щонайменше три спроби, кожна з числом до і після; щонайменше одна невдала
7. Помилки подивився на конкретні рядки, де модель помилилась, і назвав, що в них спільного
8. Тест один замір, один раз, наприкінці
9. Висновок чи можна це запускати і що заважає

Якщо своїх даних немає — візьми sklearn.datasets.fetch_openml або будь-який відкритий набір, який завантажується локально. Але постановку все одно пиши своїми словами: «що передбачаємо і навіщо» має бути зрозуміло людині, яка не бачила таблиці.

Зроблено, якщо:

  1. усі дев'ять кроків пройдено, у кожного є число або чітке рішення;
  2. серед ітерацій є щонайменше одна, яка погіршила метрику, і вона не викинута зі звіту;
  3. тест поміряно рівно один раз, і число з тесту не краще за крос-валідацію (а якщо краще — ти пояснив, чому так вийшло);
  4. у звіті є речення «запускати можна / не можна, бо…» з обґрунтуванням не через метрику, а через задачу.

Підказки