Чи може хто-небудь сказати мені, що саме дає аналіз перехресної перевірки? Це просто середня точність чи вона дає будь-яку модель з налаштованими параметрами?
Тому що я десь чув, що для настройки параметрів використовується перехресна перевірка.
Чи може хто-небудь сказати мені, що саме дає аналіз перехресної перевірки? Це просто середня точність чи вона дає будь-яку модель з налаштованими параметрами?
Тому що я десь чув, що для настройки параметрів використовується перехресна перевірка.
Відповіді:
Перехресна перевірка дає міру точності поза вибіркою шляхом усереднення кількох випадкових розділів даних у навчальних та тестових зразках. Він часто використовується для настройки параметрів, роблячи перехресну перевірку для кількох (або багатьох) можливих значень параметра та вибираючи значення параметра, яке дає найменшу середню помилку перехресної перевірки.
Таким чином, сам процес не дає оцінок моделі чи параметрів, але ви можете використовувати його для вибору між альтернативами.
Щоб додати відповідь Джонатана.
Однак якщо ви використовуєте перехресну перевірку для настройки параметрів, вибіркові вибірки фактично стають частиною вашої моделі. Тож вам потрібен ще один незалежний зразок, щоб правильно виміряти ефективність кінцевої моделі.
Використовується для вимірювання продуктивності моделі, крос-валідація може виміряти більше, ніж просто середню точність:
Друга річ, яку можна виміряти за допомогою крос-валідації - це стабільність моделі щодо зміни даних про навчання: перехресне підтвердження створює безліч "сурогатних" моделей, які навчаються з дещо відрізняються навчальні набори. Якщо моделі стабільні, всі ці сурогатні моделі рівноцінні, якщо навчання нестабільне, сурогатні моделі сильно різняться. Ви можете кількісно оцінити цей "різний вибір", наприклад, як дисперсія прогнозів різних сурогатних моделей для одного зразка (в ітераційній / повторній перехресній валідації) або, наприклад, як дисперсія параметрів сурогатних моделей.
Щоб додати до попередніх відповідей, почнемо з початку:
Є кілька способів наблизити свої моделі до даних тренувань, деякі - очевидні, а інші - не так. По-перше, і найважливішим з них є надходження параметрів тренувань (ваг) до даних (параметри підгонки кривої в логістичній регресії, мережеві ваги в нейронній мережі тощо). Тоді ви б моделювали шум у даних - якщо ви переобладнаєте, ви не лише фіксуєте основні функції генерування, а й випадковість через розмір вибірки та те, що вибірка не є ідеальним представленням сукупності. Це надмірне доповнення може бути певною мірою пом’якшене шляхом покарання певних атрибутів (загальної складності) моделі. Це можна зробити, припинивши тренування, коли продуктивність на зразку поїзда вже не значно покращиться, видаливши деякі нейрони з нейронної мережі (називається відсівом),https://ieeexplore.ieee.org/document/614177/ ) тощо). Однак ці стратегії регуляризації самі параметризовані (коли ви зупиняєтесь ?, скільки нейронів видалити? Тощо). Крім того, більшість моделей машинного навчання мають ряд гіперпараметрів, які потрібно встановити до початку навчання. І ці гіперпараметри налаштовані у фазі настройки параметрів.
Це підводить нас до другого і більш тонкого типу накладання: гіперпараметричного накладання. Перехресне підтвердження може бути використане для пошуку "найкращих" гіпер-параметрів, багаторазово навчаючи свою модель з нуля на k-1 складках зразка і тестуючи на останню складку.
То як саме це робиться? Залежно від стратегії пошуку (заданої tenshi), ви встановлюєте гіперпараметри моделі і тренуєте свою модель k раз, використовуючи різні тестові складки. Ви «пам’ятаєте» середню продуктивність моделі за всіма тестовими складками і повторюєте всю процедуру для іншого набору гіпер-параметрів. Тоді ви вибираєте набір гіпер-параметрів, який відповідає найкращим показникам під час перехресної перевірки. Як бачимо, обчислювальна вартість цієї процедури сильно залежить від кількості наборів гіпер-параметрів, які потрібно враховувати. Ось чому були розроблені деякі стратегії вибору цього набору (тут я збираюся узагальнити те, що сказав тенші):
Однак це ще не кінець історії, оскільки гіперпараметри можуть (і будуть) також переповнювати дані. У більшості випадків ви можете просто жити з цим, але якщо ви хочете максимально підвищити потужність узагальнення вашої моделі, ви можете спробувати і регулювати параметри гіпер-параметрів. По-перше, ви можете трохи краще оцінити ефективність вибіркових даних, скориставшись вкладеним пошуком сітки (деталі: http://scikit-learn.org/stable/auto_examples/model_selection/plot_nested_cross_validation_iris.html , обговорення: Вкладена перехресна перевірка для вибору моделі) або просто використовувати набір перевірки, який не використовується для налаштування гіперпараметрів. Щодо регуляризації в гіперпараметричному просторі, це більш-менш відкрите питання. Деякі ідеї включають вибір не найкращого набору значень гіпер-параметрів, а щось ближче до середини; міркування наступне: найкращі значення гіпер-параметрів, швидше за все, перевищують дані лише тому, що ефективніше, ніж інші дані поїзда, погані параметри просто погані, але ті, хто знаходиться в середині, можуть досягти кращого узагальнення, ніж найкращі . Про це написав Ендрю Нг. Інший варіант - обмеження вашого пошукового простору (ви регулюєте, вводячи тут сильні ухили - значення поза пошуковим простором ніколи не будуть вибиратися очевидно).
Побічне зауваження: використання точності в якості метрики ефективності в більшості випадків є дуже поганою ідеєю, розгляньте показники f1 і f_beta - ці показники в більшості випадків краще відображають те, що ви насправді намагаєтесь оптимізувати у проблемах бінарної класифікації.
Підводячи підсумок: крос-валідація сама по собі використовується для оцінки продуктивності моделі на вибіркових даних, але також може бути використана для налаштування гіперпараметрів у поєднанні з однією із стратегій пошуку в просторі гіперпараметрів. Пошук хороших гіпер-параметрів дозволяє уникнути або принаймні зменшити перевиконання, але майте на увазі, що гіпер-параметри можуть також перевищувати дані.
Якщо ви родом із scikit-learn, ця відповідь може бути корисною.
k-кратна перехресна перевірка використовується для поділу даних на k
розділи, потім оцінювач навчається на k-1
розділи, а потім тестується на kth
розділі. Ось так, обираючи, який саме розділ повинен бути kth
розділом, є k
можливості. Тому ви отримуєте k
результати всіх k
можливостей вашого оцінювача.
це обчислювально дорогі методи, але якщо ви збираєтеся спробувати різні оцінки, ви можете спробувати ці три для налаштування гіперпараметра разом із резюме:
i. GridSearchCV - вичерпний перелік усіх можливих P і C для гіперпараметрів для всіх оцінювачів. Врешті-решт дає найкращі гіперпараметри, використовуючи середнє значення середнього значення CV цього оцінювача.
ii. RandomizedSearchCV - робить не всі P та C гіперпараметрів, але за випадковим підходом дає найбільш можливий точний оцінювач, економлячи більше на обчисленні.
iii. BayesSearchCV - Не є частиною, scikit-learn
але оптимізація Баєса для здійснення рандомізованих результатів пошуку та відповідних результатів.
tl: dr : CV використовується просто для уникнення великої упередженості та великої дисперсії для вашого оцінювача через дані, які ви передаєте. Сподіваюся, це було корисно.