Upload
cassius-busemeyer
View
736
Download
1
Embed Size (px)
DESCRIPTION
Aplicação de técnicas de mineração de dados na base soybean large, disponibilizada no site UCI KDD (http://kdd.ics.uci.edu/). Autores: Cassius Busemeyer, Cristiane Aparecida Luquetta.
Citation preview
Alunos:
Cassius Busemeyer
Cristiane Luquetta
As sete pontes de Königsberg:
Teoria dos grafos;
Vizinho mais próximos entre outros;
K-NN (vizinho mais próximo);
IB1.
Instance Based Learning;
Pouco esforço computacional no treino;
Compara-se ao J.48 (autores do algoritmo);
Usa distância euclidiana para calcular similaridade.
Vantagens
•Aceita valores ausentes (atribuindo um valor muito alto);
Desvantagens
•não pode determinar qual o número de vizinhos mais próximos a calcular;
•em alguns casos a distância euclidiana perde o poder de discriminação de diferenças, exigindo uma classificação dos dados;
•algoritmos posteriores IB2, IB3, IB4 e IB5 aceitam, mas ignoram os valores ausentes.
Compara exemplos do treino com 1 (um) exemplo da base e classifica-o escolhendo a classe da instância com maior grau de similaridade;
Hãã: Pega o exemplo mais parecido
do conjunto de treino.
PARA CADA x pertencente aos dados de treino FAÇA
1 PARA CADA y pertencente a base FAÇA
Sim [y] = similaridade (x,y)
2 ymax – alguns y pertencem a base com maximo sim[y]
3 SE class(x) = class (ymax)
ENTÃO classificação – correta
SENÃO classificação – incorreta
4 Classe – Classe U {x}
Deriva da Teoria dos Jogos de John Von Neumann (1926);
Albert Tucker cria o dilema do prisioneiro (1950);
John Nash mostra que existe equilíbrio entre jogos não-cooperativos (1951).
Vantagens
•Bastante usado para jogos;
Desvantagens
•Não aceita valores ausentes;
•Não funciona muito bem em bases grandes.
São explorados os lances possíveis para cada jogada até o fim do jogo ou profundidade da árvore (n jogadas). E escolhido o melhor lance possível para o jogador;
Hãã: cria todas as jogadas possíveis de um
jogo até seu fim (ou até onde a máquina ou
tempo permitir) e escolhe a melhor.
1. VERIFIQUE as próximas jogadas diretamente atingíveis a partir do tabuleiro corrente
SE a altura máxima de busca não tiver sido alcançada;SENÃO
RETORNE a estimativa (heurística) do tabuleiro corrente;2. ENTÃO caso uma se trate de posição de vitória, dê a ela a mais alta estimativa possível e retorne este valor;3. SENÃO considere todos os movimentos que o oponente possa fazer em seguida.
RETORNE a pior jogada /*do oponente*/ contra a máquina.
ATIVE recursivamente a expansão de estados;4. ESCOLHA a jogada com a mais alta estimativa.
É comparado com métodos estatísticos, principalmente NBC (Naive Bayes Classifier);
Algoritmo funciona de modos diferentes para valores numéricos e nominais;
Vantagens
•Aceita valores ausentes (ignorando-os);
Desvantagens
• ???? (não encontrado na literatura);
Cria um vetor descrevendo valores de um atributo e dá notas para cada valor de acordo com a classe, discretiza os dados, a classe mais votada ganha o atributo;
Hãã: cada valor de atributo de uma
instância vota numa classe e é eleita
a mais votada.
LEIA a base de treino
INÍCIO
PARA CADA característica f
PARA CADA classe c
End_point = end_points[f] une-se com find_end_points (training Set, f,c); tipo (end_points[f]);
SE f é linear
Cada par de distintos pontos consecutivos em end_points[f] forma escala intervalar
SENÃO /* é nominal */
Cada ponto distinto em end_points forma um ponto de intervalo
PARA CADA intervalo i na dimensão de atributos f
PARA CADA Classe c
Interval_class_count[f,i,c]= 0
Count_instances(f,conjunto de treino);
PARA CADA intervalo i nos atributos
PARA CADA classe c
Interval_class_vote[f,i,c]=interval_class_count[f,i,c]/class_count[c]
Normalize interval_class_vote[f,i,c];
/*tal que somatório de intervalo_class_vote[f,i,c]=1 */
FIM.
Contagem de instâncias (f,conjunto de treino);
INÍCIO
PARA CADA instância no conjunto de treino
SE ef é conhecido
I = encontre intervalos (f,ef)
Ec= classe da instância e
SE i é um ponto de intervalo
SE ef= limite mais baixo de i
Interval_class_count[f,i,ec]+=1
SENÃO /* é um range interval*/
SE ef= limite mais baixo de i
Interval_class_count[f,i-1,ec]+=0.5
Interval_class_count[f,I,ec]+=0.5
SENÃO /* e entra no i*/
Interval_class_count[f,i,ec]+=1
FIM
Classificação do algoritmo
INÍCIO
PARA CADA classe c
Vote[c]=0
PARA CADA atributo f
PARA CADA classe c
Feature_vote[f,c] = 0
SE ef é um valor conhecido
I= encontre intervalos (f,ef)
SE I é um ponto de intervalo
SE ef= limite mais baixo de i
PARA CADA classe c
Feature_vote[f,c] = intervals_class_vote[f,I,c]
SENÃO /*É uma escala intervalar*/
PARA CADA classe c
Feature_vote[f,c] = interval_class_vote[f,i-1,c] + interval_class_vote[f,I,c]/2
SENÃO /*entra no intervalo i*/
PARA CADA classe c
Feature_vote[f,c] = interval_class_vote[f,I,c]
PARA CADA classe c
Vote[c] = vote[c] + feature_vote[f,c];
RETORNE a classe c com maior vote[c]
FIM
Base sobre doenças da soja.
Originada de um trabalho Michalski e Chilausky;
Repositório disponibiliza duas versões:
340 instâncias e 307 instâncias;
Alguns autores dizem que Michalski e Chilausky não disponibilizaram os dados corretamente e não sabem como eles chegaram aos resultados divulgados;
Outros autores dizem que a base disponibilizada não é a mesma do trabalho original.
Variação dos tipos de doenças da soja.
Causador: Fungo (mais temidas); Vírus; Nematóides; Fitoplasma; Protozoários; Plantas parasitárias; Agentes variados (poluição,
temperatura);
Por região geográfica: Existem doenças particulares do
Brasil, EUA.
Etc...
Soybean_307
19 doenças
55 inst ausentes
712 val – 34/36 atributos
Soybean_290
15 doenças
39 inst ausentes
390 val – 19/36 atributos
Soybean_250
14 doenças
Nenhuma inst ausente
1 instância a mais excluída
MiniMax;
V.F.I;Comparado c/ NaiveBayes.
IB1;Comparado com J.48.
Todos os resultados passaram de 75% na fase inicial (dito como suficiente – Witten e Frank, 2005).
Use training set soybean_250 soybean_290 soybean_307
IB1 100,00% 100,00% 100,00%
J.48 95,20% 95,52% 95,11%
VFI 88,80% 84,83% 86,65%
NaiveBayes 92,00% 93,10% 93,16%
MiniMax 80,00% X X
Algoritmo (nº part.) soybean_250 soybean_290 soybean_307
IB1 (10 folds) 88,00% 90,69% 91,21%
IB1 (30 folds) 88,80% 92,76% 90,88%
J.48 (10 folds) 87,20% 88,62% 83,06%
J.48 (30 folds) 88,00% 89,66% 81,43%
VFI (10 folds) 87,60% 82,41% 82,41%
VFI (30 folds) 87,20% 82,41% 82,08%
NaiveBayes (10 folds) 88,80% 89,31% 90,88%
NaiveBayes (30 folds) 88,40% 88,97% 90,88%
Minimax (10 folds) 40,40% X X
Minimax (30 folds) 40,40% X X
Dificuldades:
Entendimento da base;
Pouca literatura ou literatura com informações divergentes sobre os algoritmos;
Pesquisadores não responderam/etapa de validação;
Próximos trabalhos:
Melhor avaliação e comparação de resultados.
Obrigado!