Você está na página 1de 3

Aprendizagem 2010/2011

Departamento de Informtica, Universidade de Evora a

Classicador de spam

Objectivo

Utilizao dos algoritmos na de Bayes e SVM para construo de classicadores de spam. ca ve ca

Descrio ca

Nos ultimos anos, o spam em newsgroups tem sido um problema crescente. O objectivo do trabalho construir um classicador para distinguir entre mensagens reaise mensagens e de spam num newsgroup. Para esta experincia, obteve-se um conjunto um conjunto de e mensagens genu nas e de spam e, utilizando apenas o assunto e corpo da mensagem, pretendese aprender a distinguir entre spam e no spam1 . a De modo ao texto das mensagens ser facilmente utilizvel pelos algoritmos de aprendizagem a genricos foi feito algum pr-processamento assegurando que e e apenas o assunto e corpo da mensagem permaneam no conjunto de dados; c os endereos de e-mail (EMAILADDR), endereos web (HTTPADDR), moeda (DOLc c LAR) e nmeros (NUMBER) sejam substitu u dos por s mbolos especiais para que sejam considerados devidamente no processo de classicao. ca Os cheiros news sample * e spam sample * mostram exemplos de uma mensagem real e de 2 mensagens de spam, respectivamente (originais e pr-processadas). e O trabalho para extrair os vectores de caracter sticas a partir dos documentos tambm j foi e a realizado e est dispon a vel nas matrizes documento-palavra (designao utilizada na classica cao de texto). Nesta matriz , a i-sima linha representa o i-simo documento/mensagem, e ca e e a j-sima coluna representa o j-simo s e e mbolo. Assim, a entrada (i, j) desta matriz representa o nmero de ocorrncias do j-simo s u e e mbolo no i-simo documento. e Neste problema, apenas foram considerados os s mbolos (vocabulrio do problema) com a frequncia mdia. A intuio que os s e e ca e mbolos que ocorrem com muita frequncia ou muito e raramente no tem muito valor para a classicao (exemplos deste tipo de s a ca mbolos so as a
1

Dados obtidos em http://www.stanford.edu/class/cs229/materials.html

palavras como the, ande of; ocorrem tantas vezes em tantas mensagens e so suciena temente livres de contedo que vale a pena considerar.) Alm disso, as palavras foram radiu e calizadas (stemmed) utilizando um algoritmo padro; basicamente, isso signica que price, a pricese pricedforam todas substitu das por prive, de modo a serem considerados a mesma palavra. A lista dos s mbolos utilizados, encontra-se no cheiro TOKENS LIST. Uma vez que a matriz documento-palavra extremamente esparsa (possui muitas entradas a e zero), est armazenada num formato prprio para economizar espao em cheiros MATRIX.*. a o c Estes cheiros tm o seguinte formato: e 1a linha: cabealho c 2a linha: no de documentos e s mbolos 3a linha: lista de s mbolos restantes: 1 linha por documento 1a coluna: classe do documento (1: spam; 0: no spam) a restantes: par (token freq), onde token indica o ndice (por de soma cumulativa) do s mbolo e freq a frequncia do s e mbolo nesse documento.

Experincias e

As experincias devem ser realizadas utilizando o KnowledgeFlow do Weka. Alternativamente e poder utilizar o software RapidMiner. a 1. Construa um classicador na de Bayes utilizando o dados presentes em MATRIX.TRAIN ve e calcule o erro com MATRIX.TEST. 2. Intuitivamente, alguns s mbolos podem ser especialmente indicativos de uma mensagem pertencer a uma classe particular. Esta indicao pode ser obtida informalmente para ca a classe spam atravs da medida: e log Pr(simboloi | spam) Pr(simboloi | spam)

Utilizando o modelo encontrado na al nea anterior indique os 5 s mbolos, mais indicativos da classespam. A lista de s mbolos do cheiro TOKENS LIST poder ser util na a identicao. ca 3. Repita a 1o experincia variando o tamanho do conjunto de treino entre 50, 100, . . . , e at 1400 utilizando os cheiros MATRIX.TRAIN.*. Marque o erro de teste para cada e experincia (utilizando (MATRIX.TEST como dados de teste) de modo a obter uma curva e de aprendizagem (erro no conjunto de teste versus o tamanho do conjunto de treino). Qual o tamanho do conjunto de treino com menor o erro no conjunto de teste? 2

4. Treine um SVM sobre este conjunto de dados um ncleo linear (utilize os restantes u ` semelhana do ponto anterior construa o modelo com parmetros por omisso). A a a c tamanhos de conjunto de treino a variar entre 50, 100, . . . , at 1400. Marque o erro de e teste para cada experincia (utilizando (MATRIX.TEST como dados de teste) de modo e a obter uma curva de aprendizagem (erro no conjunto de teste versus o tamanho do conjunto de treino). Qual o tamanho do conjunto de treino com menor o erro no conjunto de teste? 5. Como se comportam os algoritmos na de Bayes e Mquinas de Vectores de Suporte ve a (em termos de erro de generalizao) como funo do tamanho do conjunto de treino? ca ca 6. Faa uma avaliao comparativa dos classicadores construidos (MATRIX.TRAIN) indic ca cando qual o melhor classicador. 7. Repita a avaliao comparativa dos algoritmos utilizando o conjunto MATRIX.TRAIN.400 ca e o mtodo de validao cruzada 5 22 . e ca

Observaes co
Prazo de entrega: O trabalho dever ser entregue at ` data indicada no Moodle. O nome a ea do cheiro dever identicar os alunos atravs do seu nmero. a e u Itens a entregar: Alm do relatrio onde dever constar as respostas `s questes colocae o a a o das, dever tambm entregar os cheiros KnowledgeFlow construidos no decorrer das a e experincias realizadas e os cheiros (de sa e da) gerados pelo Weka.

Este mtodo de avaliaao de desempenho facilmente obtido utilizando diferentes execuoes do mtodo e c e c e t pico de validaao cruzada. c