6 <strong>Uma</strong> <strong>comparação</strong> <strong>entre</strong> a <strong>implementação</strong> <strong>de</strong> <strong>uma</strong> Re<strong>de</strong> <strong>Neural</strong> Perceptron e <strong>de</strong> <strong>uma</strong>Induction Decision Tree (ID3) na classificação <strong>de</strong> um conjunto <strong>de</strong> dados binários4 Induction Decision Tree (ID3)4.1 Aspectos ConceituaisConsi<strong>de</strong>re um conjunto <strong>de</strong> objetos que são <strong>de</strong>scritos em termos <strong>de</strong> <strong>uma</strong> coleção <strong>de</strong>atributos. Esses objetos po<strong>de</strong>m pertencer a diferentes classes. Cada atributo me<strong>de</strong> alg<strong>uma</strong>característica importante <strong>de</strong> um objeto.Agora consi<strong>de</strong>re um conjunto <strong>de</strong> treinamento, cuja classe <strong>de</strong> cada objeto é conhecida.Se o conjunto <strong>de</strong> treinamento contém dois objetos que têm valores idênticos para dadoatributo e mesmo assim pertencem a classes diferentes, é impossível diferenciar essesobjetos somente consi<strong>de</strong>rando tal atributo. Neste caso, consi<strong>de</strong>ra-se que este atributo éina<strong>de</strong>quado para o conjunto <strong>de</strong> treinamento e também para a tarefa <strong>de</strong> indução. A tarefa <strong>de</strong>indução é <strong>de</strong>senvolver <strong>uma</strong> regra <strong>de</strong> classificação que po<strong>de</strong> <strong>de</strong>terminar a classe <strong>de</strong>qualquer objeto a partir dos valores dos seus atributos. Tal regra <strong>de</strong> classificação po<strong>de</strong> serexpressa como <strong>uma</strong> árvore <strong>de</strong> <strong>de</strong>cisão (RUIZ, 2008).<strong>Uma</strong> árvore <strong>de</strong> <strong>de</strong>cisão é <strong>uma</strong> estrutura simples em que as folhas contêm as classes, osoutros nós representam atributos baseados em testes com um ramo para cada possívelsaída. Para classificar um objeto, começa-se com a raiz da árvore, aplica-se o teste e tomaseo ramo apropriado para aquela saída. O processo continua até <strong>uma</strong> folha ser encontrada.Em tal caso garante-se que o objeto pertence a classe nomeada pela folha.Se os atributos são a<strong>de</strong>quados é sempre possível construir <strong>uma</strong> árvore <strong>de</strong> <strong>de</strong>cisão queclassifica corretamente cada objeto no conjunto <strong>de</strong> treinamento e normalmente existemmuitas árvores <strong>de</strong> <strong>de</strong>cisão corretas. A essência da indução é ir além do conjunto <strong>de</strong>treinamento, isto é, classificar corretamente outros objetos. Para conseguir isto a árvore <strong>de</strong><strong>de</strong>cisão <strong>de</strong>ve capturar alg<strong>uma</strong> relação significativa <strong>entre</strong> a classe do objeto e os valores <strong>de</strong>seus atributos. Quando tem-se duas árvores <strong>de</strong> <strong>de</strong>cisão que classificam corretamente umconjunto <strong>de</strong> treinamento, <strong>de</strong>ve-se escolher a mais simples, <strong>uma</strong> vez que, ela é maisa<strong>de</strong>quada para capturar a estrutura inerente do problema e assim, vai classificarcorretamente mais objetos fora do conjunto <strong>de</strong> treinamento.O algoritmo ID3, <strong>de</strong>senvolvido por (QUINLAN, 1985), é um dos algoritmos maispopulares na área da indução <strong>de</strong> árvore <strong>de</strong> <strong>de</strong>cisão.A idéia básica do ID3 é iterativa. Um subconjunto do conjunto <strong>de</strong> treinamento chamadojanela é escolhido aleatoriamente e <strong>uma</strong> árvore <strong>de</strong> <strong>de</strong>cisão é formada a partir <strong>de</strong>le. Todosos outros objetos do conjunto <strong>de</strong> treinamento são classificados usando a árvore. Se estaárvore fornecer a resposta correta para todos os objetos o processo termina, se não, <strong>uma</strong>seleção dos objetos classificados incorretamente é adicionada a janela e o processocontinua (RUIZ, 2008).O cerne do problema é como formar <strong>uma</strong> árvore <strong>de</strong> <strong>de</strong>cisão para <strong>uma</strong> coleção arbitrária<strong>de</strong> C objetos. Se C é vazio ou contém somente objetos <strong>de</strong> <strong>uma</strong> classe, a árvore <strong>de</strong> <strong>de</strong>cisãomais simples é justamente <strong>uma</strong> folha classificada com aquela classe. Caso contrário, seja Tqualquer teste sobre um objeto que tem os possíveis resultados O1, O2, ... , Ow. Cadaobjeto em C dá um <strong>de</strong>sses resultados para T, portanto T produz <strong>uma</strong> partição {C1, C2, ... ,Cw}, <strong>de</strong> C, com Ci contendo aqueles objetos que tem saída Oi. No pior caso essaestratégia fornecerá subconjuntos <strong>de</strong> um único objeto, que satisfaz a exigência <strong>de</strong> <strong>uma</strong>classe por folha. Assim, <strong>uma</strong> vez que um teste po<strong>de</strong> sempre ser encontrado <strong>de</strong> <strong>uma</strong> divisãonão trivial <strong>de</strong> qualquer conjunto <strong>de</strong> objetos, este procedimento sempre permite obter <strong>uma</strong>árvore <strong>de</strong> <strong>de</strong>cisão que classifique corretamente os objetos em C[1].
<strong>Uma</strong> <strong>comparação</strong> <strong>entre</strong> a <strong>implementação</strong> <strong>de</strong> <strong>uma</strong> Re<strong>de</strong> <strong>Neural</strong> Perceptron e <strong>de</strong> <strong>uma</strong> InductionDecision Tree (ID3) na classificação <strong>de</strong> um conjunto <strong>de</strong> dados binários 7A escolha do teste é crucial para a árvore <strong>de</strong> <strong>de</strong>cisão ser simples. O ID3 adota <strong>uma</strong>informação baseada no método que <strong>de</strong>pen<strong>de</strong> <strong>de</strong> duas hipóteses:H1: Toda árvore <strong>de</strong> <strong>de</strong>cisão correta para C classificará objetos na mesma proporção quesua representação em C. No caso <strong>de</strong> <strong>uma</strong> amostra <strong>de</strong> objetos que pertencem somente aduas classes, por exemplo, P e N, um objeto qualquer pertencerá a classe P comprobabilida<strong>de</strong> p/(p+n) e a classe N com probabilida<strong>de</strong> n/(p+n) (RUIZ, 2008).H2: Quando <strong>uma</strong> árvore <strong>de</strong> <strong>de</strong>cisão é usada para classificar um objeto, ela retorna <strong>uma</strong>classe. Árvore <strong>de</strong> <strong>de</strong>cisão po<strong>de</strong> assim ser consi<strong>de</strong>rada como <strong>uma</strong> fonte <strong>de</strong> mensagem P ouN com a informação necessária prevista para gerar a mensagem dada por:(, ) = − + + − + ( + )Se o atributo A com os valores [A1, A2, ... , Av] é usado para a raíz da árvore <strong>de</strong><strong>de</strong>cisão, ela dividirá C [C1, C2, ... , Cv], on<strong>de</strong> Ci contém aqueles objetos em C que temvalores Ai <strong>de</strong> A. Consi<strong>de</strong>re Ci contendo pi objetos da classe P e ni da classe N. Ainformação prevista necessária para a sub-árvore para Ci é I(pi, ni). A informação previstanecessária para a árvore com A como raiz é obtida com a média pon<strong>de</strong>rada:() = + (, ) + em que o peso para o i-ésimo ramo é proporcional aos objetos em C que pertencem Ci.A informação ganha pela ramificação sobre A é, <strong>de</strong>sta forma:G(A) = I ( p, n) − E(A)O algoritmo ID3 examina todos os atributos candidatos e escolhe A para maximizar oganho <strong>de</strong> A, forma as árvores como acima e então usa o mesmo processo recursivamentepara formar a árvore <strong>de</strong> <strong>de</strong>cisão para os subconjuntos restantes, C1, C2, ... , Cv.4.2 ImplementaçãoFig. 11. Algoritmo ID3