Introdução

Hoje em dia muitas das tarefas realizadas por profissionais consiste simplismente em fornecer a classificação de um caso que lhes é apresentado. O c4.5 é um algoritmo que pode ser usado para auxiliar nessas tarefas, que algumas vezes é apenas uma decisão de sim ou não, concebida por um fornecedor de crédito ou algo um pouco mais complexo como o diagnóstico de uma doença. Muitas vezes essas classificaçães seguem um padrão, por isso muitos especialistas fazem a classificação de um caso olhando para modelos anteriores cuja classe é conhecida.O c4.5 é capaz de aprender, olhando para um conjunto desses casos, como eles são classificados e a partir daí fazer uma predição para novos casos.Ou seja, o c4.5 gera um classificador que é capaz de agir como um especialista, classificando os casos desconhecidos.O programa também possui um sitema de auto-avaliação, pelo qual o usuário pode construir um classificador e estudar a sua performance para os novos casos.

A seguir será mostrado um exemplo onde será estudado desde a elaboração dos arquivos de entrada até a saída dos dados, para se obter uma idéia de como o c4.5 funciona e aprender como analizar as estatisticas apresentadas pelo programa.No decorrer dos próximos capitulos serão abordadas as varias técnicas adotadas pelo autor do programa para a construção de um classificador rápido e com uma alta taxa de predição.

Exemplo:Labor Negotiation

Este é um exemplo de contrato de negociações canadense, providenciado por Stan Martwin da Universidade de Otawa.

Os dados incluem um conjunto de acordos fechados nos negócios e nos setores de serviços pessoais com pelo menos 500 menbros.Estes dados foram utilizados para aprender quando é que um contrato é aceitavel o não.

Cada caso é composto por 16 propriedades e podem ser classificados como good ou bad, dependendo se o caso foi julgado aceitavel ou não.

Para que o c4.5 seja capaz de gerar um classificador que faça esse julgamento será necessário redigir um arquivo onde estejam definidos as classes e os atributos para os casos.O arquivo que conterá esta definição será chamado labor-neg.names. Primeiramente é especificado as classes, good e bad, e em seguida o nome e descrição de cada atributo.Os atributos numéricos são descritos como continuous e os outros são compostos por um conjunto de valores.

O arquivo que conterá o conjunto de casos será chamdado labor-neg.data e os casos que o compõem deverão obedecer o padrão desse arquivo, onde cada caso é separado por ',' com sua classe acresentada ao final.Os atributos que não possuem valores devem ser preenchidos por '?'.

O programa contará com um registro de 57 casos, sendo que, 40 deles serão reservados para construir um modelo de classificação capaz de responder se um contrato é aceitavel ou não.Os outros 17 casos serão reservados como um conjunto de testes para avaliar a eficiência do classificador.

Árvores de Decisão

O programa c4.5 gera um classificador na forma de uma árvore de decisão, com uma estrutura composta por

Em uma árvore de decisão a classificação de um caso se inicia pela raiz da árvore, e esta árvore é percorrida até que se chegue a uma folha. Em cada nó de decisão será feito um teste que irá direcionar o caso para uma sub-árvore.Este processo irá guiar-se para um folha.A classe do caso se presupõe que seja a mesma que está armazenada nesta folha.

Agora será analizada uma das saídas do programa c4.5, conseguida com o comando c4.5 -f labor-neg -u.

Como esta estrutura não se parece muito com uma árvore, ela é mostrada num formato mais comum.Os números entre parenteses depois de cada folha na saída gerada pelo c4.5 indicam o número de casos de treinamento associados com cada folha e o número de casos mal classificados pela folha.

Para tornar a árvore de decisão mais simples o programa conta com métodos heuristicos de simplificação.Na próxima seção da figura é mostrada a árvore de decisão simplificada.

A seguir temos uma avaliação para o conjunto de treinamento.A árvore original contém 12 nós e 1 caso mal classificado. A árvore simplificada contém 7 nós e também 1 caso mal classificado, mas temos uma estimativa de erro de 17.4%.

Para os casos testes, a árvore original classificou mal 3 deles, o mesmo acontecendo com a árvore simplificada.Na última parte da figura é apresentada uma matriz, ainda sobre os casos testes aplicados na árvore simplificada.Das 11 classes good 1 está classificada erradamente pois pertence a classe bad.Igualmente, em 6 dos casos testes classificados como bad 2 foram classificados erradamente.

Produção de regras

O programa c4.5rules foi desenvolvido com o objetivo de tornar o modelo de classificação mais inteligivel.

O programa apresenta os dados na forma L->R, onde L representa os testes dos atributos e R a classe.Uma das classes também é classificada como default.Para classificar um caso, as regras são examinadas até encontrar a primeira cujo lado esquerdo é satisfeito pelo caso.A classe ao qual o caso pertence será a que está a direita desta regra.Caso não seja encontrada um regra que satisfaça o caso então será utilizada a classe default para classifica-lo.

Para produzir os resultados na forma de produção de regras, o programa c4.5rules faz uso da árvore de decisão gerada pelo c4.5.Isto é conseguido através do comando c4.5rules -f labor-neg -u.O programa irá gerar 4 regras a partir da árvore de decisão gerada pelo c4.5.A primeira delas é

Qualquer caso que satisfaça os dois testes do lado esquerdo será classificado corretamente como good em 93% dos casos.

Na próxima seção da figura 1-4 são avaliados os casos de treinamento. Nesta avaliação é mostrada a performance de cada regra.As estatisticas para a primeira são
Rule Size Errors Used Wrong Advantage
5 2 7.0% 19 0(0.0%) 0(0|0) good
Esta regra possui 2 testes em seu lado esquerdo e uma prediçao de erros de 7% e foi usada 19 vezes para classificar os casos de treinamento. Todos os casos que satisfazem o lado esquerdo da regra realmente pertencem a classe good, logo a taxa de erros é de 0.0%.Na seçao com titulo Advantage é mostrado o que aconteceria caso essa regra fosse omitida.Cada entrada na forma a(b|c) indica que, se a regra fosse omitida, b casos classificados corretamente por esta regra seriam classificados incorretamente, e c casos mal classificados seriam classificados corretamente pelas regras seguintes ou pela classe default.Logo, o beneficio de manter essa regra é a=b-c casos.

A seguir temos um resumo da avalição dos casos de treinamento, seguido por uma matriz que mostra onde ocorreram classificações mal sucedidas.

O modelo de classificação das regras de produção é agora avaliado no teste de casos desconhecidos.Ao todo só ocorreram 2 erros no modelo de produção de regras contra os 3 do classificador da árvore de decisão.

********************************************************** ************************************************************ *********************************************************

Outros modelos de Classificação

Até agora foram vistos exemplos de árvore de decisão e de producao de regras, formas pelas quais o c4.5 expressa os modelos de classificação. A seguir serão apresentados rapidamente outros tipos de classificação para o mesmo tipo de dados.

Classificadores Baseados por Instãncia

Para realizar a classificação de um caso este algoritmo busca por casos similares cuja classe é conhecida.

As questões centrais nos sitemas baseados por intãncia sao: *Quais casos de treinamento deveriam ser lembrados?Como salvar todos o casos não seria algo cogitavel pois acabaria tornando o sitema lento.O ideal seria manter apenas os casos mais importantes.Aha, Kibler e Albert [1991] descrevem estratégias para decidir quando um novo caso deve ser retido. *Como a similaridade entre casos pode ser medida?Se todos o atributos fossem continuos, seria possível calcular a distãncia entre dois casos num eixo cartesiano buscando pela sua similaridade.Com atributos não continuos a intrepetação da distãncia já seria um pouco mais problemática. Stamfill e Waltz [1986] desemvolveram um metodo de escalonamento de atributos, tornando a medida de distãncia mais robusta. *Como deveria um novo caso ser relacionado com casos relembrados? Existem duas alternativas, usar o caso relembrado mais similar, ou usar alguns casos similares com predições pesadas por seus diferentes graus de similaridade.

Redes Neurais

Uma rede neural consiste de unidades conectadas por ligações, como ilustrado na figura 1-5.Existem três tipos de unidades:as unidades por onde os dados sao introduzidos, como A e B, que são as unidades de entrada; as unidades que fornecem os resultados, como E, que são as unidade de saída;e todas as outras unidades, como C e D, que ficam "escondidas" do ambiente.Cada ligação é associada com um peso e algumas unidade possuem um valor que aparece embaixo da unidade, chamado bias.Para processar um caso, primeiramente as unidade de entrada são designadas por números entre 0 e 1, representando o valor dos atributos.A entrada de cada unidade I é determinada pela soma dos produtos entre o peso das saídas das unidades conectadas a ela pelo das ligações, mais o bias da unidade I, e a saída é determinada pela formula 1/e^(-I)+1, cujo valor irá variar entre 0 e 1. Por exemplo, se a unidade A tinha o valor 0 enquanto a unidade B o valor 1, a entrada da unidade C seria 0x5.7 + 1x5.7 + (-2.2) = 3.5 e a saída seria 0.97.

Algoritmos Genéticos

Um outro formalismo de classificação é derivado de um revolucionário modelo de aprendizado [Holland, 1986].Um classificador genético consiste de uma população de elementos classificadores que competem para fazer prediçães.Elementos que não apresentam uma boa performance são discartados enquanto que os que fazem boas predições se proliferam produzindo variantes deles mesmos. Uma forma simples de classificador genético para atributos discretos é descrita por Wilson [1987].Cada elemento consiste de *um taxon especificando, para cada atributo, um valor particular que precisa ser igualado por um caso, ou um "dont care"; *uma classe predizida;e *uma força Para classificar um caso, cada elemento é inspecionado para determinar se o caso se iguala a ele, tendo os valores requeridos por todos os atributos.Então, um dos elementos que se igualou ao caso é selecionado ramdomicamente, mas com a probabilidade proporcional com a força do elemento, e o elemento determinado prediz a classe a qual o caso pertence. Durante o treinamento a força dos elementos sofrem alterações para manter as predições corretas e/ou penalizar erros.Toda a população passa por um estágio onde os elementos mais fracos morrem e novos elementos são criados. Durante este processo ocorrem mutações ramdomicas, que se caracterizam por alterações no taxon dos elementos, e uniões, nas quais dois elementos se combinam, formando um novo elemento cujo taxon é provido parcialmente por cada um dos pais.