Marcus Sampaio DSC/UFCG Vários slides foram adaptados, traduzidos ou copiados de Pang-Ning Tan (ver Bibliografia) Etapas do Processo Marcus Sampaio DSC/UFCG Etapas do Processo • • • • • Seleção Pré-Processamento Transformação Garimpagem Análise e Assimilação Marcus Sampaio DSC/UFCG Seleção + Pré-processamento Marcus Sampaio DSC/UFCG • Macro etapa Preparação de Dados – Seleção • Identificação dos bancos de dados • Seleção de atributos • ‘Discretização’ de valores de atributos numéricos – Pré-processamento • Limpeza • Amostragem Seleção de Atributos Marcus Sampaio DSC/UFCG • Existem algoritmos que selecionam automaticamente, de um banco de dados, os atributos relevantes para compor as instâncias ou exemplos de mineração – Para Seleção de Atributos, consultar o livro texto, ou qualquer bom livro de MD • Banco de Dados, no contexto de MD, é qualquer coleção desnormalizada de documentos – MD e BD Relacional: “Impedance mismatching” ‘Discretização’ de Atributos Marcus Sampaio DSC/UFCG • Para diminuir a complexidade de um modelo de conhecimento, atributos com domínio devem ser ‘discretizados’ – WEKA possui vários algoritmos de ‘discretização’ – Alguns algoritmos de MD simplesmente não trabalham com domínios – Algoritmos que ‘trabalham’ com domínios na verdade embutem algoritmos de ‘discretização’ Pré-Processamento: Limpeza Marcus Sampaio DSC/UFCG • Uma verdadeira ‘praga’ em aplicações de mineração de dados é a pobre qualidade dos dados de entrada dos algoritmos • Uma maneira de resolver ou minimizar o problema é fazer uma inspeção manual nos arquivos de dados. Para arquivos grandes, isto pode ser impraticável Limpeza Marcus Sampaio DSC/UFCG • Felizmente, as próprias técnicas de mineração de dados podem ajudar a resolver o problema • Considere um problema de classificação, e duas espécies de ‘sujeira’: no atributo de classificação, e nos atributos que não são de classificação • ‘Sujeira’ em atributos de classificação – Remover as instâncias concernentes do conjunto de treinamento. Como? • Rodando um algoritmo de classificação que procure ser espelho do conjunto de treinamento 100% de acurácia de treinamento – As instâncias que caem em classes ‘sujas’ são fisicamente retiradas Limpeza Marcus Sampaio DSC/UFCG • ’Sujeira’ em atributos que não são de classificação – Alguns algoritmos são capazes de descobrir atributos não confiáveis, logicamente removendo a ‘sujeira’ do conjunto de treinamento • Exemplo: algoritmo WEKA J48 (Árvores de Decisão) – Pressuposição: ‘sujeiras’ são pouco freqüentes, comparadas com valores ‘limpos’ • Existem diversas ferramentas para limpeza automática – Remoção lógica – Remoção física Amostragem Marcus Sampaio DSC/UFCG • A idéia é escolher somente uma parte do conjunto de treinamento, mas que seja representativa do conjunto inteiro • Estado-da-arte em amostragem – Diversas técnicas – Tecnologia relativamente consolidada – Diversas ferramentas existentes no mercado Etapas do Processo • • • • • Seleção Pré-Processamento Transformação Garimpagem Análise e Assimilação Marcus Sampaio DSC/UFCG Transformação Marcus Sampaio DSC/UFCG • Cada algoritmo de mineração de dados necessita de uma entrada específica • A finalidade da transformação é então de transformar os dados preparados, de modo a torná-los compatíveis com as entradas dos diversos algoritmos de mineração de dados • Exemplo 1 – Gerar arquivos .arff para usar os algoritmos da biblioteca WEKA Marcus Sampaio DSC/UFCG • Exemplo 2 – A maioria dos algoritmos de MD implementa consultas abertas, ou não parametrizadas • Vantagens: o minerador pode dizer “algoritmo, vire-se: não vou ajudá-lo em nada!” • Desvantagens: muitas vezes, restrições ou parâmetros são importantes – O minerador pode querer rodar um algoritmo indutor de um modelo descritivo, para descrever os exemplos de treinamento somente de uma certa classe X • Restrições ou parâmetros são simulados com uma conveniente transformação dos arquivos de entrada Etapas do Processo • • • • • Seleção Pré-Processamento Transformação Garimpagem Análise e Assimilação Marcus Sampaio DSC/UFCG Garimpagem ou Mineração Marcus Sampaio DSC/UFCG • Uma vez os dados preparados e transformados, aplicam-se os algoritmos de mineração de dados, dependendo do problema – – – – – – Associação Classificação Supervisionada Classificação Não-Supervisionada Série Temporal Regressão ... Etapas do Processo • • • • • Seleção Pré-Processamento Transformação Garimpagem Análise e Assimilação Marcus Sampaio DSC/UFCG Análise e Assimilação Marcus Sampaio DSC/UFCG • Nesta etapa, a seguinte questão deve ser respondida: o conhecimento induzido é relevante e acionável? – Relevância: conhecimento não trivial – Modelo acionável: que não seja muito complexo, ou que possa ser assimilado por um especialista • Se a resposta não for satisfatória, então poderá ser necessário repetir todo ou parte do processo de MD – Por exemplo, usar um outro algoritmo de indução de conhecimento • Na seqüência, consideramos que os modelos são relevantes e acionáveis Três Questões a Analisar Marcus Sampaio DSC/UFCG • “Underfitting” e “Overfitting” de Modelos • Valores Faltando em Dados para Mineração • Métricas de Desempenho dos Algoritmos Indutores “Overfitting” e “Underfitting” Marcus Sampaio DSC/UFCG • Um bom modelo deve ter – Alta acurácia de treinamento (actrein) – Alta acurácia de teste (acteste) • Pode ocorrer que alta actrein baixa acteste – “Overfitting” • “Underfitting” de um modelo – Baixa actrein e baixa acteste • Modelos com “underfitting” e “overfitting” devem ser descartados – O importante é acteste “Underfitting” e “Overfitting” Underfitting Marcus Sampaio DSC/UFCG Overfitting Number of nodes indica o tamanho do modelo induzido Underfitting: quando o modelo é muito simples, tanto as acurácias de treinamento quanto as de teste são baixas “Underfitting” e “Overfitting” Marcus Sampaio DSC/UFCG • Quais as causas de “underfitting” e “overfitting”? Note que um e outro conduzem a baixas acurácias de teste • Considere que um algoritmo trabalha para obter, se for possível, 100% de actrein – Má distribuição das classes – Ruído ou ‘sujeira’ – Falta de representatividade das classes Conjunto de Treinamento Má Distribuição Marcus Sampaio DSC/UFCG Duas classes Representações Pontos circulares Pontos triangulares Pode conduzir a padrões muito dispersos para as classes pouco valor estatístico Conjunto de Treinamento Pouca Representatividade Marcus Sampaio DSC/UFCG Temp. do Corpo Nasc. Uterino 4 Pernas Hiberna Classe Salaman dra fria não sim sim Não mamífero “Guppy” fria sim não não Não mamífero Águia quente não não não Não mamífero “Poorwill” quente não não sim Não mamífero “Platypus ” quente não sim sim Mamífero Nome Marcus Sampaio DSC/UFCG • O conjunto de treinamento não tem erro • Um classificador poderia induzir a regra se temperatura do corpo é quente e não hiberna então não é mamífero – Assim, humanos, elefantes e golfinhos seriam classificados como não mamíferos! – O problema é a falta de representatividade da regra: só casa com as águias – Assim, teríamos por exemplo 100% de actrein e 70% de acteste, caracterizando “overfitting” Ruído ou ‘Sujeira’ Marcus Sampaio DSC/UFCG Note que um padrão para o ponto ‘sujo’ não tem valor estatístico Solução para “Underfitting” Marcus Sampaio DSC/UFCG • O problema de “underfitting” pode ser resolvido com um conjunto de treinamento de bom tamanho – Técnicas de amostragem ajudam “Overfitting”: Algumas Conclusões Marcus Sampaio DSC/UFCG • “Overfitting” resulta de modelos de treinamento que são mais complexos do que o necessário – Regras sem valor estatístico • Acurácia de treinamento deve ser vista com muita reserva • Necessidade de novos métodos de estimar acurácia – Acurácia de teste – Acurácia de previsão Estimativa de Acurácia de Previsão Marcus Sampaio DSC/UFCG • Conjunto de Treinamento – Treina um algoritmo de mineração – Acurácia de Treinamento • Conjunto de Teste – Testa o modelo induzido pelo algoritmo – Acurácia de Teste • Conjunto de Previsão – Conjunto sobre o qual o modelo é aplicado, para fazer previsão – Acurácia de Previsão • Acurácia de Previsão – Acurácia de Previsão = f(Acurácia de Teste) Acurácia de Previsão Marcus Sampaio DSC/UFCG • “Holdout” – Fragmentação dos dados amostra em conjunto de treinamento e conjunto de teste • Tipicamente, 2/3 para treinamento e 1/3 para teste – O modelo é induzido do conjunto de treinamento – O modelo induzido é testado com o conjunto de teste – Principal problema • Uma classe pode ficar super-representada em um conjunto, e sub-representada em outro; ou • O modelo pode ser fortemente dependente da composição dos conjuntos Marcus Sampaio DSC/UFCG • Validação Cruzada (“Cross Validation”) Marcus Sampaio DSC/UFCG – O algoritmo é treinado com todos os dados – Para calcular a acurácia de teste • Calcula-se a média ou a soma dos acertos dos três testes realizados • Note que os modelos podem variar pouco, ou até muito! , em relação ao modelo induzido para todos os dados • Usa-se cada vez mais "stratified ten-fold crossvalidation“ – Estratificação: classes igualmente representadas em todos os fragmentos – Os dados são aleatoria e estratificadamente divididos em dez fragmentos – Como consequência da estratificação, os 10 modelos da iteração são praticamente iguais ao modelo do treinamento do algoritmo Marcus Sampaio DSC/UFCG • “Bagging” – Técnica de Meta Modelagem – Usa um modelo classificador de modelos Indução dos Modelos Para cada uma das t iterações (“stratified t-fold crossvalidation”) Aplique um algoritmo Salve o modelo induzido pelo algoritmo Previsão (ou Predição) Para cada um dos modelos aprovados Classificar a instância de previsão Retornar a classe mais votada Note que não se trata, aqui, de estimar a acurácia de previsão Métricas de Desempenho: Acurácia Marcus Sampaio DSC/UFCG PREDICTED CLASS Class=Yes ACTUAL CLASS Class=No Class=Yes a (TP) b (FN) Class=No c (FP) d (TN) ad TP TN Accuracy a b c d TP TN FP FN Acurácia Marcus Sampaio DSC/UFCG • Note que o cálculo da acurácia no slide anterior é limitado ao caso de duas classes “two-class problem” • É comum um conjunto de treinamento ter muitas classes • De qualquer maneira, o valor da acurácia se confunde sempre com a taxa de acerto Acurácia: Limitações Marcus Sampaio DSC/UFCG • Considere um “2-class problem” – Número de instâncias (ou exemplos) de treinamento da Classe 0 = 9990 – Número de exemplos da Classe 1 = 10 • Se um modelo prediz que tudo é da Classe 0 exemplo de predição 0 , então a acurácia é 9990/10000 = 99.9 % – O valor é enganoso porque o modelo não prevê qualquer exemplo da Classe 1 Intervalo de Confiança para Acurácia Marcus Sampaio DSC/UFCG Area = 1 - • For large test sets (N > 30), – acc has a normal distribution with mean p and variance p(1-p)/N P( Z /2 acc p Z p (1 p ) / N 1 / 2 ) 1 • Confidence Interval for p: Z/2 Z1- /2 2 N acc Z Z 4 N acc 4 N acc p 2( N Z ) 2 /2 2 /2 2 /2 2 Intervalo de Confiança para Acurácia Marcus Sampaio DSC/UFCG • Consider a model that produces an accuracy of 80% when evaluated on 100 test instances: – N=100, acc = 0.8 – Let 1- = 0.95 (95% confidence) 1- Z 0.99 2.58 – From probability table, Z/2=1.96 0.98 2.33 N 50 100 500 1000 5000 0.95 1.96 p(lower) 0.670 0.711 0.763 0.774 0.789 0.90 1.65 p(upper) 0.888 0.866 0.833 0.824 0.811 Outras Métricas de Desempenho number correct positive prediction s precision number positive prediction s recall number correct positive prediction s number positive ins tances 2 F measure 1 / precision 1 / recall Marcus Sampaio DSC/UFCG Marcus Sampaio DSC/UFCG • Exemplos – A percentagem de todas as instâncias da classe esporte que foram classificadas corretamente é o “recall”, ou a cobertura – A percentagem de instâncias corretamente classificadas como esporte é a precisão – F-measure: média harmônica de precisão e “recall” • Alta precisão é sempre muito importante, mas muitas instâncias esporte podem ser deixadas de lado (isto é medido por “recall”) – Programa que identifica “spam e-mail” com alta precisão e baixo “recall • Deixa “spam” na caixa de entrada (baixo “recall”) • Geralmente acerta quando joga um “spam” no lixo (alta precisão) Marcus Sampaio DSC/UFCG • Considere que um sistema de e-mail marcou corretamente 20 e-mails como spam, mas não detectou 5 emails que são spams – Precisão = 20 / 20 = 100% – Recall = 20 / 25 = 80% – F-measure = 2 / (1 + 1 / 0,8) = 0,89 Valores Faltando Marcus Sampaio DSC/UFCG • Valores faltando são valores NULL • Convivência com valores NULL – Diversos algoritmos trabalham com valores NULL • É preciso saber como – Por exemplo, alguns algoritmos smplesmente removem logicamente atributos com pelo menos um valor NULL • Não convivência com valores NULL – A solução ‘crua’ é remover aquelas instâncias do conjunto de treinamento com valores NULL • Pode ser muito restritiva, ou mesmo inviável – Soluções mais sofisticadas permitem estimar os valores de atributos faltando Estimativa de Valor Tid Refund Marital Status Marcus Sampaio DSC/UFCG Taxable Income Class 1 Yes Single 125K No 2 No Married 100K No 3 No Single 70K No 4 Yes Married 120K No 5 No Divorced 95K Yes 6 No Married No 7 Yes Divorced 220K No 8 No Single 85K Yes 9 No Married 75K No 60K Tid Refund Marital Status Taxable Income Class 10 90K Single ? Yes 10 Refund Yes No Class=Yes 0 + 3/9 Class=Yes 2 + 6/9 Class=No 3 Class=No 4 Probability that Refund=Yes is 3/9 10 Refund Yes Probability that Refund=No is 6/9 No Class=Yes 0 Class=Yes 2 Class=No 3 Class=No 4 Assign record to the left child with weight = 3/9 and to the right child with weight = 6/9