2016-11-30 2 views
0

Я пытаюсь реализовать алгоритм ID3 или C4.5.ID3 двоичное дерево или небиновое дерево?

Согласно алгоритму ID3, информация усиления вычисляется следующим образом:

enter image description here

Для примера: обучение данных, как это:

credit  age  label 
normal  young  yes 
normal  old  yes 
bad  old  no 
excellent middle  yes 

ИГ кредита хотел бы это: IG(credit) = H(D) - P(credit==normal)H(D|credit==normal) - P(credit==bad)H(D|credit==bad) - P(credit==excellent)H(D|credit==excellent)

Когда я выбираю кредит как лучшую функцию для разделения, в следующей процедуре, я не буду снова рассмотрим атрибут «кредит».

Однако: Я также вижу, кто-то реализовано так: IG(credit=normal) = H(D) - P(credit==normal)H(D|credit==normal) - P(credit ~= normal)H(D|credit ~= normal)

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

Результирующее дерево различных вычислений расчета IG, одно - не двоичное дерево, другое - двоичное дерево.

Вопрос в том, эквивалентны ли два дерева? Когда я тестирую на двух деревьях, результаты всегда будут одинаковыми? Или один лучше другого? Или трудно сказать, что лучше, просто зависит от данных?

ответ

0

Как вы уже упоминали, одно дерево будет выполнять многоуровневое разделение другого двоичного разбиения. 2 дерева, безусловно, НЕ эквивалентны, поэтому результаты испытаний также не будут одинаковыми. Но точность в обоих случаях может быть в аналогичном диапазоне. Чтобы предложить вам последние 2 вопроса относительно того, какая модель лучше, зависит от ваших данных.

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