Art of DS

Вигляд

Палітра
Тема
Доступ $20 одноразово
Увійти або створити акаунт

Вхід до Art of DSСтворіть акаунт Art of DS

Ми надішлемо на пошту посилання й шестизначний код. Увійти можна будь-яким із них; пароля немає.Введіть свою пошту. Ми надішлемо посилання й шестизначний код, щоб її підтвердити, — пароль не потрібен. Акаунт безкоштовний.

  • Ви повернетеся на цю сторінку, туди, де зупинилися.
  • Уже маєте акаунт? З тією самою адресою ви просто ввійдете.

Продовжуючи, ви приймаєте Умови та Політику конфіденційності.

Ваш акаунт

Безкоштовний акаунтДоступ назавжди

Машинне навчання · 7 у порівнянні

Validation strategies

Визначення

Кожен метод тут відповідає на одне питання: на яких рядках можна оцінювати модель. Спершу прочитайте стовпець «Ламається, коли»: хибний вибір дає не помилку, а краще число.

Порівняння

Назва Як ділить Навчань моделі Кожен рядок тестується Зберігає Ламається, коли
Holdout Один поділ, одна оцінка. Дешево, і це єдина стратегія, що дає недоторкану оцінку саме тієї моделі, яку ви випускаєте, — якщо дивитися на неї один раз.1один раз або ніколиза замовчуванням нічогонабір даних малий
K-fold Відкладену частину обертають k способами, тож кожен рядок прогнозує модель, яка його не бачила. Типовий вибір і базова лінія, яку варіює решта таблиці. Повна сторінка →kрівно один разза замовчуванням нічогорядки не взаємозамінні
Stratified k-fold K-кратна, що тримає баланс класів у кожному фолді рівним балансу всього набору. Нічого не коштує додатково й безпечніша як типовий вибір на задачах класифікації. Повна сторінка →kрівно один разбаланс класіврядки згруповані чи впорядковані
Grouped k-fold Тримає всі рядки однієї одиниці — пацієнта, користувача, сесії, пристрою — по один бік поділу, тож модель не може впізнати суб’єкта, якого вже зустрічала. Повна сторінка →kрівно один размежі групгрупи невідомі
Time series split Кожен навчальний набір — префікс, а кожен тестовий блок іде після нього, тож модель ніколи не навчається на даних, пізніших за точку, де її оцінюють. Повна сторінка →kщонайбільше один разчасовий порядокви їх перемішуєте
Leave-one-out K-кратна, доведена до межі: щоразу відкладають один рядок. Майже незміщена й максимально корельована між фолдами, а це найгірший випадок для оцінки її власної дисперсії. Повна сторінка →nрівно один разза замовчуванням нічогоn велике або потрібен інтервал
Nested cross-validation Внутрішній цикл обирає модель, а зовнішній оцінює те, що обрав внутрішній, тож налаштування ніколи не бачить рядків, які його оцінюють. Повна сторінка →k × mрівно один раз на циклмежа виборубюджету не вистачає

На шпаргалці: Validation and generalisation →

Прочитайте стовпець Ламається, коли раніше за інші. Кожен рядок цієї таблиці видає число, хоч які дані ви йому дасте, а спліттер, що не пасує вашим даним, не скаржиться — він повертає вищу оцінку. Саме ця асиметрія робить таблицю вартою запам’ятовування, а не довідковою.

Перші три рядки — один метод із доданими запобіжниками

Відкладена вибірка, k-кратна і стратифікована k-кратна крос-валідація різняться лише тим, скільки структури вони обіцяють зберегти. K-кратна — це «концептуально просте покращення порівняно з одноразовим поділом на навчальний і тестовий набори» [2, §1.2], а стратифікація — це k-кратна з однією додатковою гарантією: кожен фолд «містить приблизно той самий відсоток зразків кожного цільового класу, що й повний набір» [1, §3.1.2.2].

На задачі класифікації немає причин віддавати перевагу простій k-кратній перед стратифікованою. Вона коштує стільки ж і виключає фолд, якому випадково бракує класу.

traintestfold 1fold 2fold 3fold 4fold 5predictedevery sample tested exactly once
Five-fold cross-validation on ten samples, with the real assignment KFold produces. Each row trains on eight samples and is scored on the two it never saw, and the held-out block walks the length of the data. The bar underneath is the reason the whole scheme exists: after five rounds every sample has been predicted exactly once by a model that was not fitted on it, so the estimate uses all the data without any model ever grading its own work.

Наступні три рядки існують тому, що рядки не незалежні

Тут таблиця й відпрацьовує своє. KFold припускає, що будь-який рядок може опинитися навпроти будь-якого іншого, а три поширені види даних це порушують.

Згруповані дані. Коли кілька рядків походять від одного суб’єкта, випадковий поділ кладе того самого суб’єкта по обидва боки. Групові фолди гарантують, «що та сама група не представлена і в тестовому, і в навчальному наборах», а це важить саме тоді, коли «модель достатньо гнучка, щоб вчитися з дуже специфічних для людини ознак» [1, §3.1.2.4]. Наслідок помилки тут не тонкий: це витік, і категорія [L3.2] огляду описує «крайній (але, на жаль, поширений) випадок», коли «навчальні й тестові зразки походять від тих самих людей чи одиниць» [3, §2.4].

Упорядковані дані. Для часових рядів «послідовні навчальні набори є надмножинами тих, що йдуть перед ними» [1, §3.1.2.6], бо тестовий набір «не повинен містити жодних даних з дати, що передує навчальному набору» [3, §2.4].

traintestnot yet availablesplit 1split 2split 3split 4
The same ten samples split for time series. Every training set is a prefix of the data and every test block sits immediately after it, so the model is never fitted on a point that comes after the one it is being scored on. Two things follow, and both are visible: the early splits train on very little, and samples 0 and 1 are never tested at all. Shuffling would fix both and destroy the guarantee.

Перемішування заслуговує на окреме застереження, бо в багатьох місцях воно є типовим налаштуванням і іноді саме хибне. Для рядків, упорядкованих за часом, «перемішування даних, імовірно, дасть перенавчену модель і роздуту валідаційну оцінку: її тестуватимуть на зразках, штучно схожих (близьких у часі) на навчальні» [1, §3.1.3].

Чого не дає жоден із них

Оцінки вашої моделі. Кожен рядок цієї таблиці оцінює середню похибку процедури по наборах даних, а не похибку тієї підгонки, яку маєте ви. Цю відмінність доведено, а не проголошено: крос-валідація «дає мало інформації» про похибку наявної моделі, і її «слід розглядати як оцінку Err, а не ErrXY» [2, §3.1].

Придатного довірчого інтервалу. Похибки фолдів корельовані, бо кожен рядок використовується і для навчання, і для тестування, тож звичайна оцінка дисперсії замала, а інтервали завузькі [2, §1]. Справа не в ретельності: «не існує незміщеного оцінювача стандартної похибки точкової оцінки CV на основі одного запуску CV» [2, §1.2]. Ліки статті — вкладена крос-валідація [2, §4.3], і саме їй відведено останній рядок таблиці.

Що обрати

Почніть зі стратифікованої k-кратної з k = 5. Це правильне типове налаштування майже для кожної задачі класифікації з незалежними рядками.

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

Переходьте на часові ряди щоразу, коли прогноз стосується майбутнього, і змиріться з тим, що перші фолди навчатимуться на дуже малому.

Додайте вкладену, коли ви налаштовуєте й звітуєте те саме число, яке інакше є максимумом багатьох шумних оцінок [1, §3.1.4].

Хоч що б ви робили ще, тримайте відкладену вибірку, на яку подивитеся один раз, наприкінці. Це єдиний рядок цієї таблиці, що оцінює те, що, на думку зацікавленої сторони, означає число.

Джерела

  1. scikit-learn User Guide — Cross-validation: evaluating estimator performancedocs · звірено 2026-09-06https://scikit-learn.org/stable/modules/cross_validation.html
  2. Bates, Hastie, Tibshirani. Cross-validation: what does it estimate and how well does it do it? (2023)paperhttps://ar5iv.labs.arxiv.org/html/2104.00673
  3. Kapoor, Narayanan. Leakage and the Reproducibility Crisis in ML-based Science (2023)paperhttps://ar5iv.labs.arxiv.org/html/2207.07048

Маєте промокод?

Код зі знижкою 100% одразу відкриває все. Менша знижка віднімається від ціни у вікні оплати: введіть там той самий код.

Написати в підтримку

Питання, проблема з доступом, повернення коштів? Напишіть нам, і ми відповімо листом.

Про що це?

Адресу використаємо лише для відповіді вам.

Повідомлення надіслано

Дякуємо. Відповімо листом на адресу, яку ви вказали.

Або напишіть нам напряму

support@artofds.com

Повідомлення надіслано Дякуємо. Відповімо листом на адресу, яку ви вказали.

Перевірте адресу пошти: вона потрібна, щоб відповісти.

Це наша адреса. Вкажіть свою, щоб відповідь дійшла до вас.

На цю адресу не можна надіслати лист. Перевірте, чи немає помилки.

Напишіть трохи більше: щонайменше 10 символів.

Забагато повідомлень за короткий час. Спробуйте за кілька хвилин.

Не вдалося надіслати повідомлення. Напишіть нам напряму: support@artofds.com