• Nenhum resultado encontrado

Algoritmos de Agrupamento (Clusteriza¸c˜ ao)

Agrupamento, ou clusteriza¸c˜ao (do inglˆes, clustering) ´e o processo de detec¸c˜ao de simi- laridades entre exemplares, descobrindo assim sua disposi¸c˜ao em um grupo. Dentre os tipos de algoritmos que aplicam agrupamento, destacam-se, dentre outros: hier´arquico, por parti¸c˜ao, rede neural artificial, e K-Means.

O algoritmo de clusteriza¸c˜ao K-Means ´e a base do algoritmo X-Means que foi utili- zado neste trabalho para agrupar as m´etricas CK das classes para, por meio dos clusters gerados, inferir classes ou programas similares. Na pr´oxima se¸c˜ao apresentam-se o funci-

2.5.1

O Algoritmo K-Means

O K-Means ´e um dos algoritmos mais empregados para implementar o processo de agru- pamento de exemplares. Ele ´e utilizado em trabalhos que envolvem o aprendizado de m´aquinas (do inglˆes, machine learning) como um aprendizado n˜ao supervisionado. No aprendizado n˜ao supervisionado, n˜ao se sabe o que ser´a ensinado ao computador. Por- tanto, utiliza agrupamentos l´ogicos que segmentam os dados das amostras em busca de padr˜oes que o computador poder´a utilizar sempre que for solicitado.

Levando em considera¸c˜ao que se pode selecionar manualmente conjuntos diferentes de m´etricas e que seus valores podem divergir em rela¸c˜ao aos diferentes tipos de programas, al´em de que o n´umero de classes a serem analisadas na aplica¸c˜ao do framework conceitual definido no contexto deste trabalho ´e desconhecido, decidiu-se utilizar o K-Means, ou seja, um algoritmo de aprendizado n˜ao supervisionado. O K-Means encontra um n´umero fixo K de grupos separados de exemplares em um conjunto de dados. Para isso os K’s (cen- troides) s˜ao dispostos aleatoriamente em rela¸c˜ao ao conjunto de dados, criando “setores” (os clusters) nesses dados. Os clusters s˜ao divididos na metade da distˆancia entre os cen- troides. Ent˜ao, os centroides s˜ao posicionados em rela¸c˜ao ao seu cluster e o processo itera redimensionando os clusters dos centroides e os centralizando novamente. Para reposici- onar o centroide em rela¸c˜ao ao cluster, ´e utilizada a seguinte f´ormula, apresentada por Boscarioli et al. (2016), na qual: X →g ´e um exemplar do conjunto de dados associados

ao centroide c →p, sendo que, p vai de 1 at´e k (n´umero de clusters) e G ´e o n´umero de

exemplares associados ao centroide.

c →p= 1 G G X g=1 X →g

Para descobrir o centroide ao qual um dado exemplar pertence, ´e necess´ario comparar a distˆancia do valor (num´ericos) do exemplar com os dos centroides que podem estar divididos atrav´es de sua distˆancia euclidiana (ou distancia m´etrica, comprovada por usos repetidos do teorema de Pit´agoras, no caso uma linha imagin´aria que liga os dois pontos por uma linha).

Existem alguns problemas com o algoritmo como `a aleatoriedade dos pontos iniciais dos centroides, que n˜ao garantirem uma distribui¸c˜ao final ideal. Outro problema refere-se ao n´umero fixo e simultaneamente n˜ao ideal de clusters que devem ser estabelecidos em rela¸c˜ao `as informa¸c˜oes oferecidas.

2.5.2

O Algoritmo X-Means

Criado por Pelleg e Moore (2000), o algoritmo de agrupamento X-Means tenta sanar algumas limita¸c˜oes do K-Means como, por exemplo, a baixa escalabilidade computacional, e a necessidade de inserir manualmente K . A t´ecnica provou-se mais r´apida do que o uso repetitivo de K-Means para encontrar o valor mais adequado de K.

O algoritmo come¸ca com o menor valor K, em intervalo dado, e continua a adicionar centroides enquanto eles s˜ao necess´arios at´e o fim do intervalo. O melhor resultado ´e, ent˜ao, utilizado. O algoritmo executa apenas duas opera¸c˜oes:

• Melhorar os parˆametros: Executar K-Means at´e a convergˆencia (o ponto onde poucas altera¸c˜oes acontecem ao reposicionar os centroides).

• Melhorar a estrutura: A opera¸c˜ao encontra, se e onde, novos centroides devem aparecer. Isso ´e poss´ıvel permitindo que alguns dos centroides se dividam. Para de- cidir se devem ou n˜ao se dividir, ´e utilizada a seguinte estrat´egia: Inicia-se dividindo cada centroide em dois que se movem para uma dire¸c˜ao aleat´oria proporcional ao tamanho da regi˜ao. Em seguida, em cada regi˜ao (cluster do centroide pai) ´e exe- cutado um K-Means local com (K = 2) para cada um dos pares de filhos. Depois disso, uma model selection test1 ´e realizada em todos os pares de filhos para iden- tificar se exite alguma evidˆencia de que os filhos est˜ao modelando uma estrutura real, ou se o centroide pai modela a distribui¸c˜ao t˜ao bem quanto; dependendo do resultado, ou o pai ou os filhos s˜ao apagados. Com isso, centroides pais bem distri- bu´ıdos v˜ao sobreviver, assim como novos centroides que aparecerem em regi˜oes n˜ao t˜ao bem representadas. A decis˜ao de divis˜ao ´e realizada atrav´es do c´alculo de Baye- sian Information Criterion (BIC). Uma Bayesian inference ´e relativa `a montante da plausibilidade de um valor (ou proposi¸c˜ao) randˆomico em rela¸c˜ao a outro valor randˆomico. O BIC tenta evitar o overfitting, que ´e a produ¸c˜ao de uma an´alise que corresponda, total ou parcialmente, a um conjunto especifico de dados, dessa forma n˜ao conseguindo ajustar dados adicionais ou prever observa¸c˜oes futuras de forma confi´avel.

1E a tarefa de testar a sele¸´ ao de um modelo estat´ıstico de um grupo de modelos candidatos de uma

determinada fonte de dados. Ou tamb´em a sele¸c˜ao de um baixo grupo de modelos representativos de um

grande grupo de modelos computacionais com o prop´osito de auxiliar em decis˜oes ou otimizar em rela¸c˜ao

`