Marcus Sampaio DSC/UFCG Etapas do Processo Marcus Sampaio DSC/UFCG Preparação de Dados Marcus Sampaio DSC/UFCG • Seleção • Pré-processamento – Limpeza – Fragmentação Seleção Marcus Sampaio DSC/UFCG • Identificação dos bancos de dados • Seleção de atributos • ‘Discretização’ de valores de atributos 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 (2) Marcus Sampaio DSC/UFCG • Felizmente, as próprias técnicas de mineração de dados podem ajudar a resolver o problema • Considere duas espécies de ‘sujeira’: no atributo de classificação, e nos atributos que não são de classificação • Está comprovado, da experiência, que para ‘sujeira’ em atributos de classificação, o melhor é removê-las do conjunto-treinamento. Como? – Rodando um algoritmo de classificação que procura ser espelho do conjunto de treinamento • As instâncias que caem em classes ‘sujas’ são fisicamente retiradas – Rodando um algoritmo de classificação, primeiro sem poda, e depois com poda, e assim até que não haja mais poda • As instâncias que caem em classes ‘sujas’ são logicamente retiradas Limpeza (3) Marcus Sampaio DSC/UFCG • Para a ’sujeira’ em atributos que não são de classificação, pode-se ter o auxílio de um algoritmo de classificação – O algoritmo pode descobrir atributos não confiáveis (por exemplo, o(s) atributo(s) sequer aparecendo no modelo), o que o faz logicamente remover a ‘sujeira’ do arquivo-treinamento, para os mesmos atributos • Existem diversas ferramentas para limpeza automática, inclusive software free Fragmentação Marcus Sampaio DSC/UFCG • A fragmentação consiste essencialmente em separar os dados de treinamento (conjuntotreinamento) dos dados de teste (conjuntoteste) – ‘Minimizar' a taxa de erro dos testes • O modelo induzido, se aprovado, não é perfeito – O modelo será aplicado a novos dados (conjuntoexecução) • Taxa de erro estimada = f(taxa de erro dos testes) Técnicas de Fragmentação Marcus Sampaio DSC/UFCG • “Holdout” – O algoritmo é treinado com todos os dados – Para os testes • Separe aleatoriamente 2/3 dos dados para treinamento, e o restante 1/3 para teste • Preserve a independência dos dois conjuntos (interseção vazia) • Garanta também que cada classe seja propriamente representada tanto no conjunto-treinamento como no conjunto-teste — Estratificação • Induza um modelo do conjunto de treinamento (2/3) • Teste o modelo com o conjunto de teste (1/3) – Acurácia de teste: No.de Erros / Total de Testes Técnicas de Fragmentação (2) Marcus Sampaio DSC/UFCG • Validação Cruzada (“Cross Validation”) Técnicas de Fragmentação (3) Marcus Sampaio DSC/UFCG • Validação Cruzada (“Cross Validation”) – O algoritmo é treinado com todos os dados – Para calcular a acurácia de teste • Calcula-se a média das taxas de erro dos três testes realizados • Note que os modelos podem variar ligeiramente, em relação ao modelo treinado e apresentado • Usa-se cada vez mais "stratified tenfold crossvalidation“ – Os dados são aleatoriamente divididos em dez partes – Como consequência da estratificação, o modelo treinado praticamente não varia Outras Métricas de Qualidade Marcus Sampaio DSC/UFCG 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 Positivo e Negativo valem para atributos de classificação binários Classe ‘1’ – positivo Classe ‘0’ – negativo Outras Métricas de Qualidade (2) Marcus Sampaio DSC/UFCG • Exemplos – A percentagem de todas as instâncias da classe esporte que foram classificadas corretamente é o “recall” – 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) 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: gerar arquivos .arff para usar os algoritmos da biblioteca WEKA 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 ... Garimpagem ou Mineração (2) Marcus Sampaio DSC/UFCG • “Bagging” – Técnica de Meta Classificação – Usa um classificador de classificadores Indução dos Modelos Para cada uma das t iterações (“stratified tfold cross-validation”) Aplique um algoritmo Salve o modelo resultante aprovado Previsão (ou Predição) Para cada um dos modelos aprovados Classificar a instância de execução* Retornar a classe mais votada *- instância de treinamento e instância de teste instãncia nova Análise e Assimilação Marcus Sampaio DSC/UFCG • Nesta etapa, a seguinte questão deve ser respondida: o conhecimento gerado é relevante e acionável (isto é, deve ser usado para a tomada de decisão)? – Se a resposta não for satisfatória, então poderá ser necessário repetir todo ou parte do processo de MD