Vous êtes sur la page 1sur 28

UNIVERSIDADE FEDERAL DE SERGIPE

PRÓ-REITORIA DE PÓS-GRADUAÇÃO E PESQUISA


COORDENAÇÃO DE PESQUISA
Programa Institucional de Bolsas de Iniciação Científica (PIBIC) - CNPq/UFS

Aplicações do estimador de entropia via coincidências ao reconhecimento de


padrões

Área de Conhecimento: (Ciência da Computação )


Código CNPq: PVB2109-2014

Bolsista: (Vitor Magno de Oliveira Santos Bezerra)


Departamento de Engenharia Elétrica
Nº Matrícula: (201110004356)
Orientador: (Jugurta Rosa Montalvão Filho)
Departamento de Engenharia Elétrica

Relatório Final
Período Agosto 2014 – Julho 2015
Projeto desenvolvido com bolsa de iniciação científica PIBIC/FAPITEC
Conteúdo

1.Introdução................................................................................................................................3
2.Entropia....................................................................................................................................5
3.Estimadores de Entropia..........................................................................................................9
4.Clustering...............................................................................................................................13
5.Resultados experimentais.......................................................................................................19
6.Conclusão...............................................................................................................................27
7.Referências bibliográficas......................................................................................................28
1 Introdução

Em 1948, Shannon introduziu em[1], um dos conceitos fundamentais sobre a noção de informação,
como apresentando em[2], do ponto de vista da comunicação. Ele associou informação à incerteza.
Mais especificamente, se uma mensagem fosse formada por apenas elementos determinísticos, ela
não passaria nenhuma informação de valor pois não haveria incerteza sobre o seu conteúdo.
Consequentemente, toda fonte de informação pode ser modelada como um processo aleatório. Por
exemplo, uma mensagem escrita pode ser considerada um processo aleatório onde cada letra pode
ser considerada um símbolo, de um conjunto, amostrado aleatoriamente.
Neste mesmo artigo Shannon mostrou que existe uma medida de representação mínima média para
um processo aleatório[3], que depende apenas do nível de incerteza do processo, que ele denominou
de entropia. Porém uma dificuldade da utilização dessa medida na prática, em alguns casos, é que
ela depende de um conhecimento sobre a distribuição aleatória do processo, o que nem sempre é
possível obter. Uma forma de se burlar esse problema é utilizando estimadores de densidade que são
divididos em paramétricos e em não-paramétricos. A primeira categoria assume que o processo
estocástico foi amostrado por alguma distribuição pertencente a uma família de distribuição
paramétrica conhecida, enquanto a segunda procura obter uma estimação da densidade sem
nenhuma informação a priori[4][5]. Os estimadores de entropia mais utilizados, os estimadores 'plug-
in'[6], utilizam estimadores de distribuição não-paramétricos. Inclusive, em reconhecimento de
padrões os estimadores paramétricos comuns quase nunca encontram boas estimações de densidade
em aplicações práticas, havendo uma preferência pelos estimadores não-paramétricos[7].
Um problema dos estimadores de entropia que utilizam estimadores de distribuições de
probabilidade não-paramétricos, os estimadores 'plug-in', é que eles demoram a convergir e, em
muitos casos, fica inviável conseguir implementá-los para determinados experimentos, como foi
exaltado em[8]. Neste contexto, foi proposto um estimador novo, em [9], ainda em desenvolvimento,
por contagem de coincidências que obteve estimações muito boas para pequenas amostras.
Um método de reconhecimento de padrões, que demonstrou potencial para utilização do estimador
de entropia por coincidências, foi um algoritmo de clustering de dados categóricos. Clustering é o
agrupamento de amostras que compartilham características similares, sendo este um problema
recorrente em reconhecimento de padrões, onde o elemento principal de um algoritmo de clustering
é a medida usada para calcular a similaridade [14]. Em [15], é proposto um algoritmo de clustering de
dados categóricos que utiliza como medida de similaridade a entropia dos clusters, pois clusters
com pontos similares possuem uma entropia menor que os clusters com pontos diferentes. Esse
algoritmo demonstrou ser capaz de realizar análise de grandes conjunto de dados e realizar uma
análise contínua de dados, pois é um algoritmo incremental capaz de armazenar novos pontos sem
precisar verificar todos os pontos já armazenados. Essas duas características apontam para aplicação
do estimador de entropia por coincidências, pois é um método que consegue uma boa aproximação
da entropia de uma sequência de dados categóricos e é computacionalmente simples de ser
implementado.

1.1 Objetivos

O objetivo geral deste projeto é estudar aplicações do estimador de entropia por contagem de
coincidências na área de reconhecimento de padrões, através da análise de sinais.

1.2 Estrutura do relatório

Este relatório está estruturado da seguinte forma: na seção 2, há uma revisão bibliográfica
apresentando os conceitos de entropia que serão utilizados pelos estimadores; na seção 3, há uma
apresentação de alguns dos estimadores padrões de entropia mais utilizados com a apresentação de
dois estimadores de entropia por contagem de coincidência; na seção 4, há uma revisão sobre
clustering e do algoritmo COOLCAT; na seção 5, estão os resultados da implementação, de cada
estimador citado no relatório, junto com suas análises e os resultados dos experimentos de
clustering utilizando o algoritmo original, o algoritmo com o estimador de entropia por coincidência
puro e o algoritmo com o estimador de entropia por coincidência modificado; na seção 6, estão as
conclusões e na seção 7, estão as referências bibliográficas.
2 Entropia

Nesta seção são introduzidas as medidas de entropia. Ela é dividida em cinco partes: a primeira
parte introduz o conceito de entropia para uma variável aleatória discreta; a segunda parte explica o
que é entropia condicional e entropia conjunta, e a relação entre elas; a terceira parte introduz a
entropia de uma variável aleatória contínua; a quarta parte mostra a relação entre a entropia de uma
variável contínua com a entropia de uma variável discreta; e por último, é apresentado o conceito de
entropia para um processo estocástico

2.1 Entropia discreta

Seja X uma variável aleatória discreta com o alfabeto , a probabilidade dessa variável aleatória ser
um símbolo x é dada pela função massa de probabilidade, pX(x). A entropia de X, H(X), é dada pela
fórmula (2.1).
H ( X )=−∑ p X ( x)log 2 ( p X (x )) (2.1)
x∈χ

Dessa forma, a entropia pode ser vista como a média da função log2(1/pX(x)), que é uma função que
depende apenas da função massa de probabilidade, sendo assim, ela só depende da probabilidade do
símbolo x ser amostrado, independente do símbolo representado por x. A entropia então pode ser
vista como a média da quantidade de incerteza, sobre qual será o próximo símbolo amostrado da
fonte, associada a uma variável aleatória, e assim, a média da quantidade informação que é
necessária para descrever toda a variável. Baixo valores de entropia correspondem a variáveis
aleatórias previsíveis, ou seja, variáveis aleatórias onde a probabilidade de um valor aleatório é bem
mais alto que a probabilidade dos restos dos valores da variável. Pelo contrário, altos valores de
entropia descrevem variáveis aleatórias imprevisíveis, onde a probabilidade de cada valor é igual,
sendo assim, há pouca informação sobre o resultado da variável aleatória.

2.2 Entropia Conjunta e Entropia Condicional

A entropia conjunta, H(X,Y), de um par de variáveis aleatórias discretas, (X,Y), com a distribuição
aleatória pXY(x,y) é definida pela fórmula (2.2), onde tem basicamente o mesmo comportamento da
entropia de apenas uma variável aleatória porque a variável aleatória conjunta pode ser considerada
uma variável aleatória de um único vetor (X,Y).

H ( X ,Y )=−∑ ∑ p XY (x , y )log 2 ( p XY ( x , y)) (2.2)


x∈χ y∈γ

Se (X,Y) for dado pela distribuição pXY(x,y) a entropia condicional, H(Y|X), é definida pela fórmula
(2.3).

H (Y∣X )=−∑ ∑ p XY (x , y ) log 2 p( y∣x ) (2.3)


x∈χ y∈γ

A naturalidade da definição de entropia conjunta está no fato de que a entropia de um par de


variáveis aleatórias é a entropia de uma variável aleatória com a entropia condicional da outra, esse
teorema é expresso formalmente pela fórmula (2.4). De forma resumida ele quer dizer que a
quantidade de informação necessária para descrever um par de variáveis aleatórias é a informação
necessária para descrever uma variável aleatória junto com a informação que ainda é necessária
para descrever a outra variável visto que já há informação da primeira. Uma consequência direta
desse teorema é que se as duas variáveis forem independentes, isto é, nenhuma variável aleatória
possui informação sobre a outra, a entropia conjunta será dada pela fórmula (2.5). Neste caso a
entropia conjunta assume seu maior valor já que vai ser necessária a informação completa das duas
variáveis aleatórias.

H ( X ,Y )=H ( X )+ H (Y∣X ) (2.4)

H ( X ,Y )=H ( X )+ H (Y ) (2.5)

2.3 Entropia Diferencial

Quando X é uma variável aleatória contínua, a medida de informação associada a ela é a entropia
diferencial. Essa medida, assim como a entropia de uma variável aleatória discreta, também está
associada à quantidade média de informação que é necessária para descrever a variável aleatória.
Dado uma função de densidade pX(x), a entropia diferencial, h(X), é definida pela fórmula (2.6),
sendo S o conjunto suporte da variável aleatória, que são os valores de x em que pX(x) > 0.

h( X )=−∫ p X ( x)log 2 ( p X ( x )) dx (2.6)


S

2.4 Relação entre entropia diferencial e entropia discreta

Considere uma variável aleatória contínua X com uma densidade dada por pX(x) como ilustrado na
figura (2.1). Supondo que o domínio de X seja divido em partes, chamados de bins, de tamanho ∆.
Dentro de cada bin existe um xi, assumindo que a função densidade é contínua dentro de cada bin,
que pelo teorema do valor médio a fórmula (2.7) é válida.
(i +1)Δ
p X ( x i) Δ= ∫ p X ( x )dx (2.7)

Figura 2.1: Quantização de uma variável aleatória contínua

Usando a fórmula (2.7) é possível definir uma variável aleatória discreta, X∆, a partir da quantização
de X, pela fórmula (2.8), se i∆<X<(i+1)∆. A função massa de probabilidade da variável quantizada,
pi, sendo X∆ = xi, é dada pela fórmula (2.9). Assim, a entropia diferencial da variável aleatória é dada
pela fórmula (2.10), quando ∆→0.

X Δ=x i (2.8)
(i +1)Δ
p i= ∫ p X ( x) dx= p X ( x i ) Δ (2.9)

h( X )=H ( X Δ )+ log 2 Δ (2.10)

2.5 Taxa de Entropia

Um processo estocástico {Xi} é uma sequência de variáveis aleatórias indexadas, podendo existir,
em geral, dependência entre essas variáveis. Ele é caracterizado pela função massa de probabilidade
conjunta das suas variáveis, Pr{(X1,X2,...,Xn) = (x1,x2,...,xn)} = pX1,...,Xn(x1,x2,...,xn), sendo (x1,x2,...,xn) ϵ
n para n = 1,2,.... A taxa de entropia, H(), mede a mudança de entropia gerada pelo aumento do
número de variáveis do processo estocástico, sendo definida pela fórmula (2.11) quando o limite
existir.

1
H ( χ )=lim H ( X 1 , X 2 , ... , X n) (2.11)
n→∞ n

Se a probabilidade conjunta de qualquer subconjunto da sequência de variáveis aleatória é


indiferente à mudança de índice, como na fórmula (2.12), para qualquer n, qualquer mudança l, e
para todo x1,x2,...,xn ϵ , o processo estocástico é dito estacionário.

Pr {X 1=x 1 , X 2=x 2 ,... , X n= x n }=Pr { X 1 +l= x 1 , X 2 +l= x 2 , ... , X n+l =x n +l } (2.12)

Uma cadeia de Markov é um processo estocástico onde cada variável aleatória depende apenas da
sua predecessora sendo condicionalmente independente de todas as outras variáveis aleatórias
anteriores. Por exemplo, se um processo estocástico {Xi} é uma cadeia de Markov, então para todo
x1, x2,...,xn,xn+1 ϵ , a fórmula (2.13) é válida.

Pr {X n+1= x n+1∣X n= x n , X n−1=x n−1 , ... , X 1 =x 1}= Pr { X n +1=x n +1∣X n =x n } (2.13)

Se {Xi} é uma cadeia de Markov, Xn é chamado de estado no tempo n. Uma cadeia de Markov
invariante no tempo é caracterizada pelo seu estado inicial e sua matriz de probabilidade de
transição P = [Pij], onde i, j ϵ {1,2,...,m} e Pij = Pr{Xn+1 = j |Xn = i}. Se a função massa de
probabilidade da variável aleatória no tempo n é pXn(xn), então a função massa de probabilidade da
variável no tempo (n+1) é dada pela fórmula (2.14).

p X ( x n+1 )=∑ p X (x n ) P x
n+1 n n xn +1 (2.14)
xn

Se o estado inicial de uma cadeia de Markov for amostrado de uma distribuição estacionária, então
a função massa de probabilidade do estado (n+1) será igual a função massa do estado n e a cadeia
de Markov formará um processo estacionário. Por exemplo, se uma cadeia de Markov de dois
estados tem uma matriz de probabilidade de transição dada pela fórmula (2.15), sendo α a
probabilidade de ir do estado 1 para o 2 e β a probabilidade de ir do estado 2 para o 1. Se o estado
inicial for amostrado de uma função massa de probabilidade com um pX1(1) dado pela fórmula
(2.16) e com um pX1(2) dado pela fórmula (2.17), então a cadeia de Markov com a matriz de
probabilidade de transição, semelhante à da fórmula (2.15), formará um processo estacionário.
Então a fórmula[3] da taxa de entropia para essa cadeia de Markov será dada pela fórmula (2.18).
[
P= (1−α ) α
β (1− β ) ] (2.15)

β
p X (1)=
1 α + β (2.16)

p X ( 2)= α α
1 + β (2.17)

H ( χ )=− p X (1)(α log 2 ( α )+(1−α )log 2 (1−α ))− p X (2)( β log 2( β )+(1− β ) log 2 (1−β )) (2.18)
1 1
3 Estimadores de Entropia

Nesta seção serão apresentados os estimadores de entropia. Ela é dividida em duas partes:
estimadores de entropia clássicos e estimadores de entropia por coincidência.

3.1 Estimadores clássicos

Os estimadores mais utilizados para se estimar a entropia de uma variável aleatória, tanto contínua
quanto discreta, são os 'plug-in'[6][10]. Esses estimadores utilizam estimativas da distribuição da
variável aleatória para então obterem estimativas da entropia da variável. Nesta seção serão
apresentados três estimadores 'plug-in' de entropia, sendo dois estimadores de variável aleatória
contínua e um estimador de variável discreta.

3.1.1 Estimador de entropia por integral

Sendo pn(x, X) = pn(x, X1,...,X[(n+1)/2]) um estimador de densidade, baseado em histogramas e dado


pela fórmula (3.1), se x ϵ Ani. Pn = {An1, An2, ...} é um conjunto formado por partições do Rd, ou seja,
a junção de todos os elementos {Ani} formam o Rd, onde cada Ani é um volume na dimensão d de
lado hn, sendo 0 < hn < 1, λ(Ani) = (hn)d e μ(Ani) = Nin(X)/n, com Nin(X) representando a quantidade
de Xi que está dentro de um determinado Ani.

μ n ( An i )
p n (x , Χ)= (3.1)
λ( An i)

Usando o estimador da fórmula (3.1) é possível estimar a entropia diferencial h(X) através do
estimador por integral, que é dado pela fórmula (3.2), com Fn = {i: μn(Ani)≥ an(hn)d}, onde o valor de
an obedece a condição da fórmula (3.3).

μ n ( An i )
H n=− ∑ μ n ( An i )ln (3.2)
i∈ F n λ( An i)

lim a n=0 (3.3)


n→∞

A convergência deste estimador é garantida se h(X) for finita e se forem satisfeitas algumas
condições[11]. Um exemplo de valores que satisfazem essas condições é hn = [nα]-1, an = n-β, dα + β <
1, α > 0 e β > 0.

3.1.2 Estimador por janela Parzen

Sendo X1,...,Xn uma sequência aleatória de amostras da função densidade de probabilidade pX(x),
onde x ϵ Rd, sendo K uma função densidade de probabilidade e h o tamanho da largura de banda
desejada ao redor de cada Xi. Então um estimador por janela Parzen da função de densidade da
sequência aleatória é dado pela fórmula (3.4).
d −1
p i (x )=[(n−1)h ] ∑ K [( x−X j )/h] (3.4)
j≠i

Então um estimador de entropia utilizando a fórmula (3.4) pode ser definido pela fórmula (3.5).
n
H n=n−1 ∑ ln ( pi ( X i)) (3.5)
i =1
Existem condições que restringem a classe de distribuições que K pode assumir para garantir que o
viés desse estimador seja controlado, elas podem ser encontradas em [12].

3.1.3 Estimador 'plug-in' para variável aleatória discreta

Suponha que Xi é uma variável discreta aleatória com o alfabeto , com uma função massa de
probabilidade, pX(x), desconhecida e com domínio sendo um conjunto infinito contável em .
Dado uma sequência X1,...,Xn de variáveis aleatórias independentes e identicamente distribuídas por
pX(x), é possível se obter uma estimação, pn(x), de pX(x) pela fórmula (3.6).
n
p n=(1/n) ∑ I [ X j =i ] (3.6)
j=1

Com a fórmula (3.6) é possível se estimar a entropia Hn = Hn(X1,...,Xn), pela fórmula (2.1) que a
define.

3.2 Estimadores por contagem de coincidências

Um estimador de entropia através da contagem de coincidências foi apresentado em [13]. Apesar de


ter introduzido o método no contexto da física estatística, o próprio autor faz ressalvas sobre o
potencial do método que ele propôs para a teoria da informação, onde há uma quantidade menor de
símbolos. Um estimador novo foi proposto em[9], onde o autor utiliza o nível de periodicidade de
uma sequência aleatória gerada por uma função massa de probabilidade e a partir disso, estima a
quantidade de símbolos que compõe a função massa de probabilidade de símbolos. A principal
vantagem desses estimadores por contagem de coincidências é que eles apresentam uma estimação
muito boa mesmo para sequências pequenas de símbolos, ao contrário dos estimadores mais
populares. Primeiramente será apresentado o estimador proposto por ter uma compreensão mais
fácil.

3.2.1 Estimador Proposto

Considerando uma fonte de símbolos aleatórios com K símbolos equiprováveis, a probabilidade de


acontecer uma ou mais repetição de símbolos, na enésima amostra é dada pela fórmula (3.8).

( K (K −1)(K−2)...( K−n+1))
F (n ; K )=1− (3.8)
Kn

Usando a fórmula (3.8), é possível obter a fórmula (3.9) da probabilidade da primeira coincidência
ocorrer precisamente na enésima amostra.

f (n ; K )=F (n ; K )−F (n−1 ; K ) (3.9)

Sendo assim, é possível estimar a esperança de amostras necessárias até a primeira coincidência
pela fórmula (3.10).
N
D(K )=∑ nf (n ; K ) (3.10)
n=0

Com o valor de D da fórmula (3.10), foi proposta a fórmula(3.11) que só depende de D, para
estimar o valor de K.
g ( D)=0.6366 x D² −0.8493 x D+0.1272 (3.11)

Sendo K', a estimação do valor de K encontrada pela fórmula (3.11), é possível obter uma estimação
da entropia, com a fórmula (3.12).

H ' =log 2 (K ' ) (3.12)

O método proposto consiste de obter uma média, D', da quantidade de símbolos amostrados até a
primeira coincidência, usando a fórmula (3.13), como ilustrado na figura (3.1). Computar um K'
usando a fórmula (3.11) e depois estimar a entropia por H' com a fórmula (3.12).
M
1
D '=
M
∑ Dm (3.13)
m=1

Figura (3.1):Estimação incrementada da média da quantidade de símbolos retirados até a primeira


coincidência, com D1= 6 e D2= 5

Esse método também foi usado para estimar a entropia de fontes aleatórias com símbolos não
equiprováveis. Nos dois casos, ele apresentou resultados muito satisfatórios tanto pela praticidade
quanto pelo nível de precisão. Esta foi calculada usando a fórmula (3.14) com o resultado de H'
obtido após N coincidências em uma fonte aleatória de 365 símbolos, o resultado da análise de
enviesamento amostral está na tabela (3.1).

E=( H ' −H )/ H (3.14)

Tabela (3.1): Enviesamento amostral após N coincidências

N Distribuição uniforme Distribuição aleatória


50 -0.0427 -0.0459
100 -0.0132 -0.0280
1000 -0.0013 -0.0159

3.2.2 Estimador do Ma

Aos se obter N amostras de uma fonte aleatória com K símbolos, a quantidade de pares de símbolos,
Nt, que há nessa sequência de amostras é dada pela fórmula (3.15). Sendo assim, é possível obter
uma estimativa K', pela fórmula (3.16), de símbolos que há na fonte aleatória através do tamanho,
N, da amostragem e da quantidade de coincidências, Nc, que há nela. Usando essa estimativa da
quantidade de símbolos que há na fonte aleatória é possível obter uma estimativa da entropia, H',
pela fórmula (3.17). É importante notar que Nc é o número de coincidências que existem no
conjunto formado por Nt, pares de símbolos, sendo assim, se um símbolo aparecer 3 vezes na
sequência o seu número de coincidência será a quantidade de pares que é possível fazer com esses
símbolos, que no caso é 6.

N t =N (N −1)/2 (3.15)

K '= N t / N c (3.16)

H ' =log 2 (K ' ) (3.17)


4 Clustering

Nesta seção serão apresentados: o conceito de clustering, a relevância de utilizar a entropia como
medida de similaridade em um algoritmo de clustering categórico, o Algoritmo COOLCAT que
utiliza a entropia como medida de similaridade e as adaptações que precisam ser feitas para
implementar o estimador de entropia por coincidências no algoritmo COOLCAT.

4.1 O conceito de clustering

Clustering é o problema de organizar um conjunto finito de pontos em classes (chamadas de


clusters) de forma que, os pontos pertencentes a mesma classe sejam semelhantes e que os pontos
pertencentes a classes diferentes sejam diferentes. Essa organização permite a descoberta de
similaridades e diferenças entre os pontos e derivar conclusões úteis sobre estes. Essa ideia é
encontrada em muitos campos, como nas ciências da vida (biologia e zoologia), nas ciências
médicas (psiquiatria e patologia), ciências sociais (sociologia e arqueologia), ciências da terra
(geografia e geologia) e engenharia. Clustering pode ser encontrado com diferentes nomes em
diferentes contextos, como aprendizado sem supervisão e aprendizado sem professor (em
reconhecimento de padrões), taxonomia numérica (em biologia e ecologia), tipologia (nas ciências
sociais) e partições (na teoria dos grafos). O seguinte exemplo da biologia, retirado de [16], oferece
uma boa introdução ao conceito de clustering. Dada uma lista de animais: ovelha, cachorro, gato
(mamíferos), pardal, gaivota (pássaros), víbora, lagarto (répteis), peixe-dourado, tubarão-azul
(peixes), e sapo (anfíbio). Para conseguir organizar esses animais em clusters é preciso de um
critério de clustering. Sendo assim, se usarmos o critério de como esses animais carregam suas crias
como critério de clustering, a ovelha, o cachorro, o gato e o tubarão-azul vão ser todos incluídos no
mesmo cluster, enquanto todos os outros animais irão para um segundo cluster, como ilustrado na
figura (4.1). Se o critério for a existência de pulmões, o peixe-dourado e o tubarão-azul vão ser
incluídos no mesmo cluster, enquanto todos os outros formarão um segundo cluster, como na figura
(4.2). Por outro lado, se o critério de clustering for o ambiente onde esses animais vivem, a ovelha,
o cachorro, o gato, o pardal, a gaivota, a víbora e o lagarto formarão um cluster (animais que vivem
fora da água), o peixe-dourado e o tubarão-azul formarão um segundo cluster (animais que vivem
na água), e o sapo vai formar um terceiro cluster sozinho, pois ele pode viver tanto dentro quanto
fora da água, como ilustrado na figura (4.3). Vale a pena notar também que se o critério de
clustering for a existência de coluna vertebral, todos os animais estariam no mesmo cluster.
Finalmente, é possível usar também critérios de clustering compostos. Por exemplo, se o critério de
clustering é a forma como esses animais carregam suas crias e a existência de pulmões, seriam
necessários quatro clusters, como é mostrado na figura (4.4).
Esse processo ilustra como o processo de reparticionar objetos em clusters pode levar a resultados
bem diferentes, dependendo do critério que foi utilizado para o clustering.
Clustering é uma das mais primitivas atividades mentais humanas, usada para lidar com a grande
quantidade de informação que é recebida diariamente. Assim, humanos tendem a categorizar
entidades(i.e., objetos, pessoas, eventos) em clusters. Cada cluster então é categorizado pelos
atributos comuns das entidades que estão contidas nele. Por exemplo, a maioria dos humanos
“possuem” um cluster “cachorro”. Se alguém vê um cachorro dormindo na grama, logo vai
identificá-lo como uma entidade do cluster “cachorro”. Dessa forma, vai assumir que essa entidade
possui as mesmas características comuns que as entidades do cluster “cachorro” possuem e logo
assumirá que essa entidade pode, por exemplo, latir mesmo sem nunca ter ouvido ela ter latido.
Figura (4.1): Clusters obtidos utilizando o modo como esses animais carregam suas crias como
critério

Figura (4.2): Clusters obtidos utilizando a existência de pulmões como critério

Figura (4.3): Clusters obtidos utilizando o ambiente onde esses animais vivem como critério

Figura (4.4): Clusters obtidos utilizando a existência de pulmões e o modo como esses animais
carregam suas crias como critério
4.2 Clustering de dados categóricos

Uma etapa importante no desenvolvimento de uma técnica de clustering é definir uma forma de
medir a qualidade da partição do conjunto de pontos em termos dos dois objetivos citados. Para o
clustering de dados numéricos é natural pensar essa medição baseada no conceito de distância
geométrica. Dado tal medida, uma partição apropriada pode ser computada pela otimização de uma
quantidade (por exemplo, no caso de dados numéricos, a soma da distância dos pontos para a
centroide dos clusters em que cada ponto está inserido). No entanto, se os vetores de dados
possuírem variáveis categóricas, abordagens geométricas são inapropriadas e outras estratégias
precisam ser desenvolvidas [17].
O problema de clustering se torna mais difícil quando os dados são categóricos [18], ou seja, quando
não existe nenhuma medida de distância inerente entre os valores dos dados. Esse caso acontece
com frequência em muitos formulários onde os dados são descritos por um conjunto de valores
descritivos ou valores boolianos. Por exemplo, dados como país de origem ou cor dos olhos em
dados demográficos.
Em [15], foi proposto um algoritmo, chamado COOLCAT, que para realizar o clustering de dados
categóricos utiliza a minimização da entropia média dos clusters como critério para direcionar
como os pontos são agrupados nos clusters. Como o objetivo do clustering é particionar os pontos
em clusters que sejam homogêneos essa medida parece muito natural, lembrando que variáveis com
resultados homogêneos possuem um baixo valor de entropia. Sendo assim, o algoritmo utiliza como
métrica a diminuição média de entropia, ou o aumento médio de homogeneidade, nos clusters.
O algoritmo utiliza uma simplificação para calcular a entropia de um cluster e assume que todos os
seus atributos são independentes, dessa forma, a entropia do cluster, formada pela entropia conjunta
de todos os atributos é a soma da entropia de cada atributo separado. Por exemplo, considere que há
um conjunto de 3 pontos de 2 atributos, v1={“vermelho”, “pesado”}, v2={“azul”,“leve”} e v3=
{“vermelho”,“médio”}, e é desejado distribuir esses 3 pontos em 2 clusters. A tabela (4.1) mostra
todos os possíveis arranjos, a entropia de cada cluster e a entropia média de todo o clustering. É
possível perceber que o arranjo com a menor entropia é a melhor forma de realizar o clustering.

Tabela (4.1):Possíveis arranjos de 2 clusters

1º Arranjo Membros Entropia Entropia Média


Cluster 1 {“vermelho”, 0 1.33
“pesado”}
Cluster 2 {“vermelho”,“médio”} 2
{“azul”,“leve”}
2º Arranjo Membros Entropia Entropia Média
Cluster 1 {“vermelho”,“pesado”} 2 1.33
{“azul”,“leve”}
Cluster 2 {“vermelho”,“médio”} 0
3º Arranjo Membros Entropia Entropia Média
Cluster 1 {“vermelho”,“pesado”} 1 0.66
{“vermelho”,“médio”}
Cluster 2 {“azul”,“leve”} 0

Mesmo que a suposição de independência não seja verdadeira, ela se mostrou bastante funcional na
prática. Foram testados casos onde a dependência entre os atributos foi levada em conta e os
resultados são tão próximos que justificam a suposição de independência[15].
4.3 Algoritmo COOLCAT

O algoritmo consiste em dois passos: o de inicialização, onde os clusters dados são preenchidos
com pontos distintos e o de incrementação onde cada ponto de dado é levado para o cluster mais
apropriado até não sobrar mais nenhum ponto no conjunto de dados que não esteja em um cluster.

4.3.1 Inicialização

A partir do número de clusters, k, e uma amostragem de treinamento do conjunto de dados, S, (de


forma que S << N, onde N é o tamanho de todo o conjunto de dados), são encontrados os k dados
mais distintos de S analisando qual conjunto de k pontos presentes em S possui uma maior entropia.
O processo começa pela procura dos dois pontos que possuem uma entropia conjunta maior (quanto
maior a entropia conjunta de duas variáveis, mais independentes elas são) e colocando cada um em
um cluster. A partir daí, o processo continua de forma incremental procurando o ponto que forma
uma entropia conjunta maior com os pontos já encontrados e colocando este ponto em um cluster
até que todos os k clusters estejam preenchidos com um elemento.

4.3.2 Incrementação

Após a etapa de inicialização, os dados que sobraram do conjunto S são retornados ao conjunto N
(que agora ficou menor em k pontos) e cada dado de N é processado, de forma incremental, para o
cluster mais apropriado. Isso é realizado computando cada média nova de entropia do conjunto de
cluster possível, resultante da inclusão do novo ponto em um dos clusters, e incluindo o novo ponto
no cluster que gerou a menor média de entropia.
A ordem de processamento tem um papel definitivo na qualidade dos clusters obtidos. Um ponto
que foi considerado adequado para um cluster, em um determinado momento, pode terminar sendo
inadequado à medida que mais pontos foram sendo incluídos no mesmo cluster. Para reduzir esse
efeito, toda vez que um cluster receber uma quantidade determinada de pontos, uma fração, m, dos
pontos que estão no cluster e são menos adequados, são retirados e reprocessados. A forma
escolhida para fazer isso é quantificando o quanto um atributo assume determinado valor em um
cluster. Ou seja, ao final da quantidade determinada de pontos ser acumulada é possível saber a
quantidade, qij, de vezes que um valor Vij aparece no cluster onde o ponto i foi acrescentado para
cada atributo j. Dividindo esse número pela quantidade de pontos no cluster é possível obter a
probabilidade de cada valor Vij para cada atributo j no cluster. Para cada ponto, então, podemos
obter uma probabilidade de adequação multiplicando as probabilidades de cada valor que seus
atributos assumem. Os pontos com os menores valores de probabilidade de adequação são os mais
inadequados para o cluster.

4.4 Problemas na implementação com o estimador proposto e soluções sugeridas

O algoritmo COOLCAT parece ser ideal para o estimador proposto de entropia de coincidência,
pois, em primeiro lugar, ele obteve estimações melhores de entropia que o método utilizado no
algoritmo original, o estimador 'plug-in' para variável aleatória discreta e em segundo lugar, como o
algoritmo é incremental, ele é implementado acrescentando ponto após ponto, o estimador proposto
obtém uma vantagem até sobre o método do Ma, que apesar de obter estimativas melhores é
computacionalmente mais complexo tornando o algoritmo mais lento. Porém, quando o estimador
proposto foi incrementado no algoritmo COOLCAT três problemas surgiram.

4.4.1 O cálculo da entropia de uma sequência com dois elementos

Considere a tabela (4.2), onde estão presentes todas as quatro formas de sequência de dois
elementos binários que se pode obter, a quantidade média de amostragens até a primeira
coincidência e a entropia estimada pelo estimador proposto, sendo necessário exaltar que quando
não há coincidências a entropia é 0. É possível ver que os valores são consistentes com o
comportamento da função de entropia, a entropia de uma sequência com apenas símbolos iguais é
menor que uma sequência menos homogênea. Um problema porém, é que a estimação para
sequência com média de duas amostragens é negativa, o que pode gerar complicações na hora de
somar as entropias para obter a entropia conjunta do cluster. Uma simples solução é acrescentar, a
cada cálculo de entropia de uma sequência, um valor qualquer maior que 0.0365 para para evitar
esse problema. Caso no final do processo se deseje saber com precisão a entropia encontrada é só
reduzir do valor encontrado o valor acrescentado. Esse foi o problema mais simples de ser resolvido
e sua solução pode ser generalizada para qualquer sequência de dois elementos, independente dos
valores que estes assumem

Tabela (4.2): Análise da entropia do estimador proposto com sequências de dois elementos

Sequências 0 0 1 1
0 1 0 1
Amostras 2 0 0 2
Entropia -0.0365 0 0 -0.0365

4.4.2 Os pontos cegos do estimador proposto

Esse problema se mostrou mais complicado e foi utilizada uma abordagem bem pragmática para
resolver ele. Primeiramente, no intervalo entre duas coincidências o estimador funciona de uma
forma bastante livre, prejudicando sua implementação em um método incremental, que precisa
obter estimativas a cada ponto para tomar decisões. Na tabela (4.3), há uma ilustração desse
problema com 3 sequências e o número médio de amostras que foram retiradas de cada sequência
por coincidência, onde é possível ver que todos valores até outra coincidência ser encontrada geram
a mesma entropia. Dessa forma, o comportamento do algoritmo funcionando de forma incremental
termina gerando um comportamento qualquer fora de controle.

Tabela (4.3):Análise da quantidade de amostras média que é obtida depois de uma coincidência

0 0 0
0 0 0
Sequências 0 0 0
0 0 0
0 1 2
Amostras 2 2 2

Para resolver esse problema, de uma forma computacionalmente simples para não se desviar do
objetivo da aplicação do estimador de entropia por coincidência, ao encontrar uma nova
coincidência, d2, antes de ser atualizada a posição da nova coincidência encontrada uma outra
variável recebe a posição da antiga coincidência, d1. Dessa forma a partir da subtração das duas é
possível se ter o tamanho da quantidade de símbolos, todos diferentes, que foram amostrados entre
as duas coincidências. Assim, se o símbolo amostrado depois da coincidência for diferente do
símbolo da coincidência o número de amostragens até a última coincidência vai sofrer um
acréscimo, que aumenta a entropia, de (d2 – d1 + 1)/n, onde n é a quantidade média de números que
precisam ser amostrados da fonte aleatória uniforme, com a mesma cardinalidade da fonte em
questão, para haver uma coincidência, obtida com a fórmula (3.10). Assim, se a distância entre as
duas coincidências for maior que a média, o que quer dizer que há mais símbolos diferentes entre as
coincidências, a entropia vai ter um acréscimo maior.
Esse pensamento pode ser generalizado para um símbolo amostrado a uma quantidade k de
símbolos após a última coincidência, de forma que o acréscimo, adicionado ao número de amostras
obtidas até a última coincidência, se o símbolo da posição k for diferente do símbolo da última
coincidência é (d2 - d1 + k)/(n + k -1) (Esses valores de acréscimos apresentaram um resultado
positivo na prática, mas houve outros valores que foram testados que apresentaram um resultado tão
bom quanto, sendo necessário um estudo para se aprofundar melhor sobre qual seria o melhor valor
de acréscimo. Outro estudo que não deu para ser concluído, foi o de como determinar a quantidade
símbolos para serem verificados depois de uma coincidência e em todas as aplicações foram
verificadas uma quantidade de símbolos igual a cardinalidade da fonte, o que dificilmente é
necessário pois se costuma haver uma coincidência antes da cardinalidade da fonte, não havendo,
nesse caso, uma verificação completa.)
Outro problema verificado foi o da tabela (4.4), onde há duas sequências que geram a mesma média
de amostragens mas possuem um entropia visivelmente diferentes.

Tabela (4.4): Sequências com diferentes níveis de homogeneidade mas o mesmo número de
amostras médias

0 0
0 0
Sequências 1 1
2 0
2 0
Amostras 2.5 2.5

A solução encontrada para esse problema é um acréscimo no número de coincidências, o que gera
uma redução de entropia, de uma fração de coincidência se duas coincidências simultâneas forem
iguais. O número obtido experimentalmente que gerou o melhor resultado foi 0.7.

4.4.3 Manter a informação do primeiro elemento do cluster

Um outro grave problema é que nos estados iniciais da sequência qualquer ponto acrescentado ao
cluster vai gerar o mesmo resultado fazendo com que o elemento inicial não tenha importância
nenhuma. A solução pra esse problema foi explorar uma característica do próprio algoritmo
COOLCAT, o reprocessamento dos pontos mais divergentes quando um cluster possuir uma certa
quantidade de pontos. A solução consiste em atribuir uma quantidade de pontos do conjunto de
pontos de treinamento para cada cluster, escolher a quantidade desejada de pontos que o cluster
pode possuir para o reprocessamento como essa quantidade que foi distribuída mais 1 (o valor
inicial do cluster encontrado na primeira etapa do algoritmo). Na primeira iteração da segunda etapa
do algoritmo não vai haver nenhuma preocupação em atribuir um ponto para um cluster só usar a
etapa de reprocessamento com uma modificação na hora de descobrir a probabilidade de cada
símbolo do cluster, onde os símbolos diferentes do símbolo do primeiro ponto vão ter uma
probabilidade quase nula, isso pode ser feito colocando um peso extremamente alto caso eles sejam
divergentes e depois alterar o valor desse peso na segunda iteração. Assim, após a primeira iteração
só vão ficar uma fração m, que também pode ser alterada na segunda iteração, dos pontos atribuídos
a cada cluster que possuem uma maior semelhança com o primeiro ponto e o algoritmo segue
normalmente.
5 Resultados experimentais

Nesta seção serão apresentados os resultados experimentais das implementações dos estimadores de
entropia e os resultados experimentais da implementação do algoritmo COOLCAT.

5.1 Resultados experimentais da implementação dos estimadores de entropia

Nesta seção, serão mostrados e analisados os resultados da implementação de cada um dos


estimadores citados no relatório. Sendo divida em duas partes: uma para estimadores de entropia
discreta e uma para estimadores de entropia diferencial.

5.1.1 Entropia Discreta

Os três estimadores de entropia discreta, o estimador proposto por Ma, o estimador proposto de
coincidências e o estimador 'plug-in' para variáveis discretas, foram implementados para o
'problema do aniversário'[9], para sequências aleatórias, com 50 e 100 amostragens, e para
distribuições, uniformes e aleatórias. Os resultados de 1000 implementações para cada caso se
encontram na Tabela (5.1).

Tabela (5.1): Resultados da implementação dos métodos para calcular entropia discreta, com N
observações e com distribuições, uniformes e aleatórias, de 365 símbolos.

Ma Distribuição uniforme Distribuição aleatória


Variância Viés relativo Variância Viés relativo
2.411 -0.008 1.310 -0.005
0.158 -0.010 0.137 -0.010
'Plug-in' Distribuição uniforme Distribuição aleatória
Variância Viés relativo Variância Viés relativo
0.005 -0.351 0.006 -0.335
0.004 -0.249 0.005 -0.234
Proposto Distribuição uniforme Distribuição aleatória
Variância Viés relativo Variância Viés relativo
4.739 -0.094 2.581 -0.079
0.614 -0.024 0.486 -0.054

O estimador plug-in como esperado não obteve uma estimação boa, em termos de viés de
estimação, tanto para o caso aleatório quanto para o uniforme, apresentando mais de 10% de viés.
Em contrapartida, o estimador proposto por Ma apresentou uma estimação impressionante, mesmo
para apenas 50 amostragens teve uma viés na faixa de 1%. O estimador proposto apresentou uma
estimação com um viés na faixa de 5%, o que pode parecer alto em relação ao método do Ma, mas é
bem mais precisa que a do método 'plug-in' padrão. Outra vantagem do método proposto é que ele
utiliza um número muito menor de contagem de coincidências, em relação ao método do Ma que
utiliza uma contagem de todas as combinações possíveis de coincidências, considerando uma
variável que o Ma ignora completamente, a distância entre os símbolos amostrados.

5.1.2 Entropia Diferencial


Foram implementados os dois estimadores 'plug-in' para entropia diferencial. As amostras foram
retiradas de uma distribuição normal padrão, onde o μ = 0 e σ = 1, que possui uma entropia
diferencial de 1.42 nats. Os resultados de 1000 implementações com sequências de dois tamanhos,
para cada estimador, se encontram na Tabela (5.2). Os tamanhos das sequências utilizadas nos
experimentos foram pequenos para serem comparados, posteriormente, com um método para se
estimar entropia diferencial, utilizando o estimador de entropia por contagem de coincidências, que
está sendo desenvolvido.
Os valores de α e β utilizados para o estimador por integral foram, respectivamente, 0.31 e 0.39. No
estimador por janela Parzen, uma distribuição t de Student com grau de liberdade 4, foi utilizada
como kernel.

Tabela (5.2): Resultados da implementação dos métodos para calcular entropia diferencial com N
observações utilizando uma distribuição normal padrão.

Integral
N Média Variância Viés relativo
50 0.647 0.015 -0.545
100 0.936 0.008 -0.341
Janela Parzen
N Média Variância Viés relativo
50 1.465 0.012 0.032
100 1.450 0.006 0.021

Os resultados do estimador por Integral tiveram um viés de quase 50%, enquanto o estimador por
janela Parzen apresentou um viés de menos de 5% com uma variância muito baixa. Porém, talvez a
convergência rápida do estimador se deva ao fato de ter sido utilizada uma distribuição normal
padrão, ficando a dúvida se o método convergiria tão rápido para o valor de entropia, caso fossem
utilizadas funções de densidade aleatórias.

5.2 Resultados experimentais do algoritmo COOLCAT

Esta parte da seção será dedicada aos resultados experimentais da implementação do COOLCAT.
Ela é dividida em seis partes: na primeira serão mostradas as técnicas que serão usadas para avaliar
a qualidade de um clustering; na segunda, serão mostrados os conjuntos de dados que serão
utilizados nos experimentos; na terceira parte, serão mostrados os resultados do estudo do
acréscimo de coincidência, ganho quando duas coincidências consecutivas são iguais; na quarta
parte, serão mostrados os resultados da análise do conjunto de dados arqueológicos; na quinta parte,
serão mostrados os resultados da análise do conjunto de dados de votos do congresso e na sexta
parte serão mostrados os resultados da análise do conjunto de cogumelos.

5.2.1 Técnicas utilizadas para avaliar a qualidade do clustering

Um problema frequente encontrado quando se aplica um algoritmo de clustering é como avaliar as


soluções. Diferentes algoritmos de clustering, às vezes até mesmo múltiplas aplicações do mesmo
algoritmo em condições iniciais ou parâmetros diferentes, resultam em soluções bem diferentes.
Isso se deve ao fato de que não existe um critério unificador que define clustering, e muito
frequentemente, os clusters finais encontrados por algum algoritmo são na verdade aqueles que
correspondem ao critério utilizado pelo algoritmo. Dessa forma, é necessário métodos para avaliar
se a estrutura encontrada é uma propriedade dos dados ou foi imposta pelo critério por trás do
algoritmo[15].

5.2.1.1 Teste de significância em variáveis externas

Essa técnica consiste em utilizar testes de significância para comparar os clusters utilizando
variáveis que não foram usadas para gerar os clusters. Uma forma de realizar essa operação é
computando a entropia da solução utilizando uma variável (chamada de atributo de classe) que não
foi analisada para realizar o clustering. A entropia de um atributo C em um cluster Ck é computado
utilizando a fórmula (5.1), onde Vj denota um dos possíveis valores que C pode assumir. A
avaliação é feita computando a entropia média em relação ao tamanho dos clusters. Quanto menor o
valor de E(Ck), melhor é o resultado do clustering.

E (C k )=∑ P(C=V j )log 2 P( C=V j ) (5.1)


j

5.2.1.2 Função utilidade de categoria

A função utilidade de categoria (CU) procura maximizar tanto a probabilidade que dois objetos em
um mesmo grupo tenham os mesmos atributos quanto objetos em diferentes clusters tenham
atributos diferentes. A expressão para calcular o valor médio da função utilidade de categoria, é
dada pela fórmula (5.2), onde P(Ai = Vij|Ck) é a probabilidade condicional que o atributo i tenha o
valor Vij dado o cluster Ck, e P(Ai = Vij) a probabilidade que o atributo i assuma o valor Vij
considerando todo o conjunto de pontos. O objetivo dessa função é medir se o clustering aumentou
a probabilidade de valores similares caírem dentro do mesmo cluster. Sendo assim, quanto maior o
valor de CU melhor o clustering terá sido realizado.

∥C k∥
CU =∑ ∑ ∑ [P ( Ai=V ij∣C k )2−P ( Ai=V ij )2 ] (5.2)
k D i j

5.2.2 Conjuntos de dados utilizados

Foram realizados experimentos utilizando três conjuntos de dados reais.

5.2.2.1 Conjunto de dados arqueológicos

Esse é um conjunto de dados é uma coleção hipotética de tumbas humanas e artefatos encontrados
em um sítio arqueológico, retirada de [19]. Embora o conjunto de dados não seja real, ele foi
desenvolvido de forma suficientemente realista. Por ele ser um conjunto pequeno de 25 dados
boolianos, os resultados do clustering podem ser facilmente analisados. Cada dado possui o atributo
de sexo do indivíduo que foi enterrado na tumba, que foi utilizado como o atributo de classe (não
utilizado para o clustering mas para verificação), e outros 8 atributos que indicam a presença ou
falta de determinados artefatos na tumba.

5.2.2.2 Conjunto de dados de votos do congresso dos Estados Unidos

Esse conjunto de dados, encontrando em [20], é formado pelos registros de votos do congresso dos
Estados Unidos no ano de 1984. Cada ponto contém a informação dos votos em 16 problemas.
Todos esses votos todos são boolianos mas existem certos votos que estão faltando. Esses valores
perdidos foram tratados como mais um resultado que os atributos podem possuir. O atributo de
classe utilizado para esse conjunto de dados foi a filiação política de cada congressista entre
republicano e democrata. Esse conjunto possui 435 dados, 267 democratas e 168 republicanos.
5.2.2.3 Conjunto de dados de cogumelos

Esse conjunto de dados foi obtido em [20]. Cada ponto dessa conjunto possui atributos com
informações das características físicas de um cogumelo. O conjunto é dividido por um atributo
classe que diz se um cogumelo é venenoso ou não. Todos os atributos são categóricos, por exemplo,
os valores que o atributo tamanho assume varia entre, largo e estreito, enquanto os valores que o
atributo odor assume varia entre mais de quatro possíveis valores. O conjunto de dados de
cogumelos foi o maior conjunto utilizado nos experimentos e possui 8124 pontos, sendo que 4208
são de cogumelos comestíveis e 3916 são de cogumelos venenosos.
Outro motivo para utilização desse conjunto, foi o resultado obtido por um algoritmo diferente de
clustering em [21], onde ele conseguiu separar com 0.4% de precisão os cogumelos venenosos dos
cogumelos comestíveis utilizando 21 clusters. Sendo assim, ele conseguiu achar 21 padrões
diferentes de tipos de cogumelos, sendo alguns venenosos e outros comestíveis, isso quer dizer que
ele conseguiu gerar agrupamentos válidos utilizando clusters que possuíam semelhança entre si, já
que além de agrupar considerando o atributo de classe ele conseguiu achar outros padrões que
diferenciavam um cluster de outro. A principal utilização desse algoritmo é para testar a
performance do COOLCAT quando os clusters não são tão distintos um do outro.

5.2.3 Resultados para estimação do acréscimo da fração de coincidência quando duas


coincidências simultâneas são iguais

Para obter o valor do acréscimo, foi utilizada uma abordagem bastante prática. Utilizando o
conjunto de dados de votos do congresso, que possui um tamanho grande o suficiente para testar as
hipóteses e pequeno o suficiente para poder ser implementado várias vezes, foi feito testes variando
o valor da fração de coincidência que seria acrescida entre 10 valores (0.1, 0.2, 0.3, 0.4, 0.5, 0.6,
0.7, 0.8, 0.9 e 1.0), 50 vezes para cada valor. O resultado se encontra na tabela (5.4), onde é
possível notar a eficiência de utilizar o valor 0.7, já que a entropia externa foi a menor e a função de
utilidade de categoria foi a maior.

Tabela (5.4): Variação dos valores da entropia externa e da função utilidade de categoria, em
função da variação da fração de coincidência

Taxa 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
Entropia 0.8511 0.8382 0.7688 0.7173 0.6470 0.6046 0.5280 0.9015 0.9305 0.9420
Ext.
CU 0.7962 0.8394 1.2943 1.6127 2.0747 2.3127 2.7591 0.4067 0.2056 0.1487

5.2.4 Resultados da implementação do COOLCAT para os dados arqueológicos

Na tabela (5.5), é possível ver os resultados médios, de 500 implementações, realizadas a partir da
variação da posição dos pontos nos conjuntos de dados, tanto da entropia externa quanto da função
de utilidade de categoria, variando o valor da fração m de pontos que são retornados a cada vez que
são acrescentados 10 pontos para um cluster. Tanto na implementação com o estimador por
coincidência puro quanto para o estimador de coincidência com as modificações sugeridas, o valor
inicial de pontos que cada cluster recebeu foi 10 e entre esses pontos os 5 piores foram removidos e
levados para reprocessamento.

Tabela (5.5): Resultados do clustering para 500 implementações utilizando variações no método de
se calcular entropia
Algoritmo m CU Entropia externa
0% 0.7241 0.3918
Original 10% 0.7484 0.3472
20% 0.7611 0.3084
0% 0.2452 0.9123
Coincidência 10% 0.2823 0.8915
puro
20% 0.3215 0.8922
0% 0.5124 0.6906
Coincidência 10% 0.5661 0.6378
modificado
20% 0.6569 0.6374

Na tabela (5.6), há um exemplo do resultado do clustering de cada algoritmo, utilizando os mesmos


parâmetros só que com m fixado em 20%.

Tabela (5.6): Exemplo dos resultados obtidos por cada algoritmo

Algoritmo COOLCAT original


Cluster Homens Mulheres
1 13 0
2 0 12
Algoritmo COOLCAT utilizando o estimador proposto modificado
Cluster Homens Mulheres
1 10 0
2 3 12
Algoritmo COOLCAT utilizando apenas o estimador proposto
Cluster Homens Mulheres
1 12 7
2 1 5

Os valores obtidos pelo método proposto modificado foram muito melhores que os do método
proposto puro, porém continuaram distantes, com cerca de 50% de diferença na qualidade do
clustering, dos valores obtidos com o algoritmo COOLCAT original. Isso se deve, em grande parte,
ao fato de que além de ter ficado poucos pontos inicialmente em cada cluster, 5 se mostrou um valor
muito pequeno para garantir que haja pelo menos duas coincidências em cada cluster, uma grande
porcentagem dos pontos atribuídos inicialmente continuaram nos clusters (50%) gerando uma
grande chance da permanência de pontos divergentes no cluster. Dessa forma mesmo colocando
quase 50% do valor de toda a amostragem em cada cluster, o número se mostrou pequeno tanto para
o algoritmo com o estimador por coincidência puro quanto para o algoritmo com o estimador por
coincidência modificado. O algoritmo original levou 0.121 segundos para achar a resposta enquanto
os algoritmos que estimam a entropia por coincidência levaram 0.252 segundos. Os algoritmos que
estimam a entropia por coincidência demoraram mais por causa da etapa inicial de distribuição de
pontos entre os clusters, que não é necessária no algoritmo original.
5.2.5 Resultados da implementação do COOLCAT para os dados de votos do congresso

Na tabela (5.7), é possível ver a média dos resultados de 200 implementações, realizadas da mesma
forma que no experimento anterior, da entropia externa e da função utilidade de categoria, para cada
algoritmo variando apenas o valor de m, a fração de pontos que são reprocessados toda vez que 100
pontos são adicionados em um cluster. O mesmo procedimento de atribuição de pontos iniciais foi
realizado para os dois algoritmos que utilizam a estimação de entropia por coincidência, cada um
recebeu 20 pontos iniciais e 50% desses pontos, os mais divergentes do ponto inicial encontrado na
primeira etapa, foram reprocessados.

Tabela (5.7): Resultados do clustering para 200 implementações utilizando variações no método de
se calcular entropia

Algoritmo m CU Entropia externa


0% 2.8426 0.5080
Original 10% 2.9013 0.4942
20% 2.9084 0.4891
0% 0.0432 0.9573
Coincidência 10% 0.0383 0.9582
puro
20% 0.0531 0.9571
0% 2.5880 0.5566
Coincidência 10% 2.7378 0.5352
modificado
20% 2.6795 0.5459

Na tabela (5.8), há um exemplo do resultado do clustering de cada algoritmo, utilizando os mesmos


parâmetros só que com o m fixado em 20%.

Tabela (5.8): Exemplos dos resultados obtidos por cada algoritmo

Algoritmo COOLCAT original


Cluster Republicanos Democratas
1 159 47
2 9 220
Algoritmo COOLCAT utilizando o estimador proposto modificado
Cluster Republicanos Democratas
1 7 195
2 161 72
Algoritmo COOLCAT utilizando apenas o estimador proposto
Cluster Republicanos Democratas
1 6 23
2 162 244

Os resultados do algoritmo com o método proposto modificado melhoraram, apesar de no pior caso
chegar a 10% de diferença com os resultados do algoritmo com o método original. Uma vantagem
que foi revelada do algoritmo com método proposto modificado foi o tempo que ele levou para
achar a resposta, enquanto o original levou 9.058 segundos o algoritmo com o método proposto
modificado levou 4.910 segundos. O algoritmo com o método proposto modificado, apesar de gerar
um clustering que chega a ser 10% pior, foi 50% de vezes mais rápido que o algoritmo original.

5.2.6 Resultados da implementação do COOLCAT para os dados de cogumelos

Na tabela (5.9), é possível ver os resultados do clustering utilizando o COOLCAT original e o


COOLCAT com o método proposto modificado. Devido ao tamanho grande do conjunto de dados,
só nesse experimento foi preciso separar o conjunto de dados em conjunto de treinamento e o resto
para ser processado depois, o tamanho do conjunto de treinamento foi 812, o m utilizado foi 20%
para cada 300 pontos recebidos, em cada cluster. No algoritmo com o método proposto modificado
houve o uso de quase todo o conjunto de treinamento, cada cluster recebeu 36 pontos e ficaram com
os 9 mais similares ao ponto inicial de cada cluster, totalizando 10 pontos em cada cluster.
Uma mudança que se mostrou necessária ser feita foi a etapa de inicialização, como foi visto nos
experimentos anteriores o estimador proposto oferece uma estimação ruim para sequências muito
pequenas, sendo assim, os dois algoritmos foram implementados utilizando o método de estimação
de entropia 'plug-in' para variável discreta na etapa de inicialização.

Tabela (5.9): Exemplo do resultado obtido por cada algoritmo

COOLCAT com estimador proposto


Cluster Comestíveis Venenosos Cluster Comestíveis Venenosos
1 0 1728 12 185 1
2 169 1 13 181 0
3 10 287 14 288 0
4 204 0 15 30 36
5 1628 0 16 9 193
6 0 1296 17 70 0
7 4 8 18 13 11
8 59 55 19 72 11
9 16 0 20 7 228
10 759 0 21 235 61
11 269 0
COOLCAT original
Cluster Comestíveis Venenosos Cluster Comestíveis Venenosos
1 195 192 12 193 194
2 192 195 13 232 155
3 189 198 14 209 178
4 194 193 15 199 188
5 190 197 16 196 191
6 203 184 17 201 186
7 211 176 18 197 190
8 203 184 19 221 165
9 203 184 20 189 197
10 190 197 21 211 175
11 190 197

O resultado do COOLCAT com o método proposto modificado foi superior ao COOLCAT original,
obtendo um erro de apenas 3.5% enquanto o erro do original foi superior a 45%. Para não haver
dúvidas em relação a eficiência do estimador proposto modificado a mesma quantidade de pontos
da fase inicial do algoritmo com o estimador proposto foi atribuída ao algoritmo original, mas os
resultados foram o mesmo, uma hipótese que parece válida é que isso se deve ao fato dos clusters
não serem tão distintos um dos outros e o estimador de entropia 'plug-in' para variável discreta
parece não ser capaz de acompanhar diferenças mais sutis entre os clusters. O algoritmo com o
método proposto modificado apresentou um erro pequeno mas maior que o do algoritmo utilizado
em [21], porém, esse mesmo algoritmo foi um dos que se mostraram bem mais lentos que o
COOLCAT original, em [15], como o tempo que o algoritmo com o método proposto modificado
levou para encontrar a resposta foi 63% mais rápido que o algoritmo original, o algoritmo com o
método proposto modificado oferece a vantagem de ser um algoritmo rápido com uma pequena taxa
de erro.
6 – Conclusões

Através de uma primeira fase de estudo dos estimadores de entropia e revisão bibliográfica da teoria
da informação, foi possível encontrar quais características uma aplicação do reconhecimento de
padrões deveria ter para explorar melhor o potencial do estimador proposto de entropia. Visto isso,
foi procurada uma forma de implementar o estimador de entropia por coincidências em um método
de clustering de dados categóricos, onde um método preciso e simples como o estimador de
entropia proposto seria útil. Porém, foi necessário propor mudanças para melhorar o resultado do
estimador por coincidências implementado de forma incremental. Essas mudanças, apesar de ainda
não serem definitivas, foram testadas obtendo resultado positivos, para conjuntos de dados que não
sejam pequenos, comparados com o algoritmo normal, só que com uma velocidade de
implementação muito mais rápida e inclusive em um dos experimentos o resultado se mostrou tão
positivo que indica uma direção para os próximos estudos.
7 Referências bibliográficas

[1] Shannon, C.E.,“A mathematical theory of communication”, The Bell system technical journal,
vol. 27, pp. 379-423, 623-656, 1948
[2] Yeung, Raymond W., “Information theory and network coding”, Springer, 2008
[3] Cover, Thomas M., Thomas, Joy A., “Elements of information theory”, Wiley, 2nd, 2006.
[4] Tsybakov, Alexandre B., “Introduction to nonparametric estimation”, Springer, Springer series
in statistics, 2009.
[5] Silverman, B.W., “Density estimation for statistics and analysis”, Spring-Science+Business
Media, B.V, 1986
[6] Beirlant, J., Dudewicz, E.J, Györfi, L., Meulen, E. C. Van der, “Nonparametric entropy
estimation: an overview”, International journal of mathematical and statistical sciences, Vol. 6, pp
17-39, 2001.
[7] Duda, Richard O., Hart, Peter E., Stork, David G., “Pattern Classification”, Wiley, 2nd, 2000.
[8] Amigó, José M., Szczepanski, Janusz, Wajnryb, Elek, Sanchez-Vivez, Maria V., “Estimating the
entropy rate of spike trains via Lempel-Ziv complexity”, Neural computation, Vol 16, pp 717-736,
2004
[9] Montalvão, J., Silva, D.G., Attux, R.,“Simple entropy estimator for small datasets”, Electronics
letters, Vol 48, Nº 17, 2012.
[10] Antos, András, Kontoyiannis, Ioannis, “Estimating the entropy of discrete distributions”, IEEE
International symposium on information theory, 2001
[11] Györfi, László, Meulen, E.C. van der, “Density-free convergence properties of various
estimators of entropy”, Computational statistics and data analysis, Vol 5, pp 425-436, 1987.
[12] Hall, Peter, Morton, Sally C., “On estimation of entropy”, Ann. Inst. Statist. Math., Vol 45, Nº
1, 69-88, 1993.
[13] Ma, S.-K., “Statistical mechanics”, World scientific publishing Co. Pte. Ltd, 1985.
[14]Francisco Escolano, Pablo Suau, Boyán Bonev, “Information theory in Computer Vision and
Pattern Recognition”, Springer Verlag London Limited 2009
[15]Barbara, D., Couto, J., Li, Y., “COOLCAT: an entropy-based algorithm for categorical
clustering”, Proceedings of the eleventh ACM CIKM Conference, 2002
[16] Sergios Theodoridis, Konstantinos Koutroumbas, “Pattern Recognition”, Elsevier, 2003
[17] Bock, H.-H.,”Probabilistic aspects in cluster analysis.”, In: O. Opitz, “Conceptual and
numerical analysis of data”, 12-44. Berlin: Springer-verlag
[18] Tao Li, Sheng Ma, Mitsunori Ogihara, “Entropy-based Criterion in Categorical Clustering”,
Proceedings of the 21st International Conference on Machine Learning, Canada, 2004
[19] M.S. Aldenderfer, R.K. Blashfield, “Cluster Analysis”, Sage publications, 1984
[20]UCI machine learning repository (http://ww.ics.uci.edu/mlearn/MLRepository.html)
[21] S. Guha, R. Rastogi, K. Shim, “ROCK: A robust clustering algorithm for categorical
attributes”, Proceedings of the 15th International Conference on Data engineering, Sydney,
Australia, April 1999

Vous aimerez peut-être aussi