Scikit Learn - Random Forest: как обрабатывается непрерывная функция?

Случайный лес принимает числовые данные. Обычно объекты с текстовыми данными преобразуются в числовые категории, и непрерывные числовые данные подаются как есть без дискретизации. Как в РФ относятся к непрерывным данным для создания узлов? Будет ли он внутри непрерывных числовых данных? или обрабатывать каждый данные как дискретный уровень.

Например: я хочу передать набор данных (конечно, после классификации текстовых объектов) в RF. Как непрерывные данные обрабатываются РФ? Желательно ли дискретизировать непрерывные данные (в данном случае долготы и широты) перед кормлением? Или при этом информация теряется?

изображение, показывающее непрерывные данные в долготе и широте

2 ответа

Насколько я понимаю, вы спрашиваете, как выбран порог для непрерывных функций. Биннинг происходит при значениях, где ваш класс изменяется. Например, рассмотрим следующий 1D набор данных с x как особенность и y как переменная класса

x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y = [ 1, 1, 0, 0, 0, 0, 0, 1, 1, 1]

Будут рассмотрены два возможных варианта сокращения: (i) от 2 до 3 (практически будет выглядеть как x<2.5) и (ii) от 7 до 8 (как x<7.5). Среди этих двух кандидатов будет выбран второй, поскольку он обеспечивает лучшее разделение. По ним алгоритм переходит к следующему шагу.

Поэтому не рекомендуется дискретизировать данные самостоятельно. Подумайте об этом с данными выше. Если, например, вы дискретизируете данные в 5 бинах [1, 2 | 3, 4 | 5, 6 | 7, 8 | 9, 10]Вы пропустите лучший сплит (так как 7 и 8 будут в одном бункере).

Вы спрашиваете о DecisionTrees, Так как RandomForest является ансамблевой моделью, и сама по себе ничего не знает о данных, полностью полагается на решения базовых оценок (в данном случае DecisionTrees) и агрегирует их.

Так как DecisionTree рассматривает непрерывные функции: посмотрите на эту официальную страницу документации. DecisionTreeClassifier был установлен на непрерывный набор данных (ирисы Фишера), если вы посмотрите на изображение дерева - у него есть пороговое значение в каждом узле по сравнению с какой-то выбранной функцией в этом узле.

Другие вопросы по тегам