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
num bercorrect positivepredictions
precision
num berpositivepredictions
recall 
num bercorrect positivepredictions
num berpositiveinstances
2
F  m easure
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
Download

2. O Processo de Mineração de Dados