2014-04-13 5 views
2

Я использую алгоритм Reptree от weka. До сих пор нет подробных документов для этого алгоритма:Reptree (WEKA), только сортирует значения для числовых атрибутов один раз

Ученик с быстрым решением. Создает дерево принятия решения/регрессии, используя сокращение/отклонение информации и сокращает его с помощью обрезания с уменьшенной ошибкой (с обратной привязкой). Только сортирует значения для числовых атрибутов один раз. Отсутствующие значения обрабатываются путем разбиения соответствующих экземпляров на куски (т. Е. Как в C4.5).

Может ли кто-нибудь объяснить мне, что имеется в виду: «Производит только сортировку значений для числовых атрибутов один раз».

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

Спасибо

Любомир

ответ

2

Я искал те же ответы о RepTree Weka в себя в последнее время AMD наткнулся на этот пост, я не смог найти достаточное количество ответов в Интернете, так что я открыл источника- код и голубь.

«Только один раз значения для числовых атрибутов». означает, что алгоритм сортирует все числовые поля в наборе данных один раз, в начале прогона, а затем использует отсортированные списки для вычисления правильных расщеплений в каждом узле дерева.

От чтения исходного кода я был в состоянии выяснить, в общем, как работает алгоритм:

1) Для классификации нечисловых (дискретного) использует регулярное дерево решений с уменьшенной погрешностью обрезка [http://www.stat.cmu.edu/~ryantibs/datamining/lectures/23-tree.pdf] Это увеличивает энтропию значения, вы можете увидеть точное выполнение метода в исходном коде под weka.core.ContingencyTables - entropyConditionedOnRows (двойная [] [] матрица)

2) Для классификации числовых значений Чан ge заключается в том, что он минимизирует общую дисперсию.

Кроме того, для меня это было очень запутанным выяснить выходное дерево, в частности, в числовом классификации, что делает этот вывод листьев в виду:

years_since> = 9,03: 4,64 (8/0,68) [8/6,76]

1) в нечисловой (дискретной) классификации первый номер после «:» это значение классификации дерева, первое число в() скобках указано количество правильно классифицированные экземпляры из учебного набора под этим листом, второе число - это количество экземпляры, которые находились под листом, но имели другое значение классификации, в то время как в скобках [] первое число представляет собой количество правильных классификаций из набора обрезки, а второе число - неправильные классификации. [http://weka.8497.n7.nabble.com/about-REPtree-td15188.html]

2) В цифровой классификации, этот вывод означает, что что-то другое. Первое число после «:» представляет собой среднее значение (x_mean) образцов из обучающего набора, которые принадлежат этому листу, первое число в скобках() является весом -k- значений, принадлежащих этому листу (вес означает количество выборок из того, что я понял из кода), а второе значение - это дисперсия образца, означающая sum_i_from_1_to_k ((x_i-x_mean)^2)/k.В скобках [] первое - количество выборок из набора обрезки -L-, которые принадлежат этому листу, в то время как второе число является дисперсией относительно x_mean из набора тренировок, что означает sum_i_from_1_to_L ((y_i-x_mean)^2)/L

Надеется, что это помогает

+0

хорошо, отличная работа, глядя в код ... спасибо ... я на самом деле попробовал другой пакет - scikit учиться в питоне ... кажется, гораздо быстрее и точнее .. , – gugatr0n1c

Смежные вопросы