construção de listas de decisão
Post on 14-Jan-2016
20 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
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
Altura
+
+ -
- +
+ --
Peso
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
Algoritmo IDC
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
Comportamento de IDC
+
+
+1/1+1/1=2
-
2/2+1/1=2
2/3+1/1=5/3
+
3/4+1/1=7/4
V
4/4+1/2=3/2
+
V
4/4+1/2=3/2
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
Altura
+ +
+
++
+
++
-
__
_
_
_
Peso
Altura
+ +
+
++
+
++
-
__
_
_
_
Algoritmo NEX
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
Algoritmo NDC
NDC e protótiposPeso
Altura
+ ++ +
- - + +
- -
Peso
Altura
+ ++ +
- - + +
- -
Aprendizado Baseado em Instancias
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
Algoritmo Nearest Neighbor Distâncias Ponderadas
• 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)
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
Exercicios
Indução de Conceitos Competitivos
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
Protótipos
A
B
Peso
Altura Altura
Peso
A D
B C
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
Método dos Pesos
• Um dos problemas do método anterior é tratar todos os atributos de forma equivalente
• Se os atributos tem escalas diferentes– normalizar
• Alguns atributos tem maior importância
Relevância dos atributos
- -
Peso
Altura
+
+ + -
Pesos de atributos iguais Altura 0.93 e peso 0.68
- -
Peso
Altura
+
+ + -
Métrica de distância
i wi (pi-xi)2
• wi ?
• wi = 1 - 1/n( (k=1,c) j=1,nk pki - xji)
• n = número total de instâncias de treinamento
• nk = número de instâncias para a classe c
top related