Escolar Documentos
Profissional Documentos
Cultura Documentos
(X, ) = _n ( - ) (2.1)
a amostra desconhecida atribuda classe mais comum entre os seus k vizinhos mais prximos.
Quando o k = 1, a amostra desconhecida atribuda classe da amostra de treino que est mais
prxima dela no espao padro.
Neste algoritmo, as amostras de treino so guardadas e no constroem um classificador at que
uma nova amostra necessite de ser classificada. Este mtodo contrasta com o mtodo de rvores de
Deciso na medida em que nesse algoritmo construdo um modelo antes de receber novas
amostras para classificar.
O algoritmo de Nearest Neighbor [18] atribui um peso igual a cada atributo, o que pode causar
confuso quando existem muitos atributos irrelevantes nos dados.
Pode tambm ser uma tcnica usada para previso, ou seja, retornar um valor real previsto para
uma dada amostra desconhecida. Neste caso, o classificador retorna o valor mdio dos valores reais
associados com o vizinho mais prximo k da amostra desconhecida. [9]
2.2.2.1 Como determinar um bom valor para k
Comeando com k = 1 e usando um conjunto de teste para validar a proporo de erro do
classificador. Repetir a operao usando k = k + 2. Aps estas experincias, um bom valor de k ser
aquele cuja proporo de erro seja menor. As experincias devem ser realizadas com valores de k
pares para evitar ligaes e dependncias. [9]
2.2.2.2 Quando usar Nearest Neighbor
Esta tcnica deve ser usada quando existem largas quantidades de dados de treino, ou quando
existem menos de 20 atributos por instncia. As vantagens deste algoritmo so:
O treino de grandes quantidades de dados bastante rpido;
Aprende facilmente funes alvo complexas;
No perde informao; [9]
Esta tcnica apresenta porm algumas desvantagens, tais como:
Bastante lento em termos do tempo que demora a realizar querys;
22
Facilmente enganado por atributos irrelevantes;
2.2.3 Naive Bayes
As Redes Bayesianas fornecem distribuies probabilsticas derivadas da contagem da ocorrncia
dos dados num dado conjunto. Fornecem um modelo grfico de relaes causais, sobre as quais a
aprendizagem se pode processar.
Estas redes baseiam-se no teorema de Bayes e consistem em grafos acclicos dirigidos onde os
ns representam os atributos, e as ligaes representam as dependncias probabilsticas entre os
atributos. Associada a cada n (atributo) da rede existe uma Tabela de Probabilidades Condicionais,
que descreve a relao entre o n e os seus ns pai. [9]
2.2.3.1 Teorema de Bayes
A classificao de Naive Bayes [3, 5, 9] baseada no teorema de Bayes [9], que dado uma
amostra de dados X cuja etiqueta da classe desconhecida, e sendo E as hipteses da amostra de
dados X pertencer a uma classe especifica . Para problemas de classificao queremos determinar
(E|X), a probabilidade de a hiptese E ser real dada a amostra de dados observada X. [9]
(E|X) a probabilidade posterior da condio de E a X. (E) a probabilidade prvia. A
probabilidade posterior (E|X) baseada em mais informao que a probabilidade prvia, (E) que
independente de X. Similarmente, (X|E) a probabilidade posterior de X condicionado a E, ou
seja, a probabilidade de que X vermelho e redondo dado o que sabemos, que X uma ma.
(X) a probabilidade prvia de X.
Estas probabilidades ((E), (X) e (X|E)) so estimadas atravs dos dados.O teorema de
Bayes bastante til porque fornece uma maneira de calcular a probabilidade posterior, (E|X)
atravs de (E), (X) e (X|E), como a seguir mostrado:
(E|X) =
P(X|H)P(H)
P(X)
(2.2)
2.2.3.2 Classificao de Naive Bayes
Nesta seco mostrado como pode ser usado o teorema de Bayes na classificao Naive
Bayes. O algoritmo de Naive Bayes [3, 5, 9] funciona da seguinte forma:
1. Cada amostra de dados representada por um vector caracterstico com n dimenses. X =
(
1
,
2
, . ,
n
);
2. Supondo que existem classes,
1
,
2
, .,
m
. Dado uma amostra de dados desconhecida, X, o
classificador ir prever que X pertence classe que tiver a mais alta probabilidade posterior,
condicionada em X. Isto , o classificador Naive Bayes atribui uma amostra desconhecida X
classe
|X) =
P(X|C
i
)P(C
i
)
P(X)
(2.3)
3. Enquanto que (X) constante para todas as classes, apenas (X|
)(
) necessrio
maximizar. Se a classe de probabilidades prvias no conhecida, ento facilmente assumido
23
que as classes so iguais, ou seja, (
1
) = (
2
) = . = (
m
), e ento maximizava-se
(X|
)(
).
4. Tendo em conta conjuntos de dados com muitos atributos, seria muito dispendioso a nvel
computacional, calcular (X|
)., a suposio
ingnua da independncia da classe condicional realizada. Isto presume que os valores dos
atributos so condicionalmente independentes uns dos outros, dado a etiqueta da classe da
amostra, ou seja, no existem relaes de dependncia entre os atributos. Assim,
(X|
) = [ (
k
|
)
n
k=1
(2.4)
As probabilidades (
1
|
), (
2
|
), ., (
n
|
=
s
ik
s
i
), onde s
k
o nmero de amostras de treino da classe
, tendo o valor de
k
para
k
, e sendo o valor de s
.
b. Se
k
um valor contnuo, ento o atributo tipicamente assumido como tendo uma
distribuio de Gauss, ento:
(
k
|
) = (
k
, p
C
i
, 0
C
i
) =
1
_
2nc
C
i
-
x
k
-
C
i
1
2
2o
C
I
2
(2.5)
Onde (
k
, p
C
i
, 0
C
i
) a densidade Gaussiana funcional para o atributo
k
, enquanto p
C
i
e
o
C
i
so o desvio mdio e padro, respectivamente, dado os valores para o atributo
k
para
amostras de treino da classe
.
5. De maneira a classificar uma amostra desconhecida X, (X|
)(
se e apenas se (X|
) > (X|
]
) para , = .
Noutras palavras, atribuda classe
, onde (X|
)(
) o mximo.
Esta classificao poder ser usada quando existem conjuntos de treino moderados e disponveis.
Estes classificadores tm uma percentagem de erro muito menor em comparao com outros
classificadores. A classificao Bayesiana til na medida que fornece uma justificao terica para
outros classificadores que no usam o teorema de Bayes explicitamente. [9]
2.2.3.3 Vantagens e Desvantagens
As vantagens da classificao Naive Bayes [9] so:
Fcil de implementar;
Na maioria dos casos so obtidos bons resultados;
Desvantagens desta classificao [9]:
Assumpo: independncia das classes condicionais, o que pode gerar perda de exactido;
A existncia de dependncias entre as suas variveis;
24
2.2.4 Redes Neuronais Artificiais
Uma rede neuronal artificial [3, 4, 5,6, 9, 11] um conjunto de unidades de input/output ligadas
entre si, onde cada ligao tem um peso associado.
O campo das redes neuronais foi originalmente usado por psiclogos e neurologistas que queriam
desenvolver e testar analogias computacionais a neurnios.
As redes neuronais artificiais [3, 4, 5,6, 9, 11] so uma classe especial de sistemas modelados
seguindo a analogia com o funcionamento do crebro humano. So formadas por neurnios artificiais
interligados. A intensidade das interligaes neuronais pode alterar-se como resposta a um estmulo,
o que permite rede aprender.
Durante a fase de aprendizagem, a rede aprende ajustando os pesos para que possa prever a
etiqueta da classe correcta das amostras de entrada.
Uma das principais vantagens das redes neuronais a sua variedade de aplicaes. No entanto
encontra-se dificuldade na formatao dos dados de entrada e os modelos produzidos por esta
tcnica podem ser difceis de entender.
A tcnica de redes neuronais apropriada s tarefas de classificao, previso e clustering.
O algoritmo de redes neuronais mais famoso o algoritmo de Backpropagation [4, 6, 9], proposto
nos anos 80, que iremos ver com mais detalhe nas seces seguintes.
2.2.4.1 Algoritmo Backpropagation
O algoritmo de Backpropagation [9, 6, 9] realiza a aprendizagem atravs de uma rede neuronal
feed-forward de mltiplas camadas [Figura 2.3].
Figura 2.3 Uma rede neuronal feed-forward com mltiplas camadas: Uma amostra de treino,
= (x
1
, x
2
, ., x
|
) alimenta a camada de entrada. Ligaes pesadas existem entre cada camada,
onde w
|
denota o peso de uma unidade de uma camada para uma unidade | da camada anterior.
As entradas correspondem aos atributos medidos para cada amostra de treino. As entradas so
introduzidas simultaneamente numa camada de unidades fazendo a camada de entrada. As sadas
pesadas dessas unidades so introduzidas simultaneamente para uma segunda camada de
unidades, conhecida como camada escondida. As sadas pesadas da camada escondida podem ser
entradas para outra camada escondida e assim por diante. As sadas pesadas da ltima camada
escondida so entradas de unidades fazendo a camada de sada, que emite a previso da rede para
uma dada amostra. A rede feed-forward no sentido dos ciclos dos pesos voltarem para uma
unidade de entrada ou para uma unidade de sada de uma camada de previso. completamente
ligada na medida em que cada unidade fornece entrada a cada unidade da prxima camada. [9]
25
Antes do treino poder comear, o utilizador tem de decidir sobre a topologia de rede especificando
o nmero de unidades da camada de entrada, o nmero de camadas escondidas, o nmero de
unidades em cada camada escondida e o nmero de unidades na camada de sada.
Tipicamente os valores de entrada so normalizados para terem valores entre 0,0 e 1,0.
No existem regras quanto ao melhor nmero de unidades na camada escondida. O desenho da
rede um processo de tentativa e erro e pode afectar a exactido da rede de treino resultante. Os
valores iniciais dos pesos podem tambm afectar a exactido do resultado. Uma vez que a rede foi
treinada e a sua exactido no considerada aceitvel, comum repetir o processo de treino com
uma topologia de rede diferente, ou com um conjunto diferente de pesos iniciais. [9]
O algoritmo de Backpropagation [4, 6, 9] aprende atravs de processar iterativamente um conjunto
de amostras de treino, comparando a previso da rede para cada amostra com a etiqueta da classe
conhecida. Para cada amostra da rede, os pesos so modificados para minimizar erros entre a
previso da rede e a classe actual. Estas modificaes so feitas da camada de sada, atravs de
cada camada escondida at chegar primeira camada escondida. Apesar de tudo, no garantido
que os pesos eventualmente iro convergir, e o processo de aprendizagem pra.
Figura 2.4 Uma camada escondida ou de sada : As entradas desta camada so sadas da
camada anterior. Estes so multiplicados pelo peso correspondente, de maneira a formar uma
soma pesada. Uma funo no linear de activao aplicada sada da rede.
Seguidamente ser apresentado o modo como o algoritmo funciona:
Inicializar os pesos: os pesos na rede so inicializados com nmeros pequenos e aleatrios. Cada
unidade tem uma polarizao associada. Estas polarizaes so tambm inicializadas com
nmeros aleatrios pequenos. Cada amostra de treino X processada atravs dos passos
seguintes [9, 11];
Propagar as entradas: as entradas e as sadas da rede de cada unidade na camada escondida e
na camada de sada so calculadas. Primeiro a amostra de treino alimentada camada de
entrada da rede. de notar que para a unidade na camada de entrada, a sua sada igual sua
entrada, isto ,
]
= I
]
. As entradas da unidade na camada escondida, so de facto sadas das
unidades ligadas na camada anterior. Para calcular a entrada da rede para a unidade , cada
entrada I
]
ligada unidade multiplicada pelo seu peso correspondente, e tudo isto somado:
I
]
= _
]
+ 0
]
(2.6)
26
Onde
]
o peso da ligao desde a unidade na camada anterior, unidade ;
a sada da
unidade desde a camada anterior; 0
]
a polarizao da unidade. Esta polarizao funciona como
threshold, na medida em que serve para variar a actividade da unidade.
Cada unidade nas camadas escondidas e de sada tomam as entradas da rede e aplicam uma
funo de activao (simboliza a activao do neurnio representado pela unidade), como
ilustrado na Figura 2.4, em que dada uma entrada da rede I
]
da unidade , ento
]
, a sada da
unidade calculado da seguinte maneira:
]
=
1
1+ c
-1
(2.7)
Propagao do erro: o erro propagado ao contrrio, fazendo a actualizao dos pesos e
polarizaes para reflectir o erro da previso da rede. Para uma unidade na camada de sada, o
erro
]
calculado da seguinte forma:
]
=
]
( -
]
)(
]
-
]
) (2.8)
Onde
]
a sada actual para a unidade , e
]
a verdadeira sada, baseada na classe conhecida
da amostra de treino fornecida.
Para calcular o erro de uma unidade da camada escondida , a soma dos pesos dos erros das
unidades ligadas unidade da prxima camada so considerados. O erro de uma unidade da
camada escondida dado pela equao 2.9.
]
=
]
( -
]
) _
k
k
]k
(2.9)
Onde
]k
o peso da ligao da unidade at unidade da prxima camada, e onde
k
o
erro da unidade . [9, 11]
2.2.5 Learning Vector Quantization
O algoritmo LVQ [1, 2, 12, 13, 15, 16, 17] pode considerar-se um tipo de rede neuronal artificial.
um algoritmo usado para classificao, o que subentende dois conjuntos de dados distintos, um para
treino e outro para teste.
Inicialmente, este algoritmo necessita de criar vectores de referncia, aleatoriamente distribudos
pelo espao [7]. Estes vectores de referncia sero treinados tendo em conta o conjunto de treino
fornecido pelo utilizador, para que os seus valores se possam ajustar. Para isso o algoritmo procede
da seguinte forma:
Percorre a lista de vectores de aprendizagem carregados a partir da base de dados e para cada
vector de aprendizagem, procura o vector de referncia que lhe est mais prximo, usando a
distncia Euclidiana, tal como o algoritmo de Nearest Neighboor.
Quando encontra o vector de referncia mais prximo do vector de aprendizagem seleccionado,
aplica a seguinte formula:
c
( +) =
c
() + o()|() -
c
()] Se
s
=
c
( +) =
c
() - o()|() -
c
()] Se
s
=
( + ) =
() Para = c (2.10)
27
Nesta equao o algoritmo pune os vectores de referncia com uma classe diferente da classe do
vector de aprendizagem, levando-os para longe desse vector e recompensado o vector de
referncia caso este seja da mesma classe, trazendo-o para mais perto do vector de
aprendizagem em questo.
A primeira equao da frmula acima calcula o novo vector de referncia, tendo em conta o vector
de referncia
c
que pertence classe
s
mais perto do vector de aprendizagem escolhido ()
pertencente classe
no
espao de maneira a que a regra do vizinho mais perto usada para classificao minimize a mdia
esperada de probabilidades de ms classificaes. [1]
3.2 LVQ1
O mtodo utilizado por este algoritmo aparentemente o mesmo mtodo utilizado pelo algoritmo
Nearest Neighbour [3, 5, 9], devido pequena distncia do vector desconhecido at a um conjunto de
vectores de referncia procurados. No so usadas amostras estatsticas de vectores conhecidos,
mas so seleccionados num nmero fixo de vectores de referncia para cada classe os valores que
sero posteriormente optimizados num processo de aprendizagem. Algumas caractersticas deste
algoritmo so [2]:
No treino, apenas o vector de referncia mais prximo actualizado;
A actualizao do vector de referncia feita para ambas as classificaes, correctas e
incorrectas;
O processo correctivo metricamente compatvel com o critrio usado para identificao;
41
Este algoritmo usado na classificao estatstica ou no mtodo de reconhecimento, e o seu
nico propsito definir regies de classe nos dados de entrada [1].
O mtodo de aprendizagem do algoritmo LVQ1 [1, 2, 16] constantemente chamado de
aprendizagem competitiva porque funciona da seguinte maneira: para cada padro de treino o
vector de referncia que est prximo dele determinado. O neurnio de sada correspondente
tambm chamado de neurnio vencedor. Os pesos das ligaes a esse neurnio e apenas a esse
neurnio: o vencedor toma tudo so depois adaptados. A direco da adaptao depende se a
classe do padro de treino e a classe atribuda ao vector de referncia coincide ou no. Se
coincidem, o vector de referncia movido para mais perto do padro de treino, caso contrrio
movido para mais longe. Este movimento do vector de referncia controlado por um parmetro
chamado rcio de aprendizagem. Este parmetro muda conforme a distncia para onde o vector de
referncia movido. Normalmente o rcio de aprendizagem decrementado com o tempo, sendo
que as mudanas iniciais so maiores que mudanas posteriores do processo de treino. A
aprendizagem pode ser terminada quando as posies dos vectores de referncia raramente se
alterarem.
Consideremos um processo que aloca optimamente vectores de referncia
e
n
, = , , .,
no espao n-dimensional ou de padres de vectores e
n
.
Para valores iniciais do
c
( + ) =
c
() + o()|() -
c
()],
( + ) =
() poro = c, (3.3)
Com os problemas de reconhecimento de padres, a superfcie de deciso entre classes de
padres e no o interior das distribuies das classes que deve ser descrito mais em pormenor.
O algoritmo LVQ [1, 2] descrito de seguida inicializado com os valores da primeira amostra de
que so identificados com
do qual se
encontra mais prximo. Cada
.
Para continuar, ainda necessitamos de amostras do conjunto de treino com a classificao
conhecida, que aplicamos iterativamente durante os passos de aprendizagem. Estas amostras
podem ser usadas ciclicamente, ou os vectores de treino podem ser escolhidos aleatoriamente deste
conjunto.
42
Assumindo que vrios vectores de referncia so atribudos a cada classe de valores , e
ento determinado para pertencer mesma classe qual o mais perto mi pertence. Seja
c = aig min
{ -
] (3.4)
que define o ndice do
mais perto de .
Suponhamos que o vector de treino () pertence classe
() a representao
sequencial de valores de
c
( +) =
c
() + o()|() -
c
()] Se
s
=
c
( +) =
c
() - o()|() -
c
()] Se
s
=
( + ) =
() Para = c (3.5)
Onde < o() < o rcio de aprendizagem e normalmente decresce monotonamente com o
tempo. recomendado que alfa deva ser inicialmente pequeno, mais pequeno do que 0,1. A lei
exacta o = o() no crucial e o() pode at ser feito para decrescer linearmente para zero, sendo o
nmero de passos de aprendizagem suficiente. Se apenas um restrito conjunto de amostras de treino
est disponvel, elas podem ser aplicadas ciclicamente.
De novo, apenas o vector
c
( +) =
c
() + o
c
()|() -
c
()] Caso seja classificado correctamente;
c
( +) =
c
() - o
c
()|() -
c
()] Caso seja classificado incorrectamente;
( + ) =
() Para = c (3.6)
O problema que o
c
( + ) = | - s()o
c
()]
c
() + s()o
c
()(), (3.7)
Onde s() = + caso a classificao seja correcta, e s() = - se a classificao for incorrecta.
Pode ser bvio que a exactido estatstica dos valores aprendidos dos vectores de referncia
aproximadamente ptima se todas as amostras foram usadas com o mesmo peso, por exemplo, se
os efeitos das correces feitas em alturas diferentes, quando referidas ao fim do perodo de
aprendizagem, apresentam aproximadamente a mesma magnitude. Repare-se que
c
( + ) contm
um rasto de () atravs do ltimo termo da equao composta, e rastos de ('), ' = ,, ., -
43
em
c
(). Num passo de aprendizagem, a magnitude do ltimo rasto de () escalonado para baixo
pelo factor o
c
(), e por sua vez, durante o mesmo passo, o rasto de ( - ) tornou-se escalonado
para baixo por | - s()o
c
()]. o
c
( -). Primeiro deve-se estipular que esses dois escalonamentos
devem ser idnticos:
o
c
() = | - s()o
c
()]. o
c
( -) (3.8)
Se esta condio foi feita para aguentar para todos os , por induo pode ser mostrado que os
rastos recolhidos fora de tempo de todos os (') sero escalonados para baixo por uma quantidade
igual, no fim, e assim, o valor ptimo de o
= 0,3.
Deve-se avisar que a equao (3.9) no deve ser aplicvel ao algoritmo LVQ2, pois o o
, na
mdia, no ir decrescer, e o processo no converge.
3.4 LVQ2
A deciso de classificao neste algoritmo idntica do LVQ1. Na aprendizagem, contudo, dois
vectores de referncia
e
]
, que so os vizinhos mais prximos de so agora actualizados
simultaneamente. Um deles deve pertencer classe correcta e o outro classe incorrecta,
respectivamente. Mais ainda, deve cair numa zona de valores chamada janela que definida em
volta do plano de
e
]
. Assuma que
e
]
so as distncias Euclidianas de a
e a
]
,
respectivamente; ento definido para cair na janela de uma largura se:
min(
d
i
d
]
,
d
]
d
i
) > s, onde s =
1-w
1+w
. (3.10)
Uma janela com largura relativa de 0,2 a 0,3 recomendada. A verso do LVQ2 chamada
LVQ2.1 [1, 2] descrita abaixo uma melhoria do algoritmo LVQ2 original, pois permite que
e
]
sejam os vizinhos mais prximos de , considerando que no LVQ2 original
e
]
esto inicialmente numa posio errada. A superfcie de discriminao sempre
definida como sendo o plano mdio entre
e
]
. Definindo uma janela simtrica com largura no
nula em volta do plano mdio e estipulando que as correces a
e
]
apenas devem ser
realizadas se cair nos valores da janela, do lado errado do plano mdio. Se as correces forem
feitas de acordo com a equao (3.11), ser fcil ver que para os vectores que caem na janela, as
correces de ambos
e
]
, em mdia, tm uma direco tal que o plano mdio move-se atravs
da superfcie de distribuio das classes, e assim coincide aproximadamente com a deciso de
fronteira de Bayes.
44
Figura 3.2 Ilustrao da janela do algoritmo LVQ2, onde
|
e
. [2]
( + ) =
() - o()|() -
()]
]
( +) =
]
() + o()|() -
]
()] (3.11)
Se
, onde
e
]
so os dois vectores de referncia mais prximos de , sendo que e
]
pertencem
mesma classe, enquanto e
se
o processo continuasse. Assim, parece necessrio introduzir correces que garantam que o
se
continua a aproximar das distribuies de classe. Combinando as ideias anteriores, obtemos agora
um algoritmo melhorado, que pode ser chamado LVQ3 [1, 2], tendo em conta a equao (3.11) do
algoritmo LVQ2, onde
e
]
so os dois vectores de referncia vizinhos mais prximos de , sendo
que e
]
pertencem mesma classe, enquanto e
k
( + ) =
k
() - eo()|() -
k
()], (3.13)
Para e {, ], se ,
e
]
pertencerem mesma classe.
Numa srie de experincias, foram encontrados valores aplicveis a e entre 0,1 e 0,5, no que toca
a os valores podem ser 0,2 ou 0,3. O valor ptimo de e parece depender do tamanho da janela,
sendo mais pequeno para janelas mais estreitas. Este algoritmo parece estabilizar-se a ele prprio,
por exemplo, o valor ptimo de
as classes
do vector de aprendizagem e de referencia, tem-se que [1, 2]:
c
( + ) =
c
() + o() |
() -
c
()], Se
s
=
c
( + ) =
c
() - o() |
() -
c
()], Se
s
=
(4.1)
A funo o() serve para ter a certeza de que no se est a recolocar o mesmo vector para o stio
anterior em cada iterao [1, 2]. Aplicando estas frmulas a todos os vectores de referncia, e
percorrendo todos os vectores de aprendizagem vezes obtemos novos valores para os vectores de
referncia iniciais.
Este modelo tem como objectivo prever as etiquetas das classes de determinados vectores de
entrada fornecidos e que, partida no sero apresentados com a informao da classe a que
pertencem. Esta fase a fase de classificao dos vectores fornecidos, em que o algoritmo apenas
54
calcula a distncia Euclidiana entre cada um dos vectores de classificao e os vectores de
referncia, para que seja atribuda a etiqueta da classe do vector de referncia mais prximo do
vector de classificao.
4.2.2 Construir um Algoritmo Plug-in
Para a construo de algoritmo Plug-in, implementado na linguagem C++, foi seguido um Tutorial
[5] desenvolvido pela equipa de Data Mining da Microsoft.
Nesta seco, sero descritos alguns passos do tutorial, com algumas modificaes necessrias a
uma melhor interpretao, para guiar atravs da criao de um algoritmo Plug-in que integre no
Analysis Services.
Para a implementao do algoritmo foi utilizado Microsoft Visual Studio 2005, juntamente com o
Microsoft SQL Server 2005.
4.2.2.1 Criar o projecto
Tal como referido acima, este projecto foi desenvolvido em Microsoft SQL Server Business
Intelligence Development Studio na linguagem C++, como tal, foi criado um novo projecto nessa
ferramenta, ao qual foram acrescentados alguns ficheiros disponibilizados com o tutorial, descritos de
seguida:
DmhMemory.h e DmhMemory.cpp
Estes ficheiros declaram e implementam a classe do ajudante do gestor de memria
DMHALLOC e as operaes correspondentes.
DmhLocalization.h e DmhLocalization.cpp
Declaram e implementam as funes globais LoadStringFromID(), que permitem ao algoritmo
Plug-in recuperar strings localizveis. A implementao por omisso desta funo retorna
simplesmente a verso da string do ID.
ParamHandler.h e ParamHandler.cpp
Estes ficheiros fornecem implementao livre das funes do IDMAlgorithmMetadata.
StaticAlgorithmMetadata.h adicionado ao centro da directoria onde reside o projecto.
Este ficheiro tem dois propsitos: manter as funes a descrever o algoritmo na mesma
localizao que o prprio algoritmo e oferecer implementaes livres das funes
IDMAlgorithmMetadata.
4.2.2.2 Criar a classe ALGORITHM
Esta classe implementa as interfaces IDMAlgorithm e IDMPersit, logo necessrio que esta
classe herde de IDMPersist e DMHALLOC e que seja acrescentado classe as declaraes do
cabealho das interfaces IDMAlgorithm e IDMPersist. Nesta fase necessrio criar dois novos
ficheiros ALGORITHM.IDMAlgorithm.cpp e ALGORITHM.IDMPersist.cpp. O primeiro ir ter os
mtodos principais usados no processo de treino e de previso. Ambos os ficheiros, iro conter a
definio das funes e o programador apenas tem de implement-las de acordo com o algoritmo.
55
4.2.2.3 Criar a classe FACTORY
Este passo muito similar ao passo anterior. Aqui ir ser criada a classe FACTORY [10] para
implementar ambas as interfaces IDMAlgorithmFactory e IDMAlgorithmMetadata. necessrio
especificar que esta classe herda de IDMAlgorithmMetadata. Na classe FACTORY apenas
necessrio copiar o contedo de um outro ficheiro disponibilizado, onde alguns dos principais
mtodos genricos j foram desenvolvidos, e acrescentar algumas macros especficas. A prxima
etapa ser implementar a interface de IDMAlgorithmMetadata usando funes com membros
estticos na classe ALGORITHM. criado um novo ficheiro ALGORITHM.IDMAlgorithmMetadata.cpp
onde se deve colar o cdigo de implementao para as funes IDMAlgorithmMetadata tambm j
desenvolvido. neste passo que se inserem as duas linhas de cdigo em ALGORITHM.cpp entre as
quais mais tarde se ir definir os parmetros especficos do algoritmo, inserindo instncias da macro
DECLARE_PARAMETER. Estas macros juntas iro implementar as nove funes de tratamentos de
parmetros IDMAlgorithmMetadata automaticamente.
4.2.2.4 Criar a classe NAVIGATOR
Neste passo ser criada a classe NAVIGATOR que implementa IDMAlgorithmNavigation [5]. Todo
o cdigo existente nesta classe e no seu ficheiro de cabealho, por agora ser copiado de um ficheiro
disponibilizado juntamente com o Tutorial.
Aps a criao desta classe necessrio compilar o projecto para corrigir algum erro que possa
existir, ou copiar algum cdigo ainda em falta.
4.2.2.5 Registar o algoritmo no Analysis Services
Este passo permite ao algoritmo ser chamado pelo Analysis Services. Primeiro necessrio definir
o nome do servio do algoritmo, que ser o nome que o Analysis Services usa internamente para se
referir ao algoritmo. No ficheiro ALGORITHM.IDMAlgorithmMetadata.cpp existe um mtodo
GetServiceName(), onde necessrio definir o nome do algoritmo na varivel szName, que neste
caso ser "Learning_Vector_Quantization".
Caso ainda no tenha sido iniciado o Analysis Services, necessrio faz-lo nesta fase para
popular os ficheiros de inicializao. No ficheiro msmdsrv.ini, um documento XML, inclumos o novo
algoritmo na lista de algoritmos disponveis no servidor. Para isso, necessrio criar outro n filho de
<Algorithms> que ir ter o mesmo nome que o nome do servio do algoritmo especificado
anteriormente.
necessrio inserir um elemento ao filho, chamado <ProgID>. Este elemento contm o ProgID
dos objectos COM que implementam a interface IDMAlgorithmFactory. Este campo ir ter o valor da
varivel ProgID localizada no ficheiro FACTORY.rgs presente no projecto aps a sua compilao.
Para finalizar, necessrio um segundo elemento ao n filho, chamado <Enabled>, o contedo deste
elemento deve ser 1 ou 0, significando 1 que o servidor est apto a usar o algoritmo.
Para que o Analysis Services incorpore as mudanas realizadas no ficheiro de inicializao
necessrio reiniciar o servio SQL Server Analysis Services. A partir desta altura, sempre que se
56
recompilar o projecto necessrio parar primeiro o servio, sendo este iniciado depois da compilao
do projecto.
Neste ponto tem-se o esqueleto do algoritmo implementado e integrado no Analysis Services.
4.2.2.6 Testar a integrao do algoritmo
Apesar do algoritmo neste momento no fazer nada de til, pois o seu cdigo ainda no est
integrado, pode-se verificar que as interfaces esto a ser chamadas. Para isso, necessrio criar um
projecto Analysis Services Project no Business Intelligence Development Studio.
Primeiro, para ligar fonte de dados, necessrio escolher as propriedades da ligao aos dados,
onde neste projecto se seleccionar Microsoft Jet 4.0 OLEDB Provider, aps o que deve-se indicar
qual a base de dados, tendo em conta o mbito do projecto, essa base de dados dever ter duas
tabelas, uma para a primeira fase do algoritmo, ou seja, o treino, e outra tabela para previso.
Seguidamente, neste processo, define-se uma vista dos dados, onde se ir seleccionar as tabelas
que esto presentes na base de dados escolhida acima, com as quais se quer trabalhar, deve-se
escolher as tabelas de treino e de teste necessrias.
Neste momento, pode-se testar o esqueleto do algoritmo construdo, construindo uma nova Mining
Structure (estrutura de minerao). O primeiro passo para a construo dessa estrutura est na
escolha de uma tcnica de Data Mining de entre a lista de tcnicas disponibilizadas pelo Analysis
Services. Neste momento, o algoritmo a implementar aparecer como o ltimo membro da lista, tendo
como nome Undefined Localized String, como indicado na Figura 4.6.
Figura 4.3 - Lista dos algoritmos disponveis, mostrando o novo algoritmo, ainda sem nome;
Pode-se cancelar esta caixa de dilogo, pois apenas permitia ver se o Analysis Services detectava
o novo algoritmo. Caso Undefined Localized String no aparea, pode apenas ser devido ao
Analysis Services estar a correr quando o projecto foi compilado. Nesse caso, deve-se guardar este
projecto, parar o servio do Analysis Services, recompilar o projecto e iniciar o Analysis Services,
aps o que se deve abrir de novo o projecto e tentar novamente.
Para obter uma lista dos algoritmos disponveis, o Analysis Services usou o ficheiro de
inicializao para criar uma instncia da classe FACTORY e guardou tambm as instncias
correspondentes das interfaces IDMAlgorithmFactory e IDMAlgorithmMetadata. Para extrair a
57
descrio do novo algoritmo para a lista, o Analysis Services chama a funo
IDMAlgorithmMetadata::GetDisplayName(). Esta funo preenche uma descrio, que uma string
localizvel. Devido a ainda no se ter definido essa string, a descrio por omisso aparece:
Undefined Localized String.
4.2.3 Personalizar o algoritmo
Nesta etapa personaliza-se o esqueleto do algoritmo construdo no passo anterior para abrigar o
algoritmo Linear Vector Quantization.
Primeiro necessrio copiar alguns ficheiros, fornecidos juntamente com o Tutorial, para o
Projecto:
DmhVector.h e DmhAllocator.h: estes ficheiros permitem usar vectores STL com as interfaces
de gesto de memria fornecidos pelo Analysis Services.
DataValues.cpp e DataValues.h: estes ficheiros so utilizados para fazer a translao de tipos
usados pelo Analysis Services e o tipo simples double.
caseprocessor.cpp e caseprocessor.h: usados para implementar a interface do case processor.
Hierarchies.h: este ficheiro contm a estrutura que implementa as duas diferentes hierarquias
para modelos que so necessrios para a interface de navegao (no abordado neste
projecto);
lrsstatreader.cpp e lrsstatreader.h: estes ficheiros contm a classe LRSSTATREADER, que
deriva do case processor e recolhe os valores necessrios para cada caso para o processo de
aprendizagem do modelo;
lvqmodel.cpp e lvqmodel.h: estes ficheiros implementam a classe LVQMODEL, ou seja, a
classe usada para representar o modelo aprendido pelo novo algoritmo.
Nos prximos passos sero personalizadas as funes das cinco interfaces principais para
implementar o modelo LVQ.
4.2.3.1 Personalizar os mtodos de IDMAlgorithmMetadata
Nesta seco sero abordadas as funes mais importantes deste ficheiro:
GetServiceType: Descreve o tipo de servio fornecido pelo novo algoritmo. O algoritmo
Learning Vector Quantization usa a classificao e previso, dois dos servios de minerao
disponveis, assim deve-se preencher a varivel presente na funo com:
DM_SERVICETYPE_CLASSIFICATION, dado que a classificao apenas um tipo especifico
da previso [9].
GetServiceName: Guarda o nome do algoritmo, que num dos passos acima j foi definido
como LINEAR_VECTOR_QUANTIZATION;
GetDisplayName: necessrio ter um ID para cada string, e uma maneira correspondente de
mapear esse ID numa string. Este mtodo garante estes dois requisitos. Neste momento
existem duas strings localizveis (o nome do algoritmo, e a sua descrio), mas quando forem
definidos os parmetros, existiro mais strings. No ficheiro resource.h necessrio adicionar
para cada string uma declarao que contenha uma varivel com o nome da string e o seu ID.
58
Assim, necessrio incrementar o valor de _APS_NEXT_SYMED_VALUE para o ID seguinte
ao definido nas strings. Para finalizar, fundamental substituir o corpo inteiro da funo
LoadStringFromID() presente em DmhLocalization.cpp por cdigo onde estar definida cada
string. Para que o nome do algoritmo seja visvel, essencial mudar nesta funo o valor de
iIDStrAlgorithm de -1 para IDS_SERVICE_DISPLAY_NAME, a constante definida com o nome
do novo algoritmo.
GetDescription: Esta a segunda string localizvel. Similar a GetDisplayName(), o valor de
iDStrDescription alterado de -1 para IDS_SERVICE_DESCRIPTION, a constante que se
definiu no ficheiro resource.h com a descrio do algoritmo.
GetSupInputContentTypes: O modelo LVQ apenas suporta variveis de entrada contnuas, e
necessita sempre de suportar as colunas chave. Assim tem de se descomentar as linhas
relativas a esses dois aspectos.
GetSupPredictContentTypes: O modelo LVQ apenas suporta variveis de sada contnuas.
Assim, necessrio comentar a linha que se refere s variveis discretas e descomentar a
linha referente s variveis contnuas.
GetTrainingComplexity: Esta funo refere-se com o nmero de vezes que os dados de
treino so iterados. Assim, a varivel presente nesta funo ir ser preenchida com uma macro
definida para o tempo de execuo ser proporcional aos parmetros de entrada, e ser
relativamente curto.
GetPredictionComplexity: Semelhante funo acima mas, na previso o modelo LVQ tem o
seu tempo de previso proporcional ao nmero de variveis de entrada.
Aps a definio destas funes, as prximas linhas esto directamente relacionadas com os
parmetros de entrada necessrios execuo do algoritmo. Cada parmetro especfico do
algoritmo, tem um dado nmero de propriedades:
O nome do parmetro.
Uma descrio do parmetro, que uma string localizvel, e como tal tem associado um ID.
Um tipo especfico representado por uma string. A string para um tipo combina com o nome da
enumerao DBTYPEENUM do ficheiro oledb.h. Exemplos incluem DBTYPE_I8, um inteiro
com tamanho 8 e DBTYPE_R4 que representa um float.
Uma flag que indica se o valor requerido ou no.
Uma flag que indica se o valor exposto (visvel ao utilizador) ou no. Para o modelo LVQ
melhor expor todos os parmetros referentes a informao dada pelo utilizador.
Um valor de omisso, representado por uma string.
Uma enumerao, que uma string amiga do utilizador (no localizvel) e que descreve o
alcance do parmetro. Se o parmetro permite qualquer nmero, iremos usar (-, +).
Neste projecto iremos usar o tratamento de parmetros esttico, logo todos os parmetros da
funo sero implementados automaticamente, sendo apenas necessrio especificar as sete
propriedades de cada um no ficheiro ALGORITHM.cpp.
Neste momento o projecto dever ser compilado e no obter erros.
59
4.2.3.2 Personalizar IDMAlgorithmFactory
necessrio que no se faa nenhuma mudana interface IDMAlgorithmFactory, mas til
rever o cdigo para ver como que a nica funo CreateAlgorithm permite ao novo algoritmo usar a
interface IDMModelService.
Se for necessrio alocar memria com o novo algoritmo, que dure mais do que o tempo de vida de
uma chamada funo, deve-se guardar uma interface especial de modelos de servio,
IDMModelServices, juntamente com o nosso algoritmo. IDMModelServices est disponvel apenas
quando o modelo criado com IDMAlgorithmFactory::CreateAlgorithm(). Neste projecto (com o
modelo LVQ), resolvemos este problema derivando ALGORITHM da classe de alocao de memria
DMHALLOC; depois, em CreateAlgorithm, inicializamos a classe base para se referir interface do
alocador de memria passando-lhe a interface IDMModelService.
4.2.3.3 Personalizar IDMAlgorithm
Esta seco aborda a personalizao das funes da interface IDMAlgorithm do ficheiro
ALGORITHM.IDMAlgorithm.cpp. Esta interface bastante importante e a interface principal do
algoritmo, visto que aqui que se encontram as funes de treino e de previso do algoritmo. nesta
fase que a integrao do novo algoritmo realizada.
Initialize: Esta funo fornece a inicializao do algoritmo. Todas as alocaes so realizadas
na interface IDMAttributeSet passada. Para isso necessrio adicionar a varivel membro
publico, _spidmattributeset, classe ALGORITHM declarada em ALGORITHM.h. Esta varivel
ir armazenar o conjunto de atributos (as propriedades de cada coluna na tabela da base de
dados).
InsertCases: Esta a funo que treina o modelo com os dados e pode ser dividida em trs
etapas: anlise dos parmetros fornecidos, extraco dos dados de aprendizagem e popular o
modelo de minerao de dados criado (ou seja, realizar a aprendizagem).
Na primeira fase, necessrio analisar os parmetros de entrada fornecidos, apesar de nem
todos os parmetros de entrada serem utilizados no processo de treino. No caso do modelo
LVQ, usar uma varivel local para guardar os seus valores suficiente. Para isso necessrio
criar uma varivel local para cada parmetro no ficheiro ALGORITHM.h, tendo em conta o tipo
do parmetro. Essas variveis sero inicializadas no construtor com os valores por omisso,
aps o que se deve adicionar o cdigo, cuja estrutura fornecida, para cada parmetro para
realizar o parse de todos os parmetros na varivel _dmhparamhandler.
O objectivo da segunda fase desta funo a captura dos dados de entrada para a extraco
dos valores necessrios. Existe uma classe de processamento de casos genrica que
simplifica o acesso a dados chamada CASEPROCESSOR, e pode ser encontrada em
caseprocessor.h. No ficheiro lrsstatreader.h fornecida uma implementao da classe
LRSSTATREADER que recolhe os atributos disponibilizados por caso, ou seja, por cada linha
da tabela e os coloca em vectores ou outras estruturas definidas pelo programador, que
posteriormente sero utilizados. Todo o cdigo de invocao de funes presentes noutros
60
ficheiros est j desenvolvido, sendo apenas necessrio adaptar. Agora LRSSTATREADER
contm todos os atributos necessrios para fornecer classe que contm o algoritmo. nesta
fase que fundamental incluir um ficheiro chamado lvqmodel.c ao projecto. Este ficheiro
contm o cdigo do novo algoritmo desenvolvido anteriormente num ambiente livre de
integrao e previamente testado. Finalmente necessrio adicionar a ALGORITHM uma
varivel membro _lvqmodel do tipo LVQMODEL para acesso a funes do modelo LVQ.
A ltima fase desta funo visa popular o modelo, e realizar a sua aprendizagem. Para isso
essencial invocar a funo PopulateModel, residente no ficheiro lvqmodel.cpp, com o objecto
lrsstatreader e todos os parmetros necessrios aprendizagem do algoritmo como
parmetros de entrada da funo.
Predict: Esta funo usada para extrair previses do novo modelo. O cdigo dever ler os
casos de entrada a serem previstos e dever chamar a funo que estar no ficheiro
lvqmodel.c, _lvqmodel. CreateClassification(), que ir realizar a classificao dos vectores.
GetNavigator: Esta funo cria uma instncia da classe NAVIGATOR e passa-a interface
IDMAlgorithmNavigation correspondente. O cdigo apropriado encontra-se entre o cdigo
fornecido. Porque a classe NAVIGATOR deriva de DMHALLOC, necessrio criar novas
instncias usando o template estendido ATL de DmhMemory.h (isto , usar o template
CComObjectDM em vez do template CComObject e passar uma referncia DMHALLOC
funo CreateInstance). Assim, essencial chamar a funo NAVIGATOR::Initialize que foi
definida anteriormente.
GetTrainingParameterActualValue: Esta funo retorna o valor actual usado no treino para
cada parmetro do algoritmo. O valor actual pode ser diferente do que era requerido pelo
utilizador nas seguintes situaes:
o O valor especificado pelo utilizador indica algum mecanismo de auto-deteco, que calcula
um valor optimizado baseado nos dados de entrada.
o O utilizador no especifica nada e um valor de omisso usado.
4.2.3.4 Personalizar IDMPersist
Neste passo implementada a interface IDMPersist na classe ALGORITHM. Esta interface
consiste em duas funes: Load e Save. Estas duas funes carregam e salvam o modelo criado
pelo algoritmo usando as interfaces IDMPersistenceReader e IDMPersistenceWriter. Todo este
cdigo ir estar dentro do ficheiro ALGORITHM.IDMPersist.cpp.
de se notar que as funes Load e Save esto a guardar persistentemente as variveis
membros que contm os valores actuais dos parmetros de treino.
Aps estes passos, e a implementao do novo algoritmo Learning Vector Quantization nos ficheiro
lvqmode.cpp e lvqmodel.h o projecto pode ser usado como um novo algoritmo na ferramenta
Microsoft SQL Server 2005.
61
5 Microsoft SQL Server com LVQ
Este captulo pretende oferecer ao leitor, em primeiro lugar uma visita ferramenta oferecida pela
Microsoft j com o novo algoritmo integrado, ajudando o utilizador a construir um modelo de
minerao de dados com o algoritmo LVQ [1, 2, 12, 13, 15, 17], e a conhecer os seus parmetros.
Em segundo lugar, este captulo oferece um conjunto de experincias realizadas ao algoritmo,
focando a sua preciso com vrios conjuntos de treino, e posteriormente comparando o LVQ com
outros algoritmos descritos no capitulo 2.
5.1 Arquitectura do utilizador
Nesta seco, irei mostrar como o utilizador poder usar o algoritmo Plug-in desenvolvido dentro
da aplicao Business Intelligence Development Studio.
O ponto inicial para criar um modelo de Data Mining numa base de dados Microsoft SQL utilizar
o Analysis Manager includo no pacote do Analysis Services Installation.
O segundo passo iniciar ou reiniciar o Analysis Services. Aps o que se deve abrir o projecto
criado na seco 4.3.2.6
Atravs do Analysis Manager, so apresentados ao utilizador alguns passos para a construo de
um modelo de maneira fcil e intuitiva, que seguidamente so especificados:
5.1.1 Criar uma fonte de dados
O primeiro passo que o utilizador ter de efectuar, ser especificar qual a base de dados a utilizar
pelo algoritmo. Normalmente essas bases de dados encontram-se implementadas em Microsoft
Access ou Microsoft SQL Server.
Figura 5.1 Janela para a criao de uma nova ligao base de dados que
contm as tabelas com os dados de aprendizagem e de classificao. [5]
No Solution Explorer, o utilizador dever criar uma nova fonte de dados, carregando sobre Data
Sources e depois escolhendo New Data Source, aps o que aparecer o Data Source Wizard,
onde o utilizador dever carregar Next. A janela How to Define the connection aparecer, e o
62
utilizador dever escolher New para criar uma nova ligao. Uma janela semelhante Figura 5.1 ser
mostrada.
O utilizador dever escolher na lista de Fornecedores, Native OLE DB\Microsoft Jet 4.0 OLE DB
Provider, caso a base de dados esteja implementada em Microsoft Access ou Native OLE
DB\Microsoft OLE DB Provider for SQL Server caso a base de dados a utilizar esteja implementada
em Microsoft SQL Server 2005, aps o que dever indicar a localizao da base de dados e os dados
de acesso base de dados, caso seja necessrio. importante que a ligao base de dados seja
testada, para garantir que no existem falhas na conexo.
Depois de seleccionar OK neste menu, o utilizador volta ao anterior, onde deve escolher Next, e o
menu Impersonation Information mostrado. Neste o utilizador tem de fornecer todos os dados
necessrios sua autenticao. Fornecer a autenticao que est presente no Windows pode ser
perigoso, pois faz com que erros futuros sejam difceis de detectar, devido ao sistema de segurana
estar associado s credenciais do utilizador autenticado no Windows e posteriormente ao utilizador
que est autenticado no servidor onde reside o Analysis Services. Para este caso porm o utilizador
poder seleccionar Default e avanar para o prximo menu, onde apenas ter de modificar o nome
da fonte de dados caso necessrio. E a criao de uma nova ligao fonte de dados estar
completa.
5.1.2 Criar uma vista sobre os dados
Aps criar a ligao fonte de dados o utilizador dever criar uma vista sobre os dados existentes
nessa base de dados. Para isso, dever ainda no Solution Explorer, carregar em cima de Data
Source Views e escolher New Data Source View, onde ir aparecer o Data Source View Wizard.
Escolhendo Next, ser apresentado ao utilizador o menu Select Data Source, como ilustrado a
seguir pela Figura 5.2.
Figura 5.2 Menu que oferece ao utilizador a escolha de uma fonte de
dados j criada para realizar uma vista sobre esses dados. [5]
Neste menu, j est seleccionada a fonte de dados criada no passo anterior. Com todas as
informaes sobre a ligao criada, o utilizador apenas deve confirmar todos os dados e escolher
Next, onde ser apresentado o menu Select Tables and Views que seguidamente apresentado
[Figura 5.3].
63
Figura 5.3 Janela onde o utilizador poder escolher as tabelas indicadas para
aprendizagem e classificao que iro fazer parte da estrutura de minerao.
O utilizador dever escolher quais as tabelas pretendidas. Sero necessrias duas tabelas, uma
para treino do modelo e outra para a fase de teste, onde iro ser comparados resultados de
classificao. Aps ter carregado no boto com a seta para passar para a coluna da direita as tabelas
pretendidas, o utilizador dever passar ao menu seguinte, onde ter de mudar o nome vista.
5.1.3 Construir o modelo
Para construir o modelo necessrio criar uma nova estrutura de minerao de dados e, para
isso, ambas as subseces anteriores devem ter sido realizadas.
1. Em Solution Explorer, carregar em Mining Structures e depois seleccionar New Mining
Structure, onde um Data Mining Wizard ser mostrado.
Figura 5.4 - Lista de algoritmos disponveis, onde se destaca o novo algoritmo.
2. No menu seguinte ser dada a escolha de mtodos para definir a estrutura de minerao: com
cubos OLAP ou atravs de uma base de dados existente, o utilizador dever escolher esta
ultima hiptese.
3. Na pgina seguinte Select the Data Mining Technique o utilizador deve seleccionar o
algoritmo que pretende utilizar para realizar as previses. Existe uma lista de algoritmos
64
disponveis para usar, e o utilizador poder escolher o algoritmo que foi ligado ao Analysis
Services no incio deste captulo, Learning Vector Quantization [Figura 5.4].
4. Na prxima pgina Select Data Source View and Specify Table Types, seleccionar Next sem
fazer qualquer alterao. No menu, Specify Table Types, o utilizador dever especificar qual o
tipo de tabela. Neste projecto no usaremos nested tables, assim o utilizador dever colocar
um visto na caixa da linha da tabela de treino do algoritmo, na coluna Case.
5. A prxima janela permite criar e editar junes: caso o utilizador tenha escolhido mais do que
uma tabela no penltimo passo, ir aparecer este passo no Wizard, para dar a possibilidade ao
utilizador de realizar a juno das tabelas graficamente, arrastando as colunas chave das
tabelas pai para a tabela filho. Caso tenha apenas sido escolhida uma tabela este passo ser
suprimido.
6. No prximo menu Specify the Training Data [Figura 5.6], o utilizador poder escolher quais as
colunas da tabela (atributos) que iro entrar no processo de treino e de previso do algoritmo.
aconselhvel escolher pelo menos uma coluna de entrada para o Mining Model da lista de
colunas disponveis. As colunas de entrada representam os dados actuais que so usados
para treinar o modelo. necessrio escolher colunas previsveis, dependendo do algoritmo
seleccionado. Estas colunas so campos usados para fornecer a sada prevista do modelo.
Aps o utilizador especificar o tipo de cada atributo, onde os atributos de entrada entraro no
processo de treino do algoritmo e o atributo de sada ser aquele sobre o qual vo ser
realizadas previses, o utilizador poder ento dar um nome ao seu modelo de minerao,
terminando esta tarefa.
Figura 5.5 - Menu onde so especificadas as colunas (atributos) de entrada e sada [5].
7. Neste passo o utilizador estar apto para construir o modelo, seleccionando Deploy Solution
no menu de Build. medida que o modelo treinado, os vrios passos de treino so
detalhados aquando do seu acontecimento. O tempo inicial do processo registado, e uma
barra de progresso ir reflectir o estado do processo durante as vrias fases.
65
5.1.4 Realizar previses sobre o modelo
Para efectuar previses com o modelo, necessrio seleccionar o cone de Mining Model
Prediction no painel View. O utilizador poder comparar as previses do modelo com os valores
contidos nos dados de teste.
Na caixa de dialogo Select Input Table(s), o utilizador deve seleccionar Select case table,
expandir o n inicial e seleccionar a tabela de previso.
Para comparar resultados, necessrio arrastar o atributo a comparar da caixa de dilogo Mining
Model at coluna Source na linha do topo da tabela [Figura 5.6]. No campo Alias dessa linha, o
utilizador dever escrever algumas palavras que identifiquem aquela linha como sendo os valores
obtidos do modelo. Agora dever arrastar o mesmo atributo a comparar da caixa de dialogo Select
Input Table(s) at coluna Source na segunda linha da tabela, e colocar no campo Alias
correspondente algumas palavras que identifiquem os valores provenientes daquela linha como
sendo os valores reais, ou seja, os valores contra os quais se vai prever. A lista dever parecer como
a seguinte:
Figura 5.6 Ilustrao do painel de previses com os campos Source, Field e Alias preenchidos.
Figura 5.7 Lista apresentada com os valores previstos pelo modelo na coluna
Previsto e os valores reais na coluna Actual.
66
Para o utilizador poder ver a exactido das previses do algoritmo, necessrio seleccionar o
cone em forma de tabela por cima da caixa de dilogo, e poder observar uma tabela semelhante
exibida pela Figura 5.7.
A primeira coluna desta tabela obtida chamando a funo ALGORITHM::Predict implementada
neste trabalho.
5.1.5 Personalizar os parmetros
Caso o utilizador queira testar o modelo dando vrios valores aos parmetros de entrada do
algoritmo, poder faz-lo tendo em ateno que as previses podero melhorar ou piorar consoante
os parmetros que forem modificados.
Para iniciar o processo de mudana dos valores dos parmetros, o utilizador ter de seleccionar o
cone Mining Models na lista View, deve carregar duas vezes sobre a coluna com o nome do
modelo, e seleccionar Properties. A janela de propriedades ser semelhante Figura 5.8.
Figura 5.8 Propriedades do modelo de minerao criado ao longo desta seco.
Agora o utilizador pode especificar os parmetros do modelo seleccionando a caixa Set Algorithm
Parameters. A caixa de dilogo ilustrada na Figura 5.9 mostra os parmetros disponveis.
O algoritmo Learning Vector Quantization [1, 2, 12, 13, 15, 16] recebe seis parmetros [Figura 5.9],
todos eles necessrios apenas na fase de treino. Os parmetros ALFA_FUNCTION_INITIAL_VALUE
e ALFA_FUNCTION_ FINAL_VALUE, contm o valor inicial e final da funo linear o(), que pode
variar entre o valor inicial 1 e o valor final 0. Testes anteriormente realizados com o algoritmo
revelaram que o valor ptimo inicial seria abaixo de 0.1, que o valor por omisso. Nas ltimas
iteraes do algoritmo existe a tendncia para a rede desaprender, ou seja, os vectores passarem de
um valor para outro, voltando ao inicial e assim sucessivamente, at que o nmero de iteraes limite
seja alcanado. Estes parmetros fazem com que o vector no alterne de valores, mas continue
sempre no mesmo quando o() inicial se aproxima ou tende para zero.
O valor de CODEBOOK_VECTORS_PER_CLASS deve ser tambm dependente do nmero de
vectores na tabela de treino. Mais uma vez o valor por omisso apenas representativo, devendo o
utilizador modific-lo para o que for mais indicado. Para classes muito extensas deve existir maior
nmero de vectores de referncia. Uma das limitaes deste trabalho consiste exactamente nisso, o
utilizador no pode definir um nmero de vectores de referncia para cada classe, mas tem de definir
um valor nico para todas as classes.
67
Figura 5.9 Menu onde so especificados os parmetros de entrada do algoritmo LVQ.
Os parmetros HIGH_VALUE e LOW_VALUE so os valores entre os quais iro ser criados os
valores aleatrios dos vectores de referncia iniciais. Tendencialmente, estes valores devero estar
de acordo tambm com o valor mnimo e mximo dos valores nos vectores de aprendizagem.
Finalmente, ITERATIONS_NUMBER contm o nmero de iteraes pretendidas para a
aprendizagem do algoritmo.
5.2 Experincias
Neste captulo sero apresentadas as experincias efectuadas ao algoritmo e ao modelo com ele
construdo. Para isso foi necessrio considerar trs tipos de experincias: o primeiro mais bsico
seria realizado com um conjunto de treino e de teste com vectores de duas dimenses, ou seja
vectores que podero ser representados no plano. A segunda experincia foi realizada com vectores
de 36 dimenses, e cujos resultados apenas se encontram disponveis sob a forma de uma matriz de
confuso. Finalmente a terceira e mais importante experincia foi realizada com a base de dados
disponvel pelo Microsoft SQL Server 2005, AdventureWorks, onde houve a possibilidade de testar
estes dados com alguns algoritmos j disponveis nesta verso da aplicao, tais como Microsoft
Decision Trees [5, 9, 11, 18], Neural Networks [4, 5, 6, 9, 11, 18], Naive Bayes [5, 9, 11, 18] e Nearest
Neigbor [5, 9, 11, 18].
5.2.1 Teste bsico
Para este teste foram apenas considerados vectores com duas dimenses, representveis no
plano, para que desta forma se conseguisse observar a distribuio dos vectores de referncia finais.
A amostra de treino consistia em 100 vectores de aprendizagem, e o tamanho da amostra de teste
era metade, os vectores tinham valores entre 0 e 300.
5.2.1.1 Primeiro teste
O primeiro teste com as amostras mencionadas foi realizado tendo em conta os valores por
omisso dos parmetros do algoritmo. Para que este algoritmo apresente bons resultados
68
necessrio que o utilizador conhea as suas amostras de treino e de teste, pois nem sempre os
parmetros por omisso so os adequados para as amostras em questo. Como o valor de alfa final
por omisso o recomendado por Kohonen (0,1) e assim bastante baixo tendo em conta o intervalo
em que este valor se pode encontrar (entre 0 e 1), usando este valor, a exactido das previses era
muito baixa, rondando os 65%, e testes posteriores com valores como 0.5 e 0.75 obtiveram
exactides nas previses de 77% e 75% respectivamente, valores de alfa final muito mais baixos
como 0.05, obtiveram percentagens de exactido perto de 58%, pelo que o valor 1 ser ptimo para
este conjunto de dados.
Parmetros
Nmero de vectores = 25
Iteraes = 50
Valor Mnimo = 0
Valor Mximo = 150
Alfa inicial = 1
Alfa final = 0
Tabela 5.1 Parmetros do primeiro teste bsico, com todos os valores por
omisso dos parmetros do algoritmo.
Assim, no teste seguinte realizado, apenas se modificou o alfa final para 1, como se pode ver na
Tabela 5.1, sendo os resultados obtidos seguidamente ilustrados pelo Grfico 5.1:
Grfico 5.1 Ilustrao dos vectores de referencia finais, onde se pode verificar a presena de trs
clusters de classes diferentes.
Como se pode verificar, na representao dos vectores de referncia finais (os vectores que
posteriormente iro ser usados na classificao do vectores de teste) podemos encontrar dois
clusters distintos e um terceiro, representado pela classe 1, que se encontra com alguns vectores das
outras classes. Este facto deve-se ao valor mximo por omisso com que os vectores de referncia
iniciais so gerados ser apenas de 150, enquanto o intervalo que estamos a considerar para as
amostras de treino e de teste tem o seu valor mximo em 300. Assim, os vectores de referncia
69
raramente so relocados para valores acima de 200. Apesar deste pequeno problema na afinao
dos parmetros, a matriz de confuso mostra uma grande exactido nas previses:
Classe 1 2 3 Preciso
1 14 3 3 70%
2 1 19 0 95%
3 0 2 8 80%
Preciso Total
82%
Matriz 5.1 - Matriz de confuso do primeiro teste bsico do algoritmo LVQ, com um conjunto de treino e
de teste artificial contendo vectores de duas dimenses.
5.2.1.2 Segundo teste
No segundo teste realizado, alguns dos parmetros foram alterados, como est descrito na tabela
seguinte:
Parmetros
Nmero de vectores = 15
Iteraes = 50
Valor Mnimo = 0
Valor Mximo = 300
Alfa inicial = 1
Alfa final = 0
Tabela 5.2 - Parmetros do algoritmo para o segundo teste bsico.
As alteraes realizadas ocorreram ao nvel do valor mximo para os valores existentes nos
vectores de referncia, o que permite que os vectores de referncia iniciais possam ser criados num
plano em que o eixo dos xx v at 300 tal como o eixo dos yy. Outro dos parmetros modificado foi o
nmero de vectores de cada classe, para melhor se visualizar os vectores de referncia no plano e
para o novo valor se adaptar melhor ao nmero de vectores de aprendizagem e de treino das
classes.
Grfico 5.2 - Ilustrao dos vectores de referncia finais, onde se pode ver a presena de dois
clusters distintos da classe 1 e da classe 3, enquanto a classe 2 apenas apresenta um cluster.
70
Como se pode ver neste grfico os clusters identificados esto mais distintos e no existe mistura
de vectores de referncia de classes diferentes. O problema agora com estes parmetros est no
alcance dos vectores de referncia finais: neste referencial aparecem vectores em zonas negativas
do grfico, bem como em valores muito acima de onde o ltimo vector de teste poder estar. Estes
dois factores fazem com que a matriz de confuso obtenha uma exactido de previso mais baixa.
Assim, apesar de os clusters estarem mais definidos, os vectores de referncia finais so mandados
para fora da zona onde os vectores de teste podero estar.
Classe 1 2 3 Preciso
1 15 2 3 75%
2 3 16 1 80%
3 2 0 8 80%
Preciso Total
78%
Matriz 5.2 - Matriz de confuso do segundo teste bsico do algoritmo LVQ, com um conjunto de treino e
de teste artificial contendo vectores de duas dimenses.
5.2.1.3 Terceiro teste
Para corrigir o facto dos vectores de referncia se distanciarem da rea pretendida, mais uma vez
o valor mximo dos vectores de referncia foi modificado, desta vez para 250. E para garantir que o
algoritmo iterado as vezes suficientes para a relocao dos vectores de referncia, modificou-se
esse valor como a seguir mostrado na Tabela 5.3.
Parmetros
Nmero de vectores = 15
Iteraes = 100
Valor Mnimo = 0
Valor Mximo = 250
Alfa inicial = 1
Alfa final = 0
Tabela 5.3 - Parmetros do algoritmo LVQ para o terceiro teste bsico.
Estes valores permitiram obter clusters bem definidos, sem misturas de vectores de referncia de
classes diferentes, dentro dos limites da amostra de treino e de teste, como poderemos ver no
referencial representado no Grfico 5.3.
Como foi referido, este teste foi o que apresentou melhores resultados de previso, sendo que a
matriz de confuso apresenta uma exactido de previso de 87%.
Classe 1 2 3 Preciso
1 15 2 3 75%
2 0 19 1 95%
3 1 0 9 90%
Preciso Total
87%
Matriz 5.3 - Matriz de confuso do terceiro teste bsico do algoritmo LVQ, com um conjunto de treino e de
teste artificial contendo vectores de duas dimenses.
71
Grfico 5.3 - Ilustrao dos vectores de referncia finais, onde se pode ver a presena de dois
clusters distintos da classe 1 e da classe 3, enquanto a classe 2 apenas apresenta um cluster bem
definido com alguns vectores a sarem fora da sua rea.
Podemos concluir que os parmetros usados neste teste, so parmetros ptimos para as
amostras de dados de treino e de teste. O facto de a matriz de confuso apresentar uma
percentagem menor de exactido para a classe 1, devido ao conjunto de treino, em que os vectores
da classe 3 esto talvez demasiado prximos dos vectores do conjunto 1.
5.2.2 Teste avanado
Este teste foi realizado tendo em conta uma amostra de dados disponvel para este tipo de provas.
As amostras em questo continham vectores de 36 dimenses. A amostra de dados de treino
continha 4435 vectores e a amostra de dados de teste continha 2000 vectores. Nestas amostras
existiam 6 classes distintas, sendo elas etiquetadas com nmeros: 1, 2, 3, 4, 5 e 7. Os
atributos so numricos, definidos num intervalo entre 0 e 140. A descrio detalhada do nmero de
vectores por classe quer de treino quer de teste est descrita na Tabela 5.4.
Classe Treino Teste
1 1072 (24%) 461 (23%)
2 479 (11%) 224 (11%)
3 961 (22%) 397 (20%)
4 415 (9%) 211 (11%)
5 470 (11%) 237 (12%)
7 1038 (23%) 470 (23%)
Tabela 5.4 - Descrio das amostras de treino e de teste para o teste avanado.
Antes mesmo de iniciar os testes que iriam ser relevantes para esta tese, foi realizado um conjunto
de testes para perceber como se comportariam estas amostras com o algoritmo Learning Vector
Quantization. Como foi referido na seco anterior, o valor ideal de alfa final para este algoritmo seria
de 0,1, o que no teste descrito em 5.2.1 no se verificou, pela amostra ser bastante pequena, e por
isso os dados se tornarem mais escassos. Com estas amostras os testes primrios realizados com
valor superior a 0,75 davam uma percentagem de exactido na previso de menos de 50%. Assim,
foi-se diminuindo esse valor at chegarmos a um valor ptimo para o parmetro alfa final, que ser
em todos os testes aqui descritos de 0,05.
72
5.2.2.1 Primeiro teste
Para este teste, foram usados os parmetros descritos na Figura 5.5. Optou-se por definir um
baixo nmero de vectores de referncia por cada classe, bem como um pequeno intervalo onde
esses vectores de referncia se poderiam iniciar para ser mais fcil perceber o que se passara com
os vectores de referncia finais. Esse intervalo foi definido como sendo um intervalo que incidisse
sobre os valores centrais da gama de valores oferecida pelas amostras.
Parmetros
Nmero de vectores = 4
Iteraes = 100
Valor Mnimo = 90
Valor Mximo = 110
Alfa inicial = 0,05
Alfa final = 0
Tabela 5.5 - Parmetros do algoritmo LVQ para o primeiro teste avanado.
Dado que a amostra relativamente grande optou-se por aumentar as iteraes para 100, apesar
de que dado a pequena quantidade definida de vectores de referncia no seria necessrio, pois a
determinada altura esses vectores no se iriam mover, por j estarem bem posicionados. Quanto ao
valor 0,05 definido para o alfa final, experincias anteriores, como j foi referido atrs, mostraram que
valores abaixo de 0,1 obtm ptimos resultados com estas amostras.
Para ilustrar os resultados obtidos com estes parmetros aps a fase de aprendizagem com o
conjunto de treino, foi elaborada uma matriz de confuso com as devidas percentagens [Matriz 5.4].
Classe 1 2 3 4 5 7 Preciso
1 394 0 14 0 24 29 86%
2 16 198 0 1 7 2 88%
3 4 0 371 19 0 3 94%
4 5 0 37 123 0 46 58%
5 40 4 0 6 140 47 59%
7 3 0 13 81 8 365 78%
Preciso Total
79%
Matriz 5.4 - Matriz de confuso do primeiro teste avanado do algoritmo LVQ. Estes resultados foram
obtidos atravs do conjunto de teste com 2000 casos, onde cada vector possua 36 dimenses.
Na matriz de confuso acima, nos quadrados a preto podemos observar a quantidade de classes
previstas com exactido. Podemos calcular a preciso do algoritmo, que neste teste de 79%,
atravs da diagonal seleccionada.
5.2.2.2 Segundo teste
Neste teste mantivemos alguns parmetros como se pode ver na Tabela 5.6. Um dos parmetros
modificado foi o nmero de vectores de referncia por classe, que foi o principal problema encontrado
na seco 5.2.2.1. Esse valor foi modificado para 50, valor que, devido ao nmero de vectores de
referncia mostrado na Tabela 5.5, ainda assim se considera pequeno.
73
Parmetros
Nmero de vectores = 50
Iteraes = 200
Valor Mnimo = 90
Valor Mximo = 110
Alfa inicial = 0,05
Alfa final = 0
Tabela 5.6 - Parmetros do algoritmo LVQ para o segundo teste avanado.
O nmero de iteraes tambm aumentou, devido ao nmero de vectores de referncia por classe
tambm ter aumentado. Caso o nmero de iteraes seja realmente demasiado elevado, isso no
interfere na exactido das previses realizadas pelo algoritmo, dado que o valor de alfa final est
muito baixo, o que permite aos vectores de referncia no se deslocarem para o stio anterior de
onde acabaram de ser transportados e assim sucessivamente. Os resultados conseguidos com o
conjunto de teste, aps a aprendizagem do algoritmo com o conjunto de treino so apresentados na
matriz de confuso ilustrada na Matriz 5.5.
Classe 1 2 3 4 5 7 Preciso
1 445 0 9 0 7 0 97%
2 14 204 1 1 3 1 91%
3 1 0 383 11 0 2 97%
4 4 0 41 121 0 45 57%
5 42 6 5 4 127 53 54%
7 2 0 19 69 5 375 80%
Preciso Total
82%
Matriz 5.5 - Matriz de confuso do segundo teste avanado do algoritmo LVQ. Estes resultados foram
obtidos atravs do conjunto de teste com 2000 casos, onde cada vector possua 36 dimenses.
Calculando a preciso do algoritmo com esta amostra de dados atravs da diagonal da matriz,
obtemos 82% de preciso. Apesar de a preciso ter aumentado, podemos ver que aumentou o
nmero de previses bem sucedidas para as trs primeiras classes e para a ltima, mas que para as
classes 4 e 5 o nmero de previses certas desceu um pouco, o que se poder dever ao facto dos
vectores de referncia serem inicializados aleatoriamente dentro de um intervalo central muito
pequeno.
5.2.2.3 Terceiro teste
Este teste o mais exigente a nvel de tempo de execuo pois foi alterado o parmetro relativo
ao nmero de iteraes do algoritmo, desta vez para um nmero bastante mais elevado, 1000
iteraes. Esta alterao permite-nos ver como funciona o algoritmo com um grande nmero de
iteraes. Outros parmetros tambm foram alterados, tais como o nmero de vectores que mais
uma vez aumentou para um valor ainda mais alto, e que achamos ser o mnimo indicado dado o
grande nmero de vectores de aprendizagem, e o valor mximo e mnimo dos vectores de referncia
iniciais, este intervalo passou a ser um pouco maior, Tabela 5.7.
74
Parmetros
Nmero de vectores = 100
Iteraes = 1000
Valor Mnimo = 50
Valor Mximo = 100
Alfa inicial = 0,05
Alfa final = 0
Tabela 5.7 - Parmetros do algoritmo LVQ para o terceiro teste avanado.
Com a alterao nestes parmetros, principalmente no Valor mximo e Valor mnimo, que se
referem aos valores entre os quais os vectores de referncia vo ser inicializados, pretendemos
aumentar a preciso do algoritmo, diminuindo as previses erradas nas classes 4 e 5.
Na Matriz 5.6 pode-se observar cada preciso parcial, de cada classe, obtida pelo algoritmo aps
a aprendizagem com o conjunto de treino. A classificao do conjunto de teste mostra que a preciso
do algoritmo de 85%. Assim, com as modificaes realizadas conseguimos que a classe 5 fosse
classificada com maior preciso, bem como a classe 4, apesar de nesta ltima classe o aumento de
preciso ter sido muito ligeiro.
Classe 1 2 3 4 5 7 Preciso
1 442 1 4 0 12 2 96%
2 2 212 0 1 6 3 95%
3 2 0 376 15 0 4 95%
4 1 0 39 129 4 42 61%
5 26 3 5 7 154 42 65%
7 2 0 13 64 7 384 82%
Preciso Total
85%
Matriz 5.6 - Matriz de confuso do terceiro teste avanado do algoritmo LVQ. Estes resultados foram
obtidos atravs do conjunto de teste com 2000 casos, onde cada vector possua 36 dimenses.
Podemos concluir que para esta amostra no so necessrias demasiadas iteraes, ou seja, as
100 iteraes dos outros dois testes adaptam-se perfeitamente a esta amostra, sendo que os
vectores no se modificam nas ltimas iteraes. Neste teste o que realmente fez a diferena foi o
maior nmero de vectores de referncia e um intervalo mais aberto, com uma maior gama de valores
para os vectores de referncia iniciais.
5.2.3 Testes avanados: AdventureWorksDW
A finalidade deste teste a comparao do algoritmo implementado com outros algoritmos j
existentes na ferramenta Microsoft SQL Server 2005, tais como, rvores de Deciso [3, 5, 9, 11],
Naive Bayes [3, 5, 9, 11], Clustering [3, 5, 9, 11] e Redes Neuronais [3, 4, 5, 6, 9, 11]. Sero
apresentados dois testes com a base de dados AdventureWorksDW, uma base de dados j fornecida
pela ferramenta utilizada, e que ir permitir comparar o desempenho dos algoritmos j nela existentes
e integrados, com o algoritmo LVQ. No primeiro teste com esta base de dados, comparmos todos os
algoritmos aqui mencionados com o LVQ tendo como conjunto de dados de treino e de teste a
mesma tabela da base de dados. No segundo teste, realizou-se uma partio dessa tabela, onde
80% da tabela funcionou como tabela de treino e 20% como tabela de teste.
75
5.2.3.1 Primeiro teste com AdventureWorksDW
Para executar este teste foi seguido um dos tutoriais [20] disponveis pela Microsoft na rea de
Data Mining. A base de dados utilizada, AdventureWorksDW, foi disponibilizada juntamente com a
ferramenta acima referida. Como a documentao oferecida pela Microsoft [20] que acompanha a
base de dados aqui em questo no menciona um conjunto de dados para comparao de
resultados, aps a classificao do conjunto de teste, optou-se por comparar os dados classificados
do modelo, cuja aprendizagem foi realizada atravs da tabela vTargetMail, com os dados dessa
mesma tabela, sendo o conjunto de treino e de teste o mesmo.
Neste tutorial uma das coisas modificadas foi o atributo a ser classificado, assim sendo iremos
classificar o atributo House Owner que permite, baseado nos atributos de entrada, perceber quais os
clientes com casa prpria e quais os clientes sem casa prpria.
O conjunto de dados de sada considerado apresentava aproximadamente 18000 casos, pelo que
para estas estatsticas apenas foram considerados 2000, desses casos 1481 seriam clientes com
casa prpria, e 519 seriam clientes com casa arrendada ou a viver em casa de outrem.
Seguidamente sero apresentadas as matrizes de confuso obtidas da execuo de cada algoritmo
j fornecido pelo Microsoft SQL Server 2005 usando os parmetros por omisso de cada algoritmo. O
primeiro algoritmo a ser considerado foi o algoritmo de rvores de Deciso, cuja matriz se apresenta
de seguida, Matriz 5.7.
Classe 0 1 Preciso
0 243 276 47%
1 117 1364 92%
Preciso Total
80,4%
Matriz 5.7 - Matriz de confuso do primeiro teste do algoritmo rvores de Deciso cujos conjuntos
de treino e de teste partilham os mesmos dados residentes na tabela vTargetMail.
Como pode ser visto na matriz acima o algoritmo classificou correctamente 92% dos clientes com
casa prpria e menos de metade dos clientes sem casa prpria o que significa que o algoritmo
tende a identificar de maneira errada os clientes sem casa.
O algoritmo de Clustering obteve resultados inferiores ao algoritmo rvores de Deciso,
mostrando resultados igualmente desequilibrados na classificao de clientes, Matriz 5.8.
Classe 0 1 Preciso
0 184 335 36%
1 119 1362 92%
Preciso Total
77,3%
Matriz 5.8 - Matriz de confuso do primeiro teste do algoritmo Clustering, cujos conjuntos
de treino e de teste partilham os mesmos dados residentes na tabela vTargetMail.
Neste algoritmo observa-se um decrscimo na preciso da classificao de clientes sem casa
prpria, tendo tendncia a prever erradamente estes clientes como tendo casa. No que diz respeito
aos clientes cuja classificao correcta , clientes com casa prpria a preciso correspondente
semelhante obtida com o algoritmo rvores de Deciso.
O algoritmo que se segue, Naive Bayes [Matriz 5.9], obteve uma preciso de classificao
ligeiramente inferior ao algoritmo rvores de Deciso [Matriz 5.7]. Apesar do algoritmo Naive Bayes
76
classificar um pouco melhor os clientes sem casa prpria, tambm classifica erradamente num
maior nmero os clientes com casa prpria, o que se traduz num equilbrio quanto ao nmero de
classificaes correctas das pessoas sem casa prpria.
Classe 0 1 Preciso
0 257 262 50%
1 162 1319 89%
Preciso Total
78,8%
Matriz 5.9 - Matriz de confuso do primeiro teste do algoritmo Naive Bayes, cujos conjuntos de
treino e de teste partilham os mesmos dados residentes na tabela vTargetMail.
Apesar desse pequeno equilbrio o algoritmo mostra uma preciso total inferior ao algoritmo
rvores de Deciso [Matriz 5.7] o que significa que na generalidade classificou mais clientes com
casa prpria como clientes sem casa prpria.
O algoritmo Redes Neuronais, do qual descende o algoritmo proposto nesta tese, apresenta
resultados inferiores a qualquer algoritmo aqui apresentado, como mostrado na Matriz 5.10.
Classe 0 1 Preciso
0 160 359 31%
1 104 1377 93%
Preciso Total
76,9%
Matriz 5.10 - Matriz de confuso do primeiro teste do algoritmo Redes Neuronais, cujos
conjuntos de treino e de teste partilham os mesmos dados residentes na tabela vTargetMail.
Redes Neuronais apresenta uma preciso total inferior a todos os outros algoritmos aqui
apresentados, apesar de ser o algoritmo que classifica melhor os clientes com casa prpria,
apresenta resultados muito inferiores no que diz respeito a classificar clientes sem casa prpria.
Tendendo a classificar erradamente os clientes sem casa prpria como clientes com casa prpria.
Seguidamente sero apresentados todos os resultados efectuados com o algoritmo LVQ, bem
como os parmetros usados para cada experincia.
A primeira experincia efectuada com este algoritmo, cujos resultados no sero detalhadamente
aqui expostos, realizou-se com os parmetros por omisso apresentados na ferramenta da Microsoft,
o resultado traduziu-se na classificao de todos os clientes em clientes com casa prpria. Este
resultado nada satisfatrio foi influenciado pelos valores dos vectores de referncia finais, que
estavam a tomar valores infinitos e at negativos. Concluiu-se ser melhor baixar o valor mximo
permitido para os valores dos vectores de referncia iniciais, bem como o nmero de iteraes e o
valor de alfa inicial. Na experincia seguinte, os parmetros utilizados foram os seguintes:
Parmetros
Nmero de vectores = 25
Iteraes = 5
Valor Mnimo = 0
Valor Mximo = 20
Alfa inicial = 0,05
Alfa final = 0
Tabela 5.8 - Parmetros da primeira experincia do algoritmo LVQ para o primeiro teste com
AdventureWorksDW onde os conjuntos de treino e de teste eram representados pela mesma
tabela, vTargetMail.
77
Dado que os valores existentes nos dados de entrada na tabela vTargetMail usada para estes
testes encontravam-se entre 0 e 60, aproximadamente, optou-se por um Valor Mximo intermdio
para os valores dos vectores de referncia iniciais, para evitar que esses vectores possam ser
relocados para valores negativos ou infinitos.
Na Matriz 5.11 pode-se observar os resultados obtidos nesta experincia, a preciso total obtida
com este algoritmo nestas circunstncias inferior a qualquer um dos algoritmos apresentados
anteriormente, o que nos leva alterao dos parmetros do algoritmo, Tabela 5.9.
Classe 0 1 Preciso
0 190 329 37%
1 161 1320 89%
Preciso Total
75,5%
Matriz 5.11 - Matriz de confuso da primeira experincia do algoritmo LVQ, cujos conjuntos
de treino e de teste partilham os mesmos dados residentes na tabela vTargetMail.
Tendo em conta os resultados frgeis obtidos, repetiu-se a experincia, desta vez com outros
parmetros.
Parmetros
Nmero de vectores = 25
Iteraes = 5
Valor Mnimo = 0
Valor Mximo = 20
Alfa inicial = 0,025
Alfa final = 0
Tabela 5.9 - Parmetros da segunda experincia do algoritmo LVQ para o primeiro teste com
AdventureWorksDW onde os conjuntos de treino e de teste eram representados pela mesma tabela.
Desta vez alterou-se apenas valor de Alfa inicial, para que todos os vectores de referncia que
foram relocados e que ainda se encontravam longe dos limites pudessem ser relocados de maneira
correcta. Os resultados com estes parmetros foram ligeiramente melhores que os efectuados
anteriormente, Matriz 5.12.
Classe 0 1 Preciso
0 198 321 38%
1 156 1325 90%
Preciso Total
76,2%
Matriz 5.12 - Matriz de confuso da segunda experincia do algoritmo LVQ, cujos conjuntos
de treino e de teste partilham os mesmos dados residentes na tabela vTargetMail.
A preciso total desta experincia assemelha-se com a obtida com o algoritmo Redes Neuronais.
Esta experincia conseguiu uma preciso parcial dos clientes com casa prpria bastante elevada e
uma preciso parcial dos clientes sem casa prpria diminuta, o que tem sido conseguido em todos
os testes realizados quer com este algoritmo quer com os algoritmos j disponibilizados pelo
Microsoft SQL Server 2005.
O prximo teste apresenta menor discrepncia nestas duas precises parciais de maneira a que
exista uma preciso total elevada e um maior equilbrio entre as classificaes. Quanto aos
parmetros, apenas o valor de alfa inicial sofreu uma alterao para 0.01. Apesar de ser um valor
bastante reduzido em relao ao valor ptimo para este parmetro (0,1), dependendo da quantidade
e das estruturas dos dados de treino e de teste, este parmetro pode ter valores muit
seguir so apresentados os parmetros para
Tabela 5.10 - Parmetros da terceira experincia do algoritmo LVQ para o primeiro teste com
AdventureWorksDW onde os conjuntos de treino e de teste eram representados pela mesma tabela.
Os resultados obtidos neste teste, so apresentados de segu
verificar que a preciso total a mais elevada conseguida com o algoritmo LVQ, podemos comparar
estes resultados com os obtidos com o algoritmo rvores de Deciso, a preciso total semelhante,
com uma nica diferena, estes resultados mostram um maior equilbrio no que diz respeito s
precises parciais, sendo que o algoritmo que at agora mostrou maior preciso parcial na
classificao dos clientes sem casa prpria.
Classe
Preciso Total
Matriz 5.13 - Matriz de confuso da terceira experincia do algoritmo LVQ, cujos conjuntos
de treino e de teste partilham os mesmos dados residentes na tabela
Atravs da observao dos res
Microsoft e dos resultados obtidos n
concluir que Learning Vector Quantization
equilibrados que algoritmos como Redes Neuronais,
aproximados, mas mais equilibrados que os apresentados pelo algoritmo rvores de Deciso.
Os Grficos 5.4 e 5.5 mostram o panorama das precises parciais obtidas por
pelo algoritmo LVQ na ltima experincia
Grfico 5.4 - Representao grfica da preciso parcial da classificao dos clientes sem
casa prpria do primeiro teste com
0
50
100
150
200
250
300
350
rvores de
Deciso
dos dados de treino e de teste, este parmetro pode ter valores muit
seguir so apresentados os parmetros para a terceira experincia deste teste com o algoritmo LVQ
Parmetros
Nmero de vectores = 25
Iteraes = 5
Valor Mnimo = 0
Valor Mximo = 15
Alfa inicial = 0,01
Alfa final = 0
Parmetros da terceira experincia do algoritmo LVQ para o primeiro teste com
onde os conjuntos de treino e de teste eram representados pela mesma tabela.
Os resultados obtidos neste teste, so apresentados de seguida na Matriz 5.13, onde podemos
verificar que a preciso total a mais elevada conseguida com o algoritmo LVQ, podemos comparar
estes resultados com os obtidos com o algoritmo rvores de Deciso, a preciso total semelhante,
tes resultados mostram um maior equilbrio no que diz respeito s
precises parciais, sendo que o algoritmo que at agora mostrou maior preciso parcial na
classificao dos clientes sem casa prpria.
Classe 0 1 Preciso
0 287 232 55%
1 160 1321 89%
Preciso Total
80,4%
Matriz de confuso da terceira experincia do algoritmo LVQ, cujos conjuntos
de treino e de teste partilham os mesmos dados residentes na tabela vTargetMail.
Atravs da observao dos resultados obtidos com os algoritmos presentes na ferramenta da
Microsoft e dos resultados obtidos na ltima experincia realizada com o algoritmo LVQ, pode
Learning Vector Quantization um algoritmo que obtm resultados melhores e mais
ibrados que algoritmos como Redes Neuronais, Clustering ou Naive Bayes
aproximados, mas mais equilibrados que os apresentados pelo algoritmo rvores de Deciso.
Os Grficos 5.4 e 5.5 mostram o panorama das precises parciais obtidas por
experincia aqui apresentada.
Representao grfica da preciso parcial da classificao dos clientes sem
casa prpria do primeiro teste com AdventureWorksDW.
Clustering Naive Bayes Redes
Neuronais
Learning
Vector
Quantization
0 ou Clientes
sem casa
prpria
78
dos dados de treino e de teste, este parmetro pode ter valores muito baixos. A
com o algoritmo LVQ.
Parmetros da terceira experincia do algoritmo LVQ para o primeiro teste com
onde os conjuntos de treino e de teste eram representados pela mesma tabela.
ida na Matriz 5.13, onde podemos
verificar que a preciso total a mais elevada conseguida com o algoritmo LVQ, podemos comparar
estes resultados com os obtidos com o algoritmo rvores de Deciso, a preciso total semelhante,
tes resultados mostram um maior equilbrio no que diz respeito s
precises parciais, sendo que o algoritmo que at agora mostrou maior preciso parcial na
Matriz de confuso da terceira experincia do algoritmo LVQ, cujos conjuntos
vTargetMail.
ultados obtidos com os algoritmos presentes na ferramenta da
com o algoritmo LVQ, pode-se
um algoritmo que obtm resultados melhores e mais
Naive Bayes, e resultados muito
aproximados, mas mais equilibrados que os apresentados pelo algoritmo rvores de Deciso.
Os Grficos 5.4 e 5.5 mostram o panorama das precises parciais obtidas por cada algoritmo e
Representao grfica da preciso parcial da classificao dos clientes sem
0 ou Clientes
sem casa
Grfico 5.5 - Representao grfica da preciso parcial da classificao dos clientes com
casa prpria do primeiro teste com
Pelo Grfico 5.5 pode observar
resultados, ou seja, maior exactido na classificao de
implementado nesta tese, Learning Vector Quantization
LVQ encontra-se em penltimo na classificao de c
casos o separarem do algoritmo rvores de Deciso.
apresenta uma preciso total superior apresentada pelos algoritmos
Redes Neuronais, mostrando uma preciso total semelhante obtida pelo algoritmo rvores de
Deciso, com resultados mais equilibrados a nvel de preciso parcial.
5.2.3.2 Segundo teste com AdventureWorksDW
Tal como no teste anterior, este teste seguiu as linhas de orienta
Microsoft [20], cuja diferena entre a execuo do tutorial e a execuo aqui realizada reside no
atributo a classificar, House Owner
Este teste utiliza apenas uma tabela de treino, mas ao c
treino no so iguais aos dados de teste. Seguindo o guia de partio de tabelas [30] para
Mining fornecido pela Microsoft, separou
treino do modelo, e outra para teste. Assim sendo, 80% da tabela (14877 casos) foi designada para
dados de treino e os restantes 20% (3607 casos) para dados de teste
apresentados contemplam uma amostra de 2000 casos tendo em conta o universo dos dados de
teste.
Tal como no teste anterior a execuo deste teste com algoritmos j oferecidos pela Microsoft
pressupe o uso de parmetros de omisso nesses algoritmos.
O algoritmo rvores de Deciso
de separao da tabela. Os resultados obtidos podem ser observados na matriz de confuso que se
segue, Matriz 5.14.
1290
1300
1310
1320
1330
1340
1350
1360
1370
1380
1390
rvores de
Deciso
Representao grfica da preciso parcial da classificao dos clientes com
casa prpria do primeiro teste com AdventureWorksDW.
observar-se que o algoritmo que consegue obter maior prec
resultados, ou seja, maior exactido na classificao de clientes sem casa prpria
Learning Vector Quantization, em compensao, no Grfico 5.5 o algoritmo
se em penltimo na classificao de clientes com casa prpria, apesar de apenas 40
casos o separarem do algoritmo rvores de Deciso. Apesar deste ltimo resultado o algoritmo LVQ
apresenta uma preciso total superior apresentada pelos algoritmos Clustering
ostrando uma preciso total semelhante obtida pelo algoritmo rvores de
Deciso, com resultados mais equilibrados a nvel de preciso parcial.
AdventureWorksDW
Tal como no teste anterior, este teste seguiu as linhas de orientao do tutorial oferecido pela
Microsoft [20], cuja diferena entre a execuo do tutorial e a execuo aqui realizada reside no
House Owner e no nmero de tabelas utilizadas.
Este teste utiliza apenas uma tabela de treino, mas ao contrrio do teste anterior os dados de
treino no so iguais aos dados de teste. Seguindo o guia de partio de tabelas [30] para
fornecido pela Microsoft, separou-se a tabela vTargetMail em duas vistas distintas, uma para
utra para teste. Assim sendo, 80% da tabela (14877 casos) foi designada para
dados de treino e os restantes 20% (3607 casos) para dados de teste.
apresentados contemplam uma amostra de 2000 casos tendo em conta o universo dos dados de
Tal como no teste anterior a execuo deste teste com algoritmos j oferecidos pela Microsoft
pressupe o uso de parmetros de omisso nesses algoritmos.
O algoritmo rvores de Deciso foi dos primeiros algoritmos a serem testados com este mtodo
eparao da tabela. Os resultados obtidos podem ser observados na matriz de confuso que se
Clustering Naive Bayes Redes
Neuronais
Learning
Vector
Quantization
1 ou Clientes
com casa
prpria
79
Representao grfica da preciso parcial da classificao dos clientes com
que o algoritmo que consegue obter maior preciso nos
clientes sem casa prpria o algoritmo
, em compensao, no Grfico 5.5 o algoritmo
lientes com casa prpria, apesar de apenas 40
Apesar deste ltimo resultado o algoritmo LVQ
Clustering, Naive Bayes e
ostrando uma preciso total semelhante obtida pelo algoritmo rvores de
o do tutorial oferecido pela
Microsoft [20], cuja diferena entre a execuo do tutorial e a execuo aqui realizada reside no
ontrrio do teste anterior os dados de
treino no so iguais aos dados de teste. Seguindo o guia de partio de tabelas [30] para Data
em duas vistas distintas, uma para
utra para teste. Assim sendo, 80% da tabela (14877 casos) foi designada para
Os resultados aqui
apresentados contemplam uma amostra de 2000 casos tendo em conta o universo dos dados de
Tal como no teste anterior a execuo deste teste com algoritmos j oferecidos pela Microsoft
foi dos primeiros algoritmos a serem testados com este mtodo
eparao da tabela. Os resultados obtidos podem ser observados na matriz de confuso que se
1 ou Clientes
com casa
80
Classe 0 1 Preciso
0 256 216 54%
1 196 1332 87%
Preciso Total
79,4%
Matriz 5.14 - Matriz de confuso do segundo teste do algoritmo rvores de Deciso, onde o
conjunto de treino composto por 80% dos casos da tabela vTargetMail e o conjunto de
teste representa os casos restantes dessa tabela.
Apesar da preciso total ser ligeiramente inferior conseguida no primeiro teste [Matriz 5.7]
realizado com este algoritmo, as suas precises parciais esto melhor distribudas, mais equilibradas,
sendo que a preciso parcial dos clientes sem casa prpria aumentou em comparao com o teste
anterior.
Tal como a experincia realizada com o algoritmo de rvores de Deciso, a experincia efectuada
com o algoritmo de Clustering revela tambm resultados semelhantes [Matriz 5.15].
Classe 0 1 Preciso
0 248 226 52%
1 281 1245 82%
Preciso Total
74,7%
Matriz 5.15 - Matriz de confuso do segundo teste do algoritmo Clustering, onde o conjunto
de treino composto por 80% dos casos da tabela vTargetMail e o conjunto de teste
representa os casos restantes dessa tabela.
Tambm este algoritmo apresenta uma preciso total inferior preciso exibida no teste anterior
[Matriz 5.8], mas em contrapartida oferece precises parciais mais estveis, por exemplo, a preciso
parcial da correcta classificao dos clientes sem casa prpria no primeiro teste [Matriz 5.8] de
36%, enquanto neste teste esta mesma preciso subiu para 52%, o que aumentou em 16% os casos
de clientes sem casa prpria classificados correctamente. Quanto aos casos de clientes com casa
prpria, a preciso neste teste situa-se nos 82%, o que representa uma descida de 10% em relao
ao teste anterior [Matriz 5.8]. Pode-se concluir que as precises parciais apesar de mais equilibradas,
reflectem uma preciso total inferior devido classificao errada de clientes com casa prpria.
Em relao ao algoritmo de Naive Bayes, no foi possvel efectuar este teste com um modelo
construdo com este algoritmo, pois os resultados apresentados mostravam que todos os clientes
foram classificados como sendo clientes sem casa prpria o que mostra uma m classificao visto
que a grande maioria dos clientes devem ser classificados como clientes com casa prpria, assim
sendo este algoritmo ignorado para este teste.
O prximo algoritmo, Redes Neuronais, apresenta resultados ligeiramente superiores aos
conseguidos no teste anterior [Matriz 5.10], com um total de casos relativos aos clientes com casa
prpria muito superior, como se pode observar pela Matriz 5.16.
Classe 0 1 Preciso
0 143 331 30%
1 126 1400 92%
Preciso Total
77,2%
Matriz 5.16 - Matriz de confuso do segundo teste do algoritmo Redes Neuronais, onde o
conjunto de treino composto por 80% dos casos da tabela vTargetMail e o conjunto de
teste representa os casos restantes dessa tabela.
81
Tendo em conta que a amostra sobre a qual estamos a realizar estas estatsticas difere do
primeiro para o segundo teste deste captulo, este algoritmo na subseco anterior [Matriz 5.10]
apresentou bons resultados com pouco equilbrio entre as suas precises parciais, o que acontece de
novo neste teste, desta vez a preciso total foi ligeiramente superior, mas continua a existir uma
grande discrepncia entre as precises parciais, sendo que Redes Neuronais tende a classificar
correctamente os clientes com casa prpria, e a classificar de forma errada os clientes sem casa
prpria. Apesar desta discrepncia este algoritmo consegue obter resultados, em termos de preciso
total, semelhantes ao algoritmo rvores de Deciso [Matriz 5.14].
Seguidamente sero apresentados os resultados obtidos com o algoritmo Learning Vector
Quantization. Foram realizadas duas experincias para este teste, a primeira delas efectuada com os
parmetros descritos pela Tabela 5.11.
Parmetros
Nmero de vectores = 25
Iteraes = 5
Valor Mnimo = 0
Valor Mximo = 20
Alfa inicial = 0,05
Alfa final = 0
Tabela 5.11 - Parmetros da primeira experincia do algoritmo LVQ para o segundo teste com
AdventureWorksDW onde o conjunto de treino representa 80% dos casos da tabela vTargetMail
e o conjunto de teste representado por 20% dessa mesma tabela.
Para esta primeira experincia deu-se como valor de Alfa Inicial, 0,05 dado que com o valor
definido por omisso o algoritmo classificava erradamente muitos dos clientes com casa prpria. Os
valores descritos nesta tabela so semelhantes aos valores utilizados na primeira experincia do
primeiro teste [Tabela 5.8]. Os resultados esto descritos na seguinte matriz de confuso [Matriz
5.17].
Classe 0 1 Preciso
0 98 376 21%
1 100 1426 94%
Preciso Total
76,2%
Matriz 5.17 - Matriz de confuso da primeira experincia do segundo teste do algoritmo LVQ,
onde o conjunto de treino composto por 80% dos casos da tabela vTargetMail e o
conjunto de teste representa os casos restantes dessa tabela.
Como est representado, este algoritmo com os parmetros referidos obteve resultados menos
significativos que qualquer outro neste teste. Comparando os resultados com os obtidos com o
algoritmo Redes Neuronais neste teste [Matriz 5.16], pode-se perceber que a discrepncia entre a
percentagem sobre a correcta classificao de clientes com e sem casa prpria continua a ser
elevada, mais elevada com o algoritmo LVQ. Com este algoritmo existe menor quantidade de clientes
classificados como clientes sem casa prpria, o que leva a um aumento dos clientes bem
classificados como clientes com casa prpria, valor este que superior ao obtido pelo algoritmo
Redes Neuronais.
Comparando esta experincia com a primeira experincia efectuada no primeiro teste desta
subseco [Matriz 5.11], em que os valores dos parmetros do algoritmo LVQ so semelhantes,
pode-se perceber que as precises parciais so um pouco diferentes, a correcta classificao de
clientes sem casa prpria neste teste desce para 21%, menos 16% que no teste anterior [Matriz
5.11], enquanto a correcta classificao de
mais 5% que no anterior teste. Pode
para o algoritmo classificar melhor os
A finalidade da prxima experincia diminuir a discrepncia encontrada anterior
os parmetros de entrada utilizados no algoritmo LVQ sero os mesmos utilizados
experincia do teste passado [Tabela
LVQ so exibidos na Matriz 5.18.
Classe
Preciso Total
Matriz 5.18 - Matriz de confuso da segunda experincia do segundo teste do algoritmo
LVQ, onde o conjunto de treino composto por 80% dos casos da tabela
conjunto de teste representa os casos restantes dessa tabela.
Como apresentado na matriz acima, os resultados do algoritmo LVQ com os parmetros da
Tabela 5.10 so muito semelhantes aos resultados apresentados na ltima experincia do teste
anterior [Matriz 5.13], onde apenas existe uma pequena diminuio dos client
correctamente como clientes com
correctamente como clientes sem
existia na experincia anterior foi reduzida em cer
classificao tanto de clientes com casa prpria
estes resultados com os obtidos neste teste pelo algoritmo rvores de Deciso, pode
o algoritmo LVQ obteve uma preciso total maior, devido sua exactido na classificao de
sem casa prpria.
Nos grficos que se seguem esto representados os resultados obtidos por estes quatro
algoritmos, apenas tendo em conta a ltima experincia r
destes grficos obteremos uma viso global do desempenho de cada algoritmo.
Grfico 5.6 - Representao grfica da preciso parcial da classificao dos clientes sem casa
prpria do s
No Grfico 5.6 esto representados os resultados apenas para a classificao correcta dos
clientes sem casa prpria. Como visvel, o algoritmo que melhor prev estes clientes e que
mantm por isso menor discrepncia e
0
50
100
150
200
250
300
rvores de
Deciso
neste teste desce para 21%, menos 16% que no teste anterior [Matriz
5.11], enquanto a correcta classificao de clientes com casa prpria neste teste sobe para 94%,
mais 5% que no anterior teste. Pode-se concluir que com estes parmetros existe um
para o algoritmo classificar melhor os clientes com casa prpria.
A finalidade da prxima experincia diminuir a discrepncia encontrada anterior
os parmetros de entrada utilizados no algoritmo LVQ sero os mesmos utilizados
Tabela 5.10]. Os resultados obtidos com estes parmetros no algoritmo
LVQ so exibidos na Matriz 5.18.
Classe 0 1 Preciso
0 268 206 57%
1 195 1331 87%
Preciso Total
80%
Matriz de confuso da segunda experincia do segundo teste do algoritmo
LVQ, onde o conjunto de treino composto por 80% dos casos da tabela vTargetMail
conjunto de teste representa os casos restantes dessa tabela.
omo apresentado na matriz acima, os resultados do algoritmo LVQ com os parmetros da
so muito semelhantes aos resultados apresentados na ltima experincia do teste
anterior [Matriz 5.13], onde apenas existe uma pequena diminuio dos client
clientes com casa prpria, e um aumento dos clientes classificados
clientes sem casa prpria. A discrepncia entre as duas precises parciais que
existia na experincia anterior foi reduzida em cerca de 40%, o que torna o algoritmo mais exacto na
clientes com casa prpria como de clientes sem casa prpria
estes resultados com os obtidos neste teste pelo algoritmo rvores de Deciso, pode
itmo LVQ obteve uma preciso total maior, devido sua exactido na classificao de
Nos grficos que se seguem esto representados os resultados obtidos por estes quatro
algoritmos, apenas tendo em conta a ltima experincia realizada com o algoritmo LVQ. Atravs
destes grficos obteremos uma viso global do desempenho de cada algoritmo.
Representao grfica da preciso parcial da classificao dos clientes sem casa
prpria do segundo teste com AdventureWorksDW.
rfico 5.6 esto representados os resultados apenas para a classificao correcta dos
. Como visvel, o algoritmo que melhor prev estes clientes e que
mantm por isso menor discrepncia entre estes dados e os representados no Grfico 5.7 o
rvores de
Deciso
Clustering Redes
Neuronais
Learning Vector
Quantization
0 ou Clientes
sem casa
prpria
82
neste teste desce para 21%, menos 16% que no teste anterior [Matriz
neste teste sobe para 94%,
se concluir que com estes parmetros existe uma propenso
A finalidade da prxima experincia diminuir a discrepncia encontrada anteriormente, pelo que
os parmetros de entrada utilizados no algoritmo LVQ sero os mesmos utilizados na ltima
Os resultados obtidos com estes parmetros no algoritmo
Matriz de confuso da segunda experincia do segundo teste do algoritmo
vTargetMail e o
omo apresentado na matriz acima, os resultados do algoritmo LVQ com os parmetros da
so muito semelhantes aos resultados apresentados na ltima experincia do teste
anterior [Matriz 5.13], onde apenas existe uma pequena diminuio dos clientes classificados
, e um aumento dos clientes classificados
. A discrepncia entre as duas precises parciais que
ca de 40%, o que torna o algoritmo mais exacto na
clientes sem casa prpria. Comparando
estes resultados com os obtidos neste teste pelo algoritmo rvores de Deciso, pode-se observar que
itmo LVQ obteve uma preciso total maior, devido sua exactido na classificao de clientes
Nos grficos que se seguem esto representados os resultados obtidos por estes quatro
ealizada com o algoritmo LVQ. Atravs
Representao grfica da preciso parcial da classificao dos clientes sem casa
rfico 5.6 esto representados os resultados apenas para a classificao correcta dos
. Como visvel, o algoritmo que melhor prev estes clientes e que
ntre estes dados e os representados no Grfico 5.7 o
0 ou Clientes
algoritmo LVQ, sendo que o algoritmo que mostra um valor inferior aos outros algoritmos Redes
Neuronais
Grfico 5.7 - Representao grfica da preciso parcial da cla
prpria do segundo teste com
Neste grfico pode observar-
casa prpria, mas sim o algoritmo de Redes Neuronais, sendo que
aparece em segundo lugar juntamente com rvores de Deciso. Apesar do algoritmo LVQ no ser o
algoritmo que melhor classifica correctamente os
atrs o algoritmo que em todo o conjunto de dad
classificao de clientes com casa prpria
5.2.4 Concluso das experincias
Estes testes foram fundamentais para apreender o desempenho conseguido pelo algoritmo
Learning Vector Quantization com os diferentes tipos de dados.
No teste bsico os dados de treino e de teste apenas consistiam em vectores de duas dimenses,
que eram facilmente representados num grfico, e onde se identificavam os clusters definidos pelos
vectores de referncia finais, aps a fase de treino. O conjunto de dados de treino e teste era
pequeno e por isso o valor de A
preciso de classificao igual a
vectores de referncia finais, aps o processo de aprendizagem do modelo.
Um conjunto de dados de treino e de teste mais complexo foi utilizado no teste avanado, onde
cada vector tinha 36 dimenses. Este teste foi importante
algoritmo na presena de dados de treino e teste com uma extenso considervel. Com
dados de grande extenso este algoritmo funciona correctamente com um valor d
baixo, 0,05. Nestas experincias o algoritmo obteve precises elevadas, em que a mais distinta foi
85%. Para este tipo de dados, onde existe um grande nmero de atributos a considerar, necessrio
que o nmero de iteraes tambm seja elevado, e que os valores Mnimo e Mximo par
dos vectores de referncia iniciais sejam adequados aos valores existentes no conjunto de treino.
O ltimo teste realizado com este algoritmo, e o mais importante, envolveu a base de dados j
existente no Microsoft SQL Server 2005 e teve como
1150
1200
1250
1300
1350
1400
1450
rvores de
Deciso
, sendo que o algoritmo que mostra um valor inferior aos outros algoritmos Redes
Representao grfica da preciso parcial da classificao dos clientes com casa
prpria do segundo teste com AdventureWorksDW.
-se que o algoritmo LVQ no o melhor a classificar
, mas sim o algoritmo de Redes Neuronais, sendo que Learning Vector
em segundo lugar juntamente com rvores de Deciso. Apesar do algoritmo LVQ no ser o
algoritmo que melhor classifica correctamente os clientes com casa prpria , como j foi referido
atrs o algoritmo que em todo o conjunto de dados se mantm mais estvel e equilibrado na
casa prpria e clientes sem casa prpria.
Concluso das experincias
Estes testes foram fundamentais para apreender o desempenho conseguido pelo algoritmo
com os diferentes tipos de dados.
No teste bsico os dados de treino e de teste apenas consistiam em vectores de duas dimenses,
que eram facilmente representados num grfico, e onde se identificavam os clusters definidos pelos
ferncia finais, aps a fase de treino. O conjunto de dados de treino e teste era
Alfa inicial mantinha-se a 1, valor com o qual se conseguia obter uma
igual a 87%. Este valor ptimo conseguido atravs da observao dos
vectores de referncia finais, aps o processo de aprendizagem do modelo.
Um conjunto de dados de treino e de teste mais complexo foi utilizado no teste avanado, onde
cada vector tinha 36 dimenses. Este teste foi importante para perceber qual era o comportamento do
algoritmo na presena de dados de treino e teste com uma extenso considervel. Com
este algoritmo funciona correctamente com um valor d
incias o algoritmo obteve precises elevadas, em que a mais distinta foi
85%. Para este tipo de dados, onde existe um grande nmero de atributos a considerar, necessrio
que o nmero de iteraes tambm seja elevado, e que os valores Mnimo e Mximo par
dos vectores de referncia iniciais sejam adequados aos valores existentes no conjunto de treino.
ltimo teste realizado com este algoritmo, e o mais importante, envolveu a base de dados j
existente no Microsoft SQL Server 2005 e teve como principal objectivo comparar os algoritmos j
rvores de
Deciso
Clustering Redes
Neuronais
Learning Vector
Quantization
1 ou Clientes
com casa
prpria
83
, sendo que o algoritmo que mostra um valor inferior aos outros algoritmos Redes
ssificao dos clientes com casa
no o melhor a classificar clientes com
Learning Vector Quantization
em segundo lugar juntamente com rvores de Deciso. Apesar do algoritmo LVQ no ser o
, como j foi referido
os se mantm mais estvel e equilibrado na
Estes testes foram fundamentais para apreender o desempenho conseguido pelo algoritmo
No teste bsico os dados de treino e de teste apenas consistiam em vectores de duas dimenses,
que eram facilmente representados num grfico, e onde se identificavam os clusters definidos pelos
ferncia finais, aps a fase de treino. O conjunto de dados de treino e teste era
1, valor com o qual se conseguia obter uma
ravs da observao dos
Um conjunto de dados de treino e de teste mais complexo foi utilizado no teste avanado, onde
qual era o comportamento do
algoritmo na presena de dados de treino e teste com uma extenso considervel. Com conjuntos de
este algoritmo funciona correctamente com um valor de alfa inicial muito
incias o algoritmo obteve precises elevadas, em que a mais distinta foi
85%. Para este tipo de dados, onde existe um grande nmero de atributos a considerar, necessrio
que o nmero de iteraes tambm seja elevado, e que os valores Mnimo e Mximo para os valores
dos vectores de referncia iniciais sejam adequados aos valores existentes no conjunto de treino.
ltimo teste realizado com este algoritmo, e o mais importante, envolveu a base de dados j
principal objectivo comparar os algoritmos j
1 ou Clientes
com casa
84
existentes nesta ferramenta com o algoritmo LVQ. No primeiro teste realizado, onde os dados de
treino eram iguais aos dados de teste, observou-se que o algoritmo LVQ conseguia obter melhores
resultados com valores de Alfa inicial muito baixos (0,01) dado a extenso dos dados. Em
comparao com outros algoritmos, o algoritmo LVQ teve uma preciso semelhante obtida pelo
algoritmo rvores de Deciso e superior obtida pelos algoritmos Clustering, Naive Bayes e Redes
Neuronais. A nica diferena a nvel de classificaes correctas entre os algoritmos LVQ e rvores de
Deciso verificou-se ao nvel do equilbrio das classificaes, os resultados do algoritmo LVQ
mostraram uma discrepncia inferior entre as classificaes correctas dos clientes com casa prpria
e dos clientes sem casa prpria. No segundo teste realizado, dividiu-se o conjunto de dados de uma
tabela em dados de treino e de teste, ou seja, 80% dos casos da tabela faziam parte da vista com a
qual o modelo foi treinado, e os restantes casos foram introduzidos na vista para testar o modelo. Os
resultados de todos os algoritmos mostraram que houve uma pequena descida na preciso total.
Apesar dessa descida, o algoritmo LVQ manteve a uma boa preciso de 80%, com os mesmos
parmetros referidos no teste anterior, e obteve resultados semelhantes ao algoritmo rvores de
Deciso que neste teste conseguiu resultados mais equilibrados das precises parciais.
Para concluir e comparando todos os algoritmos aqui estudados, atravs da observao dos
vectores de referncia finais aps o processo de aprendizagem do modelo, consegue-se prever os
parmetros de entrada adequados para os conjuntos de dados de treino e de teste. Com os
parmetros correctos o algoritmo LVQ consegue obter resultados melhores e mais equilibrados que
os obtidos com os algoritmos Clustering, Redes Neuronais e Naive Bayes, e resultados equiparados
aos obtidos com o algoritmo rvores de Deciso, sendo que em alguns conjuntos de dados o
algoritmo Learning Vector Quantization consegue obter resultados mais equilibrados que o algoritmo
rvores de Deciso.
85
6 Concluso
Um novo algoritmo desenvolvido por Kohonen, foi proposto para ser integrado na ferramenta da
Microsoft para Data Mining, o Microsoft SQL Server 2005. Learning Vector Quantization [1, 2, 12, 13,
14, 15, 16, 17] um tipo de Redes Neuronais Artificiais [3, 4, 5, 6, 9, 11] e, como tal partilha algumas
das suas caractersticas, como o facto de fazer parte da lista de algoritmos supervisionados, tais
como rvores de Deciso [3, 5, 9, 11], Nearest Neighbor [3, 5, 9, 11] e Naive Bayes [3, 5, 9, 11].
Neste tipo de algoritmos, todos os factores conhecidos ou variveis de entrada necessitam de ser
fornecidos para que se consiga encontrar as melhores relaes entre eles. A previso baseada em
valores conhecidos ou variveis alvo, atravs das quais o engenho de Data Mining ir encontrar o
valor mais provvel para os valores desconhecidos. Outro tipo de Data Mining abordado foi o Data
Mining no supervisionado, no qual podemos ver inserido o algoritmo Clustering [3, 5, 9, 11]. Este tipo
de Data Mining no usado para fazer previses, logo as variveis alvo no so requeridas. Os
dados so colocados num formato que torna mais fcil a sua interpretao. O algoritmo Clustering [3,
5, 9, 11] tem a caracterstica de agrupar os dados em grupos baseados em caractersticas comuns,
para depois poderem ser interpretados.
O algoritmo de Redes Neuronais Artificias, do qual deriva o algoritmo Learning Vector
Quantization, baseia-se numa rede que representa um conjunto de unidades de entrada/sada ligadas
entre si, onde cada ligao tem um peso associado. Durante a fase de aprendizagem, a rede
aprende, ajustando os pesos para que possa prever a etiqueta da classe correcta das amostras de
entrada. O algoritmo LVQ utiliza o mtodo do algoritmo Nearest Neighbor, na fase de treino para
encontrar o vector de referncia mais perto do vector de aprendizagem retirado do conjunto de
entrada. Os pesos das ligaes do neurnio de sada, ou vector de referncia, so depois adaptados,
dependendo da classe do vector de referncia e do padro de treino coincidirem ou no. Se
coincidem, o vector de referncia movido para mais perto do padro de treino, caso contrrio
movido para mais longe.
Existem algumas ferramentas especializadas na integrao de algoritmos para as tarefas de
Data Mining [9, 11], tais as ferramentas disponveis pelo Oracle [11, 29], SAS [7, 8] e Microsoft [3, 4,
5]. Destas trs ferramentas foi escolhido o Microsoft SQL Server 2005 para a integrao do algoritmo
LVQ, por ser o mais utilizado, e por ter disponvel uma equipa especializada em desenvolvimento
Data Mining que oferece documentao para esta tarefa, bem como a possibilidade de
desenvolvimento do algoritmo e de todo o cdigo de integrao, o que inclui as interfaces aqui
referidas, em duas linguagens: C++ e C#. A ferramenta oferecida pelo SAS, SAS Data Miner era
praticamente invivel, pois no s oferece pouca informao sobre como integrar novos algoritmos
como tem uma linguagem prpria com a qual necessrio que o programador se familiarize. A
ferramenta oferecida pelo Oracle tambm era uma boa opo, mas tem desvantagens, tais como no
ter um grupo de apoio de Data Mining que possa ajudar o programador na tarefa de integrao do
novo algoritmo e o modelo de minerao ser construdo ainda com cdigo desenvolvido pelo
programador, o que torna o processo de construo do modelo mais moroso e menos intuitivo que no
Microsoft SQL Server 2005.
86
Aps a integrao do algoritmo desenvolvido com a ferramenta da Microsoft, verificaram-se as
vantagens que o algoritmo apresentava. Para alm de ser um algoritmo de fcil compreenso, por ser
muito simples e, portanto, simples de programar, gerando prottipos fceis de perceber, o LVQ1 um
algoritmo que faz parte da colectnea de algoritmos desenvolvidos que possui tempos de treino
semelhantes aos algoritmos rvores de Deciso, Naive Bayes e Clustering, dependendo do tamanho
da amostra de treino, e tempos de treino inferiores ao algoritmo Redes Neuronais. Mas a grande
vantagem deste algoritmo encontra-se na observao dos vectores de referncia finais, ou seja, aps
o treino, o utilizador poder consult-los para redefinir os parmetros do algoritmo, de maneira a obter
um maior nmero de classificaes correctas.
A ideia de conseguir integrar um algoritmo simples, fcil de compreender e de programar, rpido e
robusto no reportrio de algoritmos j disponibilizados pela Microsoft foi o que impulsionou este
trabalho, de maneira a oferecer rea de Data Mining mais uma tcnica para previso de variveis e
eventos.
87
7 Anexo: Arquitectura Microsoft SQL Server 2005
A arquitectura Analysis Services [11] pode ser dividida em arquitectura do cliente, usada para
fornecer interfaces a aplicaes de front-end, e arquitectura do servidor, que guarda o mecanismo
que fornece a funcionalidade e o poder desses servios. As arquitecturas do cliente e do servidor tm
componentes separados que so acedidos de maneira diferente. Por exemplo, os servios do cliente
fornecem a funcionalidade necessria para criar componentes locais que so subconjuntos dos
componentes do servidor. Os componentes do servidor fornecem os dados do ncleo e os servios
necessrios para suportar as tarefas do Analysis Services.
7.1.1 Arquitectura do servidor
A arquitectura
1
do Analysis Services [11] do lado do servidor fornece facilidades para criar e
manipular cubos OLAP (que esto fora do mbito desta tese) e modelos de minerao de dados.
Ligaes s fontes de dados, tal como o acesso local segurana, so tambm geridos pelo
servidor. O servidor gere a mecnica do armazenamento de dados medida que os cubos e os
modelos esto a ser processados.
A interface utilizador fornecida pelo Analysis Manager contm Data Transformation Services
(DTS), um servio do Microsoft SQL Server 2005 que limpa e transfere dados, enquanto eles se
movem entre fontes de dados. O Analysis Manager a principal interface utilizador para o Analysis
Services, mas existem outras interfaces de programao que possibilitam as aplicaes
personalizadas de front-end interagir com modelos de objectos COM que controlam a interface do
servidor. Apesar do Analysis Services ter muitas funes que so usadas para minerao de dados,
como mostra a Figura 4.1, algumas das caractersticas do servidor so especialmente desenhadas
para minerao.
Figura 7.1 Arquitectura do servidor de Analysis Services [11]
1
Microsoft. SQL Server Data Mining: Plug-In Algorithms. [Online] [Cited: 08 05, 2008.]
http://msdn.microsoft.com/en-us/library/ms345133.aspx#ssd_topic3.
7.1.2 Arquitectura do cliente
O lado do cliente
1
[11] primeiro desenhado para fornecer uma ponte, ou interface, entre as
funes do servidor e as aplicaes personalizadas.
interaces e tambm fornece interfaces ao OLE DB para
conectividade directa a aplicaes Microsoft Visual C++ ou a
Figura 7.2
7.1.3 Fluxo de dados
Esta seco explica o fluxo d
algoritmos. Todos os passos na
encontram dentro dos quadrados ou crculos:
Inicio do servidor
Ao incio, o Analysis Server ir in
ligados, e ir guardar em cache os seus ponteiros da interface
Informao dos algoritmos de minerao
Em resposta aos pedidos de descoberta dos MINING_SERVICES, o servid
fornecedores de algoritmos do Gestor de Algoritmos (representada pela sua interface da cache
correspondente IDMAlgorithmFactory
IDMAlgorithmMetadata.
Criao do modelo de minerao
Quando um modelo de minerao de dados criado, um objecto de metadados instanciado para
ele no servidor e guardado no disco. Neste ponto, ele no tem uma instncia de algoritmo associada.
Contudo, ser validada contra informao obtida da int
de algoritmo correspondente.
1
Microsoft. SQL Server Data Mining: Plug
http://msdn.microsoft.com/en-us/library/ms345133.aspx#ssd_topic3.
7.1.2 Arquitectura do cliente
] primeiro desenhado para fornecer uma ponte, ou interface, entre as
funes do servidor e as aplicaes personalizadas. PivotTable Service gere o ponto crucial destas
interaces e tambm fornece interfaces ao OLE DB para Data Mining, o qual
conectividade directa a aplicaes Microsoft Visual C++ ou a ActiveX Data Objects
Arquitectura do cliente do Analysis Services [11]
de dados e o controlo entre o Analysis Server e os fornecedores de
algoritmos. Todos os passos na Figura 4.1 sero descritos, tendo em conta as aces que se
encontram dentro dos quadrados ou crculos:
instanciar todos os fornecedores de algoritmos Plug
ligados, e ir guardar em cache os seus ponteiros da interface IDMAlgorithmFactory
minerao
Em resposta aos pedidos de descoberta dos MINING_SERVICES, o servidor ir iterar pela lista de
fornecedores de algoritmos do Gestor de Algoritmos (representada pela sua interface da cache
IDMAlgorithmFactory) e ir obter a informao relevante atravs da interface
erao
Quando um modelo de minerao de dados criado, um objecto de metadados instanciado para
ele no servidor e guardado no disco. Neste ponto, ele no tem uma instncia de algoritmo associada.
Contudo, ser validada contra informao obtida da interface IDMAlgorithmMetadata
SQL Server Data Mining: Plug-In Algorithms. [Online] [Cited: 08 05, 2008.]
us/library/ms345133.aspx#ssd_topic3.
88
] primeiro desenhado para fornecer uma ponte, ou interface, entre as
gere o ponto crucial destas
, o qual por sua vez fornece
ActiveX Data Objects (ADO).
e os fornecedores de
sero descritos, tendo em conta as aces que se
stanciar todos os fornecedores de algoritmos Plug-in registados e
IDMAlgorithmFactory.
or ir iterar pela lista de
fornecedores de algoritmos do Gestor de Algoritmos (representada pela sua interface da cache
) e ir obter a informao relevante atravs da interface
Quando um modelo de minerao de dados criado, um objecto de metadados instanciado para
ele no servidor e guardado no disco. Neste ponto, ele no tem uma instncia de algoritmo associada.
IDMAlgorithmMetadata do fornecedor
89
Figura 7.3 - Fluxo de dados de um Algoritmo Plug-in [14]
Processamento da estrutura de minerao
Aps um pai do modelo de minerao da estrutura ser processado, o objecto AttributeSet criado
pelo servidor validado contra cada fornecedor do modelo de algoritmo filho para confirmar que o
AttributeSet est numa forma que pode ser consumida pelo algoritmo. Isto levado a cabo invocando
o mtodo ValidateAttributeSet na interface do fornecedor de algoritmo IDMAlgorithmMetadata.
Treino do modelo de minerao
Quando um pedido de processamento levado pelo servidor para um modelo de minerao de
dados, o mtodo CreateAlgorithm no fornecedor do algoritmo correspondente IDMAlgorithmFactory
invocado para criar uma nova instncia do algoritmo associada com o modelo. A interface
IDMAlgorithm na instncia do algoritmo e interfaces relacionadas obtidas dele so usadas pelo
servidor para passar casos, treinar a instncia do algoritmo, e salvar os seus contedos, como
detalhados a seguir:
90
1. A instncia do algoritmo primeiramente inicializada com um objecto AttributeSet
(IDMAttributeSet) que pode ser acedido pelos algoritmos durante o treino para obter
informao sobre os atributos.
2. Depois, o servidor inicia o treino chamando IDMAlgorithm::InsertCases com um parmetro
IDMPushCaseSet. O fornecedor do algoritmo na verdade requerido para implementar um
objecto que expe a interface IDMCaseProcessor que passada ao Analysis Server, em
resposta ao pedido InsertCases, via IDMPushCaseSet::StartCases.
3. Depois do servidor receber o objecto do algoritmo CaseProcessor, empurra casos para ele,
para processamento, invocando o mtodo ProcessCase para cada caso.
Previso do modelo de minerao
Em resposta a uma query de previso, o processador de querys do Analysis Server avalia a
previso usando o mtodo Predict na interface do modelo (IDMAlgorithm::Predict). Chamadas a
funes so avaliadas usando os metadados obtidos atravs da interface do fornecedor do algoritmo
IDMAlgorithmMetadata.
Procura no modelo de minerao
Em resposta aos pedidos de descoberta para MINING_MODEL_CONTENT, o servidor usa uma
chamada interface do correspondente modelo IDMAlgorithm para pedir uma navegao de
contedo de objectos que expe a interface IDMAlgorithmNavigation.
Persistncia do modelo de minerao
A interface ncleo numa instncia do algoritmo IDMAlgorithm pode ser interrogada usando
COM para a interface IDMPersist. Esta interface usada para carregar e guardar os contedos do
algoritmo de e para o espao de armazenamento do objecto do modelo de minerao de dados que
tem a instncia do algoritmo.
Drillthrough do modelo de minerao
Enquanto se percorre o contedo de um modelo de minerao visualizado, um utilizador pode
pedir para ver os casos por debaixo que pertencem a um n particular no grfico de contedos. Se o
algoritmo suporta operaes Drillthrough, o Analysis Server constri uma estrutura de dados interna
associada com o modelo que mapeia casos de treino para corresponderem a ns no contedo do
grfico. De modo a construir esta estrutura para usar durante a procura, o servidor usa o mtodo
IDMAlgorithm::GetNodeIDs para cada caso at ao fim do treino.
Dimenses de minerao de dados
O Analysis Server permite aos utilizadores construir uma dimenso de minerao de dados
baseada no contedo de um modelo de dados. Esta dimenso pode ser includa num cubo OLAP que
usa as mesmas dimenses que o modelo onde foi construdo, e a sua hierarquia descoberta pode ser
usada para deslizar os dados de facto em maneiras interessantes.
Tratamento de erros
Os fornecedores de algoritmos devem fornecer erros padro e popular objectos, IErrorInfo.
91
8 Glossrio
Algoritmos de Data Mining: um algoritmo de data mining um algoritmo matemtico e estatstico
que transforma os casos presentes no conjunto de dados original no modelo de data mining. O visual
do modelo depende do algoritmo de data mining aplicado aos dados.
Aprendizagem Supervisionada: nas tcnicas de Data Mining que usam uma aprendizagem
supervisionada, todos os factores conhecidos, ou variveis de entrada, necessitam de ser dadas para
que o engenho do Data Mining possa encontrar as melhores relaes entre esses atributos para que
uma regra seja construda dentro do modelo de minerao. A previso baseada em valores
desconhecidos ou variveis alvo, significando que o engenho de Data Mining ir encontrar o valor
mais provvel para esses valores desconhecidos, baseado nos valores conhecidos fornecidos com as
variveis de entrada.
Aprendizagem No Supervisionada: as tcnicas que utilizam este tipo de aprendizagem no so
usadas para realizar previses, logo os valores desconhecidos para classificao no so requeridos.
Em vez disso, os dados so colocados num formato que torna mais fcil para ns que eles faam
sentido.
Casos: cada item de dados histricos que usado como fonte para um modelo de minerao de
dados um caso.
Data Mining: o processo de descoberta de padres e relaes importantes atravs da anlise
automatizada e a classificao de largas quantidades de dados histricos guardados nas bases de
dados ou data warehouses.
Data Warehouse: armazm central que guarda os dados que foram extrados dos dados
operacionais.
Matriz de confuso: uma ferramenta de visualizao especialmente utilizada na aprendizagem
supervisionada, para representar os dados conseguidos nas tarefas de previso e classificao. Cada
coluna da matriz representa as instncias numa classe prevista, enquanto que cada linha representa
as instncias numa classe actual. Um dos benefcios da matriz de confuso que se torna fcil ver se
o sistema est a confundir duas classes.
Modelos de Minerao: uma estrutura fsica de um subconjunto de dados compilados de um
algoritmo minerao de dados, juntamente com a descrio do conjunto de dados original. Data
Mining precisa de uma estrutura que contenha os padres presentes nas bases de dadas envolvidas.
Esta estrutura , ento, usada como base para realizar previses baseadas em novos dados para
preencher os espaos em branco deixados pelos valores em falta. Juntando informao do conjunto
92
de dados original, a aplicao de Data Mining constri um subconjunto de dados que compilado
usando um algoritmo de Data Mining. Este conjunto resultado pode ento ser usado para fazer
previses contra o conjunto de dados inicial.
Padres: um padro um conjunto de eventos que ocorre com frequncia suficiente no conjunto de
dados para revelar uma relao entre eles.
Tcnicas de Data Mining: Considera-se uma tcnica de Data Mining cada algoritmo desenvolvido
para esse propsito que execute as tarefas consagradas pelo Data Mining. Existem algumas tcnicas
mais conhecidas e utilizadas como o caso de rvores de Deciso, Nearest Neighbor, Naive Bayes,
Redes Neuronais e Clustering.
Tarefas de Data Mining: Em Data Mining, uma tarefa corresponde a um tipo de problema de
descoberta de conhecimento, para o qual se pretende arranjar uma soluo. Existem vrios tipos de
tarefas, tais como Previso, Classificao, Regresso, Clustering entre outras.
93
9 Bibliografia
[1]. Kohonen, Teuvo. Self-Organizing Maps. s.l. : Springer-Verlag, 1995.
[2]. Kohonen, Teuvo. SelF-Organization and Associative Memory. s.l. : Springer-Verlag, 1989.
[3]. Cortes, Bruno. Sistemas de Suporte Deciso. s.l. : FCA, 2005.
[4]. Marques, Jorge Salvador. Reconhecimento de padres mtodos estatsticos e neuronais. s.l. :
IST-press, 1999.
[5]. S, J.P. Marques de. Pattern Recognition. s.l. : Springer, 2001.
[6]. Haykin, Simon. Neural Networks, A Comprehensive Foundation. s.l. : Prentice Hall, 1999.
[7]. Mitchell, Tom M. Machine Learning. s.l. : McGraw Hill.
[8]. Kimball, Ralph e Ross, Margy. The Data Warehouse Toolkit. Second Edition. s.l. : John Wiley &
Sons, 2002.
[9]. Han, J. and M., Kamber. Data Mining: Concepts and Techniques. s.l. : Morgan Kaufmann, 2001.
[10]. Gamma, Erich, et al. Design Patterns, Elements of Reusable Object-Oriented Software. s.l. :
Addison-Wesley, 1995.
[11]. Seidman, Claude. Data Mining with Microsoft SQL Server 2000. s.l. : Microsoft Press, 2001.
[12]. Application of LVQ to novelty detection using outlier training data. Lee, H. J. e Cho, S. Z. 13,
October de 2006, PRL, Vol. 27, pp. 1572-1579.
[13]. One-dimensional kohonen LVQ nets for multidimensional pattern recognition. Skubalska
Rafajlowicz, E. 2000, International Journal of Applied Mathematics and Computer Science, Vol. 10,
pp. 767-778.
[14]. Comparison of FA LVQ and modified backpropagation in artificial odor discrimination system.
Kusumoputro, B. s.l. : ACTA Press, 1999, In Proceedings of the Eighteenth IASTED International
Conference Modelling, Identification and Control, pp. 434-437.
[15]. Bill classification by using the LVQ method. Kosaka, T., Omatu, S. e Fujinaka, T. s.l. : LTD
Himeji, In Proceedings of the IEEE International Conference on Systems, Man and Cybernetics, Vol.
3, pp. 1430-1435.
[16]. Finite-sample convergence properties of the LVQ1 algorithm and the batch LVQ1 algorithm.
Bermejo, S. e Cobertany, J. 2001, Neural Processing Letters, Vol. 13, pp. 135-157.
[17]. Performance analysis of LVQ algorithms: a statistical physics approach. Ghosh, Anarta, Biehl,
Michael e Hammer, Barbara. July de 2006, Neural Networks archive, Vol. 19, pp. 817-829.
[18]. Russel, S. e Norvig, P. Artificial Intelligence - A Modern Approach. Second Edition. s.l. : Prentice
Hall, 2003.
[19]. Luger, G. L. e Stubblefield, W. A. Artificial Intelligence - Structures and Strategies for Complex
Problem Solving. Second Edition. s.l. : Benjamin/Cummings Publishing, 1993.