Коли ми робимо k-кратну перехресну перевірку, чи слід просто використовувати класифікатор, який має найвищу точність тесту? Який, як правило, найкращий підхід для отримання класифікатора від перехресної перевірки?
Коли ми робимо k-кратну перехресну перевірку, чи слід просто використовувати класифікатор, який має найвищу точність тесту? Який, як правило, найкращий підхід для отримання класифікатора від перехресної перевірки?
Відповіді:
Ви робите перехресну перевірку, коли хочете виконати будь-яку з цих двох речей:
Вибір моделі може здійснюватися в різних сценаріях:
(зауважте, що якщо ви обираєте алгоритм - краще називати його моделлю - а також здійснюєте пошук гіперпараметрів, вам потрібно зробити вкладену перехресну перевірку. Чи дійсно потрібен Nested-CV? )
Перехресна перевірка певною мірою гарантує, що оцінка помилки є найближчою можливою, оскільки помилка узагальнення для цієї моделі (хоча це дуже важко наблизити). Під час спостереження за середньою помилкою серед складок ви можете добре прогнозувати очікувану помилку для моделі, побудованої за повним набором даних. Також важливо спостерігати дисперсію прогнозу, це те, наскільки похибка варіюється від складки до кратності. Якщо варіація занадто велика (значно різні значення), модель, як правило, нестабільна. Інший метод, що забезпечує гарне наближення в цьому сенсі. Я пропоную уважно прочитати розділ 7 про "Елементи статистичного навчання", що є у вільному доступі за адресою: ELS-Standford
Як вже було сказано раніше, ви не повинні брати вбудовану модель ні в одну складку. Натомість вам доведеться перебудувати модель із повним набором даних (тим, який був розбитий на складки). Якщо у вас є окремий тестовий набір, ви можете скористатися ним, щоб спробувати цю остаточну модель, отримавши аналогічну (і, безумовно, більшу) помилку, ніж помилка, отримана CV. Однак слід покладатися на оціночну помилку, надану процедурою резюме.
Після виконання резюме з різними моделями (комбінація алгоритмів тощо) обрав той, який краще показав помилку та її відмінність між складками. Вам потрібно буде відновити модель з усім набором даних. Тут виникає загальна плутанина в термінах: ми загалом посилаємося на вибір моделі, думаючи, що модель - це готова до прогнозування модель, побудована на даних, але в цьому випадку йдеться про комбінацію алгоритму + процедур попередньої обробки, які ви застосовуєте. Отже, для отримання фактичної моделі, яка вам потрібна для прогнозування / класифікації, вам потрібно побудувати її, використовуючи комбінацію переможців у цілому наборі даних.
Останнє, що слід зазначити, що якщо ви застосовуєте будь-який вид попередньої обробки використовує інформацію про клас (вибір функції, зменшення розмірності LDA тощо), це повинно виконуватись у кожному складі, а не раніше на даних. Це критичний аспект. Потрібно зробити те ж саме, якщо ви застосовуєте методи попередньої обробки, які передбачають пряму інформацію даних (PCA, нормалізація, стандартизація тощо). Однак ви можете застосувати попередню обробку, яка не залежить від даних (видалення змінної після висновку експерта, але це очевидно). Це відео може допомогти вам у цьому напрямку: перевірте правильний та неправильний шлях
Ось остаточне приємне пояснення щодо теми: резюме та вибір моделі
Ні. Ви не вибираєте жодного з k класифікаторів, побудованих під час перехресної перевірки k-кратного. Перш за все, метою перехресної валідації є не придумати прогнозну модель, а оцінити, наскільки точно прогнозована модель буде працювати на практиці. По-друге, заради аргументації скажімо, що ви мали використовувати перехресну валідацію k-кратну з k = 10, щоб з’ясувати, який із трьох різних алгоритмів класифікації був би найбільш підходящим для вирішення заданої класифікаційної задачі. У цьому випадку дані випадковим чином діляться на k частини однакової величини. Одна з частин зарезервована для тестування, а решта частини k-1 будуть використані для навчання. Процес перехресної перевірки повторюється k (кратно) разів, так що для кожної ітерації для тестування використовується інша частина. Після запуску перехресної перевірки ви дивитесь на результати кожної складки та дивуєтесь, який алгоритм класифікації (не будь-яка з навчених моделей!) Є найбільш підходящим. Ви не хочете вибирати алгоритм, який має найвищу точність тесту на одній з 10 ітерацій, тому що, можливо, просто випадково трапилось, що дані тесту на цій конкретній ітерації містили дуже прості приклади, які потім призводять до високої точності тесту. Що ви хочете зробити, це вибрати алгоритм, який дав би найкращу точність які потім призводять до високої точності випробувань. Що ви хочете зробити, це вибрати алгоритм, який дав би найкращу точність які потім призводять до високої точності випробувань. Що ви хочете зробити, це вибрати алгоритм, який дав би найкращу точністьусереднено по всіх k складках . Тепер, коли ви вибрали алгоритм, ви можете тренувати його, використовуючи цілі дані тренувань, і починати робити прогнози в дикій природі.
Це виходить за рамки цього питання, але ви також повинні оптимізувати гіперпараметри моделі (якщо такі є), щоб отримати максимальну користь від обраного алгоритму. Люди зазвичай проводять оптимізацію гіперпараметрів за допомогою перехресної перевірки.
Тож припустимо, що у вас є навчання, з яких ви використовуєте 80% як навчання, а відпочинок 20% - як дані валідації. Ми можемо тренуватися на 80% і тестувати на решті 20%, але можливо, що 20%, які ми взяли, не співпадають з фактичними даними тестування і можуть виявитись поганими. Отже, щоб запобігти цьому, ми можемо використовувати перехресну перевірку k-кратної.
Отже, скажімо, що у вас є різні моделі та хочете знати, яка краща ефективність із вашим набором даних, k-кратна перехресна перевірка чудово працює. Ви можете знати помилки валідації у виконанні k-валідації та вибирати кращу модель на основі цього. Це, як правило, мета перехресної валідації k-кратного.
Перейшовши до однієї моделі і якщо ви перевіряєте перехресну перевірку k-кратною можливістю, ви можете отримати приблизну помилку тестових даних, але when you are actually training it finally, you can use the complete training data
. (Оскільки тут передбачається, що всі дані разом будуть краще, ніж частина її . Іноді це може бути не так, але це загальне припущення.)