Projeto Final MCI 2004 Filtragem de s Agente de Classificação de SPAM
PAGE Percepções = s que chegam ao inbox Ações = filtrar s indesejadas (SPAM) Objetivos = livrar o usuário desse transtorno Ambiente = mailbox Arquitetura do agente Agente reativo simples Implementação Vejamos a seguir...
Classificação/Categorização de “objetos” Definição: Atribuir uma ou mais classes pré-definidas aos objetos sob análise Objetivo: Organizar os objetos em classes Possibilitando a eliminação de objetos ( s) indesejados Facilitando o armazenamento, a localização (e a recuperação) automática desses objetos etc...
Classificação/Categorização de “objetos” objetos Classe 1 Classe 2 Classe 3
Classificação de “objetos” Classificação manual: classificação dos objetos por um especialista Construção manual de um sistema de classificação: sistemas baseados em conhecimento base de regras escritas manualmente Construção automática de um sistema de classificação: algoritmos de aprendizagem automática
Construção do Classificador Fase de construção do sistema: aquisição do conhecimento ou treinamento do algoritmo ajuste inicial do sistema com um conjunto de dados pré-selecionados Fase de teste e validação: ajuste final do sistema avaliação do desempenho do sistema
Construção Manual de Classificadores Sistema Baseado em Conhecimento Base de conhecimento Máquina de Inferência (ex.: JEOOPS) Testes e Validação Nível de Conhecimento Aquisição do Conhecimento Nível Lógico Formulação da Base de Conhecimento Nível de Implementação Construção da Base de Conhecimento
Construção Automática de Classificadores O classificador é criado automaticamente através da apresentação de exemplos ao algoritmo de treinamento Ajuste dos resultados pelo desenvolvedor Dados classificados Dados de treinamento ClassificadorComparador
Abordagem Simbólica – MCI2 Exemplos Árvores de Decisão Indução de Regras Abordagem Numérica – Diversas disciplinas Exemplos Aprendizagem Bayesiana Redes Neurais Artificiais Aprendizagem Baseada em Instâncias Construção Automática de Classificadores
Detalhamento do projeto Construção Manual de um Classificador/Filtro de s
Etapa 1: montar os corpora Selecionar 300 s spam Pedir ajuda aos colegas Selecionar 200 s “sadias” algumas das quais deveriam parecer spam Etiquetar (à mão) cada selecionada, indicando se ela é OK ou não Guardar os s em um BD (ou arquivo tabela): Endereço do autor, “subject” e corpo do texto Indicar se tem anexos e de que tipo são (opcional) Classe associada (spam ou não-spam)
Etapa 1: montar os corpora Separar as s já etiquetadas em dois conjuntos: “Treinamento” Conjunto usado para guiar a construção das regras e os testes preliminares do sistema 300 s = 180 indesejáveis e 120 OK Teste Conjunto usado para avaliação do desempenho do sistema 200 s = 120 indesejáveis e 80 OK
Etapa 2: montar a base de regras em Jeoops Identificar possíveis regras de classificação (à mão) Se a palavra “money” aparece no “subject” Então é um spam Montar regras com fator de certeza associado (a seguir) Se a palavra “money” aparece no “subject” Então é um spam com p% de chance Implementar as regras de classificação utilizar Jeops
Etapa 2: regras com fator de certeza Regras com fator de certeza Se E Então V com P% de chances E (Evidência – palavra money) V (Verdade – é spam) V indica que a é um exemplo positivo (verdade) de spam ou vírus P (Fator de certeza) OBS.: Lembrem-se de que, em tarefas de categorização, teremos várias classes a escolher...
Etapa 2: regras com fator de certeza Como calcular o fator de certeza P (manualmente): P = probabilidade condicional de um ser um exemplo positivo (V) dado que a evidência E ocorreu P(V|E) = P(V ^ E) / P(E) P(E) = quantidade de vezes que E ocorreu no corpus inteiro (exemplos positivos e negativos) P(V ^ E) = quantidade de vezes que E ocorreu apenas em exemplos positivos podemos também calcular P(~V|E)
Etapa 2: combinando o fator de certeza É possível combinar (automaticamente) evidências quando regras disparam com a mesma conclusão no nosso caso, V ou ~V (spam ou não) Regra básica (inspirada no MYCIN): prob-atual = prob-anterior + prob-nova * (1 - prob- anterior) Exemplos Se E1 então V com 0,3% P = 0,3% Se E2 então V com 0,6% P = 0,3 + 0,6 * (1-0,3) = 0,72 % Em JEOOPS, implementar a evidência acumulada no objeto
Etapa 3: testar desempenho do sistema Construir a matriz de confusão do sistema Taxa de acerto, falso positivo e falso negativo Classificação obtida Classe real SPAMNão SPAM SPAMAcerto SPAMFalso negativo Não SPAMFalso positivo (evitar!) Acerto N-SPAM
Etapa 3: testar desempenho do sistema Taxa de acerto Somatório do número de classificações corretas nas duas classes dividido pelo número de documentos do corpus de teste Taxa de acerto = (acerto spam + acerto n-spam) 250 (total de s) Falso positivo Total de s não-spam classificadas como spam Deve ser evitado pq elimina s relevantes Falso negativo Total de s spam classificadas como não-spam Não é tão grave, apenas deixa passar alguns spams...
Datas e Equipes Equipes 2 ou 3 pessoas Data de entrega 6 de setembro – último dia de aulas.