Я читаю "Деревья принятия решений" и "Крест-валидация", и я понимаю обе концепции. Тем не менее, у меня возникли проблемы с пониманием Cross Validation, поскольку оно относится к деревьям принятия решений. По существу перекрестная проверка позволяет вам чередовать обучение и тестирование, когда ваш набор данных относительно невелик, чтобы максимизировать оценку ошибок. Очень простой алгоритм выглядит примерно так:
- Определите количество сгибов, которые вы хотите (k)
- Разделите свой набор данных на k складок.
- Используйте k-1 складки для учебного набора, чтобы построить дерево.
- Используйте набор тестов для оценки статистики об ошибке в вашем дереве.
- Сохраните результаты позже
- Повторите шаги 3-6 для k раз, оставляя разную складку для вашего тестового набора.
- Средние ошибки в ваших итерациях для прогнозирования общей ошибки.
Проблема, которую я не могу понять, в конце концов, у вас будет k деревьев решений, которые могут быть немного разными, потому что они могут не разделяться одинаково и т.д. Какое дерево вы выбираете? Одна из моих идей заключалась в том, чтобы выбрать ту, у которой минимальные ошибки (хотя это и не делает ее оптимальной, поскольку она лучше всего срабатывала в случае сбрасывания - возможно, использование стратификации поможет, но все, что я прочитал, говорит, что это лишь немного помогает).
Как я понимаю, перекрестная проверка указывает на вычисление в статистике node, которая позже может быть использована для обрезки. Таким образом, на самом деле каждый node в дереве будет иметь статистику, рассчитанную для него на основании заданного им набора тестов. Что важно в статистике node, но если вы усредняете свою ошибку. Как объединить эти статистические данные в каждом node по k деревьям, когда каждое дерево может варьироваться в зависимости от того, что они хотят разделить, и т.д.
Какова точка вычисления общей ошибки на каждой итерации? Это не то, что можно было бы использовать при обрезке.
Любая помощь с этой маленькой морщиной была бы высоко оценена.