A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Classificação: conceitos básicos e árvores de decisão

Apresentações semelhantes


Apresentação em tema: "Classificação: conceitos básicos e árvores de decisão"— Transcrição da apresentação:

1 Classificação: conceitos básicos e árvores de decisão
Mineração de dados Classificação: conceitos básicos e árvores de decisão Apresentação adaptada do material de apoio do livro: Introduction to Data Mining Tan, Steinbach, Kumar

2 Classificação: Definição
Dada uma coleção de registros (conjunto de treinamento,training set ) cada registro contém um conjunto de atributos, e um dos atributos é a classe. Encontre um modelo para o atributo classe como uma função dos valores de outros atributos. Objetivo: a classe deve ser atribuída tão acuradamente quanto possível para novos registros. Um conjunto de teste (test set) é usado para determinar a acurácia do modelo. Geralmente o conjunto de dados é dividido em conjunto de treinamento e conjunto de teste.

3 Ilustrando a Tarefa de Classificação

4 Exemplos de Tarefas de Classificação
Predizer se um tumor é benigno ou maligno Classificar transações de cartões de crédito como legítimas ou fraudulentas Classificar estruturas secundárias de proteínas como alpha-helix, beta-sheet, or random coil Categorizar textos como da área de finanças, previsão de tempo, esportes, cultura, etc.

5 Técnicas de Classificação
Métodos baseados em árvores de decisão Métodos baseados em regras Raciocínio baseado em memória Redes neurais Naïve Bayes e Redes Bayesianas Máquinas de Vetores de Suporte (Support Vector Machines)

6 Exemplo de uma árvore de decisão
categorical continuous class Atributo teste Refund Yes No NO MarSt Single, Divorced Married TaxInc NO < 80K > 80K NO YES Dados de treinamento Modelo: árvore de decisão

7 Outro exemplo de árvore de decisão
categórico categórico contínuo classe MarSt Single, Divorced Married NO Refund No Yes NO TaxInc < 80K > 80K NO YES Pode haver mais de um árvore para o mesmo conjunto de dados

8 Classificação usando árvores de decisão
Decision Tree

9 Aplicando o modelo nos dados de teste
Dado para teste Comece pela raíz da árvore. Refund MarSt TaxInc YES NO Yes No Married Single, Divorced < 80K > 80K

10 Aplicando o modelo nos dados de teste
Dado para teste Refund MarSt TaxInc YES NO Yes No Married Single, Divorced < 80K > 80K

11 Aplicando o modelo nos dados de teste
Dado para teste Refund Yes No NO MarSt Single, Divorced Married TaxInc NO < 80K > 80K NO YES

12 Aplicando o modelo nos dados de teste
Dado para teste Refund Yes No NO MarSt Single, Divorced Married TaxInc NO < 80K > 80K NO YES

13 Aplicando o modelo nos dados de teste
Dado para teste Refund Yes No NO MarSt Single, Divorced Married TaxInc NO < 80K > 80K NO YES

14 Aplicando o modelo nos dados de teste
Dado para teste Refund Yes No NO MarSt Married Assign Cheat to “No” Single, Divorced TaxInc NO < 80K > 80K NO YES

15 Classificação com árvore de decisão
Decision Tree

16 Indução de árvores de decisão
Vários algoritmos: Hunt’s Algorithm (um dos primeiros) CART ID3, C4.5 SLIQ,SPRINT

17 Estrutura geral do algorítmo de Hunt
Seja Dt o conjunto de registros de teste que alcança o nodo t Procedimento geral: Se Dt só contém registros que pertencem a mesma classe yt, então t é um nodo folha rotulado como yt Se Dt é um conjunto vazio, então t é um nodo folha rotulado com a classe default, yd Se Dt contém registros que pertencem a mais de uma classe, use um atributo teste para dividir os dados em subconjuntos menores. Recursivamente aplique o procedimento para cada subconjunto. Dt ?

18 Hunt’s Algorithm Refund Refund Refund Marital Marital Status Status
Don’t Cheat Yes No Don’t Cheat Refund Don’t Cheat Yes No Marital Status Single, Divorced Married Refund Don’t Cheat Yes No Marital Status Single, Divorced Married Taxable Income < 80K >= 80K

19 Indução da árvore Estratégia gulosa.
Divida os registros baseado no atributo teste que otimiza um certo critério. Questões Determine como dividir os registros Como especificar qual o atributo teste? Como determinar a melhor divisão? Determine quando parar de dividir

20 Como especificar qual o atributo teste?
Depende do tipo dos atributos Nominal (categórico,...) Ordinal Contínuo Depende do tipo de divisão divisão binária divisão em múltiplos caminhos

21 Divisão baseada em atributos nominais
Divisão múltipla: Use tantas partições quantos forem os valores distintos do atributo. Divisão binária: Divide em dois subconjuntos Necessidade de encontrar o particionamento ótimo. CarType Family Sports Luxury CarType {Sports, Luxury} {Family} CarType {Family, Luxury} {Sports} OU

22 Divisão baseada em atributos ordinais
Divisão múltipla : Use tantas partições quantos forem os valores distintos do atributo Divisão binária: Divide em dois subconjuntos Necessidade de encontrar o particionamento ótimo. E esta divisão? Size Small Medium Large Size {Small, Medium} {Large} Size {Medium, Large} {Small} OU Size {Small, Large} {Medium}

23 Divisão baseada em atributos contínuos
Diferentes formas de tratar Discretização para formar um atributo ordinal categórico Estático – discretizar uma vez no início Dinâmico – intervalos podem ser determinados por mesmo tamanho, mesma freqüência, clustering. Decisão binária: (A < v) or (A  v) considera todas as divisões possíveis e usa a melhor

24 Divisão baseada em atributos contínuos

25 Indução de árvores Estratégia gulosa.
Divida os registros baseado no atributo teste que otimiza um certo critério. Questões Determine como dividir os registros Como especificar qual o atributo teste? Como determinar a melhor divisão? Determine quando parar de dividir

26 Como determinar a melhor divisão
Antes da divisão: 10 registros da classe 0, registros da classe 1 Qual divisão é a melhor?

27 Como determinar a melhor divisão
Estratégia gulosa : Nós com distribuição de classe homogenea são preferidos Necessita da medida da “impureza” do nó: Não-homogênea, Alto grau de impureza Homogêneo, baixo grau de impureza

28 Medidas de impureza de um nó
Índice de Gini Entropia Erro de classificação

29 Como encontrar a melhor divisão?
Antes da divisão: M0 A? B? Sim Não Sim Não Nodo N1 Nodo N2 Nodo N3 Nodo N4 M1 M2 M3 M4 M12 M34 Ganho = M0 – M12 vs M0 – M34

30 Medida da impureza: GINI
Índice Gini para um nó t : (Nota: p( j | t) é a freqüência relativa da classe j no nó t). Máximo (1 - 1/nc) quando os registros estão igualmente distribuídos entre todas as classes (pior) Mínimo (0.0) quando todos os registros pertencem a uma classe (melhor)

31 Exemplos do cálculo do índice GINI
P(C1) = 0/6 = P(C2) = 6/6 = 1 Gini = 1 – P(C1)2 – P(C2)2 = 1 – 0 – 1 = 0 P(C1) = 1/ P(C2) = 5/6 Gini = 1 – (1/6)2 – (5/6)2 = 0.278 P(C1) = 2/ P(C2) = 4/6 Gini = 1 – (2/6)2 – (4/6)2 = 0.444

32 Divisão baseda no índice GINI
Usado nos métodos CART, SLIQ, SPRINT. Quando um nó p é dividido em k partições (filhos), a qualidade da divisão é calculada como, onde, ni = número de registros no filho i, n = número de registros no nó p.

33 Índice Gini para atributos categóricos
Multi-way split Binary split (find best partition of values)

34 Atributos contínuos: cálculo do índice Gini
Usar decisão binária baseada em um valor Várias possibilidades para a escolha do valor de corte Número de possíveis cortes = número de valores distintos Cada valor de corte tem uma matriz associada Contadores de classe para cada partição possível, A < v and A  v Método simples para escolher o melhor valor de corte Para cada v, varra os dados para realizar a contagem e calcular o índice Gini Computacionalmente ineficiente! Reptição do trabalho.

35 Atributos contínuos: cálculo do índice Gini
Para uma computação eficiente: para cada atributo contínuo, Classifique os valores do atributo em ordem crescente percorra os dados, atualizando a matriz de contadores e calculando o índice Gini Escolha a posição de corte que tem o menor índice Gini Split Positions Sorted Values

36 Divisão baseada em entropia
Entropia em um nó t: (Nota: p( j | t) é a freqüência relativa da classe j no nó t). Mede a homogeneidade de um nó. Máximo (log nc) quando os registros estão igualmente distribuídos entre todas as classes Mínimo (0.0) quando todos os registros pertencem a uma classe O cálculo baseado em entropia é similar ao baseado no índice Gini

37 Exemplos de cálculo da entropia
P(C1) = 0/6 = P(C2) = 6/6 = 1 Entropia = – 0 log 0 – 1 log 1 = – 0 – 0 = 0 P(C1) = 1/ P(C2) = 5/6 Entropia = – (1/6) log2 (1/6) – (5/6) log2 (1/6) = 0.65 P(C1) = 2/ P(C2) = 4/6 Entropia = – (2/6) log2 (2/6) – (4/6) log2 (4/6) = 0.92

38 Divisão baseada em entropia ...
Ganho de Informação (Information Gain): O nó pai p é dividido em k partições; ni é o número de registros na partição i Mede a redução da entropia em função da divisão. Escolhe a divisão que obtém maior redução (maximiza o ganho) Usado nos métodos ID3 e C4.5 Desvantagem: Tende a preferir divisões que resultam em grande número de partições, cada uma delas sendo pequena mas pura.

39 Splitting Based on INFO...
Razão de ganho (Gain Ratio): O nó pai p é dividido em k partições; ni é o número de registros na partição i Ajusta o Ganho de Informação pela entropia do particionamento (SplitINFO). Particionamento de alta entropia (grande número de pequenas partições) é penalizado. Usado no C4.5 Projetado para evitar as desvantagens do Ganho de Informação

40 Exemplo:

41 Entropia e Ganho de Informação
Considerando apenas 2 valores possíveis, a entropia é dada pela fórmula: Entropia (S) = - (p+ log2 p+ + p- log2 p-) Onde: S é a totalidade de amostras do conjunto (todos os registros) p+ é a proporção de amostras positivas p- é a proporção de amostras negativas Exemplo: Se S é uma coleção de 14 exemplos com 9 instâncias positivas e 5 negativas, então: Entropia (S) = - (9/14) Log 2 (9/14) – (5/14) Log 2 (5/14) = 0.940

42 Nodo raiz Selecionando o melhor atributo:
Entropia(S) = - 9/14 log2 (9/14) - 5/14 log 2 (5/14) = 0,940 Entropia(montante=médio) = - 2/5 log2 (2/5) - 3/5 log 2 (3/5) = 0,971 Entropia(montante=baixo) = - 4/4 log2 (4/4) - 0/4 log2 (0/4) = 0 Entropia(montante=alto) = - 3/5 log2 (3/5) - 2/5 log2 (2/5) = 0,971 Gain (S,montante) = 0,940 - (5/14) 0,971 - (4/14) 0 - (5/14) 0,971 = 0,246 Gain (S,idade) = 0,940 - (4/14) 1 - (5/14) 0,971 - (5/14) 0,722 = 0,049 Gain (S,salário) = 0,940 - (7/14) 0,592 - (7/14) 0,985 = 0,151 Gain (S,conta) = 0,940 - (8/14) 0,811 - (6/14) 1 = 0,047

43 Escolha do próximo atributo
montante médio baixo alto ? sim {C1,C2,...C14} [9+, 5-] {C1,C2,C8,C9,C11} [2+, 3-] {C3,C7,C12,C13} [4+, 0-] {C4,C5,C6,C10,C14} [3+, 2-] Qual atributo pode ser testado aqui?

44 Escolha o próximo atributo
Qual é o melhor atributo? Smédio = {C1,C2,C8,C9,C11} Gain (Smédio, idade) = 0,971 - (2/5)0 - (2/5)1 - (1/5)0 = 0,571 Gain (Smédio, salário) = 0,971 - (3/5)0 - (2/5)0 = 0,971 Gain (Smédio, conta) = 0,971 - (3/5)0,918 - (2/5)1= 0,020

45 montante salário ? {C1,C2,...C14} [9+, 5-] médio baixo alto
{C1,C2,C8,C9,C11} [2+, 3-] {C3,C7,C12,C13} [4+, 0-] {C4,C5,C6,C10,C14} [3+, 2-] salário sim ? baixo alto {C1,C2,C8} [0+, 3-] {C9,C11} [2+, 0-]

46 Resultado montante médio baixo alto conta salário não sim E=sim E=não

47 Divisão baseada em erro de classificação
Erro de classificação no nó t : Mede o erro de classificação em um nó. Máximo (1 - 1/nc) quando os registros são igualmente distribuídos entre todas as classes (pior) Mínimo (0.0) quando todos os registros pertencem à mesma classe (melhor)

48 Exemplos de cálculo de erro de classificação
P(C1) = 0/6 = P(C2) = 6/6 = 1 Error = 1 – max (0, 1) = 1 – 1 = 0 P(C1) = 1/ P(C2) = 5/6 Error = 1 – max (1/6, 5/6) = 1 – 5/6 = 1/6 P(C1) = 2/ P(C2) = 4/6 Error = 1 – max (2/6, 4/6) = 1 – 4/6 = 1/3

49 Comparação entre os critérios de divisão
Para problemas com duas classes:

50 Indução de árvores Estratégia gulosa.
Divida os registros baseado no atributo teste que otimiza um certo critério. Questões Determinar como dividir os registros Como especificar qual o atributo teste? Como determinar a melhor divisão? Determinar quando parar de dividir

51 Critérios de parada para a indução de árvores
Pare de expandir um nó quando todos os registros pertencem à mesma classe Pare de expandir um nó quando todos os registros tiverem os mesmos valores de atributo

52 Classificação baseada em árvores de decisão
Vantagens: Construção barata Extremamente rápido para classificar novos registros Fácil interpretação de árvores pequenas A acurácia é comparável a outros métodos de classificação para muitos conjuntos de dados

53 Exemplo: C4.5 Algoritmo simples, em profundidade.
Usa o Ganho de Informação (Information Gain) Classifica atributos contínuos em cada nó. Exige que todos os dados caibam em memória. Não indicado para grandes conjuntos de dados. Necessita classificação em disco. O Software pode ser baixado do site:

54 Questões práticas de classificação
Sub e super-especialização (Underfitting and Overfitting) Valores faltantes Custo da classificação

55 Sub e super-especialização (Exemplo)
500 pontos circulares e 500 pontos triangulares data. Pontos circulares: 0.5  sqrt(x12+x22)  1 Pontos triangulares: sqrt(x12+x22) > 0.5 or sqrt(x12+x22) < 1

56 Sub e super-especialização
Overfitting Sub-especialização: quando o modelo é simples demais, os erros com os dados de treinamento e de teste são grandes

57 Super-especialização em função do ruído
A fronteira de decisão é distorcida pelo ruído


Carregar ppt "Classificação: conceitos básicos e árvores de decisão"

Apresentações semelhantes


Anúncios Google