Académique Documents
Professionnel Documents
Culture Documents
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.
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
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.
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).
Se (X,Y) for dado pela distribuição pXY(x,y) a entropia condicional, H(Y|X), é definida pela fórmula
(2.3).
H ( X ,Y )=H ( X )+ H (Y ) (2.5)
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.
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)
iΔ
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)
iΔ
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
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.
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.
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.
μ 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)
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.
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].
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.
( 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.
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).
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
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).
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)
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.
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.
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
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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
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
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
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.
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