ExtraTreesClassifier похож на брата в RandomForest, но с двумя важными отличиями.
Мы строим несколько деревьев решений. Для построения нескольких деревьев нам нужно несколько наборов данных. Лучшая практика заключается в том, что мы не обучаем деревья решений по всему набору данных, а обучаем только части данных (около 80%) для каждого дерева. В случайном лесу мы рисуем наблюдения с заменой. Таким образом, мы можем повторять наблюдения в случайном лесу. В ExtraTreesClassifier мы рисуем наблюдения без замены, поэтому у нас не будет повторения наблюдений, как в случайном лесу.
Разделение - это процесс преобразования неоднородного родительского узла в 2 однородных дочерних узла (наилучший из возможных). В RandomForest он выбирает лучшее разделение, чтобы преобразовать родительский элемент в два наиболее однородных дочерних узла. В ExtraTreesClassifier он выбирает случайное разделение, чтобы разделить родительский узел на два случайных дочерних узла.
Давайте рассмотрим некоторые методы ансамбля, упорядоченные от высокой к низкой дисперсии, заканчивающиеся на ExtraTreesClassifier.
1. Дерево решений (высокая дисперсия)
Единое дерево решений обычно перекрывает данные, которые оно изучает, потому что оно учитывает только один путь принятия решений. Прогнозы из единого дерева решений обычно не дают точных прогнозов для новых данных.
2. Случайный лес (средняя дисперсия)
Модели случайных лесов снижают риск переобучения путем введения случайности путем:
- построение нескольких деревьев (n_estimators)
- рисование наблюдений с заменой (т. е. загруженный образец)
- разделение узлов на лучшее разделение между случайным подмножеством объектов, выбранных на каждом узле. Разделение - это процесс преобразования неоднородного родительского узла в 2 однородных дочерних узла (наилучший из возможных).
3. Дополнительные деревья (низкая дисперсия)
Дополнительные деревья похожи на случайный лес в том смысле, что он строит несколько деревьев и разделяет узлы, используя случайные подмножества объектов, но с двумя ключевыми отличиями: он не запускает наблюдения (то есть выборки без замены), а узлы разбиваются на случайные разбиения, не лучшие расколы. Итак, в заключение, ExtraTrees:
- строит несколько деревьев с Bootstrap = False по умолчанию, что означает, что выборки без замены
- узлы разделены на основе случайного разделения среди случайного подмножества объектов, выбранных на каждом узле
В Extra Trees случайность не возникает из-за начальной загрузки данных, а скорее из случайного разделения всех наблюдений. ExtraTrees назван в честь (чрезвычайно рандомизированных деревьев).