Adições desejáveis
Classes continuas
Um grande aborrecimento é o requerimento do c4.5 que as classes sejam discretas. Classes continuas se fazem necessárias quando se deseja uma predição numérica em vez de categórica; os casos de treinamento relatam a dependência desta variável a outras variáveis e a tarefa é construir um modelo que irá predizer o valor para um caso desconhecido. Construir um modelo para casos com classes continuas envolve aproximar uma função desconhecida.
No programa CART, a problema das classes continuas é resolvido instalando-se um valor em cada folha em vez do nome da classe. Breimman et al. [1984], se refere a tais árvores como árvores de regressão em vez de árvore de decisão. O valor produzido por tal árvore pode ser expresso como
(Somatório de f ) Vf x Sf
onde, para cada folha f, Vf é o valor armazenado na folha e Sf é um seletor que é 1 se todas as condições no caminho da raiz até a folha f são satisfeitas por um caso, 0 caso contrário. O valor predizido é a soma dos peso, onde os pesos são os valores nas folhas e as funções base são os seletores. Embora aproximações de função desta forma sejam claramente descontinuas, técnicas podem ser usadas para "polir" os valores predizidos [Daryl Pregibon, private communication ]. Mais recentemente Friedman [ 1988] descreveu um método melhorado que usa funções bases continuas, mas, também afasta-se das estruturas baseadas em árvores.
Quinlan implementou um programa experimental semelhante ao c4.5, para classes continuas [Quinlan, 1992]. Este programa gera um modelo baseado em árvore, mas permite que as folhas retenham modelos gerais lineares em vez de valores únicos. O mesmo tipo de questão postas para classes discretas aparecem aqui; por exemplo:
Infelizmente, as respostas que parecem funcionar envolvem diferentes critérios heuristicos, assim, Quinlan optou por não incluí-lo ao c4.5.
Atributos discretos ordenados
Atributos no c4.5 são continuous, e portanto ordenáveis, ou discretos, que não são ordenáveis. Muitos sistemas implementam um terceiro tipo de atributo, ordinal, que consiste de valores discretos ordenáveis. Usos comuns de atributos ordinais são para descrições qualitativas, como fazer uma leitura muito fraca, fraca, boa, muito boa. Um atributo como este deveria ser tratado similarmente aos atributos continuous, com testes que dividem os valores entre aqueles abaixo e acima de um valor limiar.
A única maneira de representar atributos deste tipo no c4.5, é mapeando os valores descritos em inteiros (i.e. muito fraca=1, fraca=2, ...), e então especificar o atributo como sendo continuo. O único problema nisso é a dificuldade em entender os resultados apresentados pelo classificador.
Atributos estruturados
Uma outra facilidade seria permitir que os atributos discretos pudessem Ter uma hierarquia de possíveis valores, em vez de uma lista corrente. Supondo um atributo cor, que pode ser especificado em diferentes níveis de detalhes. Para alguns testes, seria apropriado usar apenas as quatro primeiras cores primárias, ou as sete bandas do espectro visível. Outros testes na mesma árvore poderia requerer uma gradação mais detalhada de uma cor; como subdividir o azul em outros tons de azul. Os valores de um atributo como cor, realmente formam algo semelhante a uma árvore hierárquica, que pode ser visualizada na figura 11-1. Um teste poderia então usar valores em qualquer nível da hierarquia , ou mesmo uma mistura de níveis.
Uma das soluções para se trabalhar com este tipo de estrutura poderia ser definindo novos atributos para cada nível da hierarquia.
Indução estruturada
Enquanto é possível implementar os efeitos de atributos ordinais e estruturados, a falta de facilidade para indução estruturada é a limitação fundamental. Shapiro [1987] inventou um termo para se referir a árvore de decisão com testes em atributos, cujos valores são determinados pela árvore de decisão. Recursão deste tipo permite que árvores sejam usadas para definir novos subconceitos que aparecem nas árvores, definindo conceitos de alto nível. Shapiro demonstrou que uma aproximação da indução estruturada pode levar a árvores muito mais compactas, enquanto simultaneamente reduzir o número de casos de treinamento necessários para se construir um classificador eficiente.
Indução incrementada
Um dos problemas com os algoritmos apresentados aqui é que depois que o classificador foi construído, ele fica estático, sem possibilidade de assimilar novos casos fornecidos a ele, este é um problema, pois na prática sempre estarão surgindo novos casos. Quando nos deparamos com uma situação desta, usando o c4.5, podemos optar por duas escolhas:
Algumas soluções para este problema já foram desenvolvidas, como, algoritmos que retém informação suficiente nos nós da árvore para permitir sua mudança na presença de novos casos, Schlimmer e Fisher [1986] e Utgoff [1989]. O algoritmo ID5R de Utgoff tem a interessante propriedade de a árvore modificada pela inserção de um novo caso ser a mesma que seria produzida se todos os casos de treinamento tivessem sido processados juntos.
Além dos novos casos que aparecem, também podemos supor que mais tempo computacional esteja disponível depois que o classificador foi construído. Os algoritmos gulosos usados no c4.5 requerem uma quantia fixa de tempo para rodar; eles não podem explorar mais, e produzirão nada em menos. Um algoritmo ideal, entretanto, produziria um classificador rapidamente, então usaria o tempo adicional para improvisar o classificador, i.e. pela exploração de subárvores alternativas na busca por uma melhor.