Як я можу допомогти гарантувати, що дані тестування не просочуються до даних про навчання?


60

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

Тепер ця людина може цілком зрозуміти, що реальний тест виходить із точності (або будь-якої іншої метрики) на даних, що не є вибіркою . Однак мене турбує те, що тут є багато тонкощів, про які варто турбуватися. У простому випадку вони будують свою модель і оцінюють її за навчальними даними та оцінюють її на даних про проведене тестування. На жаль, іноді може бути занадто просто в цей момент повернутися назад і налаштувати якийсь параметр моделювання та перевірити результати на тих самих даних "тестування". На даний момент, дані вже не є справжніми позамобільними даними, і надмірне обладнання може стати проблемою.

Одним із потенційних способів вирішити цю проблему було б запропонувати створити безліч наборів наборів наборів даних, щоб кожен тестовий набір даних міг бути відкинутий після використання та не використовуватись повторно. Це вимагає великого управління даними, тим більше, що розбиття потрібно проводити перед аналізом (тому вам слід заздалегідь знати, скільки розщеплення).

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

Чи є якийсь спосіб, який я не помітив, щоб допомогти подолати проблему надмірного оснащення та тестування витоків, залишаючись дещо зрозумілим для недосвідченого користувача?


Майкл, я закрив повторювану нитку з сайту ML та об'єднав відповіді тут. Будь ласка, відредагуйте це запитання, щоб відобразити будь-які зміни, які ви хотіли внести - я не хочу цього робити, боюсь ненароком змінити своє значення.
whuber

Це питання є старим і має прийняту відповідь, але я не можу вийти з голови, що початкові передумови здаються конфліктними. Якщо мова йде про навчальні вправи, то найкращий спосіб наблизитись до цього - дозволити їм вийти з ладу та скласти нарядну модель, яка згодом не прогнозує добре. (Можливо, зберігайте таємний набір даних про утримання, що ви показуєте їм помилку їх шляхів.) Але це також здається, що у вас є некваліфіковані люди, які роблять моделі, на які хтось збирається сприйматись серйозно і діяти, і ви намагаєтеся мінімізувати шкоду. на довжині руки. Як ви кажете, є багато тонкощів.
Уейн

Відповіді:


50

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

Однак неминуче люди будуть дивитись на результати тестового набору, а потім відповідно змінювати свою модель; однак це не обов'язково призведе до покращення показників узагальнення, оскільки різниця в характеристиках різних моделей може бути значною мірою обумовлена ​​певним зразком тестових даних, які ми маємо. У цьому випадку, роблячи вибір, ми фактично перевищуємо помилку тесту.

Спосіб обмеження цього полягає в тому, щоб зробити дисперсію помилки тесту якомога меншою (тобто мінливість помилки тесту, яку ми побачимо, якби ми використовували різні вибірки даних як тестовий набір, виведений з одного і того ж базового розподілу). Це найлегше досягти, використовуючи великий тестовий набір, якщо це можливо, або, наприклад, завантажувальну або перехресну перевірку, якщо не так багато даних.

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

GC Cawley та NLC Talbot, Надмірна відповідність вибору моделі та подальша упередженість вибору в оцінці продуктивності, Journal of Machine Learning Research, 2010. Research, vol. 11, стор. 2079-2107, липень 2010 р. (Www)

Така проблема особливо впливає на використання наборів даних орієнтирів, які використовувались у багатьох дослідженнях, і кожне нове дослідження неявно впливає на результати попередніх досліджень, тому спостережувані показники, ймовірно, є надмірно оптимістичною оцінкою справжнього продуктивність методу. Я намагаюся обходити це, щоб переглянути багато наборів даних (тому метод не налаштований на один конкретний набір даних), а також використовувати декілька випадкових розбивок для тесту / навчання для оцінки ефективності (для зменшення відхилення оцінки). Однак результати все ж потребують застереження, що ці показники були надмірно придатними.

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

Якщо ви не можете зберегти статистично чистий тестовий набір, то, я боюся, два найкращі варіанти: (i) збирати нові дані для створення нового статистично чистого тестового набору або (ii) робити застереження, що базується нова модель щодо вибору, зробленого після дотримання помилки тестового набору, тому оцінка ефективності, ймовірно, має оптимістичний ухил.


1
+1 Мене вражає, наскільки добре ця відповідь поінформована досвідом і наскільки ефективно вона вирішує питання.
whuber

3
Ура, але це було моєю основною темою дослідження протягом декількох років, і я виявив, що багато процедур вибору моделей, які широко використовуються в машинному навчанні, є дуже крихкими, і чим ретельніше вони оцінюються, тим менш добре вони здаються, що вони працюють. Мене не здивувало б, що багато методів, що застосовуються в машинному навчанні, не працюють краще, ніж старіші, більш прості методи, просто через упереджені процедури вибору моделі, що використовуються під час оцінки продуктивності. Питання справді гарне, важливо не стати самою частиною процедури вибору моделі за допомогою майстерності!
Дікран Марсупіал

Дуже цікаво. (Я також підтримав саме питання, оскільки ваша відповідь змусила мене оцінити це краще.)
whuber

2
(+1) Приємна відповідь. Використання декількох класифікаторів на одному і тому ж наборі даних, що дає надмірно оптимістичний показник точності тесту, обговорювалося під час вибору оптимального класифікатора та негативного зміщення в оцінці коефіцієнта помилок: емпіричне дослідження високого розміру прогнозування , BMC MRM 2009, 9:85 (з деякими PDF-слайдами тут ), з іншими обговореннями у змісті множинних правил у порівнянні правил класифікації (Yousefi et al., Bioinformatics 2011, 27 (12): 1675).
chl

Дякую за посилання на папери, вони виглядають цікаво.
Дікран Марсупіал

15

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

Інша життєво важлива річ - забезпечити наявність репрезентативного зразка в обох наборах даних. Якщо ваш набір даних не відповідає типі даних, які ви очікуєте використовувати для прогнозування, ви можете зробити не так багато. Все моделювання спирається на припущення, що "індукція" працює - речі, яких ми не спостерігали, ведуть себе так, як ми спостерігали.

Як правило, тримайтеся подалі від складних процедур підгонки моделей, якщо (i) ви не знаєте, чим займаєтесь, і (ii) ви спробували більш прості методи, і не виявили, що вони не працюють, і як складний метод фіксує проблеми з простим методом. "Простий" і "складний" означають у значенні "простий" або "складний" для людини, яка робить примірку. Причина, яка є настільки важливою, полягає в тому, що вона дозволяє застосувати те, що мені подобається називати "нюховим тестом" до результатів. Чи правильно виглядає результат? Ви не можете «запахнути» результатами процедури, яку ви не розумієте.

ПРИМІТКА. Наступна, досить довга частина моєї відповіді ґрунтується на моєму досвіді, який знаходиться в області , можливо, можливо великий. Я майже впевнений, що наступне нижче не стосуватиметься випадків, що стосуються абоN>>p p Np N<p

Якщо у вас є великий вибірки, різниця між використанням та не використанням даного спостереження дуже мала, за умови, що ваше моделювання не надто "локальне". Це відбувається тому, що вплив даної точки даних, як правило, є порядком . Таким чином, у великих наборах даних залишки, які ви отримуєте від "тримання" тестового набору даних, в основному такі ж, як і залишки, отримані від його використання в наборі даних про навчання. Ви можете показати це за допомогою звичайних найменших квадратів. Залишковий результат, який ви виключаєте з виключення го спостереження (тобто, якою буде помилка тестового набору, якщо ми помістимо спостереження в тестовий набір), це , де є залишковим навчанням, а1Nieitest=(1hii)1eitraineitrainhiiє важелем ї точки даних. Тепер ми маємо, що , де - кількість змінних в регресії. Тепер, якщо , будь-який буде надзвичайно важким , щоб зробити помітну різницю між тестовим набором та помилками навчального набору. Ми можемо взяти спрощений приклад, припустимо, (перехоплення та змінна), матриця дизайну дорівнює (як навчальні, так і тестові набори), а важіль -iihii=ppN>>phiip=21N×pX

hii=xiT(XTX)1xi=1Nsx2(1xi)(x2¯x¯x¯1)(1xi)=1+x~i2N

Де , , і . Нарешті, є стандартизованою змінною прогнозувальника і вимірює кількість стандартних відхилень від середнього значення. Отже, ми з самого початку знаємо, що похибка тестового набору буде значно більшою, ніж помилка навчального набору для спостережень "на межі" навчального набору. Але в основному це знову репрезентативне питання - спостереження "на краю" менш репрезентативні, ніж спостереження "посередині". Крім того, це замовлення . Тож якщо у вас спостережень, навіть якщоx¯=N1ixix2¯=N1ixi2sx2=x2¯x¯2x~i=xix¯sxxi1N100x~i=5 (outlier у x-просторі за більшістю визначень), це означає , і помилка тесту занижується коефіцієнтом лише . Якщо у вас великий набір даних, скажімо, , він ще менший, , що менше . Фактично, для спостережень вам потрібно буде спостереження , щоб зробити недооцінки помилки тестового набору, використовуючи помилку навчального набору.hii=26100126100=7410010000126100001%10000x~=5025%

Тож для великих наборів даних використання тестового набору є не тільки неефективним, але й зайвим, доки . Це стосується OLS, а також приблизно стосується GLM (деталі різні для GLM, але загальний висновок той самий). У більш ніж вимірах "люди", що визначаються, визначаються спостереженнями з великими оцінками "основний компонент". Це можна показати, записавши Де - (ортогональна) матриця власного вектора для , з матрицею власного значення . Ми отримуємо , деN>>p2hii=xiTEET(XTX)1EETxiEXTXΛhii=ziTΛ1zi=j=1pzji2Λjjzi=ETxiє основним балом компонентів для .xi

Якщо ваш тестовий набір має спостережень, ви отримуєте матричну версію , де і - рядки матриці проектування в тестовому наборі. Отже, для регресії OLS ви вже знаєте, які помилки "тестового набору" були б для всіх можливих розбиття даних на навчальні та тестові набори. У цьому випадку ( ) взагалі не потрібно розділяти дані. Ви можете повідомити про помилки тесту «найкращий випадок» та «найгірший випадок» практично будь-якого розміру, фактично не потрібно розділяти дані. Це може заощадити багато часу та ресурсів ПК.ke{k}test=(IkH{k})1e{k}trainH{k}=X{k}(XTX)1X{k}TX{k}N>>p

В основному, це все зводиться до використання штрафу, щоб врахувати різницю між помилками навчання та тестування, такими як BIC або AIC. Це ефективно досягає того ж результату, що і тестовий набір, проте ви не змушені викидати потенційно корисну інформацію. За допомогою BIC ви наближаєте докази для моделі, яка виглядає математично так:

p(D|MiI)=p(y1y2yN|MiI)

Зауважте, що в цій процедурі ми не можемо оцінити жодних внутрішніх параметрів - кожна модель повинна бути повністю вказана або інтегровані внутрішні параметри. Однак ми можемо зробити це схожим на перехресну перевірку (використовуючи певну функцію втрати), повторно використовуючи правило продукту, а потім взявши журнал результату:Mi

p(D|MiI)=p(y1|MiI)p(y2yN|y1MiI)
=p(y1|MiI)p(y2|y1MiI)p(y3yN|y1y2MiI)
==i=1Np(yi|y1yi1MiI)
log[p(D|MiI)]=i=1Nlog[p(yi|y1yi1MiI)]

Це пропонує форму перехресної перевірки, але там, коли навчальний набір постійно оновлюється, одночасно спостерігається одне спостереження з тестового набору - подібне до фільтра Калмана. Ми прогнозуємо наступне спостереження з тестового набору за допомогою поточного навчального набору, вимірюємо відхилення від спостережуваного значення за допомогою умовної ймовірності журналу, а потім оновлюємо навчальний набір, щоб включати нове спостереження. Але зауважте, що ця процедура повністю перетравлює всі наявні дані, водночас переконуючись, що кожне спостереження тестується як випадок «поза вибіркою». Він також інваріантний, оскільки не має значення, що ви називаєте "спостереження 1" або "спостереження 10"; результат такий же (розрахунки можуть бути легшими для деяких перестановок, ніж інші). Функція втрат також "адаптивна" в тому, що якщо ми визначимосяLi=log[p(yi|y1yi1MiI)] , то різкість залежить від , оскільки функція втрат постійно оновлюється новими даними.Lii

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


4
+1 - хороша порада та цікаве обговорення важелів (для великих наборів даних). Я, як правило, використовую невеликі набори даних, де можливе перевиконання, і в таких ситуаціях часто дуже легко перевершити граничну ймовірність ("докази"), і в кінцевому підсумку вийти з гіршою моделлю, ніж ви починаєте. Я підозрюю, що AIC і BIC аналогічно "крихкі". По суті, оптимізація - це корінь усього зла в статистиці, оскільки будь-який вибір або параметр, який ви налаштовуєте, базуючись на кінцевій вибірці, вводить можливість надмірного пристосування. Маргіналізація набагато безпечніша, але загалом обчислювально дорога.
Дікран Марсупіал

2
+1 - особливо на третьому абзаці (спочатку використовуйте прості методи). Нагадує про добрий ol 'Pareto-Правило. Якби машинознавці пам’ятали про це перед тим, як опублікувати свою недостатню спробу довести перевагу свого нового алгоритму розведення ...
steffen

8

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

Для окремого дослідника, очевидно, найкращою практикою було б імітувати цю установку. Це означатиме відмову від деяких даних для тестування після того, як буде здійснено вибір моделі. На жаль, як ви кажете, це не практикується багатьма людьми, і це навіть трапляється з людьми, які повинні краще знати!

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

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


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

1
Деякі компанії роблять це як політику, реалізовану, наприклад, viewвстановивши відповідні дозволи бази даних, де деякі команди є тестовими, а інші - невідомими.
ijoseph

6

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

Дозвольте перелічити деякі ефективні практичні операції. Всі вони випливають із чесних помилок, які я зробив у певний момент:

  • Розділіть свої дані на три групи: поїзд, перевірка та тестування.
  • Зрозумійте налаштування проблеми, щоб мати можливість стверджувати, що розумно, а що ні. Зрозумійте проблему, багато разів тонке нерозуміння того, що представляють дані, може призвести до витоків. Наприклад, хоча ніхто не тренується і не тестує на одному кадрі одного відео, це більш тонко, коли два кадри одного і того ж відео потрапляють в різні складки, два кадри одного відео, мабуть, ділять одних і тих же людей однаковим освітленням і так далі .
  • Будьте надзвичайно обережні з раніше написаними процедурами перехресної перевірки. Тим більше, що вони не написані вами (LIBSVM тут є великим правопорушником).
  • Повторіть кожен експеримент принаймні двічі, перш ніж щось повідомляти, навіть якщо ви звітуєте зі своїм партнером по службі. Контроль версій - це ваш друг, перед тим як запустити експеримент, і запишіть, яку версію коду ви використовуєте.
  • Будьте дуже обережні, нормалізуючи свої дані. Багато разів це призводить до думки, що у вас буде повний набір даних, на який ви хочете протестувати одночасно, що знову ж таки часто не реально.

Виникло питання щодо наборів для тренувань / оцінювання, і я дав теоретичний огляд цього на машині навчання . На мій неосвічений розум, ці методи повністю вирішують вищезазначене питання, а решта - лише "проблема вчителя". Крім того, всі практики у вашому списку, здається, виправляють "просто неохайні, неприпустимі помилки", і я там не бачу тонкощів. Мені дуже хочеться зрозуміти, чого мені не вистачає - можете прокоментувати?
andreister

Я згоден, що всі вони походять від неохайності. Я також згадував, що вони взагалі не теоретичні (сказав, що вони функціонують). Я трохи відредагував свій пост.
carlosdc

5

Багато важливих моментів були висвітлені у відмінних відповідях, які вже даються.

Останнім часом я розробив цей особистий контрольний список щодо статистичної незалежності тестових даних:

  • Розбиття даних на найвищому рівні ієрархії даних (наприклад, розбиття за пацієнтом)
  • Розділити також незалежно від відомих або підозрюваних плутанини, таких як щоденні зміни інструментів тощо.
  • (DoE повинен дбати про випадкову послідовність вимірювань **)
  • Усі етапи розрахунку, починаючи з першого (зазвичай попереднього) етапу, що включає більше одного пацієнта *, повинні бути перероблені для кожної сурогатної моделі для перевірки переустановки. Для проведення валідації тестування / незалежного тестування пацієнтів потрібно відокремити перед цим етапом.
    • Це незалежно від того, називається обчислення попередньою обробкою чи вважається частиною фактичної моделі.
    • Типові винуватці: середнє центрування, масштабування дисперсії (як правило, лише легкий вплив), зменшення розмірності, наприклад, PCA або PLS (може спричинити великі зміщення, наприклад, недооцінку відсутності помилок на порядок)
  • Будь-який тип оптимізації або вибору моделі, керованої даними, потребує іншого (зовнішнього) тестування для незалежної перевірки кінцевої моделі.
  • Існують деякі типи продуктивності узагальнення, які можна виміряти лише за допомогою окремих незалежних тестових наборів, наприклад, як прогнозована продуктивність погіршується для випадків, виміряних у майбутньому (я не маю справу з прогнозуванням часових рядів, лише з переміщенням інструментів). Але для цього потрібно правильно розроблене валідаційне дослідження.
  • У моєму полі є ще один своєрідний тип витоку даних: ми робимо просторово розв'язану спектроскопію біологічних тканин. Посилання на тестування тестових спектрів повинні бути засліплені спектроскопічною інформацією, навіть якщо це спокусливо використовувати кластерний аналіз, а потім просто з’ясувати, до якого класу належить кожен кластер (це були б напівнаглядові дані випробувань, які не є незалежний взагалі).

  • І останнє, але, безумовно, не менш важливе: коли кодую перевірку переустановки, я фактично перевіряю, чи не розраховані показники в наборі даних не призводять до захоплення рядків тестування з навчальних пацієнтів, днів тощо.

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

* Я використовую пацієнтів як найвищу ієрархію даних лише для простоти опису.
** Я аналітичний хімік: дрейф приладів - відома проблема. Фактично, частина валідації методів хімічного аналізу полягає у визначенні того, як часто калібрування потрібно перевіряти на зразок валідації та як часто калібрування потрібно переробляти.


FWIW: На практиці я маю справу з додатками, де

  • p - в порядку величини ,102103
  • pnrows зазвичай більше , алеp
  • n p a t i e n t sp 10 0 - 10 1 10 2nbiol.replicates або є (порядок величини: , рідко )npatientsp100101102
  • Залежно від методу спектроскопічного вимірювання, всі рядки одного, скажімо, пацієнта можуть бути дуже схожими або досить різними, оскільки різні типи спектрів мають співвідношення сигнал / шум (похибка приладу), також змінюється на порядок величини або близько того

Особисто мені ще не доводилося зустрічатися з додатком, де для розробки класифікаторів я отримую достатньо незалежних випадків, щоб дозволити відміняти належний незалежний тестовий набір. Таким чином, я дійшов висновку, що правильно виконана перевірка перекомпонування є кращою альтернативою, поки метод ще не розробляється. Нарешті слід перевірити належну перевірку валідації, але це величезна витрата ресурсів (або результати не несуть корисної інформації через розбіжність), роблячи це, поки розробка методу перебуває на стадії, коли все ще змінюється.


2

Якщо я правильно пам’ятаю, деякі конкурси з прогнозування (наприклад, Netflix або конкурси на Kaggle) використовують цю схему:

Існує навчальний набір, з "відповідями". Існує тестовий набір №1, на який дослідник дає відповіді. Дослідник з’ясовує їх бал. Існує тестовий набір №2, на який дослідник дає відповіді, АЛЕ дослідник не дізнається їх балів. Дослідник не знає, які випадки прогнозування є у №1 та №2.

У якийсь момент набір №2 повинен стати видимим, але ви принаймні обмежили забруднення.


2

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

Наприклад, для предикторів на основі послідовностей потрібно видалити надмірність, гарантуючи, що послідовності в різних наборах (включаючи різні набори перехресної перевірки) не мають високого рівня подібності послідовностей.


2

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


Коли люди "ще навчаються", часто думають, ніби вони вчаться "швидко і спритно" застосовувати алгоритми та всі "зайві" знання (мотивація проблеми, підготовка набору даних, перевірка, аналіз помилок, практичні роботи і так далі ) дізнаються "пізніше", коли вони будуть "більш підготовленими".

Це абсолютно неправильно.

  1. Якщо ми хочемо, щоб студент або хто-небудь зрозумів різницю між тестовим набором і навчальним набором, найгірше буде дати два набори двом різним хлопцям так, ніби ми думаємо, що "на цьому етапі" "додаткові знання" шкідливий. Це як підхід водоспаду в розробці програмного забезпечення - кілька місяців чистого дизайну, потім кілька місяців чистого кодування, потім кілька місяців чистого тестування і шкода викидання в результаті.

  2. Навчання не повинно йти як водоспад. Усі частини навчання - мотивація проблеми, алгоритм, практичні показники, оцінка результатів - повинні поєднуватися невеликими кроками. (Як і спритний підхід у розробці програмного забезпечення).

Можливо, всі тут пройшли через ml-class.org Ендрю Нґ - я б наводив його курс як приклад міцного "спритного", якщо хочете, стилю навчання - того, який ніколи не поставив би питання "як це зробити переконайтесь, що дані тестів не просочуються у дані тренувань ".


Зауважте, що я, можливо, повністю зрозумів ваше запитання, тож вибачте! :)


Навчання для людини (тобто навчання моделюванню взагалі) не повинно йти як водоспад, а навчання за моделлю повинно. Інакше біти тестових даних проникнуть у дані тренувань, і ваша модель більш схильна до переозброєння.
Майкл МакГоуан

І я думав про це більше з програмного кінця. Користувач будує модель, яка отримує 90% точності на тренуванні та 75% точності на тестуванні. Потім вони налаштовують деякі кнопки та налаштування в програмному забезпеченні та отримують 80% точності при "тестуванні". Вони знову повертаються і роблять більше перетворень і отримують 85% точності при "тестуванні". Але цей так званий "тестуючий" набір даних вже не є вибірковим, і модель була надмірно придатною до нього.
Майкл МакГоуан

Саме так. Це проблема навчання людини (проблема вчителя, якщо ви хочете). Це слід розкрити якнайшвидше, а не приховувати штучними засобами "забезпечення X не просочуватися в Y"
andreister

Люди, які повинні краще знати, все одно зроблять цю помилку. Ви можете певним чином пом'якшити цей ефект у пакеті програм із робочим процесом, який неявно або явно заохочує добру практику та відлякує погану практику. Те, що людина повинна краще знати, не є причиною ігнорувати проблему.
Майкл Макгован

@MichaelMcGowan - ви також ігноруєте переваги протікання - що ваш алгоритм потенційно був покращений за допомогою тестового набору (тобто поїзд + тест - це більше даних, ніж лише поїзд). Це дійсно просто інший компроміс, покращена точність та покращене вимірювання точності. Для моєї справи важливіше колишнє.
ймовірністьлогічний
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.