530 likes | 635 Views
Construção de listas de decisão. Os tópicos anteriores tratam de indução de conceitos que podem ser descritos usando uma única região de decisão Neste tópico se tratará da indução de descrições disjuntivas (v). Múltiplas regiões. Peso. + + - - + + - - -
E N D
Construção de listas de decisão • Os tópicos anteriores tratam de indução de conceitos que podem ser descritos usando uma única região de decisão • Neste tópico se tratará da indução de descrições disjuntivas (v)
Múltiplas regiões Peso + + - - + + - - - + + + Altura
Construção de listas de decisão • Forma normal disjuntiva FND • combina um conjunto de descrições D1,D2,..Dn em uma disjunção {D1vD2v..Dn } • as vezes mais de uma classe "match"uma instância • criar descrições mutualmente exclusivas • precedência, lista ordenada
A tarefa de indução disjuntiva • Dado: Um conjunto de instâncias de treinamento, cada uma com sua classe associada • Encontrar: Uma descrição disjuntiva que, corretamente classifique instâncias não observadas • Ao menos para algumas representações, o espaço de FND é parcialmente ordenado (G->S), mas o fator de ramificação é muito grande
Aprendizado não-incremental Dividir e Conquistar (NDC) • Tarefa de discriminar entre duas classes • construir a FND de uma classe e usar a outra como default. Tecnicamente o resultado é uma lista de decisão.
NDC • Entrada: • Pset, conjunto de instâncias + • Nset, conjunto de instâncias - • FND uma disjunção de uma descrição de uma única região • Saída: Uma disjunção de uma única região • Nivel-Top chamada: NDC(Pset,Nset,{}) • Procedimento NDC(Pset,Nset,FND) • Se Pset esta vazio Então retorne FND • CC Encontre uma região D que cobra algumas instâncias em Pset e não em Nset, FND=FND+D, Pset=Pset-{D->} • Retorne NDC(Pset,Nset,DNF)
NDC usando HSG Peso Peso + + + + - - - - + + - - + + - - Altura Altura
MDC • NDC é projetado para inducir expressões para uma única classe • MDC utiliza NDC como bloco de construção para mais de duas classes
MDC • Entrada: Cset é conjunto dos nomes das classes, Iset é o conjunto das instâncias de treinamento. • Saída: uma lista de decisão • Procedimento MDC(Cset,Iset) • Rule-set = {} • Para cada Classe em Cset, • Pset = {i ÎIset e i Î Classe}, Nset = {i ÎIset e i Ï Classe}, FND = NDC(Pset,Nset,{}). • Para cada termo D em FND, Rule-set =Rule-set + Se D então Classe • Elimine possiveis conflitos entre descrições de classe, retorne Rule-set
Indução Incremental usandoDividir para conquistar (IDC) • Utiliza ideias de Hill Climbing • Guarda uma única hipoteses em memoria (um conjunto de termos lógicos disjuntivo) • Guarda as k últimas instâncias de treinamento, para avaliar as hipoteses • Revisa suas hipoteses somente quando realiza um erro de classificação • IDC utiliza a função de avaliação para escolher
Revisões em IDC • Erro de classificação de uma instância positiva, generalizar a hipoteses • modificar um termo da FND; remover um teste booleano, nominal ou características numericas, Aumentar o tamanho do retangulo ou mudanças nos pesos • Como a hipoteses pode ter multiples termos, IDC deve aplicar generalização a cada um deles • Outra alternativa envolve em adicionar um termo novo (a descrição da instância ou a descrição mais geral que não case com os exemplos negativos)
Revisões em IDC • Erro de classificação de uma instância negativa, especializar a hipoteses • modificar cada termo da FND que case com a instância; adicionar um teste booleano, nominal ou características numericas, diminuir o tamanho do retangulo ou mudanças nos pesos • Outra alternativa envolve em eliminar um termo
Função de Avaliação • Incluir uma medida da simplicidade da expresão e de precisão • simplicidade 1/t , t número de termos • precisão a = (Pc + N~c)/k • F = a + 1/t ou F = (1-w)a + w 1/t , w entre 0 e 1
1/1+1/1=2 + Comportamento de IDC 3/4+1/1=7/4 + 4/4+1/2=3/2 + 2/2+1/1=2 + V 2/3+1/1=5/3 - 4/4+1/2=3/2 + V
Problemas • Métodos que utilizam "Hill Climbing" possuem baixos requisitos de memoria e processamento • Eles consideram somente uma hipoteses • Sensibilidade a ordem das instâncias de treinamento, maior número de casos para convergência • Pode não converger e em ambiente com ruido podem abandonar sua boas hipoteses
Indução de listas de decisão por excepção NEX • O método dividir e conquistar constrõe a lista de forma top-down, adicionando o primeiro termo na lista e logo o segundo... • Pode-se operar na direção oposta, NEX inicializa sua lista criando uma classe default, baseado na classe mais frequente • Em cada iteração, NEX aplica sua lista aos casos restantes para verificar os classificados erroneamente
NEX • Nex seleciona a classe mais comun neste conjunto, • chama uma subrutina para inducir a descrição mais específica que cobre os membros desclassificados desta classe, e • adiciona a regra na frente da lista de decisão • Continua-se desta forma até que a lista classifique todas as instâncias de treinamento.
Fronteiras criadas por NEX Peso Peso + + + + - - _ _ + + _ _ _ _ + + + + + + _ _ _ _ + + + + Altura Altura
Indução de disjunções competitivas • NDC, utiliza uma tecnica competitiva simples, para criar um conjunto inicial de descrições • NDC utiliza isto para classificar o conjunto. • O algoritmo remove os casos problematicos e os coloca em "pseudo classes" • NDC produz um novo conjunto de descrições • Repete-se o processo, até que se tenha um conjunto que corretamente classifique
Peso Peso - - - - - - + + - - + + + + + + + + + + Altura Altura NDC e protótipos
Introdução • Em contraste aos métodos de aprendizado que constroem uma descrição explicita genérica da função alvo. • Os métodos baseados em instâncias guardam os exemplos de treinamento • A generalização é posposta até que uma nova instância deva ser classificada • Cada vez que uma nova instância é encontrada, seus relacionamentos com os exemplos previamente guardados é examinado para atribuir um valor de função alvo.
IBL • IBL, instance based learning • Inclui os métodos de vizinho mais próximo, raciocínio baseado em casos • IBL é um método chamado lazy • IBL é utilizado em funções alvo com valores discreto ou valores reais.
IBL • IBL pode utilizar uma representação simbólica mais complexa para as instâncias -> Raciocínio baseado em Casos. • O custo de classificar uma nova instância é alto • Indexação eficiente dos exemplos de teinamento
Aprendizado K-Nearest Neighbor • O método IBL mas basico é o algoritmo k-nearest neighbor • Este algoritmo assume que todas as instâncias correspondem a um ponto no espaço n-dimensional Rn • O vizinho mais próximo de uma instância é definido em termos da instância euclidiana.
Distância Euclidiana • Seja a instância descrita por • (a1(x),a2(x),.........an(x)) • A distância entre 2 instâncias Xi e Xj • d(Xi,Xj)=(∑r=1,n (ar(Xi)-ar(Xj))2)1/2 Esta abordagem é apropriada tanto para funções alvo discretas ou reais.
Algoritmo para funções Alvo Discretas • Neste caso o valor f(xq) retornado é o f(xq) mais freqüente entre os k vizinhos de f(xq). • Algoritmo • Fase de treinamento: para cada exemplo de treinamento (x,f(x)), adicione o exemplo a lista de exemplos.
Classificação • Dado uma instância Xq a ser classificada • Sejam X1...Xk as instâncias de treinamento mais próximas de Xq • Retorne • F(Xq) <- argmax )=(∑i=1,kα(r,f(Xi)) • Onde α(a,b)=1 se a=b • Caso contrario α(a,b)=0
Numero de vizinhos 1 vizinho classifica como + 5 vizinhos classificam como -
Regressão • Classificação no caso de valores reais • f(Xq) =(∑i=1,k,f(Xi))/k
Um refinamento obvio do algoritmo é atribuir pesos a cada k-vizinho de acordo a sua distância a instância a classificar Xq Ex: valores discretos F(Xq) <- argmax )=(∑i=1,kwiα(r,f(Xi)) Voto de acordo com a distância Wi = 1/ d(Xq,Xi)2 Se Xi= Xq -> f(Xq) = f(Xi) Algoritmo Nearest Neighbor Distâncias Ponderadas
Continuo • f(Xq) =(∑i=1,k,wi f(Xi))/ ∑i=1,k,wi • Normalizar os pesos • K = todas as instâncias ou constante • Obs: A introdução de pesos no algoritmo o faz um método altamente efetivo para vários problemas práticos • É robusto a dados com ruído e efetivo com grandes bases de treinamento • É sensível ao conjunto de atributos
Regressão Localmente Ponderada • Esta abordagem usa exemplos de treinamento ponderado por sua distância para formar uma aproximação a f. • Ex: podemos usar uma função linear, quadrática, rede neural ou alguma outra função. • Dada uma instância a classificar Xq, a abordagem constrõe uma aproximação f usando os vizinhos de Xq. • Esta aproximação é utilizada para calcular f(Xq)
Regressão Linear • f(X) = w0 + w1 a1(x)+ .....+ wnan(x) • E = ½ ∑i=1,k,( f(X) – fe(x))2 • ∆W=ŋ ∑i=1,k,( f(X) – fe(x)) an(x)
Problemas de Dimensionalidade • Imagine instâncias descritas por 20 atributos, mais somente 2 são relevantes • Problemas de recuperação, kd-tree, as instâncias são guardadas nas folhas da arvore, com as instâncias vizinhas no no perto dele. Os nos internos da arvore ordenam a nova instância e a classificam testando seus atributos.
Comentarios IHC • Baixos requisitos de memoria e processamento • Uma hipoteses • Sensibilidade a ordem no treinamento, maior quantidade de instâncias de treinamento para converger • Menos sensitivo a ruido
Indução de Conceitos Competitivos • Protótipos • Tarefa • dado um conjunto de instâncias pre-classificadas • encontrar uma descrição intencional • um conjunto de protótipos
Indução de Conceitos Competitivos • Esquemas competitivos não podem ser representados isoladamente • A extensão de um conceito depende de sua descrição e da dos outros • O operador típico é o calculo da media das instâncias de treinamento. • A descrição especifica a tendência central das instâncias
Aprendizado baseado em Instâncias • Guardam instâncias específicas ao invés de uma descrição abstrata • Protótipos • conjunção de pares atributos valor
Peso Peso C B A B A D Altura Altura Protótipos
Protótipos • Usar protótipos para classificação é um processo de três passos: • Dada uma instância I, • calcula-se sua distância a cada protótipo • distância euclidiana, • distância de hamming • Usa-se o resultado para classificar a instância, o protótipo mais perto
Método média das Instâncias • Realizar a média das instâncias para encontrar o protótipo de cada classe • Para determinar o valor pi de um atributo para um protótipo (numérico) • pi= 1/n xij (j=1,n)
Método incremental • Ao encontrar uma instância de uma classe nova, guarde esta instância como protótipo • Quando observar uma instância de uma classe conhecida, recalcule o protótipo • para cada atributo i • pi= (xi-pi)/n+1 • para atributos nominais, escolha o valor mais frequente
Método média das Instâncias • Em termos de eficiência e elegância é um dos melhores • pouca expressão representacional • linhas de fronteiras