Як вибрати модель прогнозування після перехресної перевірки k-кратної?


148

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

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

Мені хотілося б знати, як вибрати одну з моделей K, щоб я міг представити її комусь і сказати «це найкраща модель, яку ми можемо виготовити».

Чи добре вибрати будь-яку з моделей K? Або існує якась найкраща практика, наприклад, вибір моделі, яка досягає медіанної помилки тесту?


2
Ви можете знайти відповіді на наступне запитання: stats.stackexchange.com/questions/2306/…
BGreene

Вам потрібно буде повторити 5-кратний резюме 100 разів і провести середнє значення для отримання достатньої точності. А відповідь від @bogdanovist - це місце. Ви можете отримати таку ж точність оцінки точності з завантажувального пристрою з меншою кількістю модельних підходів.
Френк Харрелл

@Frank Harrell, чому ти кажеш, що потрібно 100 повторень (я зазвичай використовую 10 повторень у 10 разів), це правило, оскільки ОП не дало жодної конкретики?
BGreene

2
50

Майже точний дублікат: stats.stackexchange.com/questions/11602 з великою кількістю гідних відповідей. Можливо, ці нитки слід об'єднати, але я не впевнений, в якому напрямку. Обидва прийняли відповіді, які дуже добре. Але інша є старшою і має більше переглядів / оновлень, тому може бути сенсом об'єднати цей із цим.
амеба

Відповіді:


200

Я думаю, що вам все-таки щось не вистачає в розумінні мети перехресної перевірки.

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

Отже, коли ви робите перехресну перевірку K-кратного вибору, ви тестуєте, наскільки ваша модель здатна навчитися деяким даним, а потім передбачити дані, які вона не бачила. Для цього ми використовуємо перехресну перевірку, оскільки якщо ви тренуєтесь, використовуючи всі наявні дані, у вас не залишилося нічого для тестування. Ви можете зробити це один раз, скажімо, використовуючи 80% даних для тренувань і 20% для тестування, але що робити, якщо 20%, яких ви вибрали для тестування, містять купу очок, які є дуже простими (або особливо важкими) передбачити? Ми не придумаємо найкращої можливої ​​оцінки можливостей моделей вивчати та прогнозувати.

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

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

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

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


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

19
Немає! Переозброєння пов'язане зі складністю моделі, вона не має нічого спільного з кількістю даних, що використовуються для підготовки моделі. Складність моделі пов'язана з методом, який використовує модель, а не зі значеннями, які приймають її параметри. Наприклад, чи слід включати x ^ 2 коефіцієнти, а також x коефіцієнти в регресійній моделі.
Богдановіст

17
@Bogdanovist: Я скоріше кажу, що надмірне обладнання має відношення до того, що занадто мало навчальних випадків для занадто складної моделі. Тож це (також) пов'язане з кількістю навчальних випадків. Але наявність більшої кількості навчальних випадків знизить ризик перевитрати (для постійної складності моделі).
cbeleites

3
@Bogdanovist For that we want to use all the data we have to come up with the best model possible.- Виконуючи пошук сітки з перехресною валідацією K-кратного чи означає це, що ви використовуєте найкращі параметри, знайдені за допомогою пошуку в сітці, і вкладаєте модель на всі дані тренувань, а потім оцінюєте ефективність узагальнення за допомогою тестового набору?
arun

4
@arun, якщо ви використовували k-кратну перехресну валідацію та вибрали найкращу модель з найкращими параметрами та гіпер-параметрами, то після встановлення кінцевої моделі над навчальним набором вам не потрібно буде знову перевіряти продуктивність за допомогою тестовий набір. Це тому, що ви вже перевірили, як модель із заданими параметрами поводилася на невидимі дані.
Sandeep S. Sandhu

29

Дозвольте навести кілька пунктів на додаток до відповіді Богдановіста

k

Зараз у цьому процесі є деякі припущення.


  • k

  • k
    Nk1kkk

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

Відмінності в спостережуваних показниках зумовлені цими двома джерелами дисперсії.

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

Ви можете поглянути на наш документ, мова йде про класифікацію, де справи зазвичай гірші, ніж для регресії. Однак, це показує, як ці джерела дисперсії та упередженості складаються.
Белейтс, К. і Нойгебауер, У. і Бокліц, Т. і Крафтт, К. і Попп, Дж .: Планування розмірів зразків для класифікаційних моделей. Anal Chim Acta, 2013, 760, 25-33.
DOI: 10.1016 / j.aca.2012.11.007
прийнято рукопис на arXiv: 1211.1323


Ви з Богдановістом не згідні, коли ви говорите, picking "the best" of the surrogate models is a data-driven optimization, you'd need to validate (measure performance) this picked model with new unknown data. The test set within this cross validation is not independent as it was used to select the surrogate model.і він каже: But once we have used cross-validation to select the better performing model, we train that model (whether it be the linear regression or the neural network) on all the data.Це досить часто, і дуже важливо, щоб було визначено стандартизований підхід
jpcgandre

Особливо для невеликих наборів даних, де, можливо, залишати дані з CV просто неможливо, але ризики переобладнати вашу модель також високі! Для роз’яснення цього питання потрібні посилання.
jpcgandre

5
@jpcgandre: Я не бачу жодної незгоди. Богдановіст пояснює, як насправді обчислити модель вибору з гіперпараметрів, які були обрані за допомогою перехресної перевірки, і я додав, що після такого відбору модель повинна пройти інший (зовнішній) незалежний рівень валідації. Іншими словами, наприклад, вкладений дизайн валідації: внутрішній цикл перевірки для вибору гіперпараметра, зовнішній цикл для тестування вибраних моделей (якщо у вас є достатньо випадків, ви також можете перейти до незалежного тестового набору).
cbeleites

5
Налаштування внутрішньої / зовнішньої перевірки призначена для перехресної перевірки, відомої як подвійна або вкладена перехресна валідація, я бачив, що вона також називається перехресною валідацією ( dx.doi.org/10.1016/j.chemolab.2006.04.021 ). З незалежним тестовим набором він відповідає поділу на три набори: поїзд / (оптимізація) валідація / тест (= остаточне підтвердження). Якщо у вас так мало випадків, що ви не можете залишити дані для резюме другого рівня, я б стверджував, що вам слід виправити свої гіперпараметри іншими способами, а не намагатися оптимізувати, вибравши один із наборів гіперпараметрів.
cbeleites

@cbeleites У мене питання. Тоді, щоб отримати остаточні параметри моделі, ви взяли б середнє значення гіперпараметрів від кожної зовнішньої складки та переучили весь набір даних, використовуючи цей усереднений гіперпараметр? Або робити пошук гіперпараметрів у звичайному резюме, а потім підтвердити стабільність цього методу, використовуючи повторне вкладене резюме?
Мішель

11

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

В основному ми використовуємо резюме (наприклад, розділення 80/20, k-складка тощо), щоб оцінити, наскільки добре буде виконуватися вся ваша процедура (включаючи інженерію даних, вибір моделі (тобто алгоритм) та гіперпараметри тощо) на майбутніх невидимих дані. І як тільки ви вибрали виграшну «процедуру», пристосовані моделі з CV виконали своє призначення і тепер їх можна відкинути. Потім ви використовуєте ту саму виграшну "процедуру" і тренуєте остаточну модель, використовуючи весь набір даних.


1

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

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

Наприклад, ви вибираєте альго LinearRegression і виконуєте дві операції на одному навчальному наборі: одну з 10-кратною перехресною валідацією, а іншу в 20 разів. модель регресії (або класифікатора) повинна бути однаковою, але коефіцієнт кореляції та відносна помилка кореня у корені різні.

Нижче наведено два прогони на 10-кратну та 20-кратну перехресну перевірку за допомогою weka

1-й пробіг у 10 разів

=== Run information ===
Test mode:    10-fold cross-validation
...
=== Classifier model (full training set) ===


Linear Regression Model  <---- This model is the same

Date = 844769960.1903 * passenger_numbers -711510446549.7296

Time taken to build model: 0 seconds

=== Cross-validation ===  <---- Hereafter produced different metrics
=== Summary ===

Correlation coefficient                  0.9206
Mean absolute error                35151281151.9807
Root mean squared error            42707499176.2097
Relative absolute error                 37.0147 %
Root relative squared error             38.9596 %
Total Number of Instances              144     

2-й пробіг у 20 разів

=== Run information ===
...
Test mode:    20-fold cross-validation

=== Classifier model (full training set) ===


Linear Regression Model   <---- This model is the same

Date = 844769960.1903 * passenger_numbers -711510446549.7296

Time taken to build model: 0 seconds

=== Cross-validation ===  <---- Hereafter produced different metrics
=== Summary ===

Correlation coefficient                  0.9203
Mean absolute error                35093728104.8746
Root mean squared error            42790545071.8199
Relative absolute error                 36.9394 %
Root relative squared error             39.0096 %
Total Number of Instances              144     

0

Я не впевнений, що обговорення вище цілком коректне. Під час перехресної перевірки ми можемо розділити дані на Навчання та Тестування для кожного запуску. Використовуючи дані тренінгу лише, потрібно підходити до моделі та вибирати параметри настройки у кожному класі моделей, що розглядаються. Наприклад, у Neural Nets параметрами настройки є кількість нейронів та вибір функції активації. Для цього необхідно один перехресне підтвердження лише в даних про навчання .

Після того, як буде знайдена найкраща модель у кожному класі, оцінка найкращої моделі оцінюється за допомогою даних тесту. "Зовнішній" цикл перехресної перевірки може бути використаний для кращої оцінки показників тестових даних, а також для оцінки змінності. Потім обговорення може порівняти ефективність тестів для різних класів, наприклад Neural Nets vs. SVM. Вибирається один клас моделі з фіксованим розміром моделі, і тепер усі дані використовуються для вивчення найкращої моделі.

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


0

Чому ми використовуємо k-кратну перехресну перевірку?

Перехресне підтвердження - це метод оцінювання майстерності методу за невидимими даними. Наче використання тесту на поїзд-тест.

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

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

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

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

довідник

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.