UNIVERSIDADE FEDERAL DE MINAS GERAIS
Programa de Pós-Graduação em Engenharia Elétrica
Curso de Especialização em Automação Industrial
IMPLEMENTAÇÃO DE CLASSIFICADORES PARA CLASSIFICAÇÃO DE PACIENTES
COM LEUCEMIA
Luiz Eduardo Ferreira Barbosa
Belo Horizonte2010
Luiz Eduardo Ferreira Barbosa
IMPLEMENTAÇÃO DE CLASSIFICADORES PARA CLASSIFICAÇÃO DE PACIENTES
COM LEUCEMIAUniversidade Federal de Minas Gerais
Trabalho final apresentado ao Programa de Pós-Graduação em Automação Industrial da Universidade Federal de Minas Gerais, como requisito parcial para conclusão da disciplina de Princípio e Aplicações de Redes Neurais Artificiais
Professor: Antônio de Pádua Braga
Belo Horizonte2010
LISTA DE ILUSTRAÇÕES
FIGURA 1 - EXEMPLO DE UM PERCEPTRON SIMPLES. 9FIGURA 2 – (A) RESULTADO DO CLASSIFICADOR KNN PARA K=1. (B)
RESULTADO DO CLASSIFICADOR KNN PARA K=2 (K ÓTIMO). (C) VARIAÇÃO DO ERRO DO CLASSIFICADOR KNN. 14
FIGURA 3 – (A) RESULTADO DO CLASSIFICADOR PERCEPTRON SIMPLES PARA OS DADOS DE TREINAMENTO. (B) PERCEPTRON SIMPLES PARA OS DADOS DE VALIDAÇÃO. (C) MASSA DE DADOS DE TREINAMENTO UTILIZADA PARA O ALGORITMO DO PERCEPTRON SIMPLES. 15
FIGURA 4 – VARIAÇÃO DO ERRO DO CLASSIFICADOR PERCPETRON SIMPLES. 16
FIGURA 3 – (A) RESULTADO DO CLASSIFICADOR MLP (10 NEURÔNIOS NA ENTRADA, 1 NA SAÍDA) DURANTE TREINAMENTO E CONSIDERANDO UM CONJUNTO DE 300 GENES. (B) APROXIMACAO PARA OS DADOS DE VALIDAÇÃO. (C) VARIAÇAO DO ERRO AO LONGO DAS ÉPOCAS. 17
FIGURA 3 – (A) RESULTADO DO CLASSIFICADOR MLP (10 NEURÔNIOS NA ENTRADA, 1 NA SAÍDA) DURANTE TREINAMENTO E CONSIDERANDO UM CONJUNTO DE 50 GENES. (B) APROXIMAÇÃO PARA OS DADOS DE VALIDAÇÃO. (C) VARIAÇAO DO ERRO AO LONGO DAS ÉPOCAS. 18
FIGURA 3 – (A) RESULTADO DO CLASSIFICADOR MLP (19 NEURÔNIOS NA ENTRADA, 1 NA SAÍDA) DURANTE TREINAMENTO E CONSIDERANDO UM CONJUNTO DE 300 GENES. (B) APROXIMAÇÃO PARA OS DADOS DE VALIDAÇÃO. (C) VARIAÇAO DO ERRO AO LONGO DAS ÉPOCAS. 19
FIGURA 3 – (A) RESULTADO DO CLASSIFICADOR MLP (19 NEURÔNIOS NA ENTRADA, 1 NA SAÍDA) DURANTE TREINAMENTO E CONSIDERANDO UM CONJUNTO DE 50 GENES. (B) APROXIMAÇÃO PARA OS DADOS DE VALIDAÇÃO. (C) VARIAÇAO DO ERRO AO LONGO DAS ÉPOCAS. 20
FIGURA 3 – (A) RESULTADO DO CLASSIFICADOR MLP (20 NEURÔNIOS NA ENTRADA, 1 NA SAÍDA) DURANTE TREINAMENTO E CONSIDERANDO UM CONJUNTO DE 300 GENES. (B) APROXIMAÇÃO PARA OS DADOS DE VALIDAÇÃO. (C) VARIAÇAO DO ERRO AO LONGO DAS ÉPOCAS. 21
FIGURA 3 – (A) RESULTADO DO CLASSIFICADOR MLP (20 NEURÔNIOS NA ENTRADA, 1 NA SAÍDA) DURANTE TREINAMENTO E CONSIDERANDO UM CONJUNTO DE 50 GENES. (B) APROXIMAÇÃO PARA OS DADOS DE VALIDAÇÃO. (C) VARIAÇAO DO ERRO AO LONGO DAS ÉPOCAS. 22
5
SUMÁRIO
1 INTRODUÇÃO............................................................................................................................................ 6
2 DESENVOLVIMENTO.................................................................................................................................. 6
2.1 KNN..............................................................................................................................................7
2.2 PERCEPTRON SIMPLES...............................................................................................................8
2.2 MLP (MULTILAYER PERCEPTRON)...........................................................................................10
3 DESENVOLVIMENTO................................................................................................................................ 10
3.1 BASE DE DADOS........................................................................................................................10
3.2 ESCOLHA DOS ATRIBUTOS PARA CLASSIFICAÇÃO.................................................................11
3.3 IMPLEMENTAÇÃO DOS MÉTODOS............................................................................................11
3.3.1 KNN......................................................................................................................................12
3.3.2 Perceptron simples..............................................................................................................12
3.3.3 Multilayer Perceptron.........................................................................................................13
4 RESULTADOS OBTIDOS............................................................................................................................ 13
5 CONCLUSÃO............................................................................................................................................ 23
REFERÊNCIAS .............................................................................................................................................. 25
5
1 INTRODUÇÃO
As redes neurais, na atualidade, vêm sendo amplamente utilizadas em
diversas áreas. Matemática, estatística, biotecnologia e os variados campos da
engenharia são alguns exemplos de onde a aplicação das redes neurais tem
obtido sucesso na busca de soluções para os problemas da atualidade. A
capacidade de aprendizado das redes neurais e o comportamento similar ao
pensamento humano são alguns dos fatores que posicionam as redes neurais
como uma boa aposta para os dias que virão.
Uma das aplicações em desenvolvimento e que já apresentam resultados
são os classificadores, capazes de analisar os dados que lhe são apresentados,
identificar padrões a partir de certos atributos e separá-los em diferentes
classes.
Nesse trabalho, pretende-se analisar alguns dos métodos de classificação
com o intuito classificar pacientes com leucemia por meio de sua composição
genética, sendo eles o KNN (K-Nearest Neighbors), o Perceptron Simples e o
MLP (Multilayer Perceptron). Dentre eles somente os dois últimos podem ser
considerados redes neurais, dada a sua capacidade de aprendizado.
Inicialmente, é realizada uma apresentação dos métodos juntamente com
uma revisão bibliográfica, seguida pela descrição da base de dados escolhida e
a respectiva apresentação e avaliação dos resultados obtidos.
6
2 DESENVOLVIMENTO
2.1 KNN
O método KNN é bastante conhecido e utilizado para classificação. A sua
utilização pode ser confirmada com uma simples inspeção em processos
químicos e biológicos, onde seus bons resultados são uma característica assim
como sua fácil implementação. Além disso, o método KNN pode ser utilizado
para clustering, sendo este método baseado em memória, sem aproximação de
modelos, com toda a massa de dados de treinamento armazenada e sendo
utilizada a cada nova predição ou classificação. Uma característica que merece
destaque é a capacidade das redes KNN de aproximarem superfícies de
separação não-lineares, que ocorrem inevitavelmente quando se trabalha com
uma massa onde ocorre superposição entre os mesmos.
A abordagem por trás deste método é caracterizada por atribuir uma
classe a um determinado ponto ou dado conforme sua distância em relação aos
k pontos mais próximos e suas respectivas classes. Em outras palavras, uma
rede KNN é capaz de classificar um novo dado conforme sua distância em
relação aos dados armazenados. Logo, para um ponto k qualquer, onde dentre
os 5 pontos mais próximos, 3 pertencem a classe 1 e 2 pertencem a classe 2,
será atribuída a classe 1.
Dentre as vantagens da rede KNN pode-se destacar a robustez a ruídos,
resposta interpretável e sua fácil implementação. Dentre as desvantagens deve-
7
se destacar a necessidade de escolher um valor para o parâmetro k e a
complexidade computacional imposta, pois quanto maior a base de dados
utilizada maior o esforço computacional caracterizado pelo tempo demandado na
classificação. Existem duas derivações do KNN que merecem descrição. A
primeira, Distance Weighted KNN, atribui pesos durante a escolha das classes
conforme a distância, resultando em classes atribuídas considerando uma
determinada área ao redor do ponto apresentado. A segunda derivação, CNN
(Condensed Nearest Neighbors) é caracterizada pelo fato de escolher pontos
dentre o conjunto de dados armazenados ou de treinamento, que são mais
importantes para a determinação da superfície de separação. Este algoritmo
utiliza apenas os pontos escolhidos para determinar a classe dos pontos que lhe
são apresentados, o que reduz o esforço computacional.
Para o cálculo da distância foi adotado o cálculo euclidiano, definido como
a raiz quadrada da soma das distâncias em cada dimensão ou a soma do
módulo das distâncias em cada dimensão.
2.2 PERCEPTRON SIMPLES
O neurônio humano e seu funcionamento foi a inspiração para o modelo
de rede neural denominado perceptron. Basicamente, os neurônios humanos
recebem impulsos elétricos por meio de seus axônios e, a partir daí, por meio de
uma lógica interna que leva em consideração a intensidade dos sinais e suas
origens, decidem se os mesmos devem ser propagados ou não.
8
O perceptron, na forma mais simples que se possa descrever, é uma
função que soma os valores de suas entradas, de forma ponderada, utilizando
pesos pré-estabelecidos. Caso o resultado da soma das entradas ultrapasse o
valor conhecido como valor de limiar, será atribuído ao conjunto de valores de
entrada uma classe e, caso contrário, outra.
De forma resumida, as entradas são os atributos que determinam o ponto
a ser avaliado. A superfície de separação determinada por um perceptron é
linear, ou seja, as classes são determinadas em lados opostos de um hiperplano.
Um perceptron pode ser entendido pela Figura 1. Matematicamente, se wmxn é a
matriz de pesos, xnxp são os atributos de entrada e ymxp é a saída, sendo n o
número de dimensões (atributos), m o número de neurônios (1, no caso do
perceptron simples) e p o número de observações, tem-se que:
Figura 1 - Exemplo de um perceptron simples.
(1)
A função f(z) pode ser do tipo “se u > Ө, então y = 1, caso contrário y = 0”.
Sendo assim, 0 e 1 representariam duas classes. Essa estratégia foi adotada na
metodologia desse artigo.
9
Os pesos são ajustados automaticamente, de forma a se obter o menor
erro possível para os dados de treinamento. Para facilitar o entendimento do
ajuste de pesos, pode-se tomar o exemplo de um perceptron com dois atributos
de entrada. A equação de saída resultará em uma superfície de separação
determinada pela reta
. (2)
O ajuste automático dos pesos busca, então, encontrar a direção de ajuste
da reta e em quanto deve ser ajustada para que o erro de classificação seja o
menor possível. O aprendizado de um perceptron encontra-se justamente no
ajuste desses pesos tendo-se em vista a base de dados de treinamento.
2.2 MLP (MULTILAYER PERCEPTRON)
O neurônio humano e seu funcionamento foi a inspiração para o modelo
de rede neural denominado perceptron. Basicamente, os neurônios humanos
recebem impulsos elétricos por meio de seus axônios e, a partir daí, por meio de
uma lógica interna que leva em consideração a intensidade dos sinais e suas
origens, decidem se os mesmos devem ser propagados ou não.
3 DESENVOLVIMENTO
3.1 BASE DE DADOS
10
A base de dados escolhida para este trabalho visa classificar pacientes
com leucemia por meio de sua expressão genética. Os dados provenientes de
Golub et al, são uma combinação de amostras de treinamento e validação de 47
pacientes com leucemia linfóide aguda (acute lymphoblastic leukemia - ALL) e 25
pacientes com leucemia mielóide aguda (acute myeloid leukemia - AML). As
amostras foram obtidas utilizando o Affymetrix Hgu6800 e apresentam
informações referentes a 7129 genes (Affymetrix probes). Os dados foram
obtidos por meio de um website de pesquisas e foram trabalhados para
atenderem os interesses desse estudo.
Ao todo este estudo avaliou 72 amostras, cada uma contendo 7129 genes
com o objetivo de classificar pacientes com leucemia em duas classes, ALL e
AML.
Dessa massa de dados, 80% foi utilizada para treinamento e 20% para
validação.
3.2 ESCOLHA DOS ATRIBUTOS PARA CLASSIFICAÇÃO
Durante etapa de desenvolvimento dos classificadores ficou visível, por
meio de testes iniciais, que trabalhar com todos os genes disponíveis na base de
dados seria uma tarefa complexa, de grande esforço computacional e de
pequeno retorno para o processo de classificação. Desta forma, os dados foram
trabalhados e os 7129 genes foram classificados quanto a sua variabilidade, o
que nos garante sua influência ou relevância sobre todo o conjunto genético e
conseqüentemente sobre o processo classificatório.
11
3.3 IMPLEMENTAÇÃO DOS MÉTODOS
Para todos os métodos apresentados foi utilizado como ferramenta
computacional o software Matlab.
3.3.1 KNN
Para implementar o algoritmo do KNN temos que, sendo pi um ponto
pertencente às observações dos dados de teste (Stest - a serem classificados), qj às
observações de treinamento (Strain - já classificados) e D(pi, qj) a distância entre pi e
qj, o pseudo-algoritmo para a implementação do método KNN deve ser:
Para todo pi є Stest
Calcular D(pi, qj) para todo qj є Strain;
Escolher k pontos com as menores distâncias em relação à pi;
Contar número de classes para cada classe dentro dos k pontos;
Escolher a classe de pi de acordo com o maior número de classes
contadas.
Para a escolha do valor de k a ser adotado, executou-se o método KNN para
uma faixa de valores de k. O valor mais baixo dentre aqueles com menor erro foi
escolhido.
3.3.2 Perceptron simples
12
No algoritmo apresentado abaixo, xi é o ponto da massa de dados de
treinamento, di é a classificação desejada para esse ponto, yi é a saída calculada
pelo perceptron considerando-se os pesos atuais e η é a taxa de aprendizado:
1) Inicializar as conexões wij;
2) Repetir
para cada par de treinamento (xi, di)
o calcular yi
o ajustar os pesos w(n+1) = w(n) + η(d-y)x
até que yi = di para todos os pares (xi,di), ou respeitando um
valor de erro admissível.
Para cada época – ajuste de pesos para todos os pares de treinamento (1
passo dentro do item 2) – é calculado o erro. Se o mesmo for abaixo de um limiar
desejado ou o número máximo de épocas for atingido, o algoritmo é finalizado e
retorna os pesos da rede. Esses pesos são utilizados pelo perceptron na massa de
dados de teste, para comparar sua aproximação com os dados reais.
3.3.3 Multilayer Perceptron
Para implementar a rede com várias camadas, denominada Multilayer
Perceptron, foi utilizado o toolbox de redes neurais nativo do software Matlab que
pode ser chamado por meio do comando newff.
13
4 RESULTADOS OBTIDOS
O KNN e o Perceptron simples apresentaram resultados ruins, muito
próximos do aleatório (50% de acerto para 2 classes), como pode ser verificado
na Figura 2 e na Figura 3.
A B
C
Figura 2 – (A) Resultado do classificador KNN para k=1. (B) Resultado do classificador KNN para k=2 (k ótimo). (C) Variação do erro do classificador KNN.
14
A B
C
Figura 3 – (A) Resultado do classificador Perceptron simples para os dados de treinamento. (B) Perceptron simples para os dados de validação. (C) Massa de dados de
treinamento utilizada para o algoritmo do Perceptron simples.
O gráfico de erro do Perceptron, Figura 4, é suficiente para indicar que o
erro é bem aleatório, e não diminui com o número de genes, o que significa que
um neurônio somente não conseguiu classificar bem os dados. O KNN também
apresentou um porcentual de erro alto, mesmo utilizando o valor ótimo de K (que
produzia menor erro).
15
Figura 4 – Variação do erro do classificador Perceptron simples.
O próximo passo então foi utilizar uma rede multicamadas (MLP), pois a
camada intermediária de neurônios é conhecida por ter capacidade de modelar
não só processos não-lineares, mas também processos descontínuos.
O algoritmo MLP apresentou erros menores com um conjunto de 300
genes, sendo este valor escolhido como valor ótimo, do que com 50 genes, valor
inicialmente escolhido para as análises. Para todos os testes realizados o valor
limite para o número de épocas foi sempre 300. Os erros obtidos foram
razoáveis, mas bem melhores do que aqueles obtidos com o KNN e Perceptron
simples. Foram realizados testes com 10, 19 e 20 neurônios na primeira camada.
Também foram realizados testes com 3 camadas, mas não foi possível perceber
alteração significativa no desempenho da rede. Devido a característica da rede
MLP de gerar um resultado em float, foi necessário uma função de ativação: se
resultado > 0.5, então classe 1, senão classe 0 para definição da resposta do
classificador.
16
A B
C
Figura 5 – (A) Resultado do classificador MLP (10 neurônios na entrada, 1 na saída) durante treinamento e considerando um conjunto de 300 genes. (B) Aproximação para os
dados de validação. (C) Variação do erro ao longo das épocas.
17
A B
C
Figura 6 – (A) Resultado do classificador MLP (10 neurônios na entrada, 1 na saída) durante treinamento e considerando um conjunto de 50 genes. (B) Aproximação para os dados
de validação. (C) Variação do erro ao longo das épocas.
18
A B
C
Figura 7 – (A) Resultado do classificador MLP (19 neurônios na entrada, 1 na saída) durante treinamento e considerando um conjunto de 300 genes. (B) Aproximação para os
dados de validação. (C) Variação do erro ao longo das épocas.
19
A B
C
Figura 8 – (A) Resultado do classificador MLP (19 neurônios na entrada, 1 na saída) durante treinamento e considerando um conjunto de 50 genes. (B) Aproximação para os dados
de validação. (C) Variação do erro ao longo das épocas.
20
A B
C
Figura 9 – (A) Resultado do classificador MLP (20 neurônios na entrada, 1 na saída) durante treinamento e considerando um conjunto de 300 genes. (B) Aproximação para os
dados de validação. (C) Variação do erro ao longo das épocas.
21
A B
C
Figura 10 – (A) Resultado do classificador MLP (20 neurônios na entrada, 1 na saída) durante treinamento e considerando um conjunto de 50 genes. (B) Aproximação para os dados
de validação. (C) Variação do erro ao longo das épocas.
Ainda considerando a análise dos resultados, é importante mencionar a
grande superposição de dados, o que proporciona dificuldades interessantes para os
métodos, e conseqüentemente, erros.
Apesar de todos serem métodos de classificação, apenas o perceptron e sua
variação com múltiplas camadas podem ser considerados uma rede neural devido à
sua capacidade de aprendizado. O KNN guarda toda a base de dados para si e
efetua comparações. Ainda com relação ao KNN, pode-se perceber que o erro
assumiu valores bastante elevados ao se aumentar o valor de k (k acima de 2).
22
Quando uma superfície é muito não-linear, o classificador KNN acaba perdendo sua
generalização, que é o fato de ser capaz de se aproximar à função que gerou os
dados, ao contrário de se aproximar dos dados. Tal análise justifica o grande erro
encontrado para k > 2, como apresentado anteriormente.
Dentre os métodos utilizados, a rede MLP teve o melhor desempenho por ser
a única capaz de classificar os dados e, além disso, apresentar um erro percentual
aceitável (Erro percentual de treinamento: 5.2 e Erro percentual de validação: 21.4).
5 CONCLUSÃO
Esse trabalho apresentou os métodos de classificação KNN, perceptron
simples e perceptron com múltiplas camadas (MLP). Os métodos foram utilizados
para classificar uma base de dados com pacientes portadores de leucemia, e,
devido a estrutura da massa de dados, expressão genética, apenas a rede MLP
apresentou um desempenho aceitável tendo-se em vista a grande superposição de
dados. As camadas adicionais implementadas por meio da rede MLP contribuíram
bastante para a construção de um classificador de melhor qualidade. Para melhorar
o desempenho dos classificadores, pode-se aproveitar do uso de técnicas mais
recentes que focam na análise da base de dados inicial e sua relevância na
classificação.
Como destaques devem ser mencionados a razoável facilidade de
implementação dos códigos dos classificadores no Matlab e a rapidez apresentada
23
na resposta dos mesmos, o que acarreta em um reduzido esforço computacional
para implementação dos classificadores.
24
REFERÊNCIAS
Haykin, S. Neural Networks – A Comprehensive Foundation. Second Edition, Prentice Hall (2005).
Nigsch, F., Bender, A., van Buuren, B., Tissen, J., Nigsch, E., Mitchell, J. B. O. Melting Point Prediction Employing k-Nearest Neighbor Algorithms and Genetic Parameter Optimization. J. Chem. Inf. Model. 2006, 46, 2412-2422
Hristozov, D., da Costa, F. B., Gasteiger, J. Sesquiterpene Lactones-Based Classification of the Family Asteraceae Using Neural Networks and k-Nearest Neighbors. J. Chem. Inf. Model. 2007, 47, 9-19
Huber, Wofgang, von Heydebreck, Anja, Vingron, Martin. Analysis of microarray gene expression data. 02 de abril de 2003.
T.R. Golub, D.K. Slonim, P. Tamayo, C. Huard, M. Gaasenbeek, J.P. Mesirov, H. Coller, M.L. Loh, J.R. Downing, M.A. Caligiuri, C.D. Bloomfield, and E.S. Lander. Molecular classification of cancer: Class discovery and class prediction by gene expression monitoring. Science, 286:531–537, 1999.
Molecular Classification of Cancer: Class Discovery and Class Prediction by Gene Expression (GOLUB Dataset). Disponível em < http://www.broadinstitute.org/cgi-bin/cancer/publications/pub_paper.cgi?mode=view&paper_id=43> Acesso em 12 de junho de 2010.
Top Related