730 likes | 843 Views
Avaliação do Conhecimento Descoberto. Fábio Moura orientado por Francisco Carvalho. Motivação Treinamento e teste Estimando performance Cross-validation Leave-one-out cross-validation Bootstrap Comparando esquemas de aprendizado Predizendo probabilidades
E N D
Avaliação do Conhecimento Descoberto Fábio Moura orientado por Francisco Carvalho
Motivação Treinamento e teste Estimando performance Cross-validation Leave-one-out cross-validation Bootstrap Comparando esquemas de aprendizado Predizendo probabilidades Contabilizando o custo de previsões erradas Lift charts ROC curves Avaliando previsões numéricas Medidas de avaliação do conhecimento descoberto O princípio MDL Avaliação do Conhecimento Descoberto
Motivação • Avaliação: a chave para o sucesso em data mining • Qual o grau de confiabilidade do modelo aprendido? • Performance no conjunto de treinamento não é um bom indicador de performance em dados futuros • Solução simples • Utilize um amplo conjunto de dados para treinamento e teste • Quando dados não são facilmente disponíveis • Utilização de técnicas mais sofisticadas • Ex.: dados sobre consumo de energia dos últimos 15 anos
Tópicos em Avaliação do Conhecimento Descoberto • Testes estatísticos para determinar a performance de diferentes esquemas de aprendizado de máquina • Escolha da medida de performance • Número de classificações corretas • Precisão da previsão de probabilidade em classes • Erros em previsões numéricas • Custos associados a diferentes tipos de erros • Muitas aplicações práticas envolvem custos
Motivação Treinamento e teste Estimando performance Cross-validation Leave-one-out cross-validation Bootstrap Comparando esquemas de aprendizado Predizendo probabilidades Contabilizando o custo de previsões erradas Lift charts ROC curves Avaliando previsões numéricas Medidas de avaliação do conhecimento descoberto O princípio MDL Avaliação do Conhecimento Descoberto
Treinamento e Teste • Medida natural para classificação de problemas: taxa de erro • Acerto: instância da classe é prevista corretamente • Erro: instância da classe é prevista incorretamente • Taxa de erro: proporção dos erros sobre todo o conjunto de instâncias • Erro de resubstituição: taxa de erro obtida do conjunto de treinamento • Erro de resubstituição é (esperançosamente) otimista !
Treinamento e Teste • Conjunto de teste: conjunto de instâncias independentes que não são utilizadas na formação do classificador • Suposição: tanto o conjunto de dados para treinamento como o conjunto de dados para teste são exemplos representativos do problema em questão • Dados de teste e treinamento podem ser naturalmente diferentes • Exemplo: classificadores construidos utilizando-se dados de duas cidades diferentes A e B • Estimar a performance de um classificador da cidade A e testá-lo utilizando-se dados da cidade B
Observações sobre Ajuste de Parâmetros • É importante que os dados de teste não sejam utilizados para criação do classificador • Alguns esquemas de aprendizado operam em dois estágios • Estágio 1: construção da estrutura básica • Estágio 2: otimização dos parâmetros • Os dados de teste não podem ser utilizados para ajuste dos parâmetros • Procedimentos apropriados utilizam três conjuntos: dados de treinamento, validação e teste • Dados de validação são utilizados para otimização dos parâmetros
Aproveitando Melhor os Dados • Uma vez que a avaliação está completa, todos os dados podem ser utilizados na construção do classificador final • Geralmente, quanto maior o conjunto de dados para treinamento, melhor o classificador • Quanto maior o conjunto de dados para teste, mais precisa a estimativa de erro • Procedimento Holdout: método para divisão dos dados originais nos conjuntos de treinamento e teste • Dilema: idealmente queremos os dois, um grande conjunto de dados para treinamento e para teste
Motivação Treinamento e teste Estimando performance Cross-validation Leave-one-out cross-validation Bootstrap Comparando esquemas de aprendizado Predizendo probabilidades Contabilizando o custo de previsões erradas Lift charts ROC curves Avaliando previsões numéricas Medidas de avaliação do conhecimento descoberto O princípio MDL Avaliação do Conhecimento Descoberto
Estimando Performance • Assuma uma taxa de erro estimada de 25%. O quão perto esta taxa está da taxa de erro real? • Depende do volume de dados para teste • Previsão é como jogar uma moeda viciada • “Cara” é um “acerto”, “coroa” é um “erro” • Em estatística, uma sucessão de eventos independentes como este é chamado de um processo Bernoulli • A teoria estatística nos provê com intervalos de confidência que mostra a proporção em que a verdade se fundamenta
Intervalos de Confidência • Nós podemos dizer: p possui um certo intervalo especificado com uma certa confidência especificada • Exemplo: S=750 acertos em N=1000 tentativas • Taxa de acerto estimada: 75% • O quão próximo esta taxa está da verdadeira taxa de acerto p? • Resposta: com 95% de confidência p [73.3, 76.8] • Outro exemplo: S=75 e N=100 • Taxa de acerto estimada: 75% • Com 95% de confidência p [70.0, 81.0]
Média e Variância • Média e variância para um teste Bernoulli: p, p(1-p) • Taxa de acerto esperada f =S/N • Média e variância para f: p, p(1-p)/N • Para um N suficientemente grande, f segue uma distribuição normal • c% intervalo de confidência [-z X z] para uma variável aleatória com média 0 é dada por: Pr[-z X z] = c • Dando uma distribuição simétrica: Pr[-z X z] = 1 - (2*Pr[X z])
Limites de Confidência • Limites de confidência para uma distribuição normal com média 0 e variância 1: • Assim: Pr[-1,65 X 1,65] = 90% • Para utilizar isto, temos que reduzir nossa variável aleatória f para que tenha média 0 e variância unitária
Transformando f • Valor transformado para f: (i.e. subtração da média e divisão pelo desvio padrão) • Equação resultante: • Resolvida para p:
Exemplos • f=75%, N=1000, c=80% (então z=1.28): p[0.732, 0.767] • f=75%, N=100, c=80% (então z=1.28): p[0.691, 0.801] • Note que a suposição de distribuição normal somente é válida para um N “grande” (i.e. N > 100) • f=75%, N=10, c=80% (então z=1.28): p[0.549, 0.881]
Estimativa Holdout • O que devemos fazer se a quantidade de dados é limitada? • O método holdout reserva uma certa quantidade de dados para teste e utiliza o restante para treinamento • Normalmente: um terço para teste, o restante para treinamento • Problema: os exemplos podem não ser representativos • Exemplo: classe faltando nos dados de teste • A versão avançada utiliza estratificação • Garante que cada classe esteja representada com aproximadamente a mesma proporção em ambos conjuntos
Método Holdout Repetitivo • A estimativa holdout pode se tornar mais confiável se repetirmos o processo com diferentes subexemplos • Em cada iteração, uma certa proporção é aleatoriamente selecionada para treinamento (possivelmente com estratificação) • Um média das taxas de erro nas diferentes iterações é calculada para produção de uma taxa de erro geral • Continua não sendo ótimo: diferentes conjuntos de teste se sobrepõem • Podemos prevenir sobreposição?
Cross-validation • Cross-validation evita sobreposição de conjuntos de teste • Primeiro passo: os dados são divididos em k subconjuntos de tamanho igual • Segundo passo: cada subconjunto, em fila, é utilizado para teste e o restante para treinamento • Este processo é chamado k-fold cross-validation • Geralmente os subconjuntos são estratificados antes que a validação cruzada seja realizada • Calcula-se a média dos erros estimados a fim de se produzir uma estimativa de erro geral
Cross-validation • Método padrão de avaliação: ten-fold cross-validation estratificado • Por que dez? Experimentos extensivos mostraram que esta é a melhor escolha a fim de se conseguir uma estimativa precisa • Também existem algumas evidências teóricas • Estratificação reduz a variação da estimativa • Ainda melhor: cross-validation estratificado repetitivo • Ten-fold cross-validation é repetido dez vezes e a média dos resultados é calculada
Leave-one-out Cross-validation • É uma forma particular de cross-validation: • O número de “folds” é fixado com o número de instâncias para treinamento • Um classificador tem que ser construído n vezes, onde n é o número de instâncias para treinamento • Faz uso máximo dos dados • Não envolve o uso de subexemplos aleatórios • Computacionalmente muito caro
LOO-CV e Estratificação • Outra desvantagem do LOO-CV: não é possível estratificação • Há apenas uma instância no conjunto de teste • Exemplo extremo: conjunto de dados completamente aleatório com duas classes em igual proporção • Melhor indutor que prevê a classe majoritária (resulta em 50%) • A estimativa LOO-CV para este indutor seria de uma taxa de erro de 100%
Bootstrap • CV utiliza exemplos sem substituição • A mesma instância, uma vez selecionada, não pode ser selecionada novamente para um conjunto de treinamento/teste em particular • O bootstrap é um método de estimativa que utiliza exemplos com substituição para formar o conjunto de treinamento • Um conjunto de dados com n instâncias é utilizado n vezes a fim de formar um novo conjunto de dados com n instâncias • Estes dados são utilizados como conjunto de treinamento • As instâncias do conjunto de dados original que não ocorrem no novo conjunto de treinamento são utilizadas para teste
0.632 Bootstrap • Este método também é conhecido como 0.632 bootstrap • Uma particular instância tem a probabilidade de 1-1/n de não ser utilizada • Assim, sua probabilidade de terminar nos dados de teste é: • Isto significa que o conjunto de dados para treinamento irá conter aproximadamente 63.2% das instâncias
Estimando Erro Com o Bootstrap • O erro estimado nos dados de teste será muito pessimista • Ele contém apenas ~63% das instâncias • Assim, ele é combinado com o erro de resubstituição: • O erro de resubstituição tem menor peso que o erro nos dados de teste • O processo é repetido várias vezes, com diferentes exemplos gerados, toma-se a média dos resultados
Observações sobre Bootstrap • É provavelmente a melhor maneira para estimativa de performance em conjuntos de dados muito pequenos • Entretanto, possui alguns problemas • Considerando o conjunto de dados aleatório anterior • Um perfeito memorizador alcançará 0% de erro de resubstituição e ~50% de erro nos dados de teste • Bootstrap estimará para este classificador: err = 0.632 x 50% + 0.368 x 0% = 31.6% • Verdadeira taxa de erro esperada: 50%
Motivação Treinamento e teste Estimando performance Cross-validation Leave-one-out cross-validation Bootstrap Comparando esquemas de aprendizado Predizendo probabilidades Contabilizando o custo de previsões erradas Lift charts ROC curves Avaliando previsões numéricas Medidas de avaliação do conhecimento descoberto O princípio MDL Avaliação do Conhecimento Descoberto
Comparando Esquemas de Aprendizado • Situação freqüente: queremos saber entre dois esquemas de aprendizado qual o de melhor performance • Nota: isto é dependente do domínio • Caminho óbvio: compare estimativas 10-fold CV • Problema: variação na estimativa • A variação pode ser reduzida utilizando-se CV repetitivo • Entretanto, ainda não sabemos se os resultados são confiáveis
Testes de Significância • Testes de significância nos diz o quão confidentes podemos ser que realmente existe uma diferença • Hipótese nula: não há diferença “real” • Hipótese alternativa: há uma diferença • Um teste de significância mede quanta evidência existe em favor de rejeitar-se a hipótese nula • Se estivermos utilizando 10-fold CV 10 vezes • Então nós queremos saber se as duas médias das estimativas do 10 CV são significantemente diferentes
Paired t-test • Student´s t-test nos diz se a média de dois exemplos são significantemente diferentes • Os exemplos individuais são tomados do conjunto de todos as estimativas cross-validation possíveis • Nós utilizamos o paired t-test porque os exemplos individuais são casados • O mesmo CV é aplicado duas vezes, uma para cada esquema • Fazendo x1, x2, ..., xk e y1, y2, ..., yk serem os 2k exemplos para um k ten-fold CV
Distribuição das Médias • Sendo mx e my as médias dos respectivos exemplos • Se existirem exemplos suficientes, a média de um conjunto independente de exemplos é normalmente distribuída • As variâncias estimadas das médias são x2/k e y2/k • Se x e y são as verdadeiras médias entãosão aproximações normalmente distribuídas com média 0 e variância unitária
Distribuição Student • Com exemplos pequenos (k < 100) a média segue a distribuição student com k -1 graus de liberdade • Limites de confidência para 9 graus de liberdade (esquerda), comparado a limites para uma distribuição normal (direita):
Distribuição das Diferenças • Seja md = mx - my • A diferença das médias (md) também tem uma distribuição student com k-1 graus de liberdade • Seja d2/k a variância da diferença • A versão padronizada de md é chamada t-statistic: • Nós utilizamos t para realizar o t-teste
Realizando o Teste • Fixe um nível de significância • Se a diferença está significantemente no nível % há uma chance de (100 - )% de que realmente exista uma diferença • Divida o nível de significância por dois já que o teste é “two-tailed” • A verdadeira diferença pode ser positiva ou negativa • Verifique o valor de z que corresponde a /2 • Se t -z ou t z então a diferença é significante • A hipótese nula pode ser rejeitada
Observações • Se as CV estimadas forem de diferentes sorteios, não há mais “casamento” • Talvez nós ainda usemos k-fold CV para um esquema e j-fold CV para outro • Então devemos utilizar o t-teste unpaired com min(k,j)-1 graus de liberdade • A t-statistic se torna:
Notas sobre a Interpretação do Resultado • Toda estimativa cross-validation é baseada no mesmo conjunto de dados • Portanto, o teste apenas nos diz quando um completo k-fold CV para este conjunto de dados irá mostrar uma diferença • Um k-fold CV completo irá gerar todas as possíveis partições dos dados em k conjuntos e calcular a média dos resultados • Idealmente, nós queremos conjuntos de dados de exemplo diferentes para cada estimativa k-fold CV usando o teste para julgar a performance através de diferentes conjuntos de treinamento
Motivação Treinamento e teste Estimando performance Cross-validation Leave-one-out cross-validation Bootstrap Comparando esquemas de aprendizado Predizendo probabilidades Contabilizando o custo de previsões erradas Lift charts ROC curves Avaliando previsões numéricas Medidas de avaliação do conhecimento descoberto O princípio MDL Avaliação do Conhecimento Descoberto
Predizendo Probabilidades • Medida de performance: taxa de acerto • Também chamada função de perda 0-1: • Muitos classificadores produzem classes de probabilidades • Dependendo da aplicação, nós podemos querer checar a precisão das estimativas de probabilidade • Perda 0-1 não é o modelo correto a ser utilizado nestes casos
Função de Perda Quadrática • p1, ..., pk são probabilidades estimadas para uma instância • Seja c o índice da classe atual da instância • a1, ..., ak = 0, exceto para ac, que é 1 • A “perda quadrática” é: • Justificativa:
Função de Perda Informacional • A “informational loss function” é –log(pc), onde c é o índice da classe atual da instância • Número de bits necessários para comunicar a classe atual • Ex.: “cara ou coroa” - log2 1/2 = 1 • Sejam p1*, ..., pk* as probabilidades verdadeiras das classes • Então o valor esperado para a “função de perda” é: • Justificativa: minimizado para pj = pj* • Dificuldade: problema da freqüência zero • Se a probabilidade é zero, o valor da função é -
Observações • Qual “função de perda” deveríamos escolher? • A “quadratic loss function” leva em conta todas as probabilidades de classes estimadas para uma instância • A “informational loss” foca somente na probabilidade estimada para a classe atual • A “quadratic loss” é restringida por • Nunca poderá exceder a 2 • A “informational loss” poderã ser infinita • A “informational loss” está relacionada ao princípio MDL
Motivação Treinamento e teste Estimando performance Cross-validation Leave-one-out cross-validation Bootstrap Comparando esquemas de aprendizado Predizendo probabilidades Contabilizando o custo de previsões erradas Lift charts ROC curves Avaliando previsões numéricas Medidas de avaliação do conhecimento descoberto O princípio MDL Avaliação do Conhecimento Descoberto
Contabilizando os Custos • Na prática, diferentes tipos de erros de classificação geralmente incorrem em diferentes custos • Exemplos: • Decisões de empréstimo • Detecção de vazamento de óleo • Diagnóstico de falha • Cartas promocionais • enviar carta p/ família q ñ responderá x ñ enviar carta p/ família q responderá
Mantendo Custos em Conta • A matriz “confusão”: • Há muitos outros tipos de custos • Custos de coleta de dados para treinamento
Lift Charts • Na prática, custos raramente são desconhecidos • Decisões são tomadas geralmente pela comparação de cenários possíveis • Exemplo: cartas promocionais • Situação 1: classificador prevê que 0,1% de todos as famílias irão responder = 1.000 respostas • Situação 2: classificador prevê que 0,4% das 10.000 famílias mais promissoras irão responder = 400 respostas • Situação 3: classificador prevê que 0,2% de 400.000 famílias irão responder = 800 respostas • Um lift chart permite uma comparação visual
Gerando um Lift Chart • Instâncias são classificadas de acordo com suas probabilidades previstas de serem um “true positive”: • Em um lift chart, o eixo x é o tamanho do exemplo e o eixo y é o número de “true positives”
ROC Curves • Curvas ROC são similares a lifit charts • “ROC” vem de “receiver operating characteristic” • Utiliza um sinal de detecção para mostrar o tradeoff entre a taxa de acerto (hit rate) e a taxa de alarme falso (false alarm rate) acima do canal de ruído (noisy channel) • Diferenças do lift chart: • O eixo y mostra o percentual de true positives em um exemplo (em vez do valor absoluto) • O eixo x mostra o percentual de false positives em um exemplo (em vez do tamanho do exemplo)
Cross-validation e Roc Curves • Método simples para criar uma curva Roc utilizando cross-validation: • Coletar probabilidades de instâncias em conjuntos de teste • Classificar as instâncias de acordo com as probabilidades • Este método é implementado no WEKA • Entretanto, esta é apenas uma possibilidade • O método descrito no livro gera uma curva ROC para cada conjunto e calcula a média entre eles