Интерактивный классификатор дерева решений

Кто-либо может рекомендовать реализацию классификатора дерева решений, или в Python или в Java, который может использоваться инкрементно?

Все реализации, которые я нашел, требуют, чтобы Вы предоставили все функции классификатору сразу, для получения классификации. Однако в моем приложении, у меня есть сотни функций, и некоторыми функциями являются функции, которые могут занять много времени для оценки. С тех пор не все ответвления дерева могут использовать все функции, не имеет смысла давать классификатору все функции сразу. Я хотел бы, чтобы классификатор попросил функции, по одному, в порядке, чтобы они были необходимы, чтобы сделать максимальное сокращение энтропии и обеспечить заключительную классификацию.

6
задан Cerin 13 July 2010 в 15:32
поделиться

2 ответа

Я считаю, что такой реализации нет, но деревья решений настолько просты в реализации, что у вас не должно возникнуть проблем с написанием такой программы самостоятельно.
С другой стороны, я не думаю, что идея подсчета признаков на лету может увеличить скорость, потому что даже если какой-то признак был использован для предыдущего разбиения, он все равно должен быть учтен для остальных, поэтому для многих записей он будет пересчитан много раз (это может сэкономить память). Это может иметь смысл в случае случайного леса, где только случайное, ограниченное подмножество признаков рассматривается на каждом разбиении - все равно RF можно использовать только как классификатор, он не построит вам хорошие, интерпретируемые человеком деревья решений.

3
ответ дан 17 December 2019 в 04:41
поделиться

Обычно такие пакеты (в частности, деревья J48 в Weka) позволяют указать отсутствующее значение вместо значения функции, что будет обрабатываться так же, как алгоритм C4.5:

когда мы достигаем расщепления узла на этот атрибут с пропущенным значением, мы отправить экземпляр по каждому возможному ветвь, взвешенная пропорционально количество обучающих экземпляров вниз по веткам, в конце концов накапливая результат на листе узлы.

Конечно, вы могли бы применить более агрессивный подход и изменить способ, которым дерево выбирает атрибуты для разделения на этапе обучения.Наивным способом было бы присвоить веса атрибутам и умножить критерий разделения (энтропия, получение информации и т. Д.) На этот вес в качестве штрафного коэффициента, так что «дорогие атрибуты» с меньшей вероятностью будут выбраны в качестве узла разделения.

2
ответ дан 17 December 2019 в 04:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: