Статья в Википедии не ошибается; По моему опыту, это часто вызывает путаницу среди новичков в ML.
Существует два разных подхода к проблеме:
- Либо Вы используете явную проверку , установленную для поиска и настройки гиперпараметра
- Или используется перекрестная проверка
Итак, стандартным моментом является то, что вы всегда откладываете часть своих данных в качестве test set; это используется не по какой-либо другой причине, кроме оценки производительности вашей модели в конце (т. е. не вперед-назад и не многократных оценок, потому что в этом случае вы используете свой набор тестов в качестве набора проверки, что является плохой практикой).
После того, как вы это сделаете, вы решите, будете ли вы вырезать другую часть оставшихся данных для использования в качестве отдельного набора проверки , или вы будете продолжать перекрестную проверку (в этом случае нет требуется отдельный фиксированный набор проверки).
Таким образом, по сути, ваш первый и третий подходы действительны (и являются взаимоисключающими, то есть вы должны выбрать, какой из них вы выберете). Второй, как вы его описываете (CV только в наборе валидации?), Безусловно, нет (как уже говорилось, когда вы решаете использовать CV, вы не назначаете отдельный набор валидации). Помимо краткого упоминания о перекрестной проверке, статья Википедии на самом деле описывает ваш первый подход.
На вопросы о том, какой подход «лучше», конечно, нельзя ответить на этом уровне общности; оба подхода действительно действительны и используются в зависимости от обстоятельств. Говоря очень грубо, я бы сказал, что в большинстве «традиционных» (то есть, не глубокого обучения) настроек ML большинство людей предпочитают использовать перекрестную проверку; но есть случаи, когда это нецелесообразно (самые глубокие настройки обучения, опять же, в общих чертах), и вместо этого люди используют отдельный набор проверки.