Прошло много времени с тех пор, как я посмотрел на разделение деревьев. В прошлый раз, когда я делал подобные вещи, мне нравилась вечеринка в R (созданная Hothorn). Идея условного вывода через выборку имеет для меня смысл. Но у rpart тоже была апелляция.
В текущем приложении (я не могу дать подробности, но оно включает в себя попытку определить, кто попадет в тюрьму среди большой выборки арестованных), я не могу использовать продвинутые методы, такие как случайные леса, багинг, бустинг и т. Д. - мне нужен легко объяснимый править.
Я также хотел бы иметь некоторый ручной контроль над тем, какие узлы разделяются, как рекомендовано в Zhang & Singer (2010) Рекурсивное разбиение и приложения . Бесплатное программное обеспечение, которое идет с этой книгой, позволяет это, но в остальном довольно примитивно в своем пользовательском вводе.
Любые рекомендации или предложения?
источник
[NB: см. Обновление 1 ниже.] Я считаю, что методологию
rpart
гораздо проще объяснить, чемparty
. Последний, однако, гораздо более сложный и, вероятно, даст лучшие модели. Способ, который я иногда объясняю,party
состоит в том, чтобы говорить об этом как о основе для создания локальных линейных (или GLM) моделей. Я подкрепляю это тем, что указываю, что результаты дляrpart
постоянны для всех элементов, попадающих в конечный узел, то есть для блока / области, ограниченной разбиениями. Даже если могут быть улучшения с помощью локальных моделей, вы не получите ничего, кроме постоянного прогноза.Напротив,
party
развивает расколы, чтобы потенциально оптимизировать модели для регионов. На самом деле он использует критерии, отличные от оптимальности модели, но вам нужно измерить свою способность объяснить разницу, чтобы определить, можете ли вы объяснить это хорошо. Документы для него довольно доступны для исследователя, но могут быть довольно сложными для тех, кто не желает рассматривать более простые методы, такие как случайные леса, бустинг и т. Д. Математически, я думаю, чтоparty
это более изощренно ... Тем не менее, модели CART легче объяснить, как с точки зрения методологии и результатов, и они обеспечивают достойную ступеньку для внедрения более сложных моделей на основе дерева.Короче говоря, я бы сказал, что вы должны сделать
rpart
для ясности, и вы можете использоватьparty
для точности / производительности, но я бы не стал представлятьparty
без представленияrpart
.Обновление 1. Я основал свой ответ на моем понимании,
party
как это было год или два назад. Он немного вырос, но я бы изменил свой ответ, сказав, что я все еще рекомендуюrpart
его краткость и унаследованность, если «ненастоящий» будет важным критерием для вашего клиента / сотрудника. Тем не менее, я бы попытался перейти на использование большего количества функциональных возможностейparty
после того, как представил кого-тоrpart
. Лучше начать с малого, с функций потерь, критериев расщепления и т. Д. В простом контексте, прежде чем вводить пакет и методологию, включающие гораздо более сложные концепции.источник
party
может сделать пакет. Чистаяparty
функция создает только одно простое дерево, какrpart
при голосовании большинства в листьях.mob
Функцияparty
является то , что строит дерева с более сложными моделями , в листах (и выбирает шпагат на основе нестабильности параметров.)mob
или остальная часть пакета сильно выросла - я не помню, например, случайные леса раньше. Я пересмотрю свой ответ ...ctree
сделать одно дерево,cforest
сделать случайный лес иmob
сделать листья на основе модели. И, кстати, cforest - это весело, но очень медленно предсказывать.mob
возможно, был там с самого начала или, по крайней мере, пришел послеctree
, я полагаю. Это было с 2009 года или ранее. Во всяком случае, просто показывает, что мы все можем узнать что-то новое на SE. :)