Sei sulla pagina 1di 18

SIS048A – INTELIGÊNCIA ARTIFICIAL II

Profª Carine Geltrudes Webber

Projeto III – Problema de Classificação

Ricardo Branchi Prezzi


Engenharia de Controle e Automação

a) O escopo do dataset é fornecer um conjunto extensivo e compreensivo de


intrusões e comportamentos anormais para testar e avaliar sistemas de detecção
de intrusões.

b)
• Duration: duração da conexão em segundos
• Protocol_type: tipo de conexão (TCP, UDP)
• Service: tipo de serviço no destino (echo, ftp_data, nntp...)
• Flag: estado da conexão (normal ou erro)
• Src_bytes: número de bytes da origem ao destino
• Dst_bytes: número de bytes do destino à origem
• Land: 1 se o host e a porta de origem são as mesmos, 0 caso contrário
• Wrong_fragment: número de fragmentos errados
• Urgent: número de fragmentos urgentes
• Hot: número de indicadores importantes
• Num_failed_logins: número de tentativas de login com falha
• Logged_in: 1 se o login obteve sucesso, 0 caso contrário
• Num_compromised: número de condições comprometedoras
• Root_shell: 1 se o shell root é obtido, 0 caso contrário
• Su_attempted: 1 se houver tentativa de conseguir “su root”, 0 caso
contrário
• Num_root: número de acessos como root
• Num_file_creations: número de operações de criação de arquivos
• Num_shells: número de Shell prompts abertos
• Num_acess_files: número de operações a arquivos de controle de acesso
• Num_outbound_cmds: número de comandos externos (FTP session)
• Is_host_login: 1 se o login pertence à lista “hot”, 0 caso contrário
• Is_guest_login: 1 se o login é do tipo “guest”, 0 caso contrário
• Count: Número de conexões para o mesmo host como conexão atual nos
últimos 2 segundos
• Srv_count: Número de conexões ao mesmo serviço como conexão atual
nos últimos 2 segundos
• Serror_rate: % de conexões que tiveram erros do tipo “SYN”
• Srv_serror_rate: % de conexões que tiveram erros “SYN”
• Rerror_rate: % de conexões que tiveram erros do tipo “REJ”
• Srv_rerror_rate: % de conexões que tiveram erros “REJ”
• Same_srv_rate: % de conexões ao mesmo serviço
• Diff_srv_rate: % de conexões a diferentes serviços
• Srv_diff_host_rate: % de conexões a diferentes hosts

• Os outros atributos não foram documentados.

c) Entropia é uma medida de quão semelhantes ou não são os dados de um conjunto.


A entropia nos fornece uma quantificação estimada de quanta informação há em
um dado. A entropia é calculada da seguinte forma:

Entropia(S) = -p+ log2 p+ - p- log2 p-


Sendo S um conjunto de dados, p+ a proporção de dados positivos e p- a proporção
de dados negativos.

Já o ganho de informação é definido como, dado um atributo A, qual a redução da


entropia devido a ordenação de um conjunto considerando o atributo A. O nó raiz de
uma árvore de decisão deve ser o atributo que obtém o maior ganho. O ganho de
informação é calculado assim:

Ganho(S, A) = Entropia(S) - ∑v ϵ valor(A)|Sv|/|S| Entropia(Sv)


Sendo S um conjunto de dados, A o atributo considerado, v o valor do atributo A, Sv
o sub-conjunto de S onde o atributo A possui valor v, Entropia(S) a entropia de S e
Entropia(Sv) a entropia de Sv.

d) A relação entre dois nodos é uma relação causal, sendo que dizemos que o nodo
que é a causa do nodo seguinte é dito pai do nodo posterior.

e) As Redes Bayesianas são indicadas para problemas com informações incertas e


probabilísticas, tais como classificação, reconhecimento de padrões, reconhecimento
de sequências, direcionamento de robôs, entre outros.

f) A validação cruzada (cross-validation) é uma técnica que reduz o overfitting, isto


é, uma regularidade nos dados sem sentido. Nesta técnica estimamos as hipóteses
utilizando uma fração dos dados conhecidos e usamos isto para testar a performance
das hipóteses inferidas dos dados restantes.
g) Um neurônio artificial é uma parte essencial em uma rede neural. Ele é composto
por entradas e uma saída, sendo que as entradas tem pesos, normalmente diferentes,
e após estas serem multiplicadas por seus respectivos pesos, são somadas. Essa soma
alimenta uma função de ativação, que por sua parte ativa ou não a saída, como no
caso de uma função rígida, ou traduz em um valor real que pode variar entre 0 e 1,
como no caso de uma sigmoide. O conjunto de vários neurônios artificiais que
recebem as mesmas entras, mesmo que com pesos diferentes, formam uma camada.
O conjunto das camadas por sua vez formam uma rede neural.

h) Utilizando a filtragem por “attribute selection”, foram selecionados 6 atributos:


Flag, src_bytes, dst_bytes, logged_in, srv_serror_rate e diff_srv_rate. Temos os
seguintes resultados após a filtragem e utilizando cross-validation com 10 folds:

• BayesNet

Figura 1 - K2 - 1 parent
Figura 2 - K2 - 2 parents

Figura 3 - K2 - 3 parents
Figura 4 - Tabu Search - 1 parent

Figura 5 - Tabu Search - 2 parents


Figura 6 - Tabu Search - 3 parents

Figura 7 - Hill Climber - 1 parent


Figura 8 - Hill Climber - 2 parents

Figura 9 - Hill Climber - 3 parents


• NaiveBayes

Figura 10 – NaiveBayes

Figura 11 - NaiveBayes - Supervised Discretization


Figura 12 - NaiveBayes - Kernel Estimator

• Árvore de Decisão – J48

Figura 13 - J48 – Pruned


Figura 14 - J48 – Unpruned

Figura 15 - J48 - Pruned – ReducedErrorPruning


Figura 16 - J48 - Unpruned – Laplace

Figura 17 - J48 - Unpruned - MinNumObj = 3


Figura 18 - J48 - Unpruned - MinNumObj = 6

Figura 19 - J48 - Unpruned - MinNumObj = 1


Figura 20 - J48 - Unpruned- MinNumObj = 1 – DoNotMakeSplitPointActualValue

Figura 21 - J48 - Pruned - MinNumObj = 1 - ConfidenceFactor = 0.05


Figura 22 - J48 - Pruned - MinNumObj = 1 - ConfidenceFactor = 0.55

• MultilayerPerceptron

Figura 23 - MultilayerPerceptron - LearningRate = 0.3 - Momentum = 0.2 - 1 camada oculta - 500 épocas
Figura 24 - MultilayerPercpetron - LearningRate = 0.05 - Momentum = 0.2 - 1 camada oculta - 1000 épocas

Figura 25 - MultilayerPerceptron - LearningRate = 0.005 - Momentum= 0.6 - 1000 épocas

Temos que, para o nosso objetivo de detecção de intrusões, além de termos um


alto índice de acertos, devemos tentar mitigar ao máximo os falsos positivos, pois
seriam intrusões que nosso sistema não detectaria.
Analisando, então, todos os resultados, concluímos que as árvores de decisão –
J48 foram as que apresentaram os melhores resultados, tanto do viés de métricas
como Precision, Recall, F-Measure, ROC Area,..., assim como pela quantidade de
falsos positivos.
i) O melhor algoritmo para a tarefa em questão eu acredito ser a árvore de
decisões – J48

j)

k) Vemos que o atributo Root, aquele que melhor divide os dados com ganho de
conhecimento é src_bytes.

l)
m) Vemos que a rede Bayesiana gerada apresenta o atributo srv_serror_rate como
pai do atributo flag. Já flag é pai de dst_bytes, src_bytes e diff_srv_rate. Dst_bytes
aparece como outro pai de src_bytes, que por sua vez é pai de logged_in e
diff_srv_rate.

n)
Foram utilizadas 3 camadas: Entrada, oculta e saída. A camada oculta teve o número
de neurônios calculado somando-se as entradas e saídas e dividindo o resultado por
2. São 16 neurônios na entrada e 2 na saída, assim resultando em 9 neurônios na
camada oculta.

Potrebbero piacerti anche