O m´odulo Classifica¸c˜ao executa segundo o modo de opera¸c˜ao. Em Modo de Treinamento, o m´odulo treina o modelo classificador, de forma a habilit´a-lo a classificar corretamente vetores que representam e-mails ham e vetores que representam e-mails spam. Em Modo de Classifica¸c˜ao, o m´odulo classifica, nas classes spam e ham, vetores que representam e-mails novos, enviados pelo Postfix.
O m´odulo ´e capaz de igualar a quantidade de vetores spam e ham sempre que o treinamento do modelo classificador assim o exigir. Para igualar a quantidade de vetores em ambas as classes, o m´odulo duplica, aleatoriamente, vetores na classe que possua a menor quantidade de vetores.
Para o modelo classificador, um modelo de machine learning, os vetores s˜ao padr˜oes. No Modo de Treinamento, s˜ao acrescidas, ao final dos padr˜oes, mais duas dimens˜oes, contendo dois valores que os identificam como spam ou ham. Nos padr˜oes ham, os dois valores s˜ao 0 e 1. Nos padr˜oes spam, s˜ao 1 e 0.
´
E importante notar que s˜ao utilizadas duas unidades para identificar a classe do e-mail. Desta forma, produz-se um resultado com maior grau de certeza na classifica¸c˜ao. Por exemplo, caso o modelo classificador apresente o resultado 0,3999 e 0,8, pode-se dizer que o resultado ´e, de fato, 0 e 1, ou seja, ham.
A figura 16apresenta o padr˜ao da figura12, caso este seja um padr˜ao ham.
Figura 16 – Padr˜ao de classe ham
Ao final do Modo de Treinamento, os valores iniciais e finais dos parˆametros do modelo classificador s˜ao salvos em dois arquivos. No Modo de Classifica¸c˜ao, os
valores finais dos parˆametros s˜ao recuperados do respectivo arquivo, de modo a tornar o modelo apto a classificar corretamente os novos e-mails, enviados pelo Postfix.
Quando o modelo n˜ao consegue classificar um novo e-mail, sua classe ´e definida como sendo ham. Isto ´e feito para evitar que um poss´ıvel e-mail leg´ıtimo seja classificado como spam.
O m´odulo Classificador implementa dois modelos de machine learning — Multi- Layer Perceptron (MLP) e Random Forest (RF). Os dois modelos s˜ao descritos nas duas subse¸c˜oes a seguir.
4.5.1
MODELO MLP
Multi-Layer Perceptron (MLP) ´e um modelo matem´atico inspirado na estrutura neuronal do c´erebro humano. No c´erebro humano, cada neurˆonio ´e ativado por outros neurˆonios atrav´es de conex˜oes, conhecidas como sinapses. Quando um neurˆonio recebe ativa¸c˜ao de outros neurˆonios e esta supera seu limiar, ele transmite uma nova ativa¸c˜ao aos neurˆonios seguintes. De forma an´aloga, no MLP, cada unidade em uma camada l recebe ativa¸c˜ao das unidades da camada l-1 e transmite uma nova ativa¸c˜ao `as unidades da camada l+1.
A figura 17apresenta uma arquitetura t´ıpica do MLP. Possui quatro camadas — entrada, escondida 1, escondida 2 e sa´ıda — de unidades. As unidades s˜ao representadas por c´ırculos na figura. As unidades de uma camada conectam-se `as unidades da camada seguinte por meio de conex˜oes, representadas por setas na figura.
Figura 17 – Arquitetura do MLP
As ativa¸c˜oes das unidades da camada de entrada s˜ao os valores dos vetores produzidos pelo m´odulo vetoriza¸c˜ao (se¸c˜ao 4.4). Cada unidade das camadas seguintes recebe uma ativa¸c˜ao neti que consiste na combina¸c˜ao linear ponderada
das ativa¸c˜oes das unidades da camada anterior. Portanto, a ativa¸c˜ao recebida neti
por uma unidade i de quaisquer das trˆes ´ultimas camadas ´e dada pela equa¸c˜ao 4.3.
neti =
X
j
wijaj + biasi (4.3)
onde wij ´e o peso da unidade j para a unidade i, aj ´e a ativa¸c˜ao da unidade j e
biasi ´e um peso especial que ajusta os valores de neti.
Como o MLP ´e um modelo matem´atico n˜ao-linear, a ativa¸c˜ao ai que a unidade
i transmite para as unidades da camada seguinte ´e dada pela equa¸c˜ao 4.4.
ai = f (neti) (4.4)
onde f (x) ´e uma fun¸c˜ao n˜ao-linear diferenci´avel. Em geral, s˜ao usadas as fun¸c˜oes sigm´oide (LogSig) e tangente sigm´oide (TanSig).
Os pesos das conex˜oes s˜ao ajustados durante o treinamento do MLP. O treina- mento do MLP bem como t´ecnicas para agiliz´a-lo est˜ao bem descritos na literatura (HAYKIN, 2009).
O SASCA faz uso da biblioteca WEKA (HALL et al.,2009) para implementar o modelo MLP. WEKA ´e uma biblioteca amplamente conhecida, que implementa muitos modelos de machine learning. Tal como o SASCA, possui c´odigo aberto.
4.5.2
MODELO RANDOM FOREST
Random Forest (RF) ´e um modelo de machine learning que consiste em um conjunto (ensemble) de modelos com arquitetura de ´arvore de decis˜ao (BREIMAN,
2001). Assim, o modelo RF comp˜oe-se de um conjunto de v´arios modelos individuais combinados, de forma a produzir um modelo agregado mais poderoso do que qualquer um de seus modelos individuais.
Diferentes modelos podem alcan¸car um bom desempenho individual. No en- tanto, tendem a produzir diferentes valores de erros sobre o conjunto de dados. Tipicamente, isso acontece porque cada modelo individual pode se ajustar melhor a uma parte diferente dos dados. Ao combinar diferentes modelos individuais em um conjunto, pode-se balancear seus erros individuais, de forma a reduzir o risco de ajuste parcial sobre os dados.
RFs s˜ao amplamente utilizadas na pr´atica e conseguem bons resultados em uma variedade de problemas em v´arias ´areas, tais como (POLAMURI, 2017):
• Com´ercio banc´ario: por exemplo, para encontrar os clientes leais e fraudulen- tos;
• Medicina: por exemplo, para identificar a combina¸c˜ao correta dos componen- tes para validar um medicamento ou para identificar uma doen¸ca com base na an´alise dos prontu´arios do paciente;
• Mercado de a¸c˜oes: por exemplo, para identificar o comportamento das a¸c˜oes, bem como a perda esperada ou o lucro, comprando um ativo em particular; • Com´ercio eletrˆonico: por exemplo, para identificar a probabilidade de um cliente gostar dos produtos recomendados com base em tipos similares de clientes.
O treinamento das RFs consiste em sucessivas sele¸c˜oes de caracter´ısticas e na cria¸c˜ao de ´arvores de decis˜ao, como mostra o pseudoc´odigo a seguir.
1. Selecionar aleatoriamente K, de um total de M caracter´ısticas, onde K << M .
2. Dentre as K caracter´ısticas, calcular o n´o D, usando o melhor ponto de divis˜ao.
3. Dividir o n´o em n´os filhos, usando a melhor divis˜ao.
4. Repetir as etapas 1 a 3, at´e que haja um n´umero pr´e-determinado L de n´os. 5. Repetir N vezes as etapas 1 a 4 para criar uma floresta com N ´arvores.
RFs classificam amostras por meio de sucessivos testes, contagem de votos e elei¸c˜ao da classe mais votada. O pseudoc´odigo a seguir e a figura 18 descrevem o processo de classifica¸c˜ao das RFs.
1. Para cada amostra, percorrer as N ´arvore de decis˜ao, de forma a obter N valores de sa´ıda.
2. Calcular os votos para cada valor de sa´ıda.
3. Considerar a sa´ıda mais votada como sendo a sa´ıda final, produzida pela RF.