47
5/10/2018 MineraoeVisualizaodeDadosusandoJava-slidepdf.com http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 1/47 M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 1  1 I n t r o d u ç ã o 2  1 . 1 S o b r e e s t e d o c u m e n t o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2  2 W e k a I n f o r m a ç õ e s G e r a i s 3  3 W e k a R e p r e s e n t a ç ã o d e D a d o s 6  3 . 1 C r i a n d o R e l a ç õ e s ( a r q u i v o s  . A R F F  ) e m A p l i c a ç õ e s e m J a v a . . . . . . . . . . . . . . . . . . . . . 6  4 W e k a Á r v o r e s d e D e c i s ã o 9  4 . 1 I n t r o d u ç ã o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9  4 . 2 U s a n d o Á r v o r e s d e D e c i s ã o e m A p l i c a ç õ e s e m J a v a . . . . . . . . . . . . . . . . . . . . . . . . . 9  5 W e k a R e d e s N e u r a i s  M u l t i l a y e r P e r c e p t r o n  1 3  5 . 1 I n t r o d u ç ã o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3  5 . 2 U s a n d o R e d e s N e u r a i s  M u l t i l a y e r P e r c e p t r o n  e m A p l i c a ç õ e s e m J a v a . . . . . . . . . . . . . . . . 1 3  6 W e k a A g r u p a m e n t o c o m  K - M e a n s  1 6  6 . 1 I n t r o d u ç ã o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 6  6 . 2 U s a n d o o A l g o r i t m o  K - M e a n s  e m A p l i c a ç õ e s e m J a v a . . . . . . . . . . . . . . . . . . . . . . . . 1 6  7 V i s u a l i z a ç ã o u s a n d o C o o r d e n a d a s P a r a l e l a s 1 8  7 . 1 I n t r o d u ç ã o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 8  7 . 2 I m p l e m e n t a ç ã o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9  7 . 3 P o s s í v e i s m e l h o r i a s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 9  8 V i s u a l i z a ç ã o d e G r a f o s c o m J U N G 3 0  8 . 1 I n t r o d u ç ã o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 0  8 . 2 I m p l e m e n t a ç ã o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 0  R e f e r ê n c i a s 4 7  R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  r a f a e l . s a n t o s  

Mineração e Visualização de Dados usando Java

Embed Size (px)

Citation preview

Page 1: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 1/47

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 1  

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a    

S u m á r i o      

1 I n t r o d u ç ã o 2  

1 . 1 S o b r e e s t e d o c u m e n t o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2  

2 W e k a I n f o r m a ç õ e s G e r a i s 3  

3 W e k a R e p r e s e n t a ç ã o d e D a d o s 6  

3 . 1 C r i a n d o R e l a ç õ e s ( a r q u i v o s   . A R F F  ) e m A p l i c a ç õ e s e m J a v a . . . . . . . . . . . . . . . . . . . . . 6  

4 W e k a Á r v o r e s d e D e c i s ã o 9  

4 . 1 I n t r o d u ç ã o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9  

4 . 2 U s a n d o Á r v o r e s d e D e c i s ã o e m A p l i c a ç õ e s e m J a v a . . . . . . . . . . . . . . . . . . . . . . . . . 9  

5 W e k a R e d e s N e u r a i s   M u l t i l a y e r P e r c e p t r o n   1 3 

5 . 1 I n t r o d u ç ã o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3  

5 . 2 U s a n d o R e d e s N e u r a i s   M u l t i l a y e r P e r c e p t r o n   e m A p l i c a ç õ e s e m J a v a . . . . . . . . . . . . . . . . 1 3  

6 W e k a A g r u p a m e n t o c o m   K - M e a n s   1 6 

6 . 1 I n t r o d u ç ã o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 6  

6 . 2 U s a n d o o A l g o r i t m o   K - M e a n s   e m A p l i c a ç õ e s e m J a v a . . . . . . . . . . . . . . . . . . . . . . . . 1 6  

7 V i s u a l i z a ç ã o u s a n d o C o o r d e n a d a s P a r a l e l a s 1 8  

7 . 1 I n t r o d u ç ã o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 8  

7 . 2 I m p l e m e n t a ç ã o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9  

7 . 3 P o s s í v e i s m e l h o r i a s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 9  

8 V i s u a l i z a ç ã o d e G r a f o s c o m J U N G 3 0  

8 . 1 I n t r o d u ç ã o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 0  

8 . 2 I m p l e m e n t a ç ã o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 0  

R e f e r ê n c i a s 4 7  

R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s  

Page 2: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 2/47

2 M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

1 I n t r o d u ç ã o      

1 . 1 S o b r e e s t e d o c u m e n t o  

E s t e d o c u m e n t o é u m g u i a p r á t i c o p a r a o d e s e n v o l v i m e n t o d e a p l i c a ç õ e s u s a n d o a l i n g u a g e m J a v a j u n t a m e n t e c o m  

a l g u m a s A P I s (  A p p l i c a t i o n P r o g r a m m i n g I n t e r f a c e s  ) c o m o W e k a (  W a i k a t o E n v i r o n m e n t f o r K n o w l e d g e A n a l y -  

s i s  ) [ 1 4 ] e J U N G (  J a v a U n i v e r s a l N e t w o r k / G r a p h F r a m e w o r k  ) [ 1 2 ] . O d o c u m e n t o m o s t r a c o m o i n t e g r a r e s t a s A P I s  

e m c ó d i g o J a v a , p o s s i b i l i t a n d o o d e s e n v o l v i m e n t o d e a p l i c a ç õ e s e s p e c i a l i z a d a s p a r a r e s o l v e r p r o b l e m a s e s p e c í c o s .  

E s t e d o c u m e n t o   n ã o é  : 

U m t u t o r i a l s o b r e m i n e r a ç ã o e v i s u a l i z a ç ã o d e d a d o s e m g e r a l t u t o r i a i s e m u i t a s r e f e r ê n c i a s p a r a e s t e s  

t ó p i c o s p o d e m s e r e n c o n t r a d a s e m [ 9 ] e [ 1 1 ] .  

U m t u t o r i a l s o b r e o u s o d o s a m b i e n t e s g r á c o s i n t e r a t i v o s d o W e k a (  E x p l o r e r  ,  E x p e r i m e n t e r   e  K n o w l e d g e  

F l o w   ) . 

U m t u t o r i a l s o b r e a l i n g u a g e m J a v a e s u a s A P I s , o r i e n t a ç ã o a o b j e t o s o u p r o g r a m a ç ã o c o m i n t e r f a c e s  

g r á c a s p a r a i s t o v e j a [ 8 ] e [ 1 0 ] .  

U m t u t o r i a l s o b r e o I D E (  I n t e g r a t e d D e v e l o p m e n t E n v i r o n m e n t  , a m b i e n t e d e d e s e n v o l v i m e n t o i n t e g r a d o )  

E c l i p s e , s u g e r i d o p a r a o d e s e n v o l v i m e n t o .  

E s t a v e r s ã o d o d o c u m e n t o f o i r e e s c r i t a e a d a p t a d a p a r a u s o n o t r e i n a m e n t o   M i n e r a ç ã o d e D a d o s e  

A p l i c a ç õ e s   p a r a o C e n t r o d e T e c n o l o g i a d a I n f o r m a ç ã o R e n a t o A r c h e r C T I , e m F e v e r e i r o / M a r ç o d e  

2 0 1 0 .  

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s R a f a e l S a n t o s  

Page 3: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 3/47

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 3  

2 W e k a I n f o r m a ç õ e s G e r a i s    

M u i t o s a l g o r i t m o s p o d e m s e r u s a d o s p a r a m i n e r a ç ã o d e d a d o s , e v á r i o s d e s t e s s ã o r e l a t i v a m e n t e c l á s s i c o s e  

b e m c o n h e c i d o s , p o r é m s u a i m p l e m e n t a ç ã o c o r r e t a p o d e s e r m u i t o c o m p l e x a o u c u s t o s a . P e s q u i s a d o r e s d a  

U n i v e r s i d a d e d e W a i k a t o , n a N o v a Z e l â n d i a , d e s e n v o l v e r a m u m p a c o t e d e s o f t w a r e c h a m a d o W e k a (  W a i k a t o  

E n v i r o n m e n t f o r K n o w l e d g e A n a l y s i s  ) [ 1 3 , 1 4 ] q u e c o n t é m u m a a p l i c a ç ã o c o m i n t e r f a c e g r á c a o n d e u m u s u á r i o  

p o d e e x p e r i m e n t a r c o m o s d i v e r s o s a l g o r i t m o s p r e s e n t e s n o p a c o t e p a r a t e n t a r e x t r a i r c o n h e c i m e n t o d e s e u s d a d o s .  

F i g u r a 1 : I n t e r f a c e g r á c a p r i n c i p a l d o a m b i e n t e W e k a .  

F i g u r a 2 : T e l a d a a p l i c a ç ã o   E x p l o r e r  , p a r t e d o a m b i e n t e W e k a .  

A l é m d a i n t e r f a c e g r á c a p a r a e x p l o r a ç ã o , o s a l g o r i t m o s d o p a c o t e p o d e m s e r e x e c u t a d o s a p a r t i r d e l i n h a d e  

c o m a n d o e e m b u t i d o s e m a p l i c a ç õ e s e m J a v a . O s p r ó x i m o s c a p í t u l o s d e s t e d o c u m e n t o m o s t r a m c o m o r e p r e s e n t a r  

d a d o s n o W e k a e m u m f o r m a t o p a d r ã o e q u e p o d e s e r f a c i l m e n t e c o n s t r u í d o e c o m o u s a r a l g o r i t m o s d o W e k a  

e m s u a s a p l i c a ç õ e s .  

R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s  

Page 4: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 4/47

4 M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

F i g u r a 3 : T e l a d a a p l i c a ç ã o   E x p l o r e r  , m o s t r a n d o u m e x p e r i m e n t o e m c l a s s i c a ç ã o .  

F i g u r a 4 : T e l a d a a p l i c a ç ã o   E x p l o r e r  , m o s t r a n d o u m e x p e r i m e n t o e m v i s u a l i z a ç ã o s i m p l e s .  

P a r a u s a r a s c l a s s e s d a A P I W e k a é n e c e s s á r i o c o p i a r o a r q u i v o   w e k a . j a r   p a r a u m d i r e t ó r i o c o n h e c i d o ( o u n o  

c l a s s p a t h   d a s u a i n s t a l a ç à o J a v a ) e r e f e r e n c i a r e s t e a r q u i v o e m s e u p r o j e t o . P a r a f a z e r i s t o u s a n d o a I D E E c l i p s e ,  

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s R a f a e l S a n t o s  

Page 5: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 5/47

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 5  

s i g a e s t e s p a s s o s :  

1 . C r i e u m d i r e t ó r i o   l i b  n o s e u p r o j e t o ( c l i q u e n o p r o j e t o c o m o b o t ã o d i r e i t o d o m o u s e e e m   N e w  /  F o l d e r  , 

u s e o n o m e   l i b  ) . 

2 . C o p i e p a r a e s t e d i r e t ó r i o o a r q u i v o   w e k a . j a r   . A o t e r m i n a r d e c o p i a r , s e l e c i o n e o n o m e d o p r o j e t o e c l i q u e  

a t e c l a   F 5  p a r a a t u a l i z a r o s s u b d i r e t ó r i o s r e l a c i o n a d o s a o p r o j e t o .  

3 . I n c l u a e s t e a r q u i v o n o p r o j e t o s e l e c i o n a n d o o p r o j e t o , c l i c a n d o c o m o b o t ã o d i r e i t o d o m o u s e e e s c o l h e n d o  

B u i l d P a t h  /  C o n f i g u r e B u i l d P a t h  . C l i q u e n o b o t ã o   A d d J A R s   e s e l e c i o n e n o d i á l o g o o d i r e t ó r i o   l i b 

e d e n t r o d e l e o a r q u i v o   w e k a . j a r   . F e c h e t o d o s o s d i á l o g o s c l i c a n d o e m s e u s r e s p e c t i v o s b o t õ e s   O K  . 

O u t r a s I D E s d e v e m s e r c o n g u r a d a s c o m o u t r o s m é t o d o s . C o n s u l t e a d o c u m e n t a ç ã o d a s u a I D E p a r a i n f o r m a ç õ e s  

e s p e c í c a s .  

R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s  

Page 6: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 6/47

6 M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3 W e k a R e p r e s e n t a ç ã o d e D a d o s    

E m a l g u n s e x e m p l o s d e s t e t u t o r i a l u s a r e m o s a r q u i v o s d o t i p o   . A R F F   (  A t t r i b u t e - R e l a t i o n F i l e F o r m a t  ) , s u p o r t a d o s  

d i r e t a m e n t e p e l a A P I W e k a . U m a r q u i v o n o f o r m a t o   . A R F F   é u m a r q u i v o d e t e x t o p u r o , q u e p o d e s e r e d i t a d o  

p o r q u a l q u e r f e r r a m e n t a b á s i c a d e e d i ç ã o d e t e x t o s e m f o r m a t a ç ã o . O c o n t e ú d o d o a r q u i v o é c o m p o s t o d e t r ê s  

p a r t e s :  

R e l a ç ã o   , a p r i m e i r a l i n h a d o a r q u i v o , q u e d e v e s e r i g u a l a   @ r e l a t i o n   s e g u i d a d e u m a p a l a v r a - c h a v e q u e  

i d e n t i q u e a r e l a ç ã o o u t a r e f a s e n d o e s t u d a d a .  

A t r i b u t o s  , u m c o n j u n t o d e l i n h a s o n d e c a d a u m a i n i c i a c o m   @ a t t r i b u t e   s e g u i d a d o n o m e d o a t r i b u t o  

e s e g u i d a d o s e u t i p o , q u e p o d e s e r n o m i n a l ( n e s t e c a s o a s a l t e r n a t i v a s d e v e m a p a r e c e r c o m o u m a l i s t a  

s e p a r a d a p o r v í r g u l a s e c e r c a d a s p o r c h a v e s ) o u n u m é r i c o ( n e s t e c a s o o n o m e d e v e s e r s e g u i d o d a p a l a v r a -  

c h a v e   r e a l  ) . G e r a l m e n t e , e m u m a t a r e f a d e c l a s s i c a ç ã o s u p e r v i s i o n a d a ( o n d e c o n h e c e m o s a s c l a s s e s d a s  

i n s t â n c i a s u s a d a s p a r a t r e i n a m e n t o ) o ú l t i m o a t r i b u t o é a c l a s s e p a r a a s i n s t â n c i a s e d e v e s e r n o m i n a l .  

D a d o s  , d e p o i s d e u m a l i n h a c o n t e n d o   @ d a t a  . C a d a l i n h a d e v e c o r r e s p o n d e r a u m a i n s t â n c i a e d e v e t e r  

v a l o r e s s e p a r a d o s p o r v í r g u l a c o r r e s p o n d e n t e s ( e n a m e s m a o r d e m ) d o s a t r i b u t o s d a s e ç ã o A t r i b u t o s .  

O a r q u i v o t a m b é m p o d e c o n t e r l i n h a s i n i c i a d a s c o m o s i n a l d e p e r c e n t a g e m (  %  ) . E s t a s l i n h a s s e r ã o c o n s i d e r a d a s  

c o m e n t á r i o s e n ã o s e r ã o p r o c e s s a d a s . M a i s i n f o r m a ç õ e s s o b r e o f o r m a t o ( i n c l u s i v e c o m o c r i a r a r q u i v o s d e f o r m a  

p r o g r a m á t i c a ) p o d e m s e r l i d a s e m   h t t p : / / w e k a . w i k i s p a c e s . c o m / A R F F   . 

C o m o u m e x e m p l o , o c o n t e ú d o d o a r q u i v o   w e a t h e r . a r f f   é m o s t r a d o n a l i s t a g e m 1 . E s t e a r q u i v o c o n t é m  

r e l a ç õ e s ( d e s c r i t o r e s e d a d o s ) p a r a u m a t a r e f a s i m p l e s d e p r e v i s ã o d e a t i v i d a d e e s p o r t i v a e m f u n ç ã o d o t e m p o .  

L i s t a g e m 1 : O a r q u i v o   w e a t h e r . a r f f   , q u e c o n t é m r e l a ç õ e s s o b r e u m p r o b l e m a j o g a r e m f u n ç ã o d o t e m p o .  

1  @ r e l a t i o n w e a t h e r  

3  @ a t t r i b u t e o u t l o o k { s u n n y , o v e r c a s t , r a i n y }  

@ a t t r i b u t e t e m p e r a t u r e r e a l  

5  @ a t t r i b u t e h u m i d i t y r e a l  

@ a t t r i b u t e w i n d y { T R U E , F A L S E }  

7  @ a t t r i b u t e p l a y { y e s , n o }  

@ d a t a  

1 0  s u n n y , 8 5 , 8 5 , F A L S E , n o  

1 1 

s u n n y , 8 0 , 9 0 , T R U E , n o  

1 2  o v e r c a s t , 8 3 , 8 6 , F A L S E , y e s  

1 3 

r a i n y , 7 0 , 9 6 , F A L S E , y e s  

1 4  r a i n y , 6 8 , 8 0 , F A L S E , y e s  

1 5  r a i n y , 6 5 , 7 0 , T R U E , n o  

1 6 

o v e r c a s t , 6 4 , 6 5 , T R U E , y e s  

1 7  s u n n y , 7 2 , 9 5 , F A L S E , n o  

1 8 

s u n n y , 6 9 , 7 0 , F A L S E , y e s  

1 9  r a i n y , 7 5 , 8 0 , F A L S E , y e s  

2 0 

s u n n y , 7 5 , 7 0 , T R U E , y e s  

2 1  o v e r c a s t , 7 2 , 9 0 , T R U E , y e s  

2 2  o v e r c a s t , 8 1 , 7 5 , F A L S E , y e s  

2 3 

r a i n y , 7 1 , 9 1 , T R U E , n o  

3 . 1 C r i a n d o R e l a ç õ e s ( a r q u i v o s  . A R F F  

) e m A p l i c a ç õ e s e m J a v a  

O s a r q u i v o s   . A R F F   t e m e s t r u t u r a s i m p l e s , e p o r s e r a r q u i v o s d e t e x t o , p o d e m f a c i l m e n t e s e r e d i t a d o s e m e d i t o r e s  

d e t e x t o . P o r e x e m p l o , p o d e m o s c o n v e r t e r a r q u i v o s   . C S V   (  c o m m a - s e p a r a t e d v a l u e  ) p a r a   . A R F F   c o m a i n c l u s ã o  

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s R a f a e l S a n t o s  

Page 7: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 7/47

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 7  

d e u m c a b e ç a l h o a d e q u a d o .  

O u t r a f o r m a d e c r i a r a r q u i v o s   . A R F F   é a t r a v é s d a c r i a ç ã o d e s u a e s t r u t u r a d e n t r o d e u m a a p l i c a ç ã o e m J a v a .  

U m a r e l a ç ã o e m u m a r q u i v o   . A R F F   é u m a c o l e ç ã o d e i n s t â n c i a s o n d e c a d a u m a é u m a c o l e ç ã o d e a t r i b u t o s . O s  

p a s s o s p a r a c r i a r u m a u m a b a s e d e d a d o s c o m a e s t r u t u r a e s p e r a d a p a r a s e r a r m a z e n a d a c o m o u m a r q u i v o   . A R F F  

s ã o s ã o o s s e g u i n t e s :  

1 . C r i a m o s o s a t r i b u t o s u s a d o s n a b a s e d e d a d o s ( i n s t â n c i a s d a c l a s s e   A t t r i b u t e   ) . A t r i b u t o s n u m é r i c o s s ã o  

c r i a d o s c o m u m a c h a m a d a a o c o n s t r u t o r d a c l a s s e u s a n d o s o m e n t e o n o m e d o a t r i b u t o c o m o a r g u m e n t o .  

A t r i b u t o s d i s c r e t o s o u n o m i n a i s d e v e m s e r c r i a d o s u s a n d o o c o n s t r u t o r q u e r e c e b e o n o m e d o a t r i b u t o e  

u m a l i s t a d e v a l o r e s ( r ó t u l o s ) q u e p o d e m s e r u s a d o s p a r a a q u e l e a t r i b u t o . E s t a l i s t a d e v e s e r u m a i n s t â n c i a  

d e  F a s t V e c t o r   , u m a i m p l e m e n t a ç ã o i n t e r n a d o W e k a s i m i l a r à c l a s s e   V e c t o r  . P a r a a t r i b u t o s t e x t u a i s  

d e v e m o s u s a r u m a i n s t â n c i a d e   F a s t V e c t o r   i g u a l à   n u l l  . 

2 . C r i a m o s u m a l i s t a ( n o v a m e n t e   F a s t V e c t o r   ) d o s a t r i b u t o s . U s a m o s a l i s t a d e a t r i b u t o s p a r a c r i a r u m a  

i n s t â n c i a d e   I n s t a n c e s   , p a s s a n d o p a r a o c o n s t r u t o r d a c l a s s e u m n o m e p a r a a r e l a ç ã o , a l i s t a d e a t r i b u t o s  

e u m a c a p a c i d a d e i n i c i a l . E s t a c l a s s e d e   I n s t a n c e s   c o r r e s p o n d e à r e l a ç ã o c o n t i d a e m u m a r q u i v o   . A R F F  . 

3 . C o m a i n s t â n c i a d e   I n s t a n c e s   p o d e m o s c r i a r v á r i a s i n s t â n c i a s d e   I n s t a n c e   ( n o s i n g u l a r ) , o n d e c a d a  

u m a c o r r e s p o n d e a s o m e n t e u m a e n t r a d a n a b a s e d e d a d o s ( l i n h a d a t a b e l a ) , e p o p u l a r e s t a i n s t â n c i a d e  

I n s t a n c e   c o m o s d a d o s . D e v e m o s t a m b é m a s s o c i a r a i n s t â n c i a d e   I n s t a n c e   à d e  I n s t a n c e s   . 

4 . O m é t o d o   t o S t r i n g   d a c l a s s e   I n s t a n c e s   p o d e s e r u s a d o p a r a c o n v e r t ê - l a p a r a u m a r e p r e s e n t a ç ã o t e x t u a l  

q u e p o d e s e r a r m a z e n a d a e m u m a r q u i v o   . A R F F  . 

E s t e s p a s s o s s ã o d e m o n s t r a d o s p e l a c l a s s e   C r e a t e A r t i f i c i a l A R F F   , q u e é m o s t r a d a n a l i s t a g e m 2 .  

L i s t a g e m 2 : A c l a s s e   C r e a t e A r t i f i c i a l A R F F   , q u e c r i a u m a r e l a ç ã o d e d a d o s p a r a u s o c o m o W e k a .  

/ * 

2  * P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

4  * h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

5  * / 

6  p a c k a g e w e k a ;  

i m p o r t w e k a . c o r e . * ;  

1 0  / * * 

1 1  * E s t a c l a s s e c r i a u m a r e l a ç ã o a r t i f i c i a l d e d a d o s , d e m o n s t r a n d o c o m o c r i a r a e s t r u t u r a  

1 2  * d e u m a r q u i v o . A R F F u s a n d o J a v a .  

1 3  * / 

1 4  p u b l i c c l a s s C r e a t e A r t i f i c i a l A R F F  

1 5 

1 6  p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s )  

1 7  { 

1 8 

/ / P r i m e i r o p r e c i s a m o s c r i a r o s a t r i b u t o s p a r a a r e l a ç ã o . A t r i b u t o s n o m i n a i s s ã o  

1 9  / / c r i a d o s j á c o m o s v a l o r e s p e r m i t i d o s ; a t r i b u t o s r e a i s n ã o .  

2 0  / / N o m e : S t r i n g ( s e m v a l o r e s p r é v i o s ) .  

2 1  A t t r i b u t e n o m e = n e w A t t r i b u t e ( " n o m e " , ( F a s t V e c t o r ) n u l l ) ;  

2 2  / / P r o f i s s ã o : n o m i n a l c o m v a l o r e s p r é v i o s .  

2 3  F a s t V e c t o r v P r o f i s s õ e s = n e w F a s t V e c t o r ( ) ;  

2 4  v P r o f i s s õ e s . a d d E l e m e n t ( " P r o f e s s o r " ) ;  

2 5 

v P r o f i s s õ e s . a d d E l e m e n t ( " B o l s i s t a " ) ;  

2 6  v P r o f i s s õ e s . a d d E l e m e n t ( " M o t o r i s t a " ) ;  

2 7  v P r o f i s s õ e s . a d d E l e m e n t ( " M é d i c o " ) ;  

2 8  v P r o f i s s õ e s . a d d E l e m e n t ( " P e s q u i s a d o r " ) ;  

2 9  A t t r i b u t e p r o f i s s ã o = n e w A t t r i b u t e ( " p r o f i s s a o " , v P r o f i s s õ e s ) ;  

3 0  / / S a l d o m é d i o m e n s a l : r e a l .  

3 1  A t t r i b u t e s a l d o = n e w A t t r i b u t e ( " s a l d o " ) ;  

3 2 

/ / I d a d e : r e a l .  

3 3  A t t r i b u t e i d a d e = n e w A t t r i b u t e ( " i d a d e " ) ;  

3 4  / / A n o s c o m o c o r r e n t i s t a : r e a l .  

3 5 

A t t r i b u t e a n o s C o n t a = n e w A t t r i b u t e ( " a n o s C o m o C o r r e n t i s t a " ) ;  

3 6  / / J á f e z e m p r é s t i m o : n o m i n a l c o m v a l o r e s p r é v i o s .  

3 7  F a s t V e c t o r v S N = n e w F a s t V e c t o r ( ) ;  

3 8  v S N . a d d E l e m e n t ( " S I M " ) ;  

R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s  

Page 8: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 8/47

8 M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3 9  v S N . a d d E l e m e n t ( " N Ã O " ) ;  

4 0 

A t t r i b u t e e m p r é s t i m o P r é v i o = n e w A t t r i b u t e ( " e m p r e s t i m o P r e v i o " , v S N ) ;  

4 1  / / P l a n o d e i n v e s t i m e n t o s s u g e r i d o : n o m i n a l c o m v a l o r e s p r é v i o s .  

4 2  F a s t V e c t o r v P I S = n e w F a s t V e c t o r ( ) ;  

4 3 

v P I S . a d d E l e m e n t ( " P r a t a " ) ;  

4 4  v P I S . a d d E l e m e n t ( " O u r o " ) ;  

4 5  v P I S . a d d E l e m e n t ( " P l a t i n a " ) ;  

4 6  A t t r i b u t e p l a n o S u g e r i d o = n e w A t t r i b u t e ( " p l a n o S u g e r i d o " , v P I S ) ;  

4 7  / / C o m t o d o s o s a t r i b u t o s p o d e m o s c r i a r a r e l a ç ã o .  

4 8  F a s t V e c t o r a t r i b u t o s = n e w F a s t V e c t o r ( ) ;  

4 9  a t r i b u t o s . a d d E l e m e n t ( n o m e ) ;  

5 0 

a t r i b u t o s . a d d E l e m e n t ( p r o f i s s ã o ) ;  

5 1  a t r i b u t o s . a d d E l e m e n t ( s a l d o ) ;  

5 2  a t r i b u t o s . a d d E l e m e n t ( i d a d e ) ;  

5 3  a t r i b u t o s . a d d E l e m e n t ( a n o s C o n t a ) ;  

5 4  a t r i b u t o s . a d d E l e m e n t ( e m p r é s t i m o P r é v i o ) ;  

5 5  a t r i b u t o s . a d d E l e m e n t ( p l a n o S u g e r i d o ) ;  

5 6  / / C r i a m o s a i n s t â n c i a d e I n s t a n c e s  

5 7 

I n s t a n c e s c o r r e n t i s t a s = n e w I n s t a n c e s ( " c o r r e n t i s t a s " , a t r i b u t o s , 0 ) ;  

5 8  / / A g o r a p o d e m o s p r e e n c h e r a r e l a ç ã o c o m i n s t â n c i a s .  

5 9  I n s t a n c e i 1 = n e w I n s t a n c e ( c o r r e n t i s t a s . n u m A t t r i b u t e s ( ) ) ;  

6 0 

i 1 . s e t V a l u e ( n o m e , " S i d S a c k s o n " ) ;  

6 1  i 1 . s e t V a l u e ( p r o f i s s ã o , " M é d i c o " ) ;  

6 2  i 1 . s e t V a l u e ( s a l d o , 4 3 0 0 . 0 ) ;  

6 3  i 1 . s e t V a l u e ( i d a d e , 4 8 ) ;  

6 4  i 1 . s e t V a l u e ( a n o s C o n t a , 7 ) ;  

6 5  i 1 . s e t V a l u e ( e m p r é s t i m o P r é v i o , " N Ã O " ) ;  

6 6  i 1 . s e t V a l u e ( p l a n o S u g e r i d o , " O u r o " ) ;  

6 7 

c o r r e n t i s t a s . a d d ( i 1 ) ;  

6 8  / / M a i s u m a i n s t â n c i a , s ó p a r a e x e m p l i f i c a r . . .  

6 9  I n s t a n c e i 2 = n e w I n s t a n c e ( c o r r e n t i s t a s . n u m A t t r i b u t e s ( ) ) ;  

7 0  i 2 . s e t V a l u e ( n o m e , " I a n S c h r e i b e r " ) ;  

7 1  i 2 . s e t V a l u e ( p r o f i s s ã o , " P r o f e s s o r " ) ;  

7 2  i 2 . s e t V a l u e ( s a l d o , 3 8 0 0 . 0 ) ;  

7 3  i 2 . s e t V a l u e ( i d a d e , 5 2 ) ;  

7 4 

i 2 . s e t V a l u e ( a n o s C o n t a , 1 1 ) ;  

7 5  i 2 . s e t V a l u e ( e m p r é s t i m o P r é v i o , " S I M " ) ;  

7 6  i 2 . s e t V a l u e ( p l a n o S u g e r i d o , " P l a t i n a " ) ;  

7 7 

c o r r e n t i s t a s . a d d ( i 2 ) ;  

7 8  / / P o d e m o s " i m p r i m i r " a r e l a ç ã o .  

7 9  S y s t e m . o u t . p r i n t l n ( c o r r e n t i s t a s ) ;  

8 0  } 

8 1 

8 2  } 

A r e l a ç ã o c r i a d a c o m a c l a s s e   C r e a t e A r t i f i c i a l A R F F   ( l i s t a g e m 2 ) é m o s t r a d a n a l i s t a g e m 3 .  

L i s t a g e m 3 : R e l a ç ã o c r i a d a p e l a c l a s s e   C r e a t e A r t i f i c i a l A R F F   ( l i s t a g e m 2 ) .  

@ r e l a t i o n c o r r e n t i s t a s  

@ a t t r i b u t e n o m e s t r i n g  

4  @ a t t r i b u t e p r o f i s s a o { P r o f e s s o r , B o l s i s t a , M o t o r i s t a , M é d i c o , P e s q u i s a d o r }  

@ a t t r i b u t e s a l d o n u m e r i c  

6  @ a t t r i b u t e i d a d e n u m e r i c  

7  @ a t t r i b u t e a n o s C o m o C o r r e n t i s t a n u m e r i c  

@ a t t r i b u t e e m p r e s t i m o P r e v i o { S I M , N Ã O }  

9  @ a t t r i b u t e p l a n o S u g e r i d o { P r a t a , O u r o , P l a t i n a }  

1 0 

1 1  @ d a t a  

1 2 

' S i d S a c k s o n ' , M é d i c o , 4 3 0 0 , 4 8 , 7 , N Ã O , O u r o  

1 3  ' I a n S c h r e i b e r ' , P r o f e s s o r , 3 8 0 0 , 5 2 , 1 1 , S I M , P l a t i n a  

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s R a f a e l S a n t o s  

Page 9: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 9/47

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 9  

4 W e k a Á r v o r e s d e D e c i s ã o      

4 . 1 I n t r o d u ç ã o  

A A P I W e k a i m p l e m e n t a u m c l a s s i c a d o r b a s e a d o e m á r v o r e s d e d e c i s ã o ( a l g o r i t m o C 4 . 5 [ 7 ] ) q u e p o d e c l a s s i c a r  

d a d o s c o m a t r i b u t o s n u m é r i c o s e n o m i n a i s ( m a s c o m c l a s s e s e m p r e r e p r e s e n t a d a p o r a t r i b u t o n o m i n a l ) . U m a  

o u t r a v a n t a g e m d e c l a s s i c a d o r e s b a s e a d o s e m á r v o r e s d e d e c i s ã o é q u e o s m o d e l o s c r i a d o s p a r a c l a s s i c a ç ã o  

p o d e m s e r f a c i l m e n t e i n t e r p r e t á v e i s .  

4 . 2 U s a n d o Á r v o r e s d e D e c i s ã o e m A p l i c a ç õ e s e m J a v a  

C o m o u m p r i m e i r o e x e m p l o s i m p l e s d e u s o d e á r v o r e s d e d e c i s ã o e m a p l i c a ç õ e s , v e r e m o s u m a a p l i c a ç ã o q u e c r i a  

u m a á r v o r e d e d e c i s ã o a p a r t i r d e d a d o s l i d o s d e u m a r q u i v o   . A R F F   e c l a s s i c a e s t e s m e s m o s d a d o s c o m a á r v o r e  

c r i a d a , m o s t r a n d o c o m o r e s u l t a d o a á r v o r e e a q u a n t i d a d e d e i n s t â n c i a s c l a s s i c a d a s c o r r e t a m e n t e .  

Á r v o r e s d e d e c i s ã o b a s e a d a s n o a l g o r i t m o C 4 . 5 s ã o i m p l e m e n t a d a s n a A P I W e k a c o m o i n s t â n c i a s d a c l a s s e   J 4 8  . 

I n s t â n c i a s d e s t a c l a s s e p o d e m s e r c o n s t r u í d a s e u s a d a s c o m v a l o r e s   d e f a u l t   p a r a p a r â m e t r o s c r i a ç ã o d e á r v o r e s  

d e d e c i s ã o , e m é t o d o s   s e t X X X   p o d e m s e r u s a d o s p a r a m o d i c a ç ã o d e s t e s p a r â m e t r o s .  

A p ó s o t r e i n a m e n t o p o d e m o s u s a r o m é t o d o   c l a s s i f y I n s t a n c e   d a i n s t â n c i a d e   J 4 8  q u e r e c e b e c o m o a r g u -  

m e n t o u m a i n s t â n c i a d e   I n s t a n c e   e r e t o r n a o í n d i c e d a c l a s s e p a r a a q u e l a i n s t â n c i a . E m i n s t â n c i a s j á r o t u l a d a s  

p o d e m o s r e c u p e r a r a c l a s s e o r i g i n a l p a r a v e r i c a r a p e r f o r m a n c e d o c l a s s i c a d o r b a s e a d o e m r e d e s n e u r a i s .  

A c l a s s e   E x e m p l o J 4 8   , q u e é m o s t r a d a n a l i s t a g e m 4 , i m p l e m e n t a e s t e s p a s s o s ( l e i t u r a d e i n s t â n c i a s , c r i a ç ã o d a  

á r v o r e , c l a s s i c a ç ã o d o s p r ó p r i o s d a d o s u s a d o s p a r a t r e i n a m e n t o ) .  

L i s t a g e m 4 : A c l a s s e   E x e m p l o J 4 8   , q u e d e m o n s t r a o u s o d e u m a á r v o r e d e d e c i s ã o e m u m a a p l i c a ç ã o e m J a v a .  

1  / * 

2  * P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

* R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

4  * h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

5  * / 

6  p a c k a g e w e k a ;  

8  i m p o r t j a v a . i o . F i l e R e a d e r ;  

1 0 

i m p o r t w e k a . c l a s s i f i e r s . t r e e s . J 4 8 ;  

1 1  i m p o r t w e k a . c o r e . * ;  

1 2 

1 3  / * * 

1 4  * E s t a c l a s s e d e m o n s t r a o u s o d e u m c l a s s i f i c a d o r b a s e a d o e m á r v o r e s d e d e c i s ã o . A c l a s s e  

1 5  * l ê u m a r q u i v o n o f o r m a t o . A R F F , c r i a o c l a s s i f i c a d o r e c l a s s i f i c a o p r ó p r i o a r q u i v o o r i g i n a l .  

1 6  * / 

1 7 

p u b l i c c l a s s E x e m p l o J 4 8  

1 8  { 

1 9  p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) t h r o w s E x c e p t i o n  

2 0 

2 1  / / U s a r e m o s a b a s e d e f l o r e s í r i s .  

2 2  F i l e R e a d e r r e a d e r = n e w F i l e R e a d e r ( " / h o m e / r a f a e l / J a v a / A P I s / W e k a / d a t a / i r i s . a r f f " ) ;  

2 3  I n s t a n c e s i n s t â n c i a s = n e w I n s t a n c e s ( r e a d e r ) ;  

2 4  i n s t â n c i a s . s e t C l a s s I n d e x ( 4 ) ;  

2 5  / / C r i a m o s o c l a s s i f i c a d o r b a s e a d o e m á r v o r e s d e d e c i s ã o .  

2 6  J 4 8 á r v o r e = n e w J 4 8 ( ) ;  

2 7 

á r v o r e . b u i l d C l a s s i f i e r ( i n s t â n c i a s ) ;  

2 8  / / M o s t r a m o s a á r v o r e c o m o t e x t o .  

2 9  S y s t e m . o u t . p r i n t l n ( á r v o r e ) ;  

3 0  / / M o s t r a m o s a á r v o r e c o m o c ó d i g o .  

3 1  S y s t e m . o u t . p r i n t l n ( á r v o r e . t o S o u r c e ( " C l a s s i f i c a d o r J 4 8 " ) ) ;  

3 2  / / A g o r a v a m o s c l a s s i f i c a r c a d a d a d o o r i g i n a l c o m e s t a r e d e .  

3 3  i n t c o r r e t a s = 0 ;  

3 4 

f o r ( i n t i = 0 ; i < i n s t â n c i a s . n u m I n s t a n c e s ( ) ; i + + )  

3 5  { 

3 6  / / R e c u p e r a m o s c a d a u m a d a s i n s t â n c i a s .  

R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s  

Page 10: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 10/4

1 0 M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3 7  I n s t a n c e i n s t â n c i a = i n s t â n c i a s . i n s t a n c e ( i ) ;  

3 8 

/ / C l a s s i f i c a m o s e s t a i n s t â n c i a .  

3 9  i n t c l a s s e = ( i n t ) ( á r v o r e . c l a s s i f y I n s t a n c e ( i n s t â n c i a ) ) ;  

4 0  i f ( c l a s s e = = ( i n t ) i n s t â n c i a . c l a s s V a l u e ( ) ) c o r r e t a s + + ;  

4 1 

4 2  / / R e l a t ó r i o s i m p l e s :  

4 3  S y s t e m . o u t . p r i n t l n ( " D e " + i n s t â n c i a s . n u m I n s t a n c e s ( ) + " i n s t â n c i a s , " + c o r r e t a s + " ( " +  

4 4  ( 1 0 0 . * ( c o r r e t a s / ( 1 . 0 * i n s t â n c i a s . n u m I n s t a n c e s ( ) ) ) ) + " % ) f o r a m c l a s s i f i c a d a s c o r r e t a m e n t e . " ) ;  

4 5  / / D e 1 5 0 i n s t â n c i a s , 1 4 7 ( 9 8 . 0 % ) f o r a m c l a s s i f i c a d a s c o r r e t a m e n t e .  

4 6  } 

4 7 

4 8 

N a l i n h a 2 9 d a a p l i c a ç ã o n a c l a s s e   E x e m p l o J 4 8   ( l i s t a g e m 4 ) u s a m o s o m é t o d o   S y s t e m . o u t . p r i n t l n   p a r a  

i m p r i m i r o c o n t e ú d o d a i n s t â n c i a d a c l a s s e   J 4 8  . O r e s u l t a d o d a c h a m a d a d e s t e m é t o d o é m o s t r a d o n a l i s t a g e m 5 .  

L i s t a g e m 5 : C o n t e ú d o t e x t u a l d a á r v o r e d e d e c i s ã o c r i a d a n a c l a s s e   E x e m p l o J 4 8   . 

J 4 8 p r u n e d t r e e  

2  - - - - - - - - - - - - - - - - - -  

4  p e t a l w i d t h < = 0 . 6 : I r i s - s e t o s a ( 5 0 . 0 )  

5  p e t a l w i d t h > 0 . 6  

6  | p e t a l w i d t h < = 1 . 7  

7  | | p e t a l l e n g t h < = 4 . 9 : I r i s - v e r s i c o l o r ( 4 8 . 0 / 1 . 0 )  

| | p e t a l l e n g t h > 4 . 9  

9  | | | p e t a l w i d t h < = 1 . 5 : I r i s - v i r g i n i c a ( 3 . 0 )  

1 0 

| | | p e t a l w i d t h > 1 . 5 : I r i s - v e r s i c o l o r ( 3 . 0 / 1 . 0 )  

1 1  | p e t a l w i d t h > 1 . 7 : I r i s - v i r g i n i c a ( 4 6 . 0 / 1 . 0 )  

1 2 

1 3 

N u m b e r o f L e a v e s : 5  

1 4 

1 5 

S i z e o f t h e t r e e : 9  

N a l i n h a 3 1 d a a p l i c a ç ã o n a c l a s s e   E x e m p l o J 4 8   ( l i s t a g e m 4 ) e x e c u t a m o s o m é t o d o   t o S o u r c e   d a c l a s s e   J 4 8  . E s t e  

m é t o d o c r i a u m a r e p r e s e n t a ç ã o d a á r v o r e n a f o r m a d e u m a c l a s s e e m J a v a ( c u j o n o m e é d a d o p e l o a r g u m e n t o  

p a r a o m é t o d o ) q u e p o d e s e r a n a l i s a d a e i n c o r p o r a d a e m p r o j e t o s e s t a c l a s s e c o n t é m u m m é t o d o e s t á t i c o  

(  c l a s s i f y   ) q u e r e c e b e c o m o a r g u m e n t o u m   a r r a y   d e  O b j e c t  s e r e t o r n a o í n d i c e d a c l a s s e ( c o m o u m   d o u b l e  ) . 

A c l a s s e   C l a s s i f i c a d o r J 4 8   , m o s t r a d a n a l i s t a g e m 6 , m o s t r a a c l a s s e c r i a d a p e l o m é t o d o   t o S o u r c e   , n a f o r m a -  

t a ç ã o o r i g i n a l .  

L i s t a g e m 6 : A c l a s s e   C l a s s i f i c a d o r J 4 8   , c r i a d a p e l a i n s t â n c i a d e   J 4 8  n a c l a s s e   E x e m p l o J 4 8   . 

1  c l a s s C l a s s i f i c a d o r J 4 8 {  

3  p u b l i c s t a t i c d o u b l e c l a s s i f y ( O b j e c t [ ] i )  

4  t h r o w s E x c e p t i o n {  

d o u b l e p = D o u b l e . N a N ;  

7  p = C l a s s i f i c a d o r J 4 8 . N 1 8 3 f 7 4 d 0 ( i ) ;  

8  r e t u r n p ;  

1 0  s t a t i c d o u b l e N 1 8 3 f 7 4 d 0 ( O b j e c t [ ] i ) {  

1 1  d o u b l e p = D o u b l e . N a N ;  

1 2  i f ( i [ 3 ] = = n u l l ) {  

1 3  p = 0 ;  

1 4  } e l s e i f ( ( ( D o u b l e ) i [ 3 ] ) . d o u b l e V a l u e ( ) < = 0 . 6 ) {  

1 5  p = 0 ;  

1 6 

} e l s e i f ( ( ( D o u b l e ) i [ 3 ] ) . d o u b l e V a l u e ( ) > 0 . 6 ) {  

1 7  p = C l a s s i f i c a d o r J 4 8 . N e 1 0 2 d c 1 ( i ) ;  

1 8  } 

1 9 

r e t u r n p ;  

2 0  } 

2 1  s t a t i c d o u b l e N e 1 0 2 d c 1 ( O b j e c t [ ] i ) {  

2 2  d o u b l e p = D o u b l e . N a N ;  

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s R a f a e l S a n t o s  

Page 11: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 11/4

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 1 1  

2 3  i f ( i [ 3 ] = = n u l l ) {  

2 4 

p = 1 ;  

2 5  } e l s e i f ( ( ( D o u b l e ) i [ 3 ] ) . d o u b l e V a l u e ( ) < = 1 . 7 ) {  

2 6  p = C l a s s i f i c a d o r J 4 8 . N 8 2 c 0 1 f 2 ( i ) ;  

2 7 

} e l s e i f ( ( ( D o u b l e ) i [ 3 ] ) . d o u b l e V a l u e ( ) > 1 . 7 ) {  

2 8  p = 2 ;  

2 9  } 

3 0  r e t u r n p ;  

3 1  } 

3 2  s t a t i c d o u b l e N 8 2 c 0 1 f 2 ( O b j e c t [ ] i ) {  

3 3  d o u b l e p = D o u b l e . N a N ;  

3 4 

i f ( i [ 2 ] = = n u l l ) {  

3 5  p = 1 ;  

3 6  } e l s e i f ( ( ( D o u b l e ) i [ 2 ] ) . d o u b l e V a l u e ( ) < = 4 . 9 ) {  

3 7  p = 1 ;  

3 8  } e l s e i f ( ( ( D o u b l e ) i [ 2 ] ) . d o u b l e V a l u e ( ) > 4 . 9 ) {  

3 9  p = C l a s s i f i c a d o r J 4 8 . N 1 3 3 7 9 6 3 ( i ) ;  

4 0  } 

4 1 

r e t u r n p ;  

4 2  } 

4 3  s t a t i c d o u b l e N 1 3 3 7 9 6 3 ( O b j e c t [ ] i ) {  

4 4 

d o u b l e p = D o u b l e . N a N ;  

4 5  i f ( i [ 3 ] = = n u l l ) {  

4 6  p = 2 ;  

4 7  } e l s e i f ( ( ( D o u b l e ) i [ 3 ] ) . d o u b l e V a l u e ( ) < = 1 . 5 ) {  

4 8  p = 2 ;  

4 9  } e l s e i f ( ( ( D o u b l e ) i [ 3 ] ) . d o u b l e V a l u e ( ) > 1 . 5 ) {  

5 0  p = 1 ;  

5 1 

5 2  r e t u r n p ;  

5 3  } 

5 4  } 

E m b o r a p o s s a m o s a r m a z e n a r a e s t r u t u r a d a á r v o r e d e d e c i s ã o c o m o c ó d i g o , i s t o p o d e n ã o s e r p r á t i c o e m m u i t o s  

c a s o s p o i s r e q u e r a d a p t a ç ã o e r e c o m p i l a ç ã o . P o d e m o s a r m a z e n a r a e s t r u t u r a d a á r v o r e s e r i a l i z a d a p a r a u s o p o s -  

t e r i o r , s e p a r a n d o a s f u n ç õ e s d e c r i a ç ã o e a p l i c a ç ã o d a á r v o r e . O a r m a z e n a m e n t o d a á r v o r e s e r i a l i z a d a é s i m p l e s  

p o i s a c l a s s e   J 4 8  i m p l e m e n t a a i n t e r f a c e   S e r i a l i z a b l e   , p o d e n d o s e r a r m a z e n a d a e m d i s c o c o m p o u c a s l i n h a s  

d e c ó d i g o .  

D u a s c l a s s e s , m o s t r a d a s a s e g u i r , d e m o n s t r a m c o m o a r m a z e n a r u m a á r v o r e c r i a d a p a r a u s o p o s t e r i o r . A c l a s s e  

E x e m p l o J 4 8 _ 2 _ C r e a t e   , n a l i s t a g e m 7 , l ê u m a r q u i v o   . A R F F   e c r i a u m a i n s t â n c i a d e   J 4 8  , a r m a z e n a n d o - a s e r i a -  

l i z a d a e m u m a r q u i v o u s a n d o a c l a s s e   O b j e c t O u t p u t S t r e a m   . 

L i s t a g e m 7 : A c l a s s e   E x e m p l o J 4 8 _ 2 _ C r e a t e   , q u e d e m o n s t r a o u s o d e u m a á r v o r e d e d e c i s ã o e m u m a a p l i c a ç ã o  

e m J a v a .  

/ * 

2  * P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

* h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

5  * / 

6  p a c k a g e w e k a ;  

8  i m p o r t j a v a . i o . * ;  

1 0  i m p o r t w e k a . c l a s s i f i e r s . t r e e s . J 4 8 ;  

1 1 

i m p o r t w e k a . c o r e . * ;  

1 2 

1 3  / * * 

1 4  * E s t a c l a s s e d e m o n s t r a o u s o d e u m c l a s s i f i c a d o r b a s e a d o e m á r v o r e s d e d e c i s ã o . A c l a s s e  

1 5  * l ê u m a r q u i v o n o f o r m a t o . A R F F , c r i a o c l a s s i f i c a d o r e o a r m a z e n a p a r a u s o p o s t e r i o r .  

1 6  * / 

1 7  p u b l i c c l a s s E x e m p l o J 4 8 _ 2 _ C r e a t e  

1 8 

1 9  p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) t h r o w s E x c e p t i o n  

2 0  { 

2 1 

/ / U s a r e m o s a b a s e d e f l o r e s w i n e .  

2 2  F i l e R e a d e r r e a d e r = n e w F i l e R e a d e r ( " / h o m e / r a f a e l / J a v a / A P I s / W e k a / d a t a / w i n e . a r f f " ) ;  

2 3  I n s t a n c e s i n s t â n c i a s = n e w I n s t a n c e s ( r e a d e r ) ;  

2 4  i n s t â n c i a s . s e t C l a s s I n d e x ( 1 3 ) ;  

R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s  

Page 12: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 12/4

1 2 M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

2 5  / / C r i a m o s o c l a s s i f i c a d o r b a s e a d o e m á r v o r e s d e d e c i s ã o .  

2 6 

J 4 8 á r v o r e = n e w J 4 8 ( ) ;  

2 7  á r v o r e . b u i l d C l a s s i f i e r ( i n s t â n c i a s ) ;  

2 8  / / S e r i a l i z a m o s a á r v o r e . O u t r o s m e c a n i s m o s d e s e r i a l i z a ç ã o p o d e r i a m s e r u s a d o s .  

2 9 

O b j e c t O u t p u t S t r e a m o o s = n e w O b j e c t O u t p u t S t r e a m ( n e w F i l e O u t p u t S t r e a m ( " t r e e - w i n e . s e r " ) ) ;  

3 0  o o s . w r i t e O b j e c t ( á r v o r e ) ;  

3 1  o o s . c l o s e ( ) ;  

3 2  } 

3 3 

3 4  } 

A á r v o r e c r i a d a e a r m a z e n a d a n a c l a s s e   E x e m p l o J 4 8 _ 2 _ C r e a t e   ( l i s t a g e m 7 ) é r e c u p e r a d a e u s a d a p a r a c l a s s i c a r  

d a d o s , c o m o d e m o n s t r a d o n a c l a s s e   E x e m p l o J 4 8 _ 2 _ U s e   ( l i s t a g e m 8 ) .  

L i s t a g e m 8 : A c l a s s e   E x e m p l o J 4 8 _ 2 _ U s e   , q u e d e m o n s t r a o u s o d e u m a á r v o r e d e d e c i s ã o e m u m a a p l i c a ç ã o e m  

J a v a .  

1  / * 

2  * P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

* h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

5  * / 

6  p a c k a g e w e k a ;  

8  i m p o r t j a v a . i o . * ;  

1 0  i m p o r t w e k a . c l a s s i f i e r s . t r e e s . J 4 8 ;  

1 1  i m p o r t w e k a . c o r e . * ;  

1 2 

1 3  / * * 

1 4 

* E s t a c l a s s e d e m o n s t r a o u s o d e u m c l a s s i f i c a d o r b a s e a d o e m á r v o r e s d e d e c i s ã o . A c l a s s e  

1 5  * l ê u m a r q u i v o n o f o r m a t o . A R F F , c r i a o c l a s s i f i c a d o r e c l a s s i f i c a o p r ó p r i o a r q u i v o o r i g i n a l .  

1 6  * / 

1 7  p u b l i c c l a s s E x e m p l o J 4 8 _ 2 _ U s e  

1 8  { 

1 9  p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) t h r o w s E x c e p t i o n  

2 0  { 

2 1 

/ / R e c u p e r a m o s a á r v o r e p r e v i a m e n t e s e r i a l i z a d a .  

2 2  O b j e c t I n p u t S t r e a m o i s = n e w O b j e c t I n p u t S t r e a m ( n e w F i l e I n p u t S t r e a m ( " t r e e - w i n e . s e r " ) ) ;  

2 3  J 4 8 á r v o r e = ( J 4 8 ) o i s . r e a d O b j e c t ( ) ;  

2 4 

o i s . c l o s e ( ) ;  

2 5  / / U s a r e m o s a b a s e d e f l o r e s í r i s .  

2 6  F i l e R e a d e r r e a d e r = n e w F i l e R e a d e r ( " / h o m e / r a f a e l / J a v a / A P I s / W e k a / d a t a / w i n e . a r f f " ) ;  

2 7  I n s t a n c e s i n s t â n c i a s = n e w I n s t a n c e s ( r e a d e r ) ;  

2 8 

i n s t â n c i a s . s e t C l a s s I n d e x ( 1 3 ) ;  

2 9  / / A g o r a v a m o s c l a s s i f i c a r c a d a d a d o o r i g i n a l c o m e s t a r e d e .  

3 0  i n t c o r r e t a s = 0 ;  

3 1 

f o r ( i n t i = 0 ; i < i n s t â n c i a s . n u m I n s t a n c e s ( ) ; i + + )  

3 2  { 

3 3  / / R e c u p e r a m o s c a d a u m a d a s i n s t â n c i a s .  

3 4  I n s t a n c e i n s t â n c i a = i n s t â n c i a s . i n s t a n c e ( i ) ;  

3 5  / / C l a s s i f i c a m o s e s t a i n s t â n c i a .  

3 6  i n t c l a s s e = ( i n t ) ( á r v o r e . c l a s s i f y I n s t a n c e ( i n s t â n c i a ) ) ;  

3 7  i f ( c l a s s e = = ( i n t ) i n s t â n c i a . c l a s s V a l u e ( ) ) c o r r e t a s + + ;  

3 8 

3 9  / / R e l a t ó r i o s i m p l e s :  

4 0  S y s t e m . o u t . p r i n t l n ( " D e " + i n s t â n c i a s . n u m I n s t a n c e s ( ) + " i n s t â n c i a s , " + c o r r e t a s + " ( " +  

4 1 

( 1 0 0 . * ( c o r r e t a s / ( 1 . 0 * i n s t â n c i a s . n u m I n s t a n c e s ( ) ) ) ) + " % ) f o r a m c l a s s i f i c a d a s c o r r e t a m e n t e . " ) ;  

4 2  / / D e 1 7 8 i n s t â n c i a s , 1 7 6 ( 9 8 . 8 7 6 4 0 4 4 9 4 3 8 2 0 2 % ) f o r a m c l a s s i f i c a d a s c o r r e t a m e n t e .  

4 3  } 

4 4 

4 5 

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s R a f a e l S a n t o s  

Page 13: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 13/4

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 1 3  

5 W e k a R e d e s N e u r a i s    M u l t i l a y e r P e r c e p t r o n  

5 . 1 I n t r o d u ç ã o  

A A P I W e k a i m p l e m e n t a u m c l a s s i c a d o r b a s e a d o e m r e d e s n e u r a i s d e p e r c e p t r o n s e m m ú l t i p l a s c a m a d a s (  M u l -  

t i l a y e r P e r c e p t r o n   ) q u e s ã o c a p a z e s d e c l a s s i c a r d a d o s c u j o s a t r i b u t o s s e j a m n u m é r i c o s ( c o m c l a s s e d i s c r e t a ) .  

E s t e c l a s s i c a d o r a p r e s e n t a e x c e l e n t e c a p a c i d a d e d e s e p a r a ç ã o d e d a d o s , m a s p e l a s u a n a t u r e z a s e u a l g o r i t m o d e  

t r e i n a m e n t o q u e p o d e s e r c o m p u t a c i o n a l m e n t e c u s t o s o . U m a a p r e s e n t a ç ã o d o s d e t a l h e s d o a l g o r i t m o e d e s u a  

f u n d a m e n t a ç ã o m a t e m á t i c a e s t ã o f o r a d o e s c o p o d e s t e d o c u m e n t o a s r e f e r ê n c i a s [ 2 , 4 , 6 , 9 , 1 1 ] a p r e s e n t a m  

m a i s d e t a l h e s d o a l g o r i t m o , s u a s v a r i a n t e s e a p l i c a ç õ e s .  

5 . 2 U s a n d o R e d e s N e u r a i s   M u l t i l a y e r P e r c e p t r o n   e m A p l i c a ç õ e s e m J a v a  

C o m o u m p r i m e i r o e x e m p l o s i m p l e s d e u s o d e r e d e s n e u r a i s (  M u l t i l a y e r P e r c e p t r o n   ) e m a p l i c a ç õ e s , v e r e m o s  

u m a a p l i c a ç ã o q u e c r i a u m a r e d e n e u r a l , a t r e i n a u s a n d o d a d o s l i d o s d e u m a r q u i v o   . A R F F   e c l a s s i c a e s t e s m e s -  

m o s d a d o s c o m a r e d e t r e i n a d a , m o s t r a n d o c o m o r e s u l t a d o a q u a n t i d a d e d e i n s t â n c i a s c l a s s i c a d a s c o r r e t a m e n t e .  

A c l a s s e   M u l t i l a y e r P e r c e p t r o n   , p a r t e d a A P I W e k a , é u s a d a p a r a r e p r e s e n t a r e p r o c e s s a r u m a r e d e n e u r a l  

M u l t i l a y e r P e r c e p t r o n   . P a r a u s a r u m a i n s t â n c i a d e   M u l t i l a y e r P e r c e p t r o n   d e v e m o s p r i m e i r o t e r u m a i n s t â n c i a  

d e  I n s t a n c e s   d e v i d a m e n t e p o p u l a d a e c o m u m a i n d i c a ç ã o d e q u a l a t r i b u t o d e v e s e r u s a d o c o m o c l a s s e . A i n s -  

t â n c i a d e   M u l t i l a y e r P e r c e p t r o n   é c r i a d a e u s a m o s v á r i o s m é t o d o s   s e t X X X   p a r a c o n g u r a r a s u a a r q u i t e t u r a  

e p a r â m e t r o s d e c r i a ç ã o e t r e i n a m e n t o . F i n a l m e n t e u s a m o s a i n s t â n c i a d e   I n s t a n c e s   c o m o a r g u m e n t o p a r a o  

m é t o d o   b u i l d C l a s s i f i e r   d a i n s t â n c i a d a r e d e p a r a t r e i n a r a m e s m a .  

A p ó s o t r e i n a m e n t o p o d e m o s u s a r o m é t o d o   c l a s s i f y I n s t a n c e   d a r e d e q u e r e c e b e c o m o a r g u m e n t o u m a  

i n s t â n c i a d e   I n s t a n c e   e r e t o r n a o í n d i c e d a c l a s s e p a r a a q u e l a i n s t â n c i a . E m i n s t â n c i a s j á r o t u l a d a s p o d e m o s  

r e c u p e r a r a c l a s s e o r i g i n a l p a r a v e r i c a r a p e r f o r m a n c e d o c l a s s i c a d o r b a s e a d o e m r e d e s n e u r a i s .  

A c l a s s e   E x e m p l o N N   , q u e é m o s t r a d a n a l i s t a g e m 9 , i m p l e m e n t a e s t e s p a s s o s ( l e i t u r a d e i n s t â n c i a s , c r i a ç ã o d a  

r e d e , t r e i n a m e n t o e c l a s s i c a ç ã o d o s p r ó p r i o s d a d o s u s a d o s p a r a t r e i n a m e n t o ) .  

L i s t a g e m 9 : A c l a s s e   E x e m p l o N N  , q u e d e m o n s t r a o u s o d e u m a r e d e n e u r a l   M u l t i l a y e r P e r c e p t r o n   e m u m a  

a p l i c a ç ã o e m J a v a .  

/ * 

2  * P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

4  * h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

5  * / 

6  p a c k a g e w e k a ;  

i m p o r t j a v a . i o . F i l e R e a d e r ;  

1 0  i m p o r t w e k a . c l a s s i f i e r s . f u n c t i o n s . M u l t i l a y e r P e r c e p t r o n ;  

1 1 

i m p o r t w e k a . c o r e . * ;  

1 2 

1 3  / * * 

1 4  * E s t a c l a s s e d e m o n s t r a o u s o d e u m c l a s s i f i c a d o r b a s e a d o e m m u l t i l a y e r p e r c e p t r o n s . A c l a s s e  

1 5  * l ê u m a r q u i v o n o f o r m a t o . A R F F , c r i a o c l a s s i f i c a d o r e c l a s s i f i c a o p r ó p r i o a r q u i v o o r i g i n a l .  

1 6  * / 

1 7  p u b l i c c l a s s E x e m p l o N N  

1 8 

1 9  p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) t h r o w s E x c e p t i o n  

2 0  { 

2 1  / / U s a r e m o s a b a s e d e f l o r e s í r i s .  

2 2  F i l e R e a d e r r e a d e r = n e w F i l e R e a d e r ( " / h o m e / r a f a e l / J a v a / A P I s / W e k a / d a t a / i r i s . a r f f " ) ;  

2 3  I n s t a n c e s i n s t â n c i a s = n e w I n s t a n c e s ( r e a d e r ) ;  

2 4  i n s t â n c i a s . s e t C l a s s I n d e x ( 4 ) ;  

2 5 

/ / C r i a m o s o c l a s s i f i c a d o r b a s e a d o e m M u l t i l a y e r P e r c e p t r o n s  

2 6  M u l t i l a y e r P e r c e p t r o n m l p = n e w M u l t i l a y e r P e r c e p t r o n ( ) ;  

2 7  m l p . s e t A u t o B u i l d ( t r u e ) ;  

2 8 

m l p . s e t L e a r n i n g R a t e ( 0 . 3 ) ;  

2 9  m l p . s e t M o m e n t u m ( 0 . 2 ) ;  

R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s  

Page 14: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 14/4

1 4 M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3 0  m l p . s e t T r a i n i n g T i m e ( 1 0 0 0 ) ;  

3 1 

m l p . s e t H i d d e n L a y e r s ( " 5 " ) ;  

3 2  / / T r e i n a m o s a r e d e .  

3 3  m l p . b u i l d C l a s s i f i e r ( i n s t â n c i a s ) ;  

3 4 

/ / A g o r a v a m o s c l a s s i f i c a r c a d a d a d o o r i g i n a l c o m e s t a r e d e .  

3 5  i n t c o r r e t a s = 0 ;  

3 6  f o r ( i n t i = 0 ; i < i n s t â n c i a s . n u m I n s t a n c e s ( ) ; i + + )  

3 7  { 

3 8  / / R e c u p e r a m o s c a d a u m a d a s i n s t â n c i a s .  

3 9  I n s t a n c e i n s t â n c i a = i n s t â n c i a s . i n s t a n c e ( i ) ;  

4 0  / / C l a s s i f i c a m o s e s t a i n s t â n c i a .  

4 1 

i n t c l a s s e = ( i n t ) ( m l p . c l a s s i f y I n s t a n c e ( i n s t â n c i a ) ) ;  

4 2  i f ( c l a s s e = = ( i n t ) i n s t â n c i a . c l a s s V a l u e ( ) ) c o r r e t a s + + ;  

4 3  } 

4 4  / / R e l a t ó r i o s i m p l e s :  

4 5  S y s t e m . o u t . p r i n t l n ( " D e " + i n s t â n c i a s . n u m I n s t a n c e s ( ) + " i n s t â n c i a s , " + c o r r e t a s + " ( " +  

4 6  ( 1 0 0 . * ( c o r r e t a s / ( 1 . 0 * i n s t â n c i a s . n u m I n s t a n c e s ( ) ) ) ) + " % ) f o r a m c l a s s i f i c a d a s c o r r e t a m e n t e . " ) ;  

4 7  / / D e 1 5 0 i n s t â n c i a s , 1 4 8 ( 9 8 . 6 6 6 6 6 6 6 6 6 6 6 6 6 7 % ) f o r a m c l a s s i f i c a d a s c o r r e t a m e n t e .  

4 8 

4 9 

5 0  } 

E v e n t u a l m e n t e s e r á m a i s i n t e r e s s a n t e s e p a r a r o t r e i n a m e n t o d a r e d e n e u r a l d a c l a s s i c a ç ã o d e d a d o s c o m e l a  

a s s i m p o d e m o s t r e i n a r a r e d e n e u r a l c o m u m c o n j u n t o a d e q u a d o d e d a d o s , a r m a z e n a r a r e d e t r e i n a d a e u s á - l a e m  

o u t r o s m o m e n t o s p a r a a c l a s s i c a ç ã o . A s e p a r a ç ã o d a f a s e d e t r e i n a m e n t o d a f a s e d e c l a s s i c a ç ã o é t r i v i a l : c o m o  

m u i t a s c l a s s e s d a A P I W e k a i m p l e m e n t a m a i n t e r f a c e   S e r i a l i z a b l e   , p o d e m o s a r m a z e n a r i n s t â n c i a s i n t e i r a s e m  

o b j e t o s e m a r q u i v o s c o m p o u c a s l i n h a s d e c ó d i g o .  

E s t a t é c n i c a é i m p l e m e n t a d a e m d u a s c l a s s e s , m o s t r a d a s a s e g u i r . A c l a s s e   E x e m p l o N N 2 _ T r a i n   , n a l i s t a g e m 1 0 ,  

l ê u m a r q u i v o   . A R F F   e c r i a u m a i n s t â n c i a d e   M u l t i l a y e r P e r c e p t r o n   , t r e i n a n d o - a e a r m a z e n a n d o - a e m u m  

a r q u i v o e m d i s c o a t r a v é s d e s e r i a l i z a ç ã o u s a n d o a c l a s s e   O b j e c t O u t p u t S t r e a m   . 

L i s t a g e m 1 0 : A c l a s s e   E x e m p l o N N 2 _ T r a i n   , q u e c r i a e t r e i n a u m a r e d e n e u r a l   M u l t i l a y e r P e r c e p t r o n   p a r a u s o  

p o s t e r i o r .  

1  / * 

2  * P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

4  * h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

* / 

6  p a c k a g e w e k a ;  

8  i m p o r t j a v a . i o . * ;  

1 0  i m p o r t w e k a . c l a s s i f i e r s . f u n c t i o n s . M u l t i l a y e r P e r c e p t r o n ;  

1 1  i m p o r t w e k a . c o r e . * ;  

1 2 

1 3  / * * 

1 4  * E s t a c l a s s e d e m o n s t r a o u s o d e u m c l a s s i f i c a d o r b a s e a d o e m m u l t i l a y e r p e r c e p t r o n s . A c l a s s e  

1 5 

* l ê u m a r q u i v o n o f o r m a t o . A R F F , c r i a o c l a s s i f i c a d o r e o a r m a z e n a p a r a u s o p o s t e r i o r .  

1 6  * / 

1 7  p u b l i c c l a s s E x e m p l o N N 2 _ T r a i n  

1 8  { 

1 9  p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) t h r o w s E x c e p t i o n  

2 0  { 

2 1  / / U s a r e m o s a b a s e d e s e g m e n t o s d e i m a g e n s d i g i t a i s .  

2 2 

F i l e R e a d e r r e a d e r = n e w F i l e R e a d e r ( " / h o m e / r a f a e l / J a v a / A P I s / W e k a / d a t a / s e g m e n t - c h a l l e n g e . a r f f " ) ;  

2 3  I n s t a n c e s i n s t â n c i a s = n e w I n s t a n c e s ( r e a d e r ) ;  

2 4  i n s t â n c i a s . s e t C l a s s I n d e x ( 1 9 ) ;  

2 5  / / C r i a m o s o c l a s s i f i c a d o r b a s e a d o e m M u l t i l a y e r P e r c e p t r o n s  

2 6  M u l t i l a y e r P e r c e p t r o n m l p = n e w M u l t i l a y e r P e r c e p t r o n ( ) ;  

2 7  m l p . s e t A u t o B u i l d ( t r u e ) ;  

2 8  m l p . s e t L e a r n i n g R a t e ( 0 . 5 ) ;  

2 9 

m l p . s e t M o m e n t u m ( 0 . 2 ) ;  

3 0  m l p . s e t T r a i n i n g T i m e ( 2 0 0 0 ) ;  

3 1  m l p . s e t H i d d e n L a y e r s ( " 1 0 " ) ;  

3 2 

/ / T r e i n a m o s a r e d e .  

3 3  m l p . b u i l d C l a s s i f i e r ( i n s t â n c i a s ) ;  

3 4  / / S e r i a l i z a m o s a r e d e t r e i n a d a . O u t r o s m e c a n i s m o s d e s e r i a l i z a ç ã o p o d e r i a m s e r u s a d o s .  

3 5  O b j e c t O u t p u t S t r e a m o o s = n e w O b j e c t O u t p u t S t r e a m ( n e w F i l e O u t p u t S t r e a m ( " n n - s e g m e n t . s e r " ) ) ;  

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s R a f a e l S a n t o s  

Page 15: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 15/4

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 1 5  

3 6  o o s . w r i t e O b j e c t ( m l p ) ;  

3 7 

o o s . c l o s e ( ) ;  

3 8  } 

3 9 

4 0 

A c l a s s e   E x e m p l o N N 2 _ T r a i n   , m o s t r a d a n a l i s t a g e m 1 1 , r e c u p e r a a i n s t â n c i a d e   M u l t i l a y e r P e r c e p t r o n   t r e i n a d a  

n a c l a s s e   E x e m p l o N N 2 _ T r a i n   u s a n d o u m a i n s t â n c i a d e   O b j e c t I n p u t S t r e a m   , e u s a a r e d e p a r a c l a s s i c a r u m a  

b a s e c o m p a t í v e l d e d a d o s .  

L i s t a g e m 1 1 : A c l a s s e   E x e m p l o N N 2 _ T r a i n   , q u e u s a a r e d e t r e i n a d a a n t e r i o r m e n t e p a r a c l a s s i c a r u m c o n j u n t o  

d e d a d o s .  

/ * 

2  * P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

* h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

5  * / 

6  p a c k a g e w e k a ;  

i m p o r t j a v a . i o . * ;  

1 0  i m p o r t w e k a . c l a s s i f i e r s . f u n c t i o n s . M u l t i l a y e r P e r c e p t r o n ;  

1 1 

i m p o r t w e k a . c o r e . * ;  

1 2 

1 3  / * * 

1 4  * E s t a c l a s s e d e m o n s t r a o u s o d e u m c l a s s i f i c a d o r b a s e a d o e m m u l t i l a y e r p e r c e p t r o n s . A c l a s s e  

1 5  * l ê u m a i n s t â n c i a d e M u l t i l a y e r P e r c e p t r o n p r e v i a m e n t e c r i a d a e s e r i a l i z a d a e a u s a p a r a  

1 6  * c l a s s i f i c a r d a d o s c o m p a t í v e i s o b t i d o s d e u m a r q u i v o n o f o r m a t o . A R F F .  

1 7  * / 

1 8 

p u b l i c c l a s s E x e m p l o N N 2 _ U s e  

1 9  { 

2 0  p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) t h r o w s E x c e p t i o n  

2 1 

2 2  / / L e m o s a i n s t â n c i a d e M u l t i l a y e r P e r c e p t r o n p r e v i a m e n t e s e r i a l i z a d a .  

2 3  O b j e c t I n p u t S t r e a m o i s = n e w O b j e c t I n p u t S t r e a m ( n e w F i l e I n p u t S t r e a m ( " n n - s e g m e n t . s e r " ) ) ;  

2 4  M u l t i l a y e r P e r c e p t r o n m l p = ( M u l t i l a y e r P e r c e p t r o n ) o i s . r e a d O b j e c t ( ) ;  

2 5 

o i s . c l o s e ( ) ;  

2 6  / / U s a r e m o s o u t r a b a s e d e s e g m e n t o s d e i m a g e n s d i g i t a i s p a r a c l a s s i f i c a ç ã o .  

2 7  F i l e R e a d e r r e a d e r = n e w F i l e R e a d e r ( " / h o m e / r a f a e l / J a v a / A P I s / W e k a / d a t a / s e g m e n t - t e s t . a r f f " ) ;  

2 8 

I n s t a n c e s i n s t â n c i a s = n e w I n s t a n c e s ( r e a d e r ) ;  

2 9  i n s t â n c i a s . s e t C l a s s I n d e x ( 1 9 ) ;  

3 0  / / A g o r a v a m o s c l a s s i f i c a r c a d a d a d o c o m e s t a r e d e .  

3 1  i n t c o r r e t a s = 0 ;  

3 2  f o r ( i n t i = 0 ; i < i n s t â n c i a s . n u m I n s t a n c e s ( ) ; i + + )  

3 3  { 

3 4  / / R e c u p e r a m o s c a d a u m a d a s i n s t â n c i a s .  

3 5 

I n s t a n c e i n s t â n c i a = i n s t â n c i a s . i n s t a n c e ( i ) ;  

3 6  / / C l a s s i f i c a m o s e s t a i n s t â n c i a .  

3 7  i n t c l a s s e = ( i n t ) ( m l p . c l a s s i f y I n s t a n c e ( i n s t â n c i a ) ) ;  

3 8 

i f ( c l a s s e = = ( i n t ) i n s t â n c i a . c l a s s V a l u e ( ) ) c o r r e t a s + + ;  

3 9  } 

4 0  / / R e l a t ó r i o s i m p l e s :  

4 1  S y s t e m . o u t . p r i n t l n ( " D e " + i n s t â n c i a s . n u m I n s t a n c e s ( ) + " i n s t â n c i a s , " + c o r r e t a s + " ( " +  

4 2 

( 1 0 0 . * ( c o r r e t a s / ( 1 . 0 * i n s t â n c i a s . n u m I n s t a n c e s ( ) ) ) ) + " % ) f o r a m c l a s s i f i c a d a s c o r r e t a m e n t e . " ) ;  

4 3  / / D e 8 1 0 i n s t â n c i a s , 7 6 7 ( 9 4 . 6 9 1 3 5 8 0 2 4 6 9 1 3 7 % ) f o r a m c l a s s i f i c a d a s c o r r e t a m e n t e .  

4 4  } 

4 5 

4 6  } 

R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s  

Page 16: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 16/4

1 6 M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

6 W e k a A g r u p a m e n t o c o m        K - M e a n s  

6 . 1 I n t r o d u ç ã o  

A A P I W e k a i m p l e m e n t a t a m b é m a l g o r i t m o s d e a g r u p a m e n t o ; e n t r e e l e s o   K - M e a n s  . E s t e a l g o r i t m o p o s s i b i l i t a  

a c r i a ç ã o d e g r u p o s a p a r t i r d e i n s t â n c i a s c o m a t r i b u t o s n u m é r i c o s . I n s t â n c i a s s e m e l h a n t e s e n t r e s i n o e s p a ç o d e  

a t r i b u t o s s e r ã o i n c l u i d a s n o m e s m o g r u p o ; i n s t â n c i a s e m o u t r o g r u p o s e r ã o , p o r d e n i ç ã o , d i s t a n t e s n o e s p a ç o  

d e a t r i b u t o s . M a i s e x p l i c a ç õ e s s o b r e e s t e a l g o r i t m o p o d e m s e r v i s t a s e m [ 6 , 9 , 1 1 ] .  

6 . 2 U s a n d o o A l g o r i t m o   K - M e a n s   e m A p l i c a ç õ e s e m J a v a  

A c l a s s e   S i m p l e K M e a n s   , p a r t e d a A P I W e k a , é u s a d a p a r a r e p r e s e n t a r e f a z e r o a g r u p a m e n t o d e d a d o s n u m é r i c o s .  

P a r a f a z e r o a g r u p a m e n t o d e v e m o s c r i a r u m a i n s t â n c i a d a c l a s s e , i n d i c a r o n ú m e r o d e g r u p o s a s e r c r i a d o c o m  

o m é t o d o   s e t N u m C l u s t e r s   , i n f o r m a r o u t r o s p a r â m e t r o s s e n e c e s s á r i o e e x e c u t a r o a g r u p a m e n t o c o m o m é t o d o  

b u i l d C l u s t e r e r   q u e r e c e b e c o m o a r g u m e n t o u m a i n s t â n c i a d e   I n s t a n c e s   c o m a b a s e d e d a d o s .  

A o n a l d o a g r u p a m e n t o p o d e m o s o b t e r o n ú m e r o d e d a d o s e m c a d a g r u p o c o m u m a c h a m a d a a   g e t C l u s t e r S i z e s  

e o b t e r a s m é d i a s ( c e n t r ó i d e s ) d o s g r u p o s c o m u m a c h a m a d a a   g e t C l u s t e r C e n t r o i d s   . O u t r o s m é t o d o s p e r -  

m i t e m o b t e r o u t r a s e s t a t í s t i c a s s o b r e a g r u p a m e n t o . A c l a s s e   E x e m p l o K M e a n s   , m o s t r a d a n a l i s t a g e m 1 2 , m o s t r a  

c o m o e x e c u t a r e s t e s p a s s o s .  

L i s t a g e m 1 2 : A c l a s s e   E x e m p l o K M e a n s   , q u e d e m o n s t r a o u s o d o a l g o r i t m o   K - M e a n s   e m u m a a p l i c a ç ã o e m J a v a .  

1  / * 

2  * P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

* h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

5  * / 

6  p a c k a g e w e k a ;  

8  i m p o r t j a v a . i o . F i l e R e a d e r ;  

1 0  i m p o r t w e k a . c l u s t e r e r s . S i m p l e K M e a n s ;  

1 1  i m p o r t w e k a . c o r e . * ;  

1 2 

1 3  / * * 

1 4 

* E s t a c l a s s e d e m o n s t r a o u s o d e u m a l g o r i t m o d e a g r u p a m e n t o ( K - M e a n s ) . A c l a s s e  

1 5  * l ê u m a r q u i v o n o f o r m a t o . A R F F , c r i a o a g r u p a m e n t o e c l a s s i f i c a o p r ó p r i o a r q u i v o o r i g i n a l .  

1 6  * / 

1 7  p u b l i c c l a s s E x e m p l o K M e a n s  

1 8  { 

1 9  p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) t h r o w s E x c e p t i o n  

2 0  { 

2 1 

/ / U s a r e m o s a b a s e d e f l o r e s í r i s .  

2 2  F i l e R e a d e r r e a d e r = n e w F i l e R e a d e r ( " / h o m e / r a f a e l / J a v a / A P I s / W e k a / d a t a / i r i s . a r f f " ) ;  

2 3  I n s t a n c e s i n s t â n c i a s = n e w I n s t a n c e s ( r e a d e r ) ;  

2 4 

/ / Q u e r e m o s i g n o r a r a c l a s s e d a s i n s t â n c i a s .  

2 5  i n s t â n c i a s . d e l e t e A t t r i b u t e A t ( 4 ) ;  

2 6  / / C r i a m o s o a g r u p a m e n t o .  

2 7  S i m p l e K M e a n s a g r u p a m e n t o = n e w S i m p l e K M e a n s ( ) ;  

2 8  a g r u p a m e n t o . s e t N u m C l u s t e r s ( 3 ) ;  

2 9  a g r u p a m e n t o . s e t D i s p l a y S t d D e v s ( t r u e ) ;  

3 0  a g r u p a m e n t o . b u i l d C l u s t e r e r ( i n s t â n c i a s ) ;  

3 1 

/ / M o s t r a m o s e s t a t í s t i c a s s o b r e o a g r u p a m e n t o .  

3 2  I n s t a n c e s c l u s t e r C e n t e r s = a g r u p a m e n t o . g e t C l u s t e r C e n t r o i d s ( ) ;  

3 3  I n s t a n c e s c l u s t e r S T D D E V s = a g r u p a m e n t o . g e t C l u s t e r S t a n d a r d D e v s ( ) ;  

3 4  i n t [ ] c l u s t e r S i z e s = a g r u p a m e n t o . g e t C l u s t e r S i z e s ( ) ;  

3 5  f o r ( i n t c l u s t e r = 0 ; c l u s t e r < c l u s t e r C e n t e r s . n u m I n s t a n c e s ( ) ; c l u s t e r + + )  

3 6  { 

3 7  S y s t e m . o u t . p r i n t l n ( " C l u s t e r # " + ( c l u s t e r + 1 ) + " : " + c l u s t e r S i z e s [ c l u s t e r ] + " d a d o s . " ) ;  

3 8 

S y s t e m . o u t . p r i n t l n ( " C e n t r ó i d e : " + c l u s t e r C e n t e r s . i n s t a n c e ( c l u s t e r ) ) ;  

3 9  S y s t e m . o u t . p r i n t l n ( " S T D D E V : " + c l u s t e r S T D D E V s . i n s t a n c e ( c l u s t e r ) ) ;  

4 0  } 

4 1 

4 2 

4 3  } 

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s R a f a e l S a n t o s  

Page 17: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 17/4

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 1 7  

O r e s u l t a d o d a e x e c u ç ã o d a c l a s s e   E x e m p l o K M e a n s   é m o s t r a d o n a l i s t a g e m 1 3 .  

L i s t a g e m 1 3 : A c l a s s e   E x e m p l o K M e a n s   , q u e d e m o n s t r a o u s o d e u m a r e d e n e u r a l  M u l t i l a y e r P e r c e p t r o n   e m u m a  

a p l i c a ç ã o e m J a v a .  

C l u s t e r # 1 : 6 1 d a d o s .  

2  C e n t r ó i d e : 5 . 8 8 8 5 2 5 , 2 . 7 3 7 7 0 5 , 4 . 3 9 6 7 2 1 , 1 . 4 1 8 0 3 3  

S T D D E V : 0 . 4 4 8 7 3 8 , 0 . 2 9 3 3 5 1 , 0 . 5 2 6 9 3 , 0 . 2 7 2 3 4 1  

4  C l u s t e r # 2 : 5 0 d a d o s .  

5  C e n t r ó i d e : 5 . 0 0 6 , 3 . 4 1 8 , 1 . 4 6 4 , 0 . 2 4 4  

S T D D E V : 0 . 3 5 2 4 9 , 0 . 3 8 1 0 2 4 , 0 . 1 7 3 5 1 1 , 0 . 1 0 7 2 1  

7  C l u s t e r # 3 : 3 9 d a d o s .  

C e n t r ó i d e : 6 . 8 4 6 1 5 4 , 3 . 0 8 2 0 5 1 , 5 . 7 0 2 5 6 4 , 2 . 0 7 9 4 8 7  

9  S T D D E V : 0 . 5 0 2 5 4 4 , 0 . 2 7 9 9 1 7 , 0 . 5 1 9 3 5 5 , 0 . 2 8 1 1 4 4  

R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s  

Page 18: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 18/4

1 8 M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

7 V i s u a l i z a ç ã o u s a n d o C o o r d e n a d a s P a r a l e l a s    

7 . 1 I n t r o d u ç ã o  

A t é c n i c a C o o r d e n a d a s P a r a l e l a s (  P a r a l l e l C o o r d i n a t e s  ) [ 5 ] p e r m i t e a v i s u a l i z a ç ã o d e d a d o s m u l t i d i m e n s i o n a i s  

d e q u a l q u e r n a t u r e z a ( n u m é r i c o s o u n o m i n a i s ) e m u m g r á c o e m d u a s d i m e n s õ e s . A s d i m e n s õ e s d o s d a d o s  

s ã o t r a n s f o r m a d a s e m e i x o s p a r a l e l o s , t r a d i c i o n a l m e n t e a p r e s e n t a d o s n a v e r t i c a l . C a d a d a d o m u l t i d i m e n s i o n a l  

é p l o t a d o c o m o u m a l i n h a q u e p a s s a p e l o s e i x o s p a r a l e l o s , c r u z a n d o e s t e s n a a l t u r a d o s v a l o r e s d o s a t r i b u t o s  

c o r r e s p o n d e n t e s .  

E s t e t i p o d e g r á c o p e r m i t e a v i s u a l i z a ç ã o d e a g r u p a m e n t o s c o m o f e i x e s d e d a d o s e   o u t l i e r s   c o m o l i n h a s f o r a  

d e s t e s f e i x e s . P e r m i t e t a m b é m a v i s u a l i z a ç ã o d a d i s t r i b u i ç ã o d o s v a l o r e s a o l o n g o d e u m a d i m e n s ã o / e i x o e d a  

c o r r e l a ç ã o d o s v a l o r e s e n t r e d i m e n s õ e s / e i x o s , a s s i m c o m o e s t i m a t i v a d a s e p a r a b i l i d a d e e n t r e c l a s s e s e m f u n ç ã o  

d o s v a l o r e s d o s a t r i b u t o s . O g r á c o p o d e s e r u s a d o c o m d a d o s r o t u l a d o s o u n ã o , n u m é r i c o s ( e m q u a l q u e r e s c a l a ,  

q u e p o d e s e r d i f e r e n t e p a r a d i m e n s õ e s d i f e r e n t e s ) o u n o m i n a i s . U m a l i m i t a ç ã o d a t é c n i c a , p e l a s u a p r ó p r i a n a t u -  

r e z a , é q u e o s e i x o s s ã o m o s t r a d o s p a r a l e l o s u n s a o s o u t r o s , e c o r r e l a ç õ e s e n t r e v a l o r e s d e d i m e n s õ e s d i f e r e n t e s  

p o d e m o u n ã o a p a r e c e r e m e v i d ê n c i a d e p e n d e n d o d e c o m o o s e i x o s s ã o a r r a n j a d o s p o r e x e m p l o , s e e x i s t i r  

c o r r e l a ç ã o e n t r e d u a s d i m e n s õ e s m a s o s e i x o s c o r r e s p o n d e n t e s e s t i v e r e m d i s t a n t e s n o g r á c o , a c o r r e l a ç ã o p o d e  

n ã o a p a r e c e r e m e v i d ê n c i a .  

A v i s u a l i z a ç ã o d e d a d o s c o m c o o r d e n a d a s p a r a l e l a s é m a i s f a c i l m e n t e c o m p r e e n d i d a c o m u m e x e m p l o . A l i s t a -  

g e m 1 4 m o s t r a u m a r q u i v o   . A R F F   c o m u m a v e r s ã o r e d u z i d a a r e l a ç ã o d e d a d o s d o p r o b l e m a j o g a r d e p e n d e n d o  

d o t e m p o ( v e j a t a m b é m a l i s t a g e m 1 ) . E s t a r e l a ç ã o c o n t é m s o m e n t e t r ê s i n s t â n c i a s , c o m c i n c o a t r i b u t o s , d o s  

q u a i s o ú l t i m o é c o n s i d e r a d o a c l a s s e o u c o n s e q u e n t e . A g u r a 5 m o s t r a o g r á c o d e c o o r d e n a d a s p a r a l e l a s  

c o r r e s p o n d e n t e a e s t e s d a d o s n e s t a g u r a p o d e m o s v e r o s v a l o r e s d o s a t r i b u t o s p a r a c a d a i n s t â n c i a p l o t a d a s  

d a f o r m a d e s c r i t a .  

L i s t a g e m 1 4 : O a r q u i v o   w e a t h e r - 3 . a r f f   , c o m u m a v e r s ã o r e d u z i d a d a r e l a ç ã o d o p r o b l e m a j o g a r d e p e n d e n d o  

d o t e m p o .  

1  @ r e l a t i o n w e a t h e r - 3  

3  @ a t t r i b u t e o u t l o o k { s u n n y , o v e r c a s t , r a i n y }  

4  @ a t t r i b u t e t e m p e r a t u r e r e a l  

@ a t t r i b u t e h u m i d i t y r e a l  

6  @ a t t r i b u t e w i n d y { T R U E , F A L S E }  

@ a t t r i b u t e p l a y { y e s , n o }  

@ d a t a  

1 0  s u n n y , 8 5 , 8 5 , F A L S E , n o  

1 1  o v e r c a s t , 8 3 , 8 6 , F A L S E , y e s  

1 2 

r a i n y , 6 5 , 7 0 , T R U E , n o  

F i g u r a 5 : P l o t a g e m d a s c o o r d e n a d a s p a r a l e l a s d a r e l a ç ã o   w e a t h e r - 3 . a r f f   . 

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s R a f a e l S a n t o s  

Page 19: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 19/4

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 1 9  

7 . 2 I m p l e m e n t a ç ã o  

O g r á c o d a s c o o r d e n a d a s p a r a l e l a s é i m p l e m e n t a d o c o m o u m c o m p o n e n t e g r á c o e m J a v a . E s t e c o m p o n e n t e  

p o d e s e r u s a d o e m a p l i c a ç õ e s g r á c a s p a r a v i s u a l i z a ç ã o e p a r a c r i a ç ã o d e g r á c o s e m a r q u i v o . O c o m p o n e n t e  

u s a r á u m a i n s t â n c i a d e   I n s t a n c e s   , d a A P I W e k a , p a r a a c e s s a r t o d o s o s a t r i b u t o s e v a l o r e s d e u m a b a s e d e d a d o s  

( i n s t â n c i a s d e   I n s t a n c e   c o n t é m t o d o s o s d a d o s a p r e s e n t a d o s e m u m a r q u i v o   . A R F F  , m e n o s o s c o m e n t á r i o s d o  

m e s m o ) .  

O c o m p o n e n t e p e r m i t i r á a c o n g u r a ç ã o d e s u a a p a r ê n c i a ( c o r e s , m a r g e n s , f o n t e s , e t c . ) a t r a v é s d e u m a c l a s s e  

e x t e r n a . A c l a s s e q u e i m p l e m e n t a o c o m p o n e n t e é c h a m a d a   P a r a l l e l C o o r d i n a t e s C o m p o n e n t   e é m o s t r a d a  

n a l i s t a g e m 1 5 .  

L i s t a g e m 1 5 : A c l a s s e   P a r a l l e l C o o r d i n a t e s C o m p o n e n t   . 

/ * * 

2  * P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

* h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

5  * / 

6  p a c k a g e p a r c o o r d s ;  

i m p o r t j a v a . a w t . * ;  

9  i m p o r t j a v a . u t i l . * ;  

1 0 

1 1 

i m p o r t j a v a x . s w i n g . J C o m p o n e n t ;  

1 2 

1 3  i m p o r t w e k a . c o r e . * ;  

1 4 

1 5  p u b l i c c l a s s P a r a l l e l C o o r d i n a t e s C o m p o n e n t e x t e n d s J C o m p o n e n t  

1 6  { 

1 7  / / C ó p i a l o c a l d a s i n s t â n c i a s .  

1 8 

p r i v a t e I n s t a n c e s i n s t a n c e s ;  

1 9  / / V a l o r e s e x t r e m o s p a r a a t r i b u t o s n u m é r i c o s .  

2 0  p r i v a t e T r e e M a p < I n t e g e r , d o u b l e [ ] > e x t r e m a ;  

2 1  / / V a l o r e s e x t r e m o s g l o b a i s p a r a a t r i b u t o s n u m é r i c o s .  

2 2  p r i v a t e d o u b l e [ ] g l o b a l E x t r e m a ;  

2 3 

/ / V a l o r e s d i s c r e t o s p a r a a t r i b u t o s n o m i n a i s .  

2 4  p r i v a t e T r e e M a p < I n t e g e r , H a s h S e t < S t r i n g > > n o m i n a l V a l u e s ;  

2 5 

/ / D e v e m o s u s a r v a l o r e s e x t r e m o s d e f o r m a g l o b a l ?  

2 6  p r i v a t e b o o l e a n u s e G l o b a l E x t r e m a ;  

2 7  / / D e v e m o s u s a r c o r e s d i f e r e n t e s p a r a a s c l a s s e s ( ú l t i m o a t r i b u t o ) ?  

2 8 

p r i v a t e b o o l e a n u s e D i f f e r e n t C o l o r s ;  

2 9  / / Q u a n t o p o d e m o s " s a c u d i r " a s l i n h a s p a r a e v i t a r s u p e r p o s i ç ã o ?  

3 0  p r i v a t e d o u b l e w i g g l e ;  

3 1  / / C r i a m o s u m a i s n t â n c i a l o c a l p a r a a s c o n s t a n t e s d o g r á f i c o .  

3 2  p r i v a t e P a r a l l e l C o o r d i n a t e s C o n s t a n t s c o n s t s = n e w P a r a l l e l C o o r d i n a t e s C o n s t a n t s ( ) ;  

3 3 

3 4  / * * 

3 5 

* O c o n s t r u t o r p a r a a c l a s s e , q u e i n i c i a l i z a o s a t r i b u t o s e c r i a a i n t e r f a c e d o c o m p o n e n t e .  

3 6  * / 

3 7  p u b l i c P a r a l l e l C o o r d i n a t e s C o m p o n e n t ( I n s t a n c e s i n s t a n c e s ,  

3 8  b o o l e a n u s e G l o b a l E x t r e m a , b o o l e a n u s e D i f f e r e n t C o l o r s ,  

3 9  d o u b l e w i g g l e )  

4 0  { 

4 1  s u p e r ( ) ;  

4 2 

/ / C o p i a a t r i b u t o s .  

4 3  t h i s . i n s t a n c e s = i n s t a n c e s ;  

4 4  t h i s . u s e G l o b a l E x t r e m a = u s e G l o b a l E x t r e m a ;  

4 5 

t h i s . u s e D i f f e r e n t C o l o r s = u s e D i f f e r e n t C o l o r s ;  

4 6  t h i s . w i g g l e = w i g g l e ;  

4 7  / / C a l c u l a e s t a t í s t i c a s b á s i c a s s o b r e o s d a d o s .  

4 8  i n t n A x i s = i n s t a n c e s . n u m A t t r i b u t e s ( ) ;  

4 9  / / A l o c a m o s a s e s t r u t u r a s - b a s e .  

5 0  e x t r e m a = n e w T r e e M a p < I n t e g e r , d o u b l e [ ] > ( ) ;  

5 1  n o m i n a l V a l u e s = n e w T r e e M a p < I n t e g e r , H a s h S e t < S t r i n g > > ( ) ;  

5 2 

g l o b a l E x t r e m a = n e w d o u b l e [ 2 ] ;  

5 3  / / A l o c a m o s o s e l e m e n t o s n e c e s s á r i o s n o s m a p a s ( d e p e n d e n d o d o t i p o d o a t r i b u t o ) .  

5 4  f o r ( i n t a = 0 ; a < n A x i s ; a + + )  

5 5  { 

5 6  A t t r i b u t e a t t r i b = i n s t a n c e s . a t t r i b u t e ( a ) ;  

5 7  i f ( a t t r i b . i s N u m e r i c ( ) )  

R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s  

Page 20: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 20/4

2 0 M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

5 8  e x t r e m a . p u t ( a , n e w d o u b l e [ ] { D o u b l e . M A X _ V A L U E , D o u b l e . M I N _ V A L U E } ) ;  

5 9 

e l s e i f ( a t t r i b . i s N o m i n a l ( ) )  

6 0  n o m i n a l V a l u e s . p u t ( a , n e w H a s h S e t < S t r i n g > ( ) ) ;  

6 1  } 

6 2 

/ / P a r a c a d a i n s t â n c i a : s e n u m é r i c a a t u a l i z a m o s o s e x t r e m o s , s e d i s c r e t a i n c l u i m o s o s v a l o r e s .  

6 3  f o r ( i n t i = 0 ; i < i n s t a n c e s . n u m I n s t a n c e s ( ) ; i + + )  

6 4  { 

6 5  / / R e c u p e r a m o s u m a i n s t â n c i a . . . a A P I d o W e k a p e r m i t e e s c r e v e r c ó d i g o b i z a r r o !  

6 6  I n s t a n c e i n s t a n c e = i n s t a n c e s . i n s t a n c e ( i ) ;  

6 7  / / P a r a c a d a a t r i b u t o d e s t a i n s t â n c i a . . .  

6 8  f o r ( i n t a = 0 ; a < n A x i s ; a + + )  

6 9 

7 0  / / S e f o r n u m é r i c o . . .  

7 1  i f ( i n s t a n c e s . a t t r i b u t e ( a ) . i s N u m e r i c ( ) )  

7 2  { 

7 3  / / R e c u p e r a m o s o v a l o r e m u d a m o s o s e x t r e m o s p a r a a q u e l e a t r i b u t o e  

7 4  / / o s e x t r e m o s g l o b a i s .  

7 5  d o u b l e v a l u e = i n s t a n c e . v a l u e ( a ) ;  

7 6 

e x t r e m a . g e t ( a ) [ 0 ] = M a t h . m i n ( e x t r e m a . g e t ( a ) [ 0 ] , v a l u e ) ;  

7 7  e x t r e m a . g e t ( a ) [ 1 ] = M a t h . m a x ( e x t r e m a . g e t ( a ) [ 1 ] , v a l u e ) ;  

7 8  g l o b a l E x t r e m a [ 0 ] = M a t h . m i n ( g l o b a l E x t r e m a [ 0 ] , v a l u e ) ;  

7 9 

g l o b a l E x t r e m a [ 1 ] = M a t h . m a x ( g l o b a l E x t r e m a [ 1 ] , v a l u e ) ;  

8 0  } 

8 1  / / S e f o r n o m i n a l . . .  

8 2  e l s e i f ( i n s t a n c e s . a t t r i b u t e ( a ) . i s N o m i n a l ( ) )  

8 3  { 

8 4  / / R e c u p e r a m o s t o d o s o s v a l o r e s p a r a a q u e l e a t r i b u t o n o m i n a l .  

8 5  E n u m e r a t i o n v a l u e s E = i n s t a n c e s . a t t r i b u t e ( a ) . e n u m e r a t e V a l u e s ( ) ;  

8 6 

/ / A r m a z e n a m o s n a n o s s a e s t r u t u r a .  

8 7  w h i l e ( v a l u e s E . h a s M o r e E l e m e n t s ( ) )  

8 8  n o m i n a l V a l u e s . g e t ( a ) . a d d ( ( S t r i n g ) v a l u e s E . n e x t E l e m e n t ( ) ) ;  

8 9  } 

9 0  } / / F i m d o l a ç o p a r a c a d a a t r i b u t o . . .  

9 1  } / / F i m d o l a ç o p a r a c a d a i n s t â n c i a . . .  

9 2  } 

9 3 

9 4  / * * 

9 5  * E s t e m é t o d o m u d a o s v a l o r e s e x t r e m o s g l o b a i s .  

9 6 

* / 

9 7  p u b l i c v o i d s e t E x t r e m a ( d o u b l e m i n , d o u b l e m a x )  

9 8  { 

9 9  g l o b a l E x t r e m a [ 0 ] = m i n ;  

1 0 0  g l o b a l E x t r e m a [ 1 ] = m a x ;  

1 0 1  } 

1 0 2 

1 0 3 

/ * * 

1 0 4  * E s t e m é t o d o c r i a o c o m p o n e n t e , c h a m a n d o v á r i o s m é t o d o s a u x i l i a r e s .  

1 0 5  * / 

1 0 6  p r o t e c t e d v o i d p a i n t C o m p o n e n t ( G r a p h i c s g )  

1 0 7  { 

1 0 8  / / R e c u p e r a m o s a s d i m e n s õ e s d o c o m p o n e n t e .  

1 0 9  i n t w i d t h = g e t S i z e ( ) . w i d t h ;  

1 1 0 

i n t h e i g h t = g e t S i z e ( ) . h e i g h t ;  

1 1 1  / / R e c u p e r a m o s a á r e a d e p l o t a g e m ( d i m e n s õ e s m e n o s a s b o r d a s ) .  

1 1 2  i n t p l o t W i d t h = w i d t h - c o n s t s . l e f t M a r g i n - c o n s t s . r i g h t M a r g i n ;  

1 1 3 

i n t p l o t H e i g h t = h e i g h t - c o n s t s . t o p M a r g i n - c o n s t s . b o t t o m M a r g i n ;  

1 1 4  / / U s a r e m o s G r a p h i c s 2 D p a r a m e l h o r a p a r ê n c i a .  

1 1 5  G r a p h i c s 2 D g 2 d = ( G r a p h i c s 2 D ) g ;  

1 1 6  g 2 d . s e t R e n d e r i n g H i n t ( R e n d e r i n g H i n t s . K E Y _ A N T I A L I A S I N G ,  

1 1 7  R e n d e r i n g H i n t s . V A L U E _ A N T I A L I A S _ O N ) ;  

1 1 8  / / P i n t a m o s o f u n d o d o c o m p o n e n t e .  

1 1 9  g 2 d . s e t C o l o r ( c o n s t s . p l o t t i n g A r e a B a c k g r o u n d ) ;  

1 2 0 

g 2 d . f i l l R e c t ( 0 , 0 , w i d t h , h e i g h t ) ;  

1 2 1  / / P i n t a m o s o f u n d o d a á r e a d e p l o t a g e m .  

1 2 2  g 2 d . s e t C o l o r ( c o n s t s . p l o t t i n g A r e a C o l o r ) ;  

1 2 3  g 2 d . f i l l R e c t ( c o n s t s . l e f t M a r g i n , c o n s t s . t o p M a r g i n , p l o t W i d t h , p l o t H e i g h t ) ;  

1 2 4  / / P i n t a m o s p r i m e i r o o s d a d o s ( p a r a q u e o s e i x o s n ã o d e s a p a r e ç a m s o b e l e s ! ) .  

1 2 5  / / P a r a c a d a i n s t â n c i a . . .  

1 2 6  f o r ( i n t i n s t = 0 ; i n s t < i n s t a n c e s . n u m I n s t a n c e s ( ) ; i n s t + + )  

1 2 7 

1 2 8  I n s t a n c e i n s t a n c e = i n s t a n c e s . i n s t a n c e ( i n s t ) ;  

1 2 9  / / C a l c u l a m o s a s c o o r d e n a d a s " d e " e " p a r a " c a d a s e g m e n t o .  

1 3 0 

d o u b l e x = 0 , y = 0 , l a s t X = 0 , l a s t Y = 0 ;  

1 3 1  / / P a r a c a d a u m d e s e u s a t r i b u t o s . . .  

1 3 2  f o r ( i n t a t t r = 0 ; a t t r < i n s t a n c e . n u m A t t r i b u t e s ( ) ; a t t r + + )  

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s R a f a e l S a n t o s  

Page 21: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 21/4

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 2 1  

1 3 3  { 

1 3 4 

/ / R e c u p e r a m o s a s c o o r d e n a d a s X e Y d e c a d a a t r i b u t o ( d e f o r m a d i f e r e n t e p a r a  

1 3 5  / / a t r i b u t o s n u m é r i c o s e n o m i n a i s ) .  

1 3 6  s w i t c h ( i n s t a n c e s . a t t r i b u t e ( a t t r ) . t y p e ( ) )  

1 3 7 

1 3 8  c a s e A t t r i b u t e . N U M E R I C :  

1 3 9  { 

1 4 0  x = g e t X F o r A t t r i b u t e ( a t t r , p l o t W i d t h ) ;  

1 4 1  y = g e t Y F o r N u m e r i c A t t r i b u t e ( i n s t a n c e . v a l u e ( a t t r ) , a t t r , p l o t H e i g h t ) ;  

1 4 2  b r e a k ;  

1 4 3  } 

1 4 4 

c a s e A t t r i b u t e . N O M I N A L :  

1 4 5  { 

1 4 6  x = g e t X F o r A t t r i b u t e ( a t t r , p l o t W i d t h ) ;  

1 4 7  / / Q u a l é o n o m e d o a t r i b u t o p a r a r e c u p e r a r a c o o r d e n a d a Y ?  

1 4 8  S t r i n g s A t t r = i n s t a n c e s . i n s t a n c e ( i n s t ) . s t r i n g V a l u e ( a t t r ) ;  

1 4 9  y = g e t Y F o r N o m i n a l A t t r i b u t e ( s A t t r , a t t r , p l o t H e i g h t ) ;  

1 5 0  b r e a k ;  

1 5 1 

1 5 2  } 

1 5 3  / / D e v e m o s s a c u d i r a l i n h a p a r a e v i t a r s u p e r p o s i ç ã o ? C a d a u n i d a d e d e s a c u d i d a  

1 5 4 

/ / c a u s a u m a v a r i a ç ã o e n t r e - 5 0 e 5 0 p i x e l s ) .  

1 5 5  i f ( w i g g l e > 0 )  

1 5 6  { 

1 5 7  d o u b l e w p i x = ( w i g g l e * 5 0 ) - ( w i g g l e * 1 0 0 * M a t h . r a n d o m ( ) ) ;  

1 5 8  y + = w p i x ;  

1 5 9  } 

1 6 0  / / S o m e n t e p l o t a r e m o s q u a n d o t i v e r m o s d o i s p a r e s d e X , Y .  

1 6 1 

i f ( a t t r > 0 )  

1 6 2  { 

1 6 3  / / U s a m o s u m a s ó c o r o u u m a p a r a c a d a c l a s s e ?  

1 6 4  i f ( u s e D i f f e r e n t C o l o r s )  

1 6 5  { 

1 6 6  / / A s s u m i m o s q u e o ú l t i m o a t r i b u t o é a c l a s s e , e a c o r s e r á s e l e c i o n a d a  

1 6 7  / / a p a r t i r d o v a l o r d e s t e .  

1 6 8 

i n t c o l o r I n d e x = ( i n t ) i n s t a n c e . v a l u e ( i n s t a n c e . n u m A t t r i b u t e s ( ) - 1 ) ;  

1 6 9  g 2 d . s e t C o l o r ( c o n s t s . l i n e s C o l o r s [ c o l o r I n d e x ] ) ;  

1 7 0  } 

1 7 1 

e l s e g 2 d . s e t C o l o r ( c o n s t s . p l o t t i n g L i n e C o l o r ) ;  

1 7 2  / / M u d a m o s o s t r o k e e d e s e n h a m o s a l i n h a .  

1 7 3  g 2 d . s e t S t r o k e ( c o n s t s . s t r o k e ) ;  

1 7 4  g 2 d . d r a w L i n e ( ( i n t ) x , ( i n t ) y , ( i n t ) l a s t X , ( i n t ) l a s t Y ) ;  

1 7 5  } 

1 7 6  / / G u a r d a m o s a s ú l t i m a s c o o r d e n a d a s u s a d a s p a r a o p r ó x i m o s e g m e n t o .  

1 7 7  l a s t X = x ; l a s t Y = y ;  

1 7 8 

} / / F i m d o l a ç o p a r a c a d a a t r i b u t o .  

1 7 9  } / / F i m d o l a ç o p a r a c a d a i n s t â n c i a .  

1 8 0  / / V o l t a m o s a o s t r o k e n o r m a l .  

1 8 1  g 2 d . s e t S t r o k e ( n e w B a s i c S t r o k e ( 1 f ) ) ;  

1 8 2  / / O K , o s d a d o s f o r a m p l o t a d o s , v a m o s p l o t a r o s e i x o s p a r a l e l o s , n o v a m e n t e c o m m é t o d o s  

1 8 3  / / d i f e r e n t e s p a r a a t r i b u t o s n u m é r i c o s e n o m i n a i s .  

1 8 4  f o r ( i n t a t t r = 0 ; a t t r < i n s t a n c e s . n u m A t t r i b u t e s ( ) ; a t t r + + )  

1 8 5 

1 8 6  s w i t c h ( i n s t a n c e s . a t t r i b u t e ( a t t r ) . t y p e ( ) )  

1 8 7  { 

1 8 8 

c a s e A t t r i b u t e . N U M E R I C : p a i n t N u m e r i c A x i s ( g 2 d , a t t r , p l o t W i d t h , p l o t H e i g h t ) ; b r e a k ;  

1 8 9  c a s e A t t r i b u t e . N O M I N A L : p a i n t N o m i n a l A x i s ( g 2 d , a t t r , p l o t W i d t h , p l o t H e i g h t ) ; b r e a k ;  

1 9 0  } 

1 9 1  } 

1 9 2  / / P i n t a m o s o t í t u l o d o s a t r i b u t o s .  

1 9 3  g 2 d . s e t F o n t ( c o n s t s . a x i s T i t l e s F o n t ) ;  

1 9 4  f o r ( i n t a t t r = 0 ; a t t r < i n s t a n c e s . n u m A t t r i b u t e s ( ) ; a t t r + + )  

1 9 5 

1 9 6  S t r i n g n a m e = i n s t a n c e s . a t t r i b u t e ( a t t r ) . n a m e ( ) ;  

1 9 7  g 2 d . d r a w S t r i n g ( n a m e , ( i n t ) g e t X F o r A t t r i b u t e ( a t t r , p l o t W i d t h ) , c o n s t s . t o p M a r g i n - 2 0 ) ;  

1 9 8  } 

1 9 9  / / P i n t a m o s o t í t u l o d o g r á f i c o , q u e s e r á o d a r e l a ç ã o n o a r q u i v o . A R F F .  

2 0 0  g 2 d . s e t F o n t ( c o n s t s . t i t l e F o n t ) ;  

2 0 1  F o n t M e t r i c s m = g 2 d . g e t F o n t M e t r i c s ( ) ;  

2 0 2 

S t r i n g n a m e = i n s t a n c e s . r e l a t i o n N a m e ( ) ;  

2 0 3  i n t x = w i d t h / 2 - m . s t r i n g W i d t h ( n a m e ) / 2 ;  

2 0 4  g 2 d . d r a w S t r i n g ( n a m e , x , c o n s t s . t o p M a r g i n - 4 5 ) ;  

2 0 5 

2 0 6 

2 0 7  / * 

R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s  

Page 22: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 22/4

2 2 M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

2 0 8  * C a l c u l a m o s a c o o r d e n a d a X p a r a u m a t r i b u t o e s p e c í f i c o , c o n s i d e r a n d o a á r e a d e p l o t a g e m .  

2 0 9 

* O v a l o r d a c o o r d e n a d a X d e p e n d e s o m e n t e d o í n d i c e d o e i x o d o a t r i b u t o c o r r e s p o n d e n t e .  

2 1 0  * / 

2 1 1  p r i v a t e d o u b l e g e t X F o r A t t r i b u t e ( i n t a x i s , i n t p w i d t h )  

2 1 2 

2 1 3  i n t n A x i s = i n s t a n c e s . n u m A t t r i b u t e s ( ) ;  

2 1 4  d o u b l e x = c o n s t s . l e f t M a r g i n + a x i s * ( p w i d t h / ( n A x i s - 1 ) ) ;  

2 1 5  r e t u r n x ;  

2 1 6  } 

2 1 7 

2 1 8  / * 

2 1 9 

* C a l c u l a m o s a c o o r d e n a d a Y p a r a u m v a l o r e a t r i b u t o n u m é r i c o e s p e c í f i c o , c o n s i d e r a n d o a  

2 2 0  * á r e a d e p l o t a g e m . O v a l o r s e r á n o r m a l i z a d o d e p e n d e n d o d o s v a l o r e s e x t r e m o s g l o b a i s o u d o  

2 2 1  * a t r i b u t o .  

2 2 2  * / 

2 2 3  p r i v a t e d o u b l e g e t Y F o r N u m e r i c A t t r i b u t e ( d o u b l e v a l u e , i n t a x i s , i n t p h e i g h t )  

2 2 4  { 

2 2 5  d o u b l e d e l t a , v a l = 0 ;  

2 2 6 

/ / U s a m o s e x t r e m o s g l o b a i s ?  

2 2 7  i f ( u s e G l o b a l E x t r e m a )  

2 2 8  { 

2 2 9 

i n t n A x i s = i n s t a n c e s . n u m A t t r i b u t e s ( ) ;  

2 3 0  d e l t a = g l o b a l E x t r e m a [ 1 ] - g l o b a l E x t r e m a [ 0 ] ;  

2 3 1  v a l = c o n s t s . t o p M a r g i n + p h e i g h t * ( 1 - ( v a l u e - g l o b a l E x t r e m a [ 0 ] ) / d e l t a ) ;  

2 3 2  } 

2 3 3  e l s e  

2 3 4  { 

2 3 5  d e l t a = e x t r e m a . g e t ( a x i s ) [ 1 ] - e x t r e m a . g e t ( a x i s ) [ 0 ] ;  

2 3 6 

v a l = c o n s t s . t o p M a r g i n + p h e i g h t * ( 1 - ( v a l u e - e x t r e m a . g e t ( a x i s ) [ 0 ] ) / d e l t a ) ;  

2 3 7  } 

2 3 8  r e t u r n v a l ;  

2 3 9  } 

2 4 0 

2 4 1  / * 

2 4 2  * C a l c u l a m o s a c o o r d e n a d a Y p a r a u m v a l o r e a t r i b u t o n o m i n a l e s p e c í f i c o , c o n s i d e r a n d o a  

2 4 3 

* á r e a d e p l o t a g e m .  

2 4 4  * / 

2 4 5  p r i v a t e d o u b l e g e t Y F o r N o m i n a l A t t r i b u t e ( S t r i n g w h i c h A t t r , i n t a x i s , i n t p h e i g h t )  

2 4 6 

2 4 7  / / M u i t o m a i s f á c i l c o m n o m i n a i s d o q u e c o m n u m é r i c o s !  

2 4 8  A r r a y L i s t < S t r i n g > t h e s e V a l u e s = n e w A r r a y L i s t < S t r i n g > ( n o m i n a l V a l u e s . g e t ( a x i s ) ) ;  

2 4 9  i n t i n d e x = t h e s e V a l u e s . i n d e x O f ( w h i c h A t t r ) ;  

2 5 0  d o u b l e y = c o n s t s . t o p M a r g i n + i n d e x * ( p h e i g h t / ( n o m i n a l V a l u e s . g e t ( a x i s ) . s i z e ( ) - 1 ) ) ;  

2 5 1  r e t u r n y ;  

2 5 2  } 

2 5 3 

2 5 4  / * 

2 5 5  * D e s e n h a m o s u m e i x o p a r a a t r i b u t o n u m é r i c o .  

2 5 6  * / 

2 5 7  p r i v a t e v o i d p a i n t N u m e r i c A x i s ( G r a p h i c s 2 D g 2 d , i n t a x i s , i n t p w i d t h , i n t p h e i g h t )  

2 5 8  { 

2 5 9  i n t n A x i s = i n s t a n c e s . n u m A t t r i b u t e s ( ) ;  

2 6 0 

/ / C a l c u l a m o s o v a l o r p a r a e s p a ç a m e n t o d a s m a r c a s n o e i x o .  

2 6 1  d o u b l e d e l t a ;  

2 6 2  i f ( u s e G l o b a l E x t r e m a ) d e l t a = ( g l o b a l E x t r e m a [ 1 ] - g l o b a l E x t r e m a [ 0 ] ) / ( c o n s t s . n u m M a r k s - 1 ) ;  

2 6 3 

e l s e d e l t a = ( e x t r e m a . g e t ( a x i s ) [ 1 ] - e x t r e m a . g e t ( a x i s ) [ 0 ] ) / ( c o n s t s . n u m M a r k s - 1 ) ;  

2 6 4  / / D e s e n h a m o s o e i x o .  

2 6 5  g 2 d . s e t C o l o r ( c o n s t s . p l o t t i n g A x i s C o l o r F o r e g r o u n d ) ;  

2 6 6  g 2 d . d r a w L i n e ( c o n s t s . l e f t M a r g i n + a x i s * ( p w i d t h / ( n A x i s - 1 ) ) , c o n s t s . t o p M a r g i n ,  

2 6 7  c o n s t s . l e f t M a r g i n + a x i s * ( p w i d t h / ( n A x i s - 1 ) ) , p h e i g h t + c o n s t s . t o p M a r g i n ) ;  

2 6 8  / / D e s e n h a m o s a s m a r c a s e r ó t u l o s .  

2 6 9  g 2 d . s e t F o n t ( c o n s t s . a x i s L a b e l s F o n t ) ;  

2 7 0 

f o r ( i n t n = 0 ; n < c o n s t s . n u m M a r k s ; n + + )  

2 7 1  { 

2 7 2  / / M a r c a s .  

2 7 3  d o u b l e t i c = c o n s t s . t o p M a r g i n + n * ( p h e i g h t / ( c o n s t s . n u m M a r k s - 1 ) ) ;  

2 7 4  g 2 d . d r a w L i n e ( c o n s t s . l e f t M a r g i n + a x i s * ( p w i d t h / ( n A x i s - 1 ) ) - 5 , ( i n t ) t i c ,  

2 7 5  c o n s t s . l e f t M a r g i n + a x i s * ( p w i d t h / ( n A x i s - 1 ) ) + 5 , ( i n t ) t i c ) ;  

2 7 6  / / R ó t u l o s .  

2 7 7 

d o u b l e v a l u e ;  

2 7 8  i f ( u s e G l o b a l E x t r e m a ) v a l u e = g l o b a l E x t r e m a [ 1 ] - ( n * d e l t a ) ;  

2 7 9  e l s e v a l u e = e x t r e m a . g e t ( a x i s ) [ 1 ] - ( n * d e l t a ) ;  

2 8 0 

g 2 d . s e t C o l o r ( c o n s t s . p l o t t i n g A x i s C o l o r B a c k g r o u n d ) ;  

2 8 1  g 2 d . d r a w S t r i n g ( S t r i n g . f o r m a t ( " % 5 . 2 f " , v a l u e ) ,  

2 8 2  c o n s t s . l e f t M a r g i n + a x i s * ( p w i d t h / ( n A x i s - 1 ) ) + 6 , ( i n t ) t i c + 1 ) ;  

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s R a f a e l S a n t o s  

Page 23: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 23/4

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 2 3  

2 8 3  g 2 d . s e t C o l o r ( c o n s t s . p l o t t i n g A x i s C o l o r F o r e g r o u n d ) ;  

2 8 4 

g 2 d . d r a w S t r i n g ( S t r i n g . f o r m a t ( " % 5 . 2 f " , v a l u e ) ,  

2 8 5  c o n s t s . l e f t M a r g i n + a x i s * ( p w i d t h / ( n A x i s - 1 ) ) + 5 , ( i n t ) t i c ) ;  

2 8 6  } 

2 8 7 

2 8 8 

2 8 9  / * 

2 9 0  * D e s e n h a m o s u m e i x o p a r a a t r i b u t o n o m i n a l .  

2 9 1  * / 

2 9 2  p r i v a t e v o i d p a i n t N o m i n a l A x i s ( G r a p h i c s 2 D g 2 d , i n t a x i s , i n t p w i d t h , i n t p h e i g h t )  

2 9 3  { 

2 9 4 

/ / I n t e r n a m e n t e r e p r e s e n t a m o s o s v a l o r e s n o m i n a i s d e s t e e i x o c o m o u m A r r a y L i s t - - é m a i s f á c i l .  

2 9 5  A r r a y L i s t < S t r i n g > t h e s e V a l u e s = n e w A r r a y L i s t < S t r i n g > ( n o m i n a l V a l u e s . g e t ( a x i s ) ) ;  

2 9 6  i n t n A x i s = i n s t a n c e s . n u m A t t r i b u t e s ( ) ;  

2 9 7  / / D e s e n h a m o s o e i x o .  

2 9 8  g 2 d . s e t C o l o r ( c o n s t s . p l o t t i n g A x i s C o l o r F o r e g r o u n d ) ;  

2 9 9  g 2 d . d r a w L i n e ( c o n s t s . l e f t M a r g i n + a x i s * ( p w i d t h / ( n A x i s - 1 ) ) , c o n s t s . t o p M a r g i n ,  

3 0 0  c o n s t s . l e f t M a r g i n + a x i s * ( p w i d t h / ( n A x i s - 1 ) ) , p h e i g h t + c o n s t s . t o p M a r g i n ) ;  

3 0 1 

/ / D e s e n h a m o s a s m a r c a s e r ó t u l o s .  

3 0 2  g 2 d . s e t F o n t ( c o n s t s . a x i s L a b e l s F o n t ) ;  

3 0 3  f o r ( i n t n = 0 ; n < t h e s e V a l u e s . s i z e ( ) ; n + + )  

3 0 4 

3 0 5  / / M a r c a s .  

3 0 6  d o u b l e t i c = c o n s t s . t o p M a r g i n + n * ( p h e i g h t / ( n o m i n a l V a l u e s . g e t ( a x i s ) . s i z e ( ) - 1 ) ) ;  

3 0 7  g 2 d . d r a w L i n e ( c o n s t s . l e f t M a r g i n + a x i s * ( p w i d t h / ( n A x i s - 1 ) ) - 5 , ( i n t ) t i c ,  

3 0 8  c o n s t s . l e f t M a r g i n + a x i s * ( p w i d t h / ( n A x i s - 1 ) ) + 5 , ( i n t ) t i c ) ;  

3 0 9  / / R ó t u l o s .  

3 1 0  g 2 d . s e t C o l o r ( c o n s t s . p l o t t i n g A x i s C o l o r B a c k g r o u n d ) ;  

3 1 1 

g 2 d . d r a w S t r i n g ( S t r i n g . f o r m a t ( " % - 2 0 s " , t h e s e V a l u e s . g e t ( n ) ) ,  

3 1 2  c o n s t s . l e f t M a r g i n + a x i s * ( p w i d t h / ( n A x i s - 1 ) ) + 6 , ( i n t ) t i c + 1 ) ;  

3 1 3  g 2 d . s e t C o l o r ( c o n s t s . p l o t t i n g A x i s C o l o r F o r e g r o u n d ) ;  

3 1 4  g 2 d . d r a w S t r i n g ( S t r i n g . f o r m a t ( " % - 2 0 s " , t h e s e V a l u e s . g e t ( n ) ) ,  

3 1 5  c o n s t s . l e f t M a r g i n + a x i s * ( p w i d t h / ( n A x i s - 1 ) ) + 5 , ( i n t ) t i c ) ;  

3 1 6  } 

3 1 7  } 

3 1 8 

3 1 9  / * 

3 2 0  * E s t e m é t o d o p e r m i t e m u d a r o c o n j u n t o d e c o n s t a n t e s p a r a a p l o t a g e m .  

3 2 1 

* / 

3 2 2  p u b l i c v o i d s e t C o n s t s ( P a r a l l e l C o o r d i n a t e s C o n s t a n t s c o n s t s )  

3 2 3  { 

3 2 4  t h i s . c o n s t s = c o n s t s ;  

3 2 5  } 

3 2 6 

3 2 7  } 

A l g u m a s c a r a c t e r í s t i c a s i n t e r e s s a n t e s i m p l e m e n t a d a s n a c l a s s e   P a r a l l e l C o o r d i n a t e s C o m p o n e n t   ( e i n f o r m a d a s  

a t r a v é s d e p a r â m e t r o s p a s s a d o s p a r a s e u c o n s t r u t o r ) s ã o :  

E i x o s d e a t r i b u t o s n u m é r i c o s s ã o p l o t a d o s c o n s i d e r a n d o o s v a l o r e s m á x i m o e m í n i m o d o e i x o ( a t r i b u t o ) .  

E i x o s n u m é r i c o s p o d e m s e r n o r m a l i z a d o s p a r a q u e i n d i q u e m v a l o r e s e n t r e o m á x i m o e m í n i m o g l o b a i s d e  

t o d o s o s a t r i b u t o s n u m é r i c o s .  

É p o s s í v e l u s a r u m a ú n i c a c o r p a r a t o d a s a s l i n h a s q u e r e p r e s e n t a m d a d o s o u c o r e s i n d i v i d u a i s p a r a c a d a  

c l a s s e o u c a t e g o r i a d e c a d a l i n h a . N o c a s o d e b a s e s c o m r ó t u l o s p a r a c a d a i n s t â n c i a , a s s u m i m o s q u e o  

ú l t i m o a t r i b u t o c o r r e s p o n d e a c l a s s e , a s s i m s e u m g r á c o c o m c o r e s d i s t i n t a s f o r c r i a d o , c a d a c l a s s e t e r á  

u m a c o r d i f e r e n t e ( d e n t r o d e u m l i m i t e d e c o r e s d e n i d a s , v e j a a c l a s s e   P a r a l l e l C o o r d i n a t e s C o n s t a n t s  

a s e g u i r ) . N o c a s o d e b a s e s s e m r ó t u l o s o u c l a s s e s p o d e m o s u s a r u m a c o r g e r a l ( c i n z a p o r   d e f a u l t  ) . 

E m a l g u n s c a s o s p o d e m o s t e r v á r i a s l i n h a s s u p e r p o s t a s n o g r á c o i s t o p o d e o c o r r e r q u a n d o m u i t a s  

i n s t â n c i a s o c u p a r e m o m e s m o p o n t o n o e s p a ç o d e a t r i b u t o s o u q u a n d o e x i s t i r e m p o u c o s v a l o r e s d i s c r e t o s  

p a r a u m a t r i b u t o . N e s t e s c a s o s p o d e m o s e s p e c i a r u m p a r â m e t r o c h a m a d o   w i g g l e   q u e d e n e u m a p e q u e n a  

p e r t u r b a ç ã o a l e a t ó r i a n a p o s i ç ã o d a s c o o r d e n a d a s  Y  

d o s d a d o s , j u s t a m e n t e p a r a e v i t a q u e s e j a m p l o t a d o s  

u n s s o b r e o s o u t r o s ( c o m o s m a i s r e c e n t e m e n t e p l o t a d o s o c u l t a n d o o s p l o t a d o s a n t e r i o r m e n t e ) .  

A c l a s s e   P a r a l l e l C o o r d i n a t e s C o m p o n e n t   ( l i s t a g e m 1 5 ) u s a v á r i o s a t r i b u t o s d a c l a s s e   P a r a l l e l C o o r d i n a t e s -  

C o n s t a n t s   , q u e r e p r e s e n t a u m c o n j u n t o b á s i c o ( m o d i c á v e l ) d e a t r i b u t o s q u e c o n t r o l a m a a p a r ê n c i a d o g r á c o .  

A c l a s s e   P a r a l l e l C o o r d i n a t e s C o n s t a n t s   é m o s t r a d a n a l i s t a g e m 1 6 .  

R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s  

Page 24: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 24/4

2 4 M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

L i s t a g e m 1 6 : A c l a s s e   P a r a l l e l C o o r d i n a t e s C o n s t a n t s   . 

1  / * 

* P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

4  * h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

5  * / 

6  p a c k a g e p a r c o o r d s ;  

8  i m p o r t j a v a . a w t . * ;  

1 0  / * * 

1 1  * E s t a c l a s s e c o n t é m c a m p o s p a r a u s o p e l o c o m p o n e n t e P a r a l l e l C o o r d i n a t e s C o n s t a n t s  

1 2  * q u e d e f i n e m a s p e c t o s d o g r á f i c o q u e s ã o i n d e p e n d e n t e s d o s d a d o s e m s i .  

1 3  * E m u m a i m p l e m e n t a ç ã o m a i s c o m p l e t a d e v e r í a m o s t e r g e t t e r s e s e t t e r s e o s c a m p o s  

1 4  * d e v e r i a m s e r d e c l a r a d o s c o m o p r i v a d o s .  

1 5  * / 

1 6 

p u b l i c c l a s s P a r a l l e l C o o r d i n a t e s C o n s t a n t s  

1 7  { 

1 8  / / M a r g e n s .  

1 9 

p u b l i c i n t t o p M a r g i n = 7 5 ;  

2 0  p u b l i c i n t b o t t o m M a r g i n = 1 5 ;  

2 1  p u b l i c i n t l e f t M a r g i n = 1 5 ;  

2 2  p u b l i c i n t r i g h t M a r g i n = 2 0 0 ;  

2 3  / / N ú m e r o d e m a r c a s n o s e i x o s d a s c o o r d e n a d a s .  

2 4  p u b l i c i n t n u m M a r k s = 1 0 ;  

2 5  / / C o r e s p a r a o g r á f i c o ( c o m u n s ) .  

2 6 

p u b l i c C o l o r p l o t t i n g A r e a B a c k g r o u n d = C o l o r . W H I T E ;  

2 7  p u b l i c C o l o r p l o t t i n g A r e a C o l o r = n e w C o l o r ( 2 5 2 , 2 5 2 , 2 5 5 ) ;  

2 8  p u b l i c C o l o r p l o t t i n g A x i s C o l o r F o r e g r o u n d = C o l o r . B L A C K ;  

2 9  p u b l i c C o l o r p l o t t i n g A x i s C o l o r B a c k g r o u n d = C o l o r . L I G H T _ G R A Y ;  

3 0  p u b l i c C o l o r p l o t t i n g L i n e C o l o r = n e w C o l o r ( 1 0 0 , 1 0 0 , 1 0 0 , 8 0 ) ;  

3 1  / / T a b e l a d e c o r e s p a r a a s l i n h a s . S e o c o n j u n t o d e d a d o s t i v e r m a i s d e 2 0  

3 2  / / c o r e s p o d e s e r n e c e s s á r i o m o d i f i c a r e s t a t a b e l a .  

3 3 

p r i v a t e i n t l i n e T r a n s p a r e n c y = 1 0 0 ;  

3 4  p u b l i c C o l o r [ ] l i n e s C o l o r s =  

3 5  { 

3 6 

n e w C o l o r ( 2 5 5 , 0 , 0 , l i n e T r a n s p a r e n c y ) , / / R e d  

3 7  n e w C o l o r ( 0 , 2 5 5 , 0 , l i n e T r a n s p a r e n c y ) , / / G r e e n  

3 8  n e w C o l o r ( 0 , 0 , 2 5 5 , l i n e T r a n s p a r e n c y ) , / / B l u e  

3 9  n e w C o l o r ( 2 5 5 , 2 5 5 , 0 , l i n e T r a n s p a r e n c y ) , / / Y e l l o w  

4 0  n e w C o l o r ( 0 , 2 5 5 , 2 5 5 , l i n e T r a n s p a r e n c y ) , / / C y a n  

4 1  n e w C o l o r ( 2 5 5 , 0 , 2 5 5 , l i n e T r a n s p a r e n c y ) , / / M a g e n t a  

4 2  n e w C o l o r ( 1 4 0 , 1 4 0 , 1 4 0 , l i n e T r a n s p a r e n c y ) , / / M e d i u m g r a y  

4 3 

n e w C o l o r ( 6 0 , 6 0 , 6 0 , l i n e T r a n s p a r e n c y ) , / / D a r k g r a y  

4 4  n e w C o l o r ( 2 5 5 , 1 2 7 , 0 , l i n e T r a n s p a r e n c y ) , / / R g .  

4 5  n e w C o l o r ( 2 5 5 , 0 , 1 2 7 , l i n e T r a n s p a r e n c y ) , / / R . B  

4 6  n e w C o l o r ( 0 , 1 2 7 , 2 5 5 , l i n e T r a n s p a r e n c y ) , / / . g B  

4 7  n e w C o l o r ( 0 , 2 5 5 , 1 2 7 , l i n e T r a n s p a r e n c y ) , / / . G b  

4 8  n e w C o l o r ( 1 2 7 , 2 5 5 , 0 , l i n e T r a n s p a r e n c y ) , / / r G .  

4 9  n e w C o l o r ( 1 2 7 , 0 , 2 5 5 , l i n e T r a n s p a r e n c y ) , / / r . B  

5 0 

n e w C o l o r ( 1 2 7 , 0 , 0 , l i n e T r a n s p a r e n c y ) , / / D a r k r e d  

5 1  n e w C o l o r ( 0 , 1 2 7 , 0 , l i n e T r a n s p a r e n c y ) , / / D a r k g r e e n  

5 2  n e w C o l o r ( 0 , 0 , 1 2 7 , l i n e T r a n s p a r e n c y ) , / / D a r k b l u e  

5 3 

n e w C o l o r ( 1 2 7 , 1 2 7 , 0 , l i n e T r a n s p a r e n c y ) , / / D a r k y e l l o w  

5 4  n e w C o l o r ( 0 , 1 2 7 , 1 2 7 , l i n e T r a n s p a r e n c y ) , / / D a r k c y a n  

5 5  n e w C o l o r ( 1 2 7 , 0 , 1 2 7 , l i n e T r a n s p a r e n c y ) , / / D a r k m a g e n t a  

5 6  } ; 

5 7  / / T i p o d e l i n h a ( p o r e n q u a n t o g l o b a l ) .  

5 8  p u b l i c S t r o k e s t r o k e = n e w B a s i c S t r o k e ( 3 f ) ;  

5 9  / / F o n t e s p a r a o g r á f i c o .  

6 0 

p u b l i c F o n t t i t l e F o n t = n e w F o n t ( " S a n s S e r i f " , F o n t . I T A L I C , 2 4 ) ;  

6 1  p u b l i c F o n t a x i s T i t l e s F o n t = n e w F o n t ( " S a n s S e r i f " , F o n t . B O L D , 1 8 ) ;  

6 2  p u b l i c F o n t a x i s L a b e l s F o n t = n e w F o n t ( " M o n o s p a c e d " , F o n t . B O L D , 1 6 ) ;  

6 3 

6 4  } 

C o m e s t a s d u a s c l a s s e s ( e a A P I W e k a ) p o d e m o s c r i a r a p l i c a ç õ e s s i m p l e s p a r a v i s u a l i z a ç ã o d e d a d o s n o f o r -  

m a t o   . A R F F   u s a n d o c o o r d e n a d a s p a r a l e l a s . U m a p r i m e i r a a p l i c a ç ã o , q u e u s a o c o m p o n e n t e p r a t i c a m e n t e s e m  

m o d i c a ç õ e s p a r a v i s u a l i z a r a b a s e   i r i s . a r f f   , é m o s t r a d a n a c l a s s e   E x e m p l o P C 1   , n a l i s t a g e m 1 7 .  

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s R a f a e l S a n t o s  

Page 25: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 25/4

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 2 5  

L i s t a g e m 1 7 : A c l a s s e   E x e m p l o P C 1   , q u e i m p l e m e n t a u m e x e m p l o s i m p l e s d e v i s u a l i z a ç ã o c o m c o o r d e n a d a s  

p a r a l e l a s .  

/ * 

2  * P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

4  * h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

5  * / 

6  p a c k a g e p a r c o o r d s ;  

i m p o r t j a v a . a w t . D i m e n s i o n ;  

9  i m p o r t j a v a . i o . * ;  

1 0 

1 1 

i m p o r t j a v a x . s w i n g . J F r a m e ;  

1 2 

1 3  i m p o r t w e k a . c o r e . I n s t a n c e s ;  

1 4 

1 5  / * * 

1 6  * E x e m p l o s i m p l e s d e v i s u a l i z a ç ã o c o m c o o r d e n a d a s p a r a l e l a s .  

1 7  * / 

1 8 

p u b l i c c l a s s E x e m p l o P C 1  

1 9  { 

2 0  p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) t h r o w s I O E x c e p t i o n  

2 1  { 

2 2  / / U s a r e m o s a b a s e i r i s . a r f f .  

2 3  F i l e R e a d e r r e a d e r =  

2 4  n e w F i l e R e a d e r ( " / h o m e / r a f a e l / J a v a / A P I s / W e k a / d a t a / i r i s . a r f f " ) ;  

2 5 

I n s t a n c e s i n s t a n c e s = n e w I n s t a n c e s ( r e a d e r ) ;  

2 6  / / C r i a m o s o c o m p o n e n t e c o m a s i n s t â n c i a s , s e m n o r m a l i z a ç ã o g l o b a l , u s a n d o c o r e s d i f e r e n t e s  

2 7  / / e s e m " w i g g l e " .  

2 8 

P a r a l l e l C o o r d i n a t e s C o m p o n e n t c o m p o n e n t =  

2 9  n e w P a r a l l e l C o o r d i n a t e s C o m p o n e n t ( i n s t a n c e s , f a l s e , t r u e , 0 ) ;  

3 0  c o m p o n e n t . s e t P r e f e r r e d S i z e ( n e w D i m e n s i o n ( 1 0 2 4 , 5 0 0 ) ) ;  

3 1  / / M o n t a m o s a U I p a r a v i s u a l i z a r o c o m p o n e n t e .  

3 2  J F r a m e f r a m e = n e w J F r a m e ( " P a r a l l e l C o o r d i n a t e s " ) ;  

3 3  f r a m e . g e t C o n t e n t P a n e ( ) . a d d ( c o m p o n e n t ) ;  

3 4  f r a m e . p a c k ( ) ;  

3 5 

f r a m e . s e t V i s i b l e ( t r u e ) ;  

3 6  f r a m e . s e t D e f a u l t C l o s e O p e r a t i o n ( J F r a m e . E X I T _ O N _ C L O S E ) ;  

3 7  } 

3 8 

3 9  } 

A g u r a 6 m o s t r a o r e s u l t a d o ( c ó p i a d a t e l a ) d a a p l i c a ç ã o i m p l e m e n t a d a n a c l a s s e   E x e m p l o P C 1   ( l i s t a g e m 1 7 ) .  

F i g u r a 6 : T e l a d a a p l i c a ç ã o d a c l a s s e   E x e m p l o P C 1   ( l i s t a g e m 1 7 ) .  

U m a v a r i a n t e d a v i s u a l i z a ç ã o d a b a s e d e d a d o s   i r i s . a r f f   é i m p l e m e n t a d a p e l a c l a s s e   E x e m p l o P C 2   , n a l i s t a -  

g e m 1 8 . E s t a v a r i a n t e u s a n o r m a l i z a ç ã o g l o b a l n o s e i x o s n u m é r i c o s e u m p e q u e n o v a l o r d e   w i g g l e   p a r a v i s u a l i z a r  

R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s  

Page 26: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 26/4

2 6 M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

m e l h o r f e i x e s d e d a d o s q u e s ã o c o n c e n t r a d o s e m p o n t o s d o e i x o d o a t r i b u t o   p e t a l w i d t h   , p o r e x e m p l o . A g u r a 7  

m o s t r a o r e s u l t a d o ( c ó p i a d a t e l a ) d a a p l i c a ç ã o i m p l e m e n t a d a n a c l a s s e   E x e m p l o P C 2   ( l i s t a g e m 1 8 ) .  

L i s t a g e m 1 8 : A c l a s s e   E x e m p l o P C 2   , q u e i m p l e m e n t a o u t r o e x e m p l o s i m p l e s d e v i s u a l i z a ç ã o c o m c o o r d e n a d a s  

p a r a l e l a s .  

1  / * 

* P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

4  * h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

5  * / 

6  p a c k a g e p a r c o o r d s ;  

8  i m p o r t j a v a . a w t . D i m e n s i o n ;  

i m p o r t j a v a . i o . * ;  

1 0 

1 1  i m p o r t j a v a x . s w i n g . J F r a m e ;  

1 2 

1 3  i m p o r t w e k a . c o r e . I n s t a n c e s ;  

1 4 

1 5  / * * 

1 6  * E x e m p l o s i m p l e s d e v i s u a l i z a ç ã o c o m c o o r d e n a d a s p a r a l e l a s .  

1 7  * / 

1 8  p u b l i c c l a s s E x e m p l o P C 2  

1 9 

2 0  p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) t h r o w s I O E x c e p t i o n  

2 1  { 

2 2  / / U s a r e m o s a b a s e i r i s . a r f f .  

2 3  F i l e R e a d e r r e a d e r =  

2 4  n e w F i l e R e a d e r ( " / h o m e / r a f a e l / J a v a / A P I s / W e k a / d a t a / i r i s . a r f f " ) ;  

2 5  I n s t a n c e s i n s t a n c e s = n e w I n s t a n c e s ( r e a d e r ) ;  

2 6 

/ / C r i a m o s o c o m p o n e n t e c o m a s i n s t â n c i a s , c o m n o r m a l i z a ç ã o g l o b a l , u s a n d o c o r e s d i f e r e n t e s  

2 7  / / e c o m u m p e q u e n o " w i g g l e " .  

2 8  P a r a l l e l C o o r d i n a t e s C o m p o n e n t c o m p o n e n t =  

2 9 

n e w P a r a l l e l C o o r d i n a t e s C o m p o n e n t ( i n s t a n c e s , t r u e , t r u e , 0 . 2 ) ;  

3 0  c o m p o n e n t . s e t P r e f e r r e d S i z e ( n e w D i m e n s i o n ( 1 0 2 4 , 5 0 0 ) ) ;  

3 1  / / M o n t a m o s a U I p a r a v i s u a l i z a r o c o m p o n e n t e .  

3 2  J F r a m e f r a m e = n e w J F r a m e ( " P a r a l l e l C o o r d i n a t e s " ) ;  

3 3  f r a m e . g e t C o n t e n t P a n e ( ) . a d d ( c o m p o n e n t ) ;  

3 4  f r a m e . p a c k ( ) ;  

3 5  f r a m e . s e t V i s i b l e ( t r u e ) ;  

3 6 

f r a m e . s e t D e f a u l t C l o s e O p e r a t i o n ( J F r a m e . E X I T _ O N _ C L O S E ) ;  

3 7  } 

3 8 

3 9  } 

F i g u r a 7 : T e l a d a a p l i c a ç ã o d a c l a s s e   E x e m p l o P C 2   ( l i s t a g e m 1 8 ) .  

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s R a f a e l S a n t o s  

Page 27: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 27/4

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 2 7  

A i n d a o u t r o e x e m p l o d e u s o d o c o m p o n e n t e p o d e s e r v i s t o n a c l a s s e   E x e m p l o P C 3   ( l i s t a g e m 1 9 ) , q u e m o s t r a  

o s d a d o s d e u m a r e l a ç ã o d o s s o b r e v i v e n t e s d o n a u f r á g i o d o T i t a n i c d a d o s q u e s ó c o n t é m a t r i b u t o s n o m i n a i s ,  

p o r t a n t o c o m m u i t o s d a d o s o c u p a n d o a s m e s m a s p o s i ç õ e s n o e s p a ç o d e a t r i b u t o s . P a r a e s t a v i s u a l i z a ç ã o u s a m o s  

l i n h a s c o m c o r e s b e m m a i s t r a n s p a r e n t e s e u m   w i g g l e   b e m m a i o r p a r a e v i t a r s u p e r p o s i ç õ e s . O r e s u l t a d o ( c ó p i a  

d a t e l a ) p o d e s e r v i s t o n a g u r a 8 .  

L i s t a g e m 1 9 : A c l a s s e   E x e m p l o P C 3   , q u e i m p l e m e n t a o u t r o e x e m p l o s i m p l e s d e v i s u a l i z a ç ã o c o m c o o r d e n a d a s  

p a r a l e l a s .  

1  / * 

* P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

4  * h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

5  * / 

6  p a c k a g e p a r c o o r d s ;  

8  i m p o r t j a v a . a w t . * ;  

i m p o r t j a v a . i o . * ;  

1 0 

1 1  i m p o r t j a v a x . s w i n g . J F r a m e ;  

1 2 

1 3  i m p o r t w e k a . c o r e . I n s t a n c e s ;  

1 4 

1 5  / * * 

1 6  * E x e m p l o s i m p l e s d e v i s u a l i z a ç ã o c o m c o o r d e n a d a s p a r a l e l a s .  

1 7  * / 

1 8  p u b l i c c l a s s E x e m p l o P C 3  

1 9 

2 0  p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) t h r o w s I O E x c e p t i o n  

2 1  { 

2 2  / / U s a r e m o s a b a s e t i t a n i c . a r f f .  

2 3  F i l e R e a d e r r e a d e r =  

2 4  n e w F i l e R e a d e r ( " / h o m e / r a f a e l / J a v a / A P I s / W e k a / d a t a / t i t a n i c . a r f f " ) ;  

2 5  I n s t a n c e s i n s t a n c e s = n e w I n s t a n c e s ( r e a d e r ) ;  

2 6 

/ / C r i a m o s u m a i n s t â n c i a d e P a r a l l e l C o o r d i n a t e s C o n s t a n t s e m o d i f i c a m o s a l g u n s d o s  

2 7  / / a t r i b u t o s , c o m o a s c o r e s p a r a a s l i n h a s e a l g u m a s m a r g e n s .  

2 8  P a r a l l e l C o o r d i n a t e s C o n s t a n t s c o n s t s = n e w P a r a l l e l C o o r d i n a t e s C o n s t a n t s ( ) ;  

2 9 

i n t t r a n s p = 3 ;  

3 0  / / A o r d e m e m q u e o s v a l o r e s p a r a a c l a s s e a p a r e c e m n o a r q u i v o . a r f f é { y e s , n o } .  

3 1  c o n s t s . l i n e s C o l o r s = n e w C o l o r [ ] { n e w C o l o r ( 0 , 0 , 2 5 5 , t r a n s p ) , n e w C o l o r ( 2 5 5 , 0 , 0 , t r a n s p ) } ;  

3 2  c o n s t s . b o t t o m M a r g i n = 1 0 0 ;  

3 3  c o n s t s . l e f t M a r g i n = 7 5 ;  

3 4  P a r a l l e l C o o r d i n a t e s C o m p o n e n t c o m p o n e n t =  

3 5  n e w P a r a l l e l C o o r d i n a t e s C o m p o n e n t ( i n s t a n c e s , t r u e , t r u e , 1 ) ;  

3 6 

c o m p o n e n t . s e t C o n s t s ( c o n s t s ) ;  

3 7  c o m p o n e n t . s e t P r e f e r r e d S i z e ( n e w D i m e n s i o n ( 1 2 0 0 , 5 0 0 ) ) ;  

3 8  / / M o n t a m o s a U I p a r a v i s u a l i z a r o c o m p o n e n t e .  

3 9  J F r a m e f r a m e = n e w J F r a m e ( " P a r a l l e l C o o r d i n a t e s " ) ;  

4 0  f r a m e . g e t C o n t e n t P a n e ( ) . a d d ( c o m p o n e n t ) ;  

4 1  f r a m e . p a c k ( ) ;  

4 2  f r a m e . s e t V i s i b l e ( t r u e ) ;  

4 3 

f r a m e . s e t D e f a u l t C l o s e O p e r a t i o n ( J F r a m e . E X I T _ O N _ C L O S E ) ;  

4 4  } 

4 5 

4 6 

A c l a s s e   E x e m p l o P C 4   ( l i s t a g e m 2 0 ) m o s t r a c o m o c r i a r u m g r á c o d e c o o r d e n a d a s p a r a l e l a s c o m á r e a p l o t a d a  

m a i o r d o q u e a t e l a d o c o m p u t a d o r . A c l a s s e l ê a r e l a ç ã o   w i n e . a r f f   ( c o m d a d o s f í s i c o - q u í m i c o s d e v i n h o s  

d e t r ê s o r i g e n s d i f e r e n t e s ) , c r i a u m c o m p o n e n t e p a r a v i s u a l i z a ç ã o c o m d i m e n s õ e s  4800 × 1200

p i x e l s e m o s t r a  

s o m e n t e u m a p a r t e d o g r á c o ( u s a n d o   J S c r o l l P a n e s   p a r a p e r m i t i r a v i s u a l i z a ç ã o i n t e r a t i v a d e o u t r a s p a r t e s ) .  

O g r á c o c o m o u m t o d o é r e n d e r i z a d o e m u m a i m a g e m e a r m a z e n a d o e m u m a r q u i v o .  

L i s t a g e m 2 0 : A c l a s s e   E x e m p l o P C 4   , q u e i m p l e m e n t a a i n d a o u t r o e x e m p l o d e v i s u a l i z a ç ã o c o m c o o r d e n a d a s  

p a r a l e l a s .  

1  / * 

* P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

4  * h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

5  * / 

R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s  

Page 28: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 28/4

2 8 M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

F i g u r a 8 : T e l a d a a p l i c a ç ã o d a c l a s s e   E x e m p l o P C 3   ( l i s t a g e m 1 9 ) .  

6  p a c k a g e p a r c o o r d s ;  

8  i m p o r t j a v a . a w t . * ;  

9  i m p o r t j a v a . a w t . i m a g e . B u f f e r e d I m a g e ;  

1 0  i m p o r t j a v a . i o . * ;  

1 1 

1 2  i m p o r t j a v a x . i m a g e i o . I m a g e I O ;  

1 3  i m p o r t j a v a x . s w i n g . * ;  

1 4 

1 5  i m p o r t w e k a . c o r e . I n s t a n c e s ;  

1 6 

1 7 

/ * * 

1 8  * E x e m p l o s i m p l e s d e v i s u a l i z a ç ã o c o m c o o r d e n a d a s p a r a l e l a s . O g r á f i c o s e r á a r m a z e n a d o e m u m a r q u i v o .  

1 9  * / 

2 0  p u b l i c c l a s s E x e m p l o P C 4  

2 1 

2 2  p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) t h r o w s I O E x c e p t i o n  

2 3  { 

2 4 

/ / U s a r e m o s a b a s e w i n e .  

2 5  F i l e R e a d e r r e a d e r =  

2 6  n e w F i l e R e a d e r ( " / h o m e / r a f a e l / J a v a / A P I s / W e k a / d a t a / w i n e . a r f f " ) ;  

2 7  I n s t a n c e s i n s t a n c e s = n e w I n s t a n c e s ( r e a d e r ) ;  

2 8  / / C r i a m o s u m a i n s t â n c i a d e P a r a l l e l C o o r d i n a t e s C o n s t a n t s e e s c o l h e m o s u m t a m a n h o  

2 9  / / m a i o r d o q u e a t e l a d o c o m p u t a d o r .  

3 0  P a r a l l e l C o o r d i n a t e s C o m p o n e n t c o m p o n e n t =  

3 1 

n e w P a r a l l e l C o o r d i n a t e s C o m p o n e n t ( i n s t a n c e s , f a l s e , t r u e , 0 ) ;  

3 2  c o m p o n e n t . s e t P r e f e r r e d S i z e ( n e w D i m e n s i o n ( 4 8 0 0 , 1 2 0 0 ) ) ;  

3 3  / / M o n t a m o s a U I p a r a v i s u a l i z a r o c o m p o n e n t e .  

3 4  J F r a m e f r a m e = n e w J F r a m e ( " P a r a l l e l C o o r d i n a t e s " ) ;  

3 5  f r a m e . g e t C o n t e n t P a n e ( ) . a d d ( n e w J S c r o l l P a n e ( c o m p o n e n t ) ) ;  

3 6  f r a m e . p a c k ( ) ;  

3 7  f r a m e . s e t V i s i b l e ( t r u e ) ;  

3 8 

f r a m e . s e t D e f a u l t C l o s e O p e r a t i o n ( J F r a m e . E X I T _ O N _ C L O S E ) ;  

3 9  / / C o m o c o m p o n e n t e v i s í v e l ( m e s m o q u e p a r c i a l m e n t e ) , c r i a m o s u m a i m a g e m p a r a  

4 0  / / r e n d e r i z a r s e u c o n t e ú d o .  

4 1 

B u f f e r e d I m a g e i m =  

4 2  ( B u f f e r e d I m a g e ) c o m p o n e n t . c r e a t e I m a g e ( c o m p o n e n t . g e t W i d t h ( ) , c o m p o n e n t . g e t H e i g h t ( ) ) ;  

4 3  G r a p h i c s 2 D g r a p h i c s = ( G r a p h i c s 2 D ) i m . c r e a t e G r a p h i c s ( ) ;  

4 4  c o m p o n e n t . p a i n t C o m p o n e n t ( g r a p h i c s ) ;  

4 5  / / A r m a z e n a m o s o c o m p o n e n t e r e n d e r i z a d o c o m o u m a i m a g e m .  

4 6  I m a g e I O . w r i t e ( i m , " P N G " , n e w F i l e ( " g r a f i c o w i n e . p n g " ) ) ;  

4 7  } 

4 8 

4 9  } 

A g u r a 9 m o s t r a a t e l a d a a p l i c a ç ã o i m p l e m e n t a d a n a c l a s s e   E x e m p l o P C 4   ( l i s t a g e m 2 0 ) , q u e m o s t r a s o m e n t e  

u m a p e q u e n a á r e a d a p l o t a g e m . A g u r a 1 0 m o s t r a a i m a g e m c r i a d a c o m o c o n t e ú d o d o c o m p o n e n t e ( r e d u z i d a  

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s R a f a e l S a n t o s  

Page 29: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 29/4

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 2 9  

p a r a c a b e r n e s t e t e x t o ) .  

F i g u r a 9 : T e l a d a a p l i c a ç ã o d a c l a s s e   E x e m p l o P C 4   ( l i s t a g e m 2 0 ) .  

F i g u r a 1 0 : I m a g e m c o r r e s p o n d e n t e a o c o m p o n e n t e c r i a d o p e l a c l a s s e   E x e m p l o P C 4   ( l i s t a g e m 2 0 ) .  

7 . 3 P o s s í v e i s m e l h o r i a s  

N e s t a s e ç ã o v i m o s u m a i m p l e m e n t a ç ã o d e u m c o m p o n e n t e p a r a m o s t r a r d a d o s p l o t a d o s e m c o o r d e n a d a s p a r a l e l a s .  

A l g u m a s p o s s í v e i s m e l h o r i a s n a i m p l e m e n t a ç ã o s ã o :  

O c o m p o n e n t e é e s t á t i c o , i s t o é , n ã o p e r m i t e i n t e r a ç ã o c o m o u s u á r i o d e p o i s d e c o n s t r u í d o . A l g u m a s o p ç õ e s  

d e i n t e r a t i v i d a d e p o d e m p e r m i t i r a d e s c o b e r t a d e c o r r e l a ç õ e s o u m e s m o a c r i a ç ã o d e g r á c o s e s t e t i c a m e n t e  

m a i s a g r a d á v e i s , c o m o , p o r e x e m p l o , a r e o r g a n i z a ç ã o d a o r d e m d o s e i x o s o u e l i m i n a ç ã o d e a l g u n s e i x o s ;  

o u m o d i c a ç õ e s e m r ó t u l o s , c o r e s , e t c .  

O u t r a f o r m a d e i n t e r a t i v i d a d e q u e p o d e s e r i n t e r e s s a n t e é a p o s s i b i l i d a d e d e o b t e r m a i s i n f o r m a ç õ e s a o  

c l i c a r e m l i n h a s d o g r á c o .  

O s e i x o s d a s c o o r d e n a d a s t e m e s c a l a l i n e a r , p o d e - s e f a c i l m e n t e i m p l e m e n t a r o p ç õ e s q u e p o s s i b i l i t e m e i x o s  

e m e s c a l a s l o g a r í t m i c a s ( p o r e x e m p l o ) o u i n v e r t i d a s ( m e n o r e s v a l o r e s e m c i m a ; m a i o r e s e m b a i x o ) .  

M e l h o r i a s n a s f o r m a s d e m o d i c a ç ã o d o s a t r i b u t o s d o g r á c o e m s i ( f o n t e s , c o r e s , t a m a n h o s , e t c ) .  

N ã o f o i i m p l e m e n t a d o t r a t a m e n t o d e d a d o s i n c o m p l e t o s ( e x . i n s t â n c i a s c o m a t r i b u t o s f a l t a n d o ) .  

R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s  

Page 30: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 30/4

3 0 M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

8 V i s u a l i z a ç ã o d e G r a f o s c o m J U N G      

8 . 1 I n t r o d u ç ã o  

G r a f o s s ã o r e p r e s e n t a ç õ e s a b s t r a t a s d e c o n j u n t o s d e o b j e t o s l i g a d o s e n t r e s i . O s o b j e t o s s ã o t r a d i c i o n a l m e n t e  

c h a m a d o s d e v é r t i c e s e a s l i g a ç õ e s e n t r e e l e s , d e a r e s t a s . V é r t i c e s e a r e s t a s p o d e m r e p r e s e n t a r p r a t i c a m e n t e q u a l -  

q u e r t i p o d e i n f o r m a ç ã o . A a n á l i s e n u m é r i c a e / o u v i s u a l i z a ç ã o d e u m g r a f o p e r m i t e a i d e n t i c a ç ã o d e p a d r õ e s ,  

o u t l i e r s  , a s s o c i a ç õ e s , a g r u p a m e n t o s , e t c .  

A A P I J U N G (  J a v a U n i v e r s a l N e t w o r k / G r a p h F r a m e w o r k  , [ 1 2 ] ) é u m c o n j u n t o d e c l a s s e s q u e p e r m i t e a m o d e l a -  

g e m , a n á l i s e e v i s u a l i z a ç ã o d e d a d o s r e p r e s e n t á v e i s c o m o g r a f o s o u r e d e s . N e s t e c a p í t u l o v e r e m o s e x e m p l o s d e  

u s o d a A P I p a r a v i s u a l i z a ç ã o d e d a d o s n a f o r m a d e g r a f o s . P a r t e d e s t e c a p í t u l o é b a s e a d a n o t u t o r i a l d e J U N G [ 3 ]  

e e m t r a b a l h o s d e A l e s s a n d r o O l i v e i r a A r a n t e s e A l e x a n d r e D o n i z e t i A l v e s [ 1 , 9 ] .  

P a r a u s a r a s c l a s s e s d a A P I J U N G é n e c e s s á r i o c o p i a r a l g u n s a r q u i v o s   . j a r   p a r a u m d i r e t ó r i o c o n h e c i d o e  

r e f e r e n c i a r e s t e s a r q u i v o s   . j a r   e m s e u p r o j e t o . P a r a f a z e r i s t o u s a n d o a I D E E c l i p s e , s i g a e s t e s p a s s o s :  

1 . C r i e u m d i r e t ó r i o   l i b  n o s e u p r o j e t o ( c l i q u e n o p r o j e t o c o m o b o t ã o d i r e i t o d o m o u s e e e m   N e w  /  F o l d e r  , 

u s e o n o m e   l i b  ) . 

2 . C o p i e p a r a e s t e d i r e t ó r i o o s a r q u i v o s   . j a r   n e c e s s á r i o s ( p a r a s i m p l i c a r p o d e - s e c o p i a r t o d o s o s a r q u i v o s  

. j a r   p a r t e d a d i s t r i b u i ç ã o d a A P I J U N G ) . A o t e r m i n a r d e c o p i a r , s e l e c i o n e o n o m e d o p r o j e t o e c l i q u e a  

t e c l a   F 5  p a r a a t u a l i z a r o s s u b d i r e t ó r i o s r e l a c i o n a d o s a o p r o j e t o .  

3 . I n c l u a e s t e s a r q u i v o s n o p r o j e t o s e l e c i o n a n d o o p r o j e t o , c l i c a n d o c o m o b o t ã o d i r e i t o d o m o u s e e e s c o l h e n d o  

B u i l d P a t h  /  C o n f i g u r e B u i l d P a t h  . C l i q u e n o b o t ã o   A d d J A R s   e s e l e c i o n e n o d i á l o g o o d i r e t ó r i o   l i b 

e t o d o s o s a r q u i v o s   . j a r   d e n t r o d e l e . F e c h e t o d o s o s d i á l o g o s c l i c a n d o e m s e u s r e s p e c t i v o s b o t õ e s   O K  . 

O u t r a s I D E s d e v e m s e r c o n g u r a d a s c o m o u t r o s m é t o d o s o q u e i m p o r t a é c o l o c a r t o d o s o s a r q u i v o s   . j a r   d a 

d i s t r i b u i ç ã o d o J u n g e m u m d i r e t ó r i o d e f o r m a q u e f a ç a m p a r t e d o s p r o j e t o s e m d e s e n v o l v i m e n t o . C o n s u l t e a  

d o c u m e n t a ç ã o d a s u a I D E p a r a i n f o r m a ç õ e s e s p e c í c a s .  

8 . 2 I m p l e m e n t a ç ã o  

P a r a v i s u a l i z a r u m g r a f o e m J U N G é n e c e s s á r i o p r i m e i r o c r i a r a e s t r u t u r a d e g r a f o s n o c ó d i g o , e n t ã o c r i a r u m  

l a y o u t   p a r a o r g a n i z a ç ã o d o s v é r t i c e s e a r e s t a s e d e p o i s c r i a r u m c o m p o n e n t e p a r a e x i b i r o g r a f o c o m e s t e   l a y o u t  . 

P a r a g r a f o s m a i s c o m p l e x o s ( o u q u a n d o q u i s e r m o s m o d i c a r p r o g r a m a t i c a m e n t e a a p a r ê n c i a d o s v é r t i c e s e a r e s -  

t a s ) p o d e s e r n e c e s s á r i o m o d i c a r a t r i b u t o s d o c o m p o n e n t e p a r a e x i b i ç ã o .  

C o m o u m p r i m e i r o e x e m p l o v a m o s c o n s t r u i r u m g r a f o s i m p l e s , c o m a l g u n s v é r t i c e s e a r e s t a s , c o m u m   l a y o u t  

b á s i c o d e v i s u a l i z a ç ã o e c o m o c o m p o n e n t e p a d r ã o . A l i s t a g e m 2 1 m o s t r a c o m o c r i a r u m a i n s t â n c i a d e  

S p a r s e M u l t i g r a p h   ( q u e p e r m i t e a r e p r e s e n t a ç ã o d e g r a f o s e s p a r s o s c o m a r e s t a s m ú l t i p a s e n t r e o s v é r t i c e s ) ,  

c o m o a d i c i o n a r v é r t i c e s ( n o e x e m p l o , i n s t â n c i a s d e   S t r i n g  ) e a r e s t a s ( i n s t â n c i a s d e   F l o a t  ) . V é r t i c e s s ã o a d i -  

c i o n a d o s c o m o m é t o d o   a d d V e r t e x   d a c l a s s e q u e i m p l e m e n t a o g r a f o , e q u e r e c e b e c o m o p a r â m e t r o u m a  

i n s t â n c i a d a c l a s s e d e n i d a p a r a o s v é r t i c e s ; e a r e s t a s s ã o a d i c i o n a d a s c o m o m é t o d o   a d d E d g e   q u e r e c e b e c o m o  

p a r â m e t r o s u m a i n s t â n c i a d a c l a s s e d e n i d a p a r a a a r e s t a e d u a s i n s t â n c i a s d a c l a s s e d e n i d a p a r a o s v é r t i c e s ,  

e f e t i v a m e n t e c r i a n d o u m a l i g a ç ã o e n t r e e s t e s v é r t i c e s . A l i s t a g e m t a m b é m m o s t r a c o m o c r i a r u m   l a y o u t   b á s i c o  

(  C i r c l e L a y o u t   , q u e p o s i c i o n a o s v é r t i c e s c o m e s p a ç a m e n t o r e g u l a r e m u m c í r c u l o ) e n a l m e n t e c o m o v i s u a l i z a r  

e s t e g r a f o .  

L i s t a g e m 2 1 : A c l a s s e   G r a f o 1   , q u e i m p l e m e n t a u m e x e m p l o s i m p l e s d e v i s u a l i z a ç ã o d e g r a f o s c o m a A P I J U N G .  

1  / * 

2  * P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

* h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

5  * / 

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s R a f a e l S a n t o s  

Page 31: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 31/4

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 3 1  

6  p a c k a g e j u n g ;  

8  i m p o r t j a v a . a w t . D i m e n s i o n ;  

1 0 

i m p o r t j a v a x . s w i n g . J F r a m e ;  

1 1 

1 2  i m p o r t e d u . u c i . i c s . j u n g . a l g o r i t h m s . l a y o u t . C i r c l e L a y o u t ;  

1 3  i m p o r t e d u . u c i . i c s . j u n g . g r a p h . * ;  

1 4  i m p o r t e d u . u c i . i c s . j u n g . v i s u a l i z a t i o n . B a s i c V i s u a l i z a t i o n S e r v e r ;  

1 5 

1 6  / * * 

1 7 

* E x e m p l o s i m p l e s d e v i s u a l i z a ç ã o d e g r a f o s c o m a A P I J U N G .  

1 8  * / 

1 9  p u b l i c c l a s s G r a f o 1  

2 0  { 

2 1  p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s )  

2 2  { 

2 3  / / C r i a m o s u m g r a f o o n d e o s v é r t i c e s s ã o i n t e i r o s e a s a r e s t a s s ã o S t r i n g s .  

2 4 

G r a p h < I n t e g e r , S t r i n g > g r a f o = n e w S p a r s e M u l t i g r a p h < I n t e g e r , S t r i n g > ( ) ;  

2 5  / / V a m o s i n c l u i r a l g u n s v é r t i c e s n o g r a f o .  

2 6  f o r ( i n t i = 1 ; i < = 5 ; i + + ) g r a f o . a d d V e r t e x ( i ) ;  

2 7 

/ / M a i s u m - - v e j a q u e v é r t i c e s n ã o p o d e m t e r i d e n t i f i c a d o r e s r e p e t i d o s .  

2 8  g r a f o . a d d V e r t e x ( 1 2 ) ;  

2 9  g r a f o . a d d V e r t e x ( 1 ) ;  

3 0  g r a f o . a d d V e r t e x ( 4 ) ;  

3 1  / / V a m o s a d i c i o n a r a l g u m a s a r e s t a s a o g r a f o .  

3 2  f o r ( i n t i = 1 ; i < = 5 ; i + + )  

3 3  f o r ( i n t j = i + 1 ; j < = 5 ; j + + )  

3 4 

g r a f o . a d d E d g e ( " D e " + i + " p a r a " + j , i , j ) ;  

3 5  / / A r e s t a s a d i c i o n a i s - - a g o r a s i m , p o d e m o s t e r m a i s d e u m a a r e s t a e n t r e v é r t i c e s  

3 6  / / c o n t a n t o q u e s e u s i d e n t i f i c a d o r e s s e j a m d i f e r e n t e s .  

3 7  g r a f o . a d d E d g e ( " O u t r o d e " + 1 + " p a r a " + 2 , 1 , 2 ) ;  

3 8  / / P o d e m o s i m p r i m i r , n o t e r m i n a l , a l i s t a d e v é r t i c e s e a r e s t a s d o g r a f o .  

3 9  S y s t e m . o u t . p r i n t l n ( g r a f o ) ;  

4 0  / / P a r a v i s u a l i z a r o g r a f o p r e c i s a r e m o s d e u m l a y o u t c o r r e s p o n d e n t e a o t i p o d o g r a f o .  

4 1 

C i r c l e L a y o u t < I n t e g e r , S t r i n g > l a y o u t = n e w C i r c l e L a y o u t < I n t e g e r , S t r i n g > ( g r a f o ) ;  

4 2  l a y o u t . s e t S i z e ( n e w D i m e n s i o n ( 4 0 0 , 4 0 0 ) ) ;  

4 3  / / P r e c i s a m o s t a m b é m d e u m c o m p o n e n t e p a r a v i s u a l i z a ç ã o .  

4 4 

B a s i c V i s u a l i z a t i o n S e r v e r < I n t e g e r , S t r i n g > c o m p o n e n t =  

4 5  n e w B a s i c V i s u a l i z a t i o n S e r v e r < I n t e g e r , S t r i n g > ( l a y o u t ) ;  

4 6  c o m p o n e n t . s e t P r e f e r r e d S i z e ( n e w D i m e n s i o n ( 4 5 0 , 4 5 0 ) ) ;  

4 7  / / M o n t a m o s a U I p a r a v i s u a l i z a r o c o m p o n e n t e .  

4 8  J F r a m e f = n e w J F r a m e ( " G r a p h V i e w " ) ;  

4 9  f . g e t C o n t e n t P a n e ( ) . a d d ( c o m p o n e n t ) ;  

5 0  f . p a c k ( ) ;  

5 1 

f . s e t V i s i b l e ( t r u e ) ;  

5 2  f . s e t D e f a u l t C l o s e O p e r a t i o n ( J F r a m e . E X I T _ O N _ C L O S E ) ;  

5 3  } 

5 4 

5 5  } 

A l i s t a g e m 2 2 m o s t r a o r e s u l t a d o d a e x e c u ç ã o d a c l a s s e   G r a f o 1   , d a p a r t e q u e é m o s t r a d a n o t e r m i n a l ( p o r  

c a u s a d a c h a m a d a a   S y s t e m . o u t . p r i n t l n   n a l i n h a 3 9 d a c l a s s e   G r a f o 1  ) . E s t a s a í d a ( r e f o r m a t a d a p a r a e s t e  

d o c u m e n t o ) c o n t é m t o d a s a s i n f o r m a ç õ e s s o b r e v é r t i c e s e a r e s t a s e m f o r m a t e x t u a l .  

L i s t a g e m 2 2 : S a í d a d a c l a s s e   G r a f o 1   ( l i s t a g e m 2 1 ) .  

1  V e r t i c e s : 1 , 2 , 3 , 4 , 5 , 1 2  

E d g e s : O u t r o d e 1 p a r a 2 [ 1 , 2 ] D e 4 p a r a 5 [ 4 , 5 ] D e 1 p a r a 3 [ 1 , 3 ] D e 1 p a r a 2 [ 1 , 2 ]  

3  D e 1 p a r a 5 [ 1 , 5 ] D e 1 p a r a 4 [ 1 , 4 ] D e 2 p a r a 4 [ 2 , 4 ] D e 2 p a r a 3 [ 2 , 3 ]  

D e 3 p a r a 4 [ 3 , 4 ] D e 3 p a r a 5 [ 3 , 5 ] D e 2 p a r a 5 [ 2 , 5 ]  

A g u r a 1 1 m o s t r a a t e l a d a a p l i c a ç ã o i m p l e m e n t a d a n a c l a s s e   G r a f o 1   ( l i s t a g e m 2 1 ) . N e s t a g u r a p o d e m o s  

o b s e r v a r o s v é r t i c e s e a r e s t a s , c o m u m v é r t i c e i s o l a d o e u m a a r e s t a d u p l a e n t r e d o i s d o s v é r t i c e s , o q u e é p o s s í -  

v e l g r a ç a s a o u s o d e   S p a r s e M u l t i g r a p h   . O s v é r t i c e s s ã o p o s i c i o n a d o s n a s b o r d a s d e u m c í r c u l o , u n i f o r m e m e n t e .  

P a r a u m e x e m p l o m a i s c o m p l e x o d e g r a f o , c o m a s p e c t o s v i s u a i s d i f e r e n t e s p a r a v é r t i c e s e a r e s t a s d e p e n d e n d o  

d e s e u s v a l o r e s , c r i a r e m o s u m a c l a s s e q u e p e r m i t e a v i s u a l i z a ç ã o s i m p l e s d e u m g r a f o d e c i d a d e s e d i s t â n c i a s  

e n t r e a s m e s m a s . O s v é r t i c e s ( c i d a d e s ) s e r ã o d o t i p o   S t r i n g   e a s a r e s t a s d o t i p o   F l o a t  . P a r a m o d i c a r a  

R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s  

Page 32: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 32/4

3 2 M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

F i g u r a 1 1 : T e l a d a a p l i c a ç ã o d a c l a s s e   G r a f o 1   ( l i s t a g e m 2 1 ) .  

a p a r ê n c i a d o s v é r t i c e s e a r e s t a s p r e c i s a r e m o s d e   t r a n s f o r m a d o r e s   i n s t â n c i a s d e c l a s s e q u e i m p l e m e n t a a i n t e r -  

f a c e   T r a n s f o r m e r < K . V >   q u e m o s t r a m c o m o r e t o r n a r u m a i n s t â n c i a d a c l a s s e   V  e m f u n ç ã o d o v a l o r d a i n s t â n c i a  

d a c l a s s e   K  . P o r e x e m p l o , p a r a m u d a r a c o r d o v é r t i c e u s a r e m o s u m a i n s t â n c i a d e u m a c l a s s e q u e i m p l e m e n t a  

T r a n s f o r m e r < S t r i n g , P a i n t >   q u e c o n t é m o m é t o d o   t r a n s f o r m   q u e m a p e i a i n s t â n c i a s d e   S t r i n g   p a r a   P a i n t  

d e t e r m i n a n d o a s s i m , n a p r á t i c a , c o m o o v é r t i c e s e r á p i n t a d o p a r a u m d e t e r m i n a d o v a l o r d e l e m e s m o .  

T r a n s f o r m a ç õ e s s e r ã o u s a d a s p a r a d e t e r m i n a r o p r e e n c h i m e n t o d o s v é r t i c e s a p a r t i r d o s v a l o r e s d e l e s , a s s i m c o m o  

o e s t i l o d e l i n h a e c o r d a s a r e s t a s a p a r t i r d o s v a l o r e s d e s t a s . E s t a s t r a n s f o r m a ç õ e s s e r ã o i m p l e m e n t a d a s e m c l a s s e s  

m o s t r a d a s d e p o i s d a p r i n c i p a l . A l é m d e s t a s t r a n s f o r m a ç õ e s d e n i d a s p e l o p r o g r a m a d o r , a l g u m a s t r a n s f o r m a ç õ e s  

p r o n t a s s e r ã o u s a d a s p a r a m o s t r a r o s r ó t u l o s d o s v é r t i c e s e a r e s t a s . A c l a s s e   G r a f o 2  , n a l i s t a g e m 2 3 , c r i a o g r a f o  

e p o p u l a o m e s m o c o m o s v é r t i c e s e a r e s t a s .  

L i s t a g e m 2 3 : A c l a s s e   G r a f o 2  , q u e i m p l e m e n t a u m e x e m p l o c u s t o m i z a d o d e v i s u a l i z a ç ã o d e g r a f o s c o m a A P I  

J U N G .  

1  / * 

2  * P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

4  * h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

5  * / 

p a c k a g e j u n g ;  

8  i m p o r t j a v a . a w t . * ;  

1 0  i m p o r t j a v a x . s w i n g . J F r a m e ;  

1 1 

1 2  i m p o r t e d u . u c i . i c s . j u n g . a l g o r i t h m s . l a y o u t . C i r c l e L a y o u t ;  

1 3 

i m p o r t e d u . u c i . i c s . j u n g . g r a p h . * ;  

1 4  i m p o r t e d u . u c i . i c s . j u n g . v i s u a l i z a t i o n . B a s i c V i s u a l i z a t i o n S e r v e r ;  

1 5  i m p o r t e d u . u c i . i c s . j u n g . v i s u a l i z a t i o n . d e c o r a t o r s . T o S t r i n g L a b e l l e r ;  

1 6 

1 7  / * * 

1 8  * E x e m p l o s i m p l e s d e v i s u a l i z a ç ã o d e g r a f o s c o m a A P I J U N G .  

1 9  * / 

2 0  p u b l i c c l a s s G r a f o 2  

2 1  { 

2 2  p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s )  

2 3 

2 4  / / C r i a m o s u m g r a f o o n d e o s v é r t i c e s s ã o S t r i n g s e a s a r e s t a s s ã o F l o a t s .  

2 5  G r a p h < S t r i n g , F l o a t > g r a f o = n e w S p a r s e M u l t i g r a p h < S t r i n g , F l o a t > ( ) ;  

2 6  / / V a m o s d e f i n i r a l g u m a s c i d a d e s .  

2 7  S t r i n g S J C = " S P / S ã o J o s é d o s C a m p o s " ;  

2 8  S t r i n g C P = " S P / C a m p i n a s " ;  

2 9  S t r i n g R E = " P E / R e c i f e " ;  

3 0 

S t r i n g B E = " P A / B e l é m " ;  

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s R a f a e l S a n t o s  

Page 33: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 33/4

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 3 3  

3 1  S t r i n g V V = " E S / V i l a V e l h a " ;  

3 2 

/ / V a m o s i n c l u i r a l g u n s v é r t i c e s n o g r a f o .  

3 3  g r a f o . a d d V e r t e x ( V V ) ;  

3 4  g r a f o . a d d V e r t e x ( S J C ) ;  

3 5 

g r a f o . a d d V e r t e x ( C P ) ;  

3 6  g r a f o . a d d V e r t e x ( R E ) ;  

3 7  g r a f o . a d d V e r t e x ( B E ) ;  

3 8  / / A g o r a a l g u m a s a r e s t a s e n t r e e s t e s v é r t i c e s .  

3 9  g r a f o . a d d E d g e ( 1 5 3 F , S J C , C P ) ;  

4 0  g r a f o . a d d E d g e ( 2 0 2 3 F , B E , R E ) ;  

4 1  g r a f o . a d d E d g e ( 1 8 4 5 F , V V , R E ) ;  

4 2 

g r a f o . a d d E d g e ( 7 7 8 F , S J C , V V ) ;  

4 3  g r a f o . a d d E d g e ( 2 6 0 4 F , C P , R E ) ;  

4 4  g r a f o . a d d E d g e ( 9 9 3 F , V V , C P ) ;  

4 5  / / P a r a v i s u a l i z a r o g r a f o p r e c i s a r e m o s d e u m l a y o u t c o r r e s p o n d e n t e a o t i p o d o g r a f o .  

4 6  C i r c l e L a y o u t < S t r i n g , F l o a t > l a y o u t = n e w C i r c l e L a y o u t < S t r i n g , F l o a t > ( g r a f o ) ;  

4 7  l a y o u t . s e t S i z e ( n e w D i m e n s i o n ( 4 5 0 , 4 5 0 ) ) ;  

4 8  / / P r e c i s a m o s t a m b é m d e u m c o m p o n e n t e p a r a v i s u a l i z a ç ã o .  

4 9 

B a s i c V i s u a l i z a t i o n S e r v e r < S t r i n g , F l o a t > c o m p o n e n t =  

5 0  n e w B a s i c V i s u a l i z a t i o n S e r v e r < S t r i n g , F l o a t > ( l a y o u t ) ;  

5 1  c o m p o n e n t . s e t B a c k g r o u n d ( C o l o r . W H I T E ) ;  

5 2 

c o m p o n e n t . s e t P r e f e r r e d S i z e ( n e w D i m e n s i o n ( 6 0 0 , 5 0 0 ) ) ;  

5 3  / / M o d i f i c a m o s o s e s t i l o s d o s v é r t i c e s e a r e s t a s .  

5 4  c o m p o n e n t . g e t R e n d e r C o n t e x t ( ) . s e t V e r t e x F i l l P a i n t T r a n s f o r m e r ( n e w G r a f o 2 _ V e r t e x P a i n t ( ) ) ;  

5 5  c o m p o n e n t . g e t R e n d e r C o n t e x t ( ) . s e t E d g e S t r o k e T r a n s f o r m e r ( n e w G r a f o 2 _ E d g e S t r o k e ( ) ) ;  

5 6  c o m p o n e n t . g e t R e n d e r C o n t e x t ( ) . s e t E d g e D r a w P a i n t T r a n s f o r m e r ( n e w G r a f o 2 _ E d g e P a i n t ( ) ) ;  

5 7  c o m p o n e n t . g e t R e n d e r C o n t e x t ( ) . s e t V e r t e x L a b e l T r a n s f o r m e r ( n e w T o S t r i n g L a b e l l e r < S t r i n g > ( ) ) ;  

5 8  c o m p o n e n t . g e t R e n d e r C o n t e x t ( ) . s e t E d g e L a b e l T r a n s f o r m e r ( n e w T o S t r i n g L a b e l l e r < F l o a t > ( ) ) ;  

5 9 

/ / M o n t a m o s a U I p a r a v i s u a l i z a r o c o m p o n e n t e .  

6 0  J F r a m e f = n e w J F r a m e ( " G r a p h V i e w " ) ;  

6 1  f . g e t C o n t e n t P a n e ( ) . a d d ( c o m p o n e n t ) ;  

6 2  f . p a c k ( ) ;  

6 3  f . s e t V i s i b l e ( t r u e ) ;  

6 4  f . s e t D e f a u l t C l o s e O p e r a t i o n ( J F r a m e . E X I T _ O N _ C L O S E ) ;  

6 5  } 

6 6 

6 7  } 

N a c l a s s e   G r a f o 2   ( l i s t a g e m 2 3 ) t e m o s v á r i a s c h a m a d a s a m é t o d o s   s e t X X X T r a n s f o r m e r   d a c l a s s e   R e n d e r C o n t e x t   , 

o b t i d a d o c o m p o n e n t e p a r a v i s u a l i z a ç ã o . E s t e s m é t o d o s i n d i c a m a o r e n d e r i z a d o r d o c o m p o n e n t e c o m o a l g u n s  

d o s e l e m e n t o s d o g r a f o s e r ã o r e n d e r i z a d o s n o e x e m p l o d a c l a s s e   G r a f o 2   t e m o s c i n c o c h a m a d a s a m é t o d o s  

d e s t e t i p o , q u e i n d i c a m q u e c l a s s e s s e r ã o u s a d a s p a r a d e t e r m i n a r p r e e n c h i m e n t o d o s v é r t i c e s ( l i n h a 5 4 ) , e s t i l o  

d a l i n h a d a a r e s t a ( l i n h a 5 5 ) , c o r d a l i n h a d a a r e s t a ( l i n h a 5 6 ) , r ó t u l o d o v é r t i c e ( l i n h a 5 7 ) e r ó t u l o d a a r e s t a  

( l i n h a 5 8 ) . A l g u n s d o s m é t o d o s   s e t X X X T r a n s f o r m e r   d a c l a s s e   R e n d e r C o n t e x t   s ã o d e s c r i t o s a s e g u i r .  

s e t A r r o w D r a w P a i n t T r a n s f o r m e r   m a p e i a i n s t â n c i a s d a c l a s s e d a a r e s t a p a r a   P a i n t   p a r a d e t e r m i n a r a  

c o r d o d e s e n h o d a s s e t a s e m g r a f o s d i r i g i d o s .  

s e t A r r o w F i l l P a i n t T r a n s f o r m e r   m a p e i a i n s t â n c i a s d a c l a s s e d a a r e s t a p a r a   P a i n t   p a r a d e t e r m i n a r a  

c o r o u m o d o d e p r e e n c h i m e n t o d a s s e t a s e m g r a f o s d i r i g i d o s .  

s e t E d g e A r r o w S t r o k e T r a n s f o r m e r   m a p e i a i n s t â n c i a s d a c l a s s e d a a r e s t a p a r a   S t r o k e   p a r a d e t e r m i n a r o  

e s t i l o d e l i n h a d o d e s e n h o d a s s e t a s e m g r a f o s d i r i g i d o s .  

s e t E d g e D r a w P a i n t T r a n s f o r m e r   m a p e i a i n s t â n c i a s d a c l a s s e d a a r e s t a p a r a   P a i n t   p a r a d e t e r m i n a r a c o r  

d o d e s e n h o d a s a r e s t a s .  

s e t E d g e F i l l P a i n t T r a n s f o r m e r   m a p e i a i n s t â n c i a s d a c l a s s e d a a r e s t a p a r a   P a i n t   p a r a d e t e r m i n a r a c o r  

o u m o d o d e p r e e n c h i m e n t o d a s a r e s t a s .  

s e t E d g e S t r o k e T r a n s f o r m e r   m a p e i a i n s t â n c i a s d a c l a s s e d a a r e s t a p a r a   S t r o k e   p a r a d e t e r m i n a r o e s t i l o  

d e l i n h a d a s a r e s t a s .  

s e t E d g e F o n t T r a n s f o r m e r   m a p e i a i n s t â n c i a s d a c l a s s e d a a r e s t a p a r a   F o n t   p a r a d e t e r m i n a r a f o n t e d o  

t e x t o a s s o c i a d o à s a r e s t a s .  

R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s  

Page 34: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 34/4

3 4 M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

s e t E d g e L a b e l T r a n s f o r m e r   m a p e i a i n s t â n c i a s d a c l a s s e d a a r e s t a p a r a   S t r i n g   p a r a d e t e r m i n a r o t e x t o  

a s s o c i a d o à s a r e s t a s .  

s e t V e r t e x D r a w P a i n t T r a n s f o r m e r   m a p e i a i n s t â n c i a s d a c l a s s e d o v é r t i c e p a r a   P a i n t   p a r a d e t e r m i n a r a  

c o r d o d e s e n h o d o s v é r t i c e s .  

s e t V e r t e x F i l l P a i n t T r a n s f o r m e r   m a p e i a i n s t â n c i a s d a c l a s s e d o v é r t i c e p a r a   P a i n t   p a r a d e t e r m i n a r a  

c o r o u m o d o d e p r e e n c h i m e n t o d o s v é r t i c e s .  

s e t V e r t e x I c o n T r a n s f o r m e r   m a p e i a i n s t â n c i a s d a c l a s s e d o v é r t i c e p a r a   I c o n   p a r a d e t e r m i n a r u m í c o n e  

p a r a d e s e n h o d o s v é r t i c e s .  

s e t V e r t e x S h a p e T r a n s f o r m e r   m a p e i a i n s t â n c i a s d a c l a s s e d o v é r t i c e p a r a   S h a p e   p a r a d e t e r m i n a r u m a  

f o r m a g e o m é t r i c a p a r a d e s e n h o d o s v é r t i c e s .  

s e t V e r t e x S t r o k e T r a n s f o r m e r   m a p e i a i n s t â n c i a s d a c l a s s e d o v é r t i c e p a r a   S t r o k e   p a r a d e t e r m i n a r o  

e s t i l o d e l i n h a d o s v é r t i c e s .  

s e t V e r t e x F o n t T r a n s f o r m e r   m a p e i a i n s t â n c i a s d a c l a s s e d o v é r t i c e p a r a   F o n t   p a r a d e t e r m i n a r a f o n t e d o  

t e x t o a s s o c i a d o a o s v é r t i c e s .  

s e t V e r t e x L a b e l T r a n s f o r m e r   m a p e i a i n s t â n c i a s d a c l a s s e d o v é r t i c e p a r a   S t r i n g   p a r a d e t e r m i n a r o t e x t o  

a s s o c i a d o a o s v é r t i c e s .  

P a r a d e m o n s t r a r c o m o e s t e s m a p e a m e n t o s s ã o f e i t o s , v e j a m o s o s m a p e a m e n t o s u s a d o s n a c l a s s e   G r a f o 2   ( l i s t a -  

g e m 2 3 ) . O p r i m e i r o ( l i n h a 5 4 ) m a p e i a i n s t â n c i a s d o s v é r t i c e s (  S t r i n g  ) p a r a i n s t â n c i a s d e   P a i n t  . P a r a f a z e r  

e s t e m a p e a m e n t o d e v e m o s c r i a r u m a i n s t â n c i a d e c l a s s e q u e i m p l e m e n t a   T r a n s f o r m e r < S t r i n g , P a i n t >   e u s á - l a  

c o m o p a r â m e t r o p a r a o m é t o d o   s e t V e r t e x F i l l P a i n t T r a n s f o r m e r   . E s t a n o v a c l a s s e ,   G r a f o 2 _ V e r t e x P a i n t   , 

é m o s t r a d a n a l i s t a g e m 2 4 .  

L i s t a g e m 2 4 : A c l a s s e   G r a f o 2 _ V e r t e x P a i n t   , q u e m a p e i a v é r t i c e s (  S t r i n g  ) p a r a   P a i n t  . 

1  / * 

2  * P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

4  * h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

* / 

6  p a c k a g e j u n g ;  

8  i m p o r t j a v a . a w t . * ;  

1 0  i m p o r t o r g . a p a c h e . c o m m o n s . c o l l e c t i o n s 1 5 . T r a n s f o r m e r ;  

1 1 

1 2 

/ * * 

1 3  * E s t a c l a s s e m a p e i a S t r i n g s p a r a P a i n t , d e f i n i n d o c o m o v é r t i c e s s e r ã o p r e e n c h i d o s n o g r a f o .  

1 4  * / 

1 5 

p u b l i c c l a s s G r a f o 2 _ V e r t e x P a i n t i m p l e m e n t s T r a n s f o r m e r < S t r i n g , P a i n t >  

1 6  { 

1 7  / / M é t o d o p a r a m a p e a r S t r i n g s p a r a P a i n t - - u s a m o s o n o m e d o e s t a d o p a r a d e f i n i r u m a c o r .  

1 8  p u b l i c P a i n t t r a n s f o r m ( S t r i n g s )  

1 9  { 

2 0  i f ( s . s t a r t s W i t h ( " S P " ) ) r e t u r n C o l o r . B L U E ;  

2 1  e l s e i f ( s . s t a r t s W i t h ( " P E " ) | | s . s t a r t s W i t h ( " P A " ) ) r e t u r n C o l o r . M A G E N T A ;  

2 2 

e l s e r e t u r n C o l o r . Y E L L O W ;  

2 3  } 

2 4 

2 5  } 

P a r a d e t e r m i n a r q u e e s t i l o s d e l i n h a s e r ã o u s a d o s p a r a d e s e n h a r a s l i n h a s q u e r e p r e s e n t a m a s a r e s t a s p r e c i s a r e m o s  

d e u m a i n s t â n c i a d e c l a s s e q u e i m p l e m e n t a   T r a n s f o r m e r < F l o a t , S t r o k e >   e u s á - l a c o m o p a r â m e t r o p a r a o  

m é t o d o   s e t E d g e S t r o k e T r a n s f o r m e r   ( l i n h a 5 5 d a l i s t a g e m 2 3 ) . E s t a n o v a c l a s s e ,   G r a f o 2 _ E d g e S t r o k e   , é 

m o s t r a d a n a l i s t a g e m 2 5 .  

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s R a f a e l S a n t o s  

Page 35: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 35/4

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 3 5  

L i s t a g e m 2 5 : A c l a s s e   G r a f o 2 _ E d g e S t r o k e   , q u e m a p e i a a r e s t a s (  F l o a t  ) p a r a   S t r o k e  . 

1  / * 

* P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

4  * h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

5  * / 

6  p a c k a g e j u n g ;  

8  i m p o r t j a v a . a w t . * ;  

1 0  i m p o r t o r g . a p a c h e . c o m m o n s . c o l l e c t i o n s 1 5 . T r a n s f o r m e r ;  

1 1 

1 2  / * * 

1 3  * E s t a c l a s s e m a p e i a F l o a t s p a r a S t r o k e , d e f i n i n d o o s e s t i l o s d e l i n h a s p a r a a r e s t a s n o g r a f o .  

1 4  * / 

1 5  p u b l i c c l a s s G r a f o 2 _ E d g e S t r o k e i m p l e m e n t s T r a n s f o r m e r < F l o a t , S t r o k e >  

1 6 

1 7  / / M é t o d o p a r a m a p e a r F l o a t s p a r a S t r o k e - - u s a m o s l i m i a r e s p a r a d e t e r m i n a r o s e s t i l o s .  

1 8  p u b l i c S t r o k e t r a n s f o r m ( F l o a t f )  

1 9 

2 0  i f ( f < 8 0 0 ) r e t u r n  

2 1  n e w B a s i c S t r o k e ( 1 f , B a s i c S t r o k e . C A P _ B U T T , B a s i c S t r o k e . J O I N _ M I T E R ,  

2 2  1 f , n e w f l o a t [ ] { 2 f } , 0 f ) ;  

2 3  e l s e i f ( f > 1 5 0 0 ) r e t u r n n e w B a s i c S t r o k e ( 3 f ) ;  

2 4  e l s e r e t u r n n e w B a s i c S t r o k e ( 7 f ) ;  

2 5  } 

2 6 

2 7  } 

F i n a l m e n t e , p a r a d e t e r m i n a r q u e c o r e s s e r ã o u s a d a s p a r a d e s e n h a r a s l i n h a s q u e r e p r e s e n t a m a s a r e s t a s p r e c i s a -  

r e m o s d e u m a i n s t â n c i a d e c l a s s e q u e i m p l e m e n t a   T r a n s f o r m e r < F l o a t , P a i n t >   e u s á - l a c o m o p a r â m e t r o p a r a  

o m é t o d o   s e t E d g e D r a w P a i n t T r a n s f o r m e r   ( l i n h a 5 6 d a l i s t a g e m 2 3 ) . E s t a n o v a c l a s s e ,   G r a f o 2 _ E d g e P a i n t   , é 

m o s t r a d a n a l i s t a g e m 2 6 .  

L i s t a g e m 2 6 : A c l a s s e   G r a f o 2 _ E d g e P a i n t   , q u e m a p e i a a r e s t a s (  F l o a t  ) p a r a   P a i n t  . 

/ * 

2  * P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

* h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

5  * / 

6  p a c k a g e j u n g ;  

i m p o r t j a v a . a w t . * ;  

1 0  i m p o r t o r g . a p a c h e . c o m m o n s . c o l l e c t i o n s 1 5 . T r a n s f o r m e r ;  

1 1 

1 2  / * * 

1 3  * E s t a c l a s s e m a p e i a F l o a t s p a r a P a i n t , d e f i n i n d o a s c o r e s d a s l i n h a s p a r a a r e s t a s n o g r a f o .  

1 4  * / 

1 5  p u b l i c c l a s s G r a f o 2 _ E d g e P a i n t i m p l e m e n t s T r a n s f o r m e r < F l o a t , P a i n t >  

1 6  { 

1 7  / / M é t o d o p a r a m a p e a r F l o a t s p a r a P a i n t - - u s a m o s l i m i a r e s p a r a d e t e r m i n a r a s c o r e s d a s l i n h a s .  

1 8 

p u b l i c P a i n t t r a n s f o r m ( F l o a t f )  

1 9  { 

2 0  i f ( f < 8 0 0 ) r e t u r n C o l o r . B L A C K ;  

2 1  e l s e i f ( f > 1 5 0 0 ) r e t u r n C o l o r . B L U E ;  

2 2  e l s e r e t u r n C o l o r . R E D ;  

2 3  } 

2 4 

2 5 

A l é m d a s t r a n s f o r m a ç õ e s d e s c r i t a s n e s t a s t r ê s c l a s s e s , u s a m o s u m a n o v a i n s t â n c i a d e   T o S t r i n g L a b e l l e r < S t r i n g >  

c o m o p a r â m e t r o p a r a o m é t o d o   s e t V e r t e x L a b e l T r a n s f o r m e r   n a l i n h a 5 7 d a l i s t a g e m 2 3 . E s t a c h a m a d a f a r á  

c o m q u e a r e p r e s e n t a ç ã o t e x t u a l ( o b t i d a a t r a v é s d o m é t o d o   t o S t r i n g   d a c l a s s q u e i m p l e m e n t a o v é r t i c e s e j a  

u s a d a p a r a c r i a r u m r ó t u l o p a r a o m e s m o . S i m i l a r m e n t e , u m a n o v a i n s t â n c i a d e   T o S t r i n g L a b e l l e r < F l o a t >  

s e r á p a s s a d a c o m o p a r â m e t r o p a r a o m é t o d o   s e t E d g e L a b e l T r a n s f o r m e r   ( l i n h a 5 8 d a l i s t a g e m 2 3 ) p a r a q u e  

u m a r e p r e s e n t a ç ã o t e x t u a l d o v a l o r d a a r e s t a s e j a u s a d o c o m o r ó t u l o p a r a a m e s m a .  

R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s  

Page 36: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 36/4

3 6 M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

O r e s u l t a d o d a e x e c u ç ã o d a c l a s s e   G r a f o 2   ( l i s t a g e m 2 3 ) é m o s t r a d o n a g u r a 1 2 . O s e f e i t o s d a s t r a n s f o r m a ç õ e s  

p o d e m s e r v i s t o s n a s a r e s t a s e v é r t i c e s .  

F i g u r a 1 2 : T e l a d a a p l i c a ç ã o d a c l a s s e   G r a f o 2   ( l i s t a g e m 2 3 ) .  

C o m o ú l t i m o e x e m p l o v e r e m o s o c ó d i g o n e c e s s á r i o p a r a c r i a r u m g r a f o i n t e r a t i v o q u e m o s t r a s i m i l a r i d a d e s e n t r e  

p u b l i c a ç õ e s d e u m i n s t i t u t o ( o s d a d o s p a r a e s t e e x e m p l o f o r a m c e d i d o s p o r A l e s s a n d r o O l i v e i r a A r a n t e s , v e j a [ 1 ] ) .  

A s p u b l i c a ç õ e s f o r a m s e l e c i o n a d a s e c o m p a r a d a s d u a s a d u a s u s a n d o v á r i o s c r i t é r i o s , d e f o r m a a c r i a r u m í n d i c e  

d e s i m i l a r i d a d e n u m é r i c o . O s d a d o s u s a d o s p a r a g e r a r o s g r a f o s s ã o a p r e s e n t a d o s e m u m a r q u i v o d e t e x t o ,  

r e p r o d u z i d o p a r c i a l m e n t e n a l i s t a g e m 2 7 .  

L i s t a g e m 2 7 : L i s t a ( p a r c i a l ) d e p u b l i c a ç õ e s e s i m i l a r i d a d e e n t r e e l a s .  

C T A / I E A v - E F O / A P - 0 0 4 / 2 0 0 5 ; 1 9 ; C T A / I E A v - E F O / A P - 0 1 0 / 2 0 0 5  

2  C T A / I E A v - E F O / A P - 0 1 0 / 2 0 0 5 ; 1 9 ; C T A / I E A v - E F O / A P - 0 0 4 / 2 0 0 5  

3  C T A / I T A - I E A / T D - 0 1 0 / 2 0 0 3 ; 1 8 ; C T A / I T A - I E E / T D - 0 0 1 / 2 0 0 3  

4  C T A / I T A - I E E / T D - 0 0 1 / 2 0 0 3 ; 1 8 ; C T A / I T A - I E A / T D - 0 1 0 / 2 0 0 3  

C T A / I T A - I E E / A E - 0 0 9 / 2 0 0 2 ; 1 7 ; C T A / I T A - I E E / A E - 0 2 1 / 2 0 0 2  

6  . . . 

7  C T A / I T A - I E A / T C - 0 0 1 / 2 0 0 5 ; 1 2 ; C T A / I T A - I E E / A E - 0 1 0 / 2 0 0 5  

C T A / I T A - I E A / T C - 0 0 1 / 2 0 0 5 ; 1 2 ; C T A / I T A - I E E / A E - 0 2 5 / 2 0 0 5  

P a r a d e m o n s t r a r m e l h o r a v e r s a t i l i d a d e d a A P I J U N G , c r i a r e m o s c l a s s e s e s p e c í c a s p a r a r e p r e s e n t a r a s a r e s t a s  

e v é r t i c e s d e u m g r a f o d e s i m i l a r i d a d e e n t r e p u b l i c a ç õ e s . A c l a s s e   B i b l i o V e r t i c e   , m o s t r a d a n a l i s t a g e m 2 8 ,  

r e p r e s e n t a u m v é r t i c e n o g r a f o d e s i m i l a r i d a d e s . E s t a c l a s s e c o n t é m m é t o d o s q u e r e t o r n a m i n f o r m a ç õ e s s o b r e  

a p u b l i c a ç ã o ( d e p a r t a m e n t o , a n o , e t c . ) e m é t o d o s p a r a c o m p a r a ç ã o e i d e n t i c a ç ã o d e v é r t i c e s ú n i c o s (  e q u a l s  , 

h a s h C o d e   ) . 

L i s t a g e m 2 8 : A c l a s s e   B i b l i o V e r t i c e   , q u e r e p r e s e n t a u m v é r t i c e e m u m a c o l e ç ã o d e d o c u m e n t o s e r e f e r ê n c i a s .  

1  / * 

2  * P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

* R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

4  * h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

* / 

6  p a c k a g e j u n g ;  

8  / * * 

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s R a f a e l S a n t o s  

Page 37: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 37/4

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 3 7  

9  * E s t a c l a s s e r e p r e s e n t a u m v é r t i c e e m u m g r a f o d e r e f e r ê n c i a s b i b l i o g r á f i c a s ( u m d o c u m e n t o ) .  

1 0 

* C a d a v é r t i c e s e r á i d e n t i f i c a d o p o r u m a S t r i n g . S e r i a m a i s f á c i l u s a r u m a S t r i n g d i r e t a m e n t e ,  

1 1  * m a s c o m u m a c l a s s e p o d e m o s c r i a r a t r i b u t o s e m é t o d o s a d i c i o n a i s i n t e r e s s a n t e s .  

1 2  * / 

1 3 

p u b l i c c l a s s B i b l i o V e r t i c e i m p l e m e n t s C o m p a r a b l e < B i b l i o V e r t i c e >  

1 4  { 

1 5  / / O i d e n t i f i c a d o r d o d o c u m e n t o . O s d o c u m e n t o s s ã o i d e n t i f i c a d o s p o r S t r i n g s c o m q u a t r o  

1 6  / / t o k e n s : o p r i m e i r o é c o n s t a n t e , o s e g u n d o é o n o m e d o d e p a r t a m e n t o , o t e r c e i r o é o  

1 7  / / í n d i c e d o d o c u m e n t o e o q u a r t o é o a n o d e p u b l i c a ç ã o .  

1 8  p r i v a t e S t r i n g i d ;  

1 9 

2 0 

/ / C o n s t r u t o r , i n i c i a l i z a o s a t r i b u t o s .  

2 1  p u b l i c B i b l i o V e r t i c e ( S t r i n g i )  

2 2  { 

2 3  i d = i ;  

2 4  } 

2 5 

2 6  / / M é t o d o q u e v e r i f i c a s e u m a i n s t â n c i a d e s t a c l a s s e é i g u a l a o u t r a - - e s t e m é t o d o ( c r i a d o  

2 7 

/ / a u t o m a t i c a m e n t e p e l o E c l i p s e ) é e s s e n c i a l p a r a a l g u m a s o p e r a ç õ e s e m g r a f o s .  

2 8  p u b l i c b o o l e a n e q u a l s ( O b j e c t o b j )  

2 9  { 

3 0 

i f ( t h i s = = o b j ) r e t u r n t r u e ;  

3 1  i f ( o b j = = n u l l ) r e t u r n f a l s e ;  

3 2  i f ( g e t C l a s s ( ) ! = o b j . g e t C l a s s ( ) ) r e t u r n f a l s e ;  

3 3  B i b l i o V e r t i c e o t h e r = ( B i b l i o V e r t i c e ) o b j ;  

3 4  i f ( i d = = n u l l )  

3 5  { 

3 6  i f ( o t h e r . i d ! = n u l l ) r e t u r n f a l s e ;  

3 7 

3 8  e l s e i f ( ! i d . e q u a l s ( o t h e r . i d ) ) r e t u r n f a l s e ;  

3 9  r e t u r n t r u e ;  

4 0  } 

4 1 

4 2  / / M é t o d o q u e c r i a o h a s h c o d e d e u m a i n s t â n c i a d a c l a s s e - - e s s e n c i a l p a r a c r i a ç ã o d o s g r a f o s .  

4 3  / / E s t e m é t o d o f o i c r i a d o a u t o m a t i c a m e n t e p e l o E c l i p s e .  

4 4 

p u b l i c i n t h a s h C o d e ( )  

4 5  { 

4 6  f i n a l i n t p r i m e = 3 1 ;  

4 7 

i n t r e s u l t = 1 ;  

4 8  r e s u l t = p r i m e * r e s u l t + ( ( i d = = n u l l ) ? 0 : i d . h a s h C o d e ( ) ) ;  

4 9  r e t u r n r e s u l t ;  

5 0  } 

5 1 

5 2  / / M é t o d o p a r a c o m p a r a r u m a i n s t â n c i a d e s t a c l a s s e c o m o u t r a .  

5 3  p u b l i c i n t c o m p a r e T o ( B i b l i o V e r t i c e o )  

5 4 

5 5  r e t u r n o . i d . c o m p a r e T o ( i d ) ;  

5 6  } 

5 7 

5 8  / / R e t o r n a o i d e n t i f i c a d o r a r m a z e n a d o n a c l a s s e .  

5 9  p u b l i c S t r i n g g e t I d ( ) { r e t u r n i d ; }  

6 0 

6 1 

/ / R e t o r n a o i d e n t i f i c a d o r d o d o c u m e n t o ( t e r c e i r o t o k e n n a i d e n t i f i c a ç ã o ) .  

6 2  p u b l i c S t r i n g g e t D o c I d ( )  

6 3  { 

6 4 

S t r i n g [ ] t o k e n s = i d . s p l i t ( " / " ) ;  

6 5  r e t u r n t o k e n s [ 2 ] ;  

6 6  } 

6 7 

6 8  / / R e t o r n a o i n s t i t u t o ( p r i m e i r a p a r t e d o s e g u n d o t o k e n n a i d e n t i f i c a ç ã o ) .  

6 9  p u b l i c S t r i n g g e t I n s t i t u t o ( )  

7 0  { 

7 1 

S t r i n g [ ] t o k e n s 1 = i d . s p l i t ( " / " ) ;  

7 2  S t r i n g [ ] t o k e n s 2 = t o k e n s 1 [ 1 ] . s p l i t ( " - " ) ;  

7 3  r e t u r n t o k e n s 2 [ 0 ] ;  

7 4  } 

7 5 

7 6  / / R e t o r n a o a n o d a p u b l i c a ç ã o ( q u a r t o t o k e n n a i d e n t i f i c a ç ã o ) .  

7 7  p u b l i c i n t g e t A n o ( )  

7 8 

7 9  S t r i n g [ ] t o k e n s = i d . s p l i t ( " / " ) ;  

8 0  r e t u r n I n t e g e r . p a r s e I n t ( t o k e n s [ 3 ] ) ;  

8 1 

8 2 

8 3  } 

R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s  

Page 38: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 38/4

3 8 M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

A c l a s s e   B i b l i o A r e s t a   , m o s t r a d a n a l i s t a g e m 2 9 , r e p r e s e n t a u m a a r e s t a e n t r e d o i s v é r t i c e s n o g r a f o . A r e s t a s  

r e p r e s e n t a m s i m i l a r i d a d e e n t r e o s v é r t i c e s , e t e r ã o a s s o c i a d a s a e l a s u m v a l o r n u m é r i c o ( d a d o p e l a t a b e l a o r i g i n a l  

c o m o s d a d o s ) . C o m o t e r e m o s v á r i a s a r e s t a s c o m o m e s m o v a l o r , é n e c e s s á r i o c r i a r u m i d e n t i c a d o r ú n i c o p a r a  

a s a r e s t a s , o q u e é i m p l e m e n t a d o n a c l a s s e .  

L i s t a g e m 2 9 : A c l a s s e   B i b l i o A r e s t a   , q u e r e p r e s e n t a u m a a r e s t a e m u m a c o l e ç ã o d e d o c u m e n t o s e r e f e r ê n c i a s .  

/ * 

2  * P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

4  * h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

5  * / 

p a c k a g e j u n g ;  

8  / * * 

9  * E s t a c l a s s e r e p r e s e n t a u m a a r e s t a e m u m g r a f o d e s i m i l a r i d a d e e n t r e d o c u m e n t o s . C a d a a r e s t a t e r á  

1 0  * u m i d e n t i f i c a d o r ú n i c o e u m v a l o r n u m é r i c o ( p e s o d a s i m i l a r i d a d e ) a s s o c i a d o à a r e s t a .  

1 1  * / 

1 2  p u b l i c c l a s s B i b l i o A r e s t a  

1 3 

1 4  p u b l i c s t a t i c i n t c o n t a d o r D e A r e s t a s ; / / C a m p o e s t á t i c o p a r a c r i a r o i d e n t i f i c a d o r ú n i c o .  

1 5  p r i v a t e i n t i d ; / / I d e n t i f i c a d o r ú n i c o .  

1 6 

p r i v a t e d o u b l e p e s o ; / / V a l o r d a s i m i l a r i d a d e .  

1 7 

1 8  / / C o n s t r u t o r , i n i c i a l i z a o s c a m p o s .  

1 9  p u b l i c B i b l i o A r e s t a ( d o u b l e p )  

2 0  { 

2 1  i d = c o n t a d o r D e A r e s t a s + + ;  

2 2  p e s o = p ;  

2 3 

2 4 

2 5  / / R e c u p e r a o v a l o r d a s i m i l a r i d a d e .  

2 6  p u b l i c d o u b l e g e t P e s o ( ) { r e t u r n p e s o ; }  

2 7  } 

C o m c l a s s e s p a r a r e p r e s e n t a r a r e s t a e v é r t i c e , p o d e m o s e s c r e v e r u m a c l a s s e q u e r e p r e s e n t a u m g r a f o c o m p o s t o  

d e s t a s a r e s t a s e v é r t i c e s e q u e p e r m i t e a v i s u a l i z a ç ã o e i n t e r a ç ã o c o m e s t e g r a f o . A c l a s s e   G r a f o B i b l i o   , m o s t r a d a  

n a l i s t a g e m 3 0 , e x e c u t a o s s e g u i n t e s p a s s o s :  

C r i a o g r a f o c o m o u m g r a f o d i r e c i o n a d o ( i n s t â n c i a d e   D i r e c t e d S p a r s e M u l t i g r a p h   ) e o p r e e n c h e c o m o s  

d a d o s l i d o s d o a r q u i v o ( v e j a l i s t a g e m 2 7 ) .  

C r i a u m   l a y o u t   p a r a o g r a f o n e s t e e x e m p l o u s a r e m o s u m a i n s t â n c i a d e   S p r i n g L a y o u t 2   p a r a c o n t r o l a r o  

p o s i c i o n a m e n t o d o s v é r t i c e s . E s t e   l a y o u t   s e o r g a n i z a a p ó s a c o n s t r u ç ã o d o g r a f o e d u r a n t e a v i s u a l i z a ç ã o  

d o m e s m o , e m o u t r a s p a l a v r a s , s u a a p a r ê n c i a m u d a d o i n í c i o d a v i s u a l i z a ç ã o p a r a s e e s t a b i l i z a r d e p o i s d e  

a l g u m t e m p o d e e x e c u ç ã o d a a p l i c a ç ã o d a v i s u a l i z a ç ã o . O u t r a s o p ç õ e s d e   l a y o u t   s e r ã o a p r e s e n t a d a s .  

C r i a o c o m p o n e n t e p a r a v i s u a l i z a ç ã o d o g r a f o ( i n s t â n c i a d e   V i s u a l i z a t i o n V i e w e r   ) e r e g i s t r a   l i s t e n e r s   d e 

e v e n t o s d e m o u s e p a r a o c o m p o n e n t e .  

M o d i c a d i c a s p a r a a r e n d e r i z a ç ã o d o g r a f o n o c o m p o n e n t e e a d i c i o n a i n t e r a t i v i d a d e p a d r ã o c o m o m o u s e .  

C r i a o s t r a n s f o r m a d o r e s p a r a c o n t r o l a r a r e n d e r i z a ç ã o d o s v é r t i c e s e a r e s t a s .  

A l é m d a i n t e r a t i v i d a d e p a d r ã o c o m o m o u s e t e r e m o s a p o s s i b i l i d a d e d e g r a v a r e m d i s c o c ó p i a s d a t e l a e x i b i d a .  

P a r a i s t o b a s t a c l i c a r c o m o b o t ã o d i r e i t o d o m o u s e n o c o m p o n e n t e .  

L i s t a g e m 3 0 : A c l a s s e   G r a f o B i b l i o   , q u e r e p r e s e n t a u m a a r e s t a e m u m a c o l e ç ã o d e d o c u m e n t o s e r e f e r ê n c i a s .  

1  / * 

* P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

4  * h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

* / 

6  p a c k a g e j u n g ;  

8  i m p o r t j a v a . a w t . * ;  

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s R a f a e l S a n t o s  

Page 39: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 39/4

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 3 9  

9  i m p o r t j a v a . a w t . R e n d e r i n g H i n t s . K e y ;  

1 0 

i m p o r t j a v a . a w t . e v e n t . * ;  

1 1  i m p o r t j a v a . a w t . i m a g e . B u f f e r e d I m a g e ;  

1 2  i m p o r t j a v a . i o . * ;  

1 3 

i m p o r t j a v a . u t i l . H a s h M a p ;  

1 4 

1 5  i m p o r t j a v a x . i m a g e i o . I m a g e I O ;  

1 6  i m p o r t j a v a x . s w i n g . J F r a m e ;  

1 7 

1 8  i m p o r t e d u . u c i . i c s . j u n g . a l g o r i t h m s . l a y o u t . * ;  

1 9  i m p o r t e d u . u c i . i c s . j u n g . g r a p h . * ;  

2 0 

i m p o r t e d u . u c i . i c s . j u n g . v i s u a l i z a t i o n . V i s u a l i z a t i o n V i e w e r ;  

2 1  i m p o r t e d u . u c i . i c s . j u n g . v i s u a l i z a t i o n . c o n t r o l . * ;  

2 2 

2 3  / * * 

2 4  * E s t a c l a s s e , b e m m a i s c o m p l e t a e c o m p l e x a , m o n t a u m g r a f o p a r a v i s u a l i z a ç ã o d e u m a r e d e d e  

2 5  * s i m i l a r i d a d e s e n t r e a r t i g o s c i e n t í f i c o s . C a d a a r t i g o é r e p r e s e n t a d o p o r u m a i n s t â n c i a d e  

2 6  * B i b l i o V e r t i c e e a s s i m i l a r i d a d e s p o r i n s t â n c i a s d e B i b l i o A r e s t a .  

2 7 

* A c l a s s e i m p l e m e n t a a l g u m a s t é c n i c a s i n t e r e s s a n t e s d e v i s u a l i z a ç ã o e i n t e r a ç ã o c o m o u s u á r i o .  

2 8  * / 

2 9  p u b l i c c l a s s G r a f o B i b l i o i m p l e m e n t s M o u s e L i s t e n e r  

3 0 

3 1  / / O c o m p o n e n t e u s a d o p a r a v i s u a l i z a ç ã o i n t e r a t i v a d o g r a f o .  

3 2  p r i v a t e V i s u a l i z a t i o n V i e w e r < B i b l i o V e r t i c e , B i b l i o A r e s t a > c o m p o n e n t ;  

3 3 

3 4  / / C o n s t r u t o r d a c l a s s e , c r i a o g r a f o e a s e s t r u t u r a s d e l a y o u t e v i s u a l i z a ç ã o .  

3 5  p u b l i c G r a f o B i b l i o ( ) t h r o w s I O E x c e p t i o n  

3 6  { 

3 7 

/ / N o s s o g r a f o s e r á d i r e c i o n a d o .  

3 8  G r a p h < B i b l i o V e r t i c e , B i b l i o A r e s t a > g r a p h =  

3 9  n e w D i r e c t e d S p a r s e M u l t i g r a p h < B i b l i o V e r t i c e , B i b l i o A r e s t a > ( ) ;  

4 0  / / V a m o s l e r t o d a s a s e n t r a d a s n a t a b e l a d e s i m i l a r i d a d e e n t r e d o c u m e n t o s d e u m a r q u i v o .  

4 1  B u f f e r e d R e a d e r b r =  

4 2  n e w B u f f e r e d R e a d e r ( n e w F i l e R e a d e r ( " / h o m e / r a f a e l / J a v a / D M / G r a p h s / A l e s s a n d r o / t a b e l a 4 . t x t " ) ) ;  

4 3  w h i l e ( t r u e )  

4 4 

4 5  / / L i n h a p o r l i n h a . . .  

4 6  S t r i n g l i n e = b r . r e a d L i n e ( ) ;  

4 7 

i f ( l i n e = = n u l l ) b r e a k ;  

4 8  / / Q u e b r a a l i n h a e m s e u s t o k e n s .  

4 9  S t r i n g [ ] t o k e n s = l i n e . s p l i t ( " ; " ) ;  

5 0  / / C a d a l i n h a c o n t é m d o i s v é r t i c e s e u m a a r e s t a : a d i c i o n a m o s a o g r a f o .  

5 1  B i b l i o V e r t i c e b v 1 = n e w B i b l i o V e r t i c e ( t o k e n s [ 0 ] . t r i m ( ) ) ;  

5 2  B i b l i o V e r t i c e b v 2 = n e w B i b l i o V e r t i c e ( t o k e n s [ 2 ] . t r i m ( ) ) ;  

5 3  B i b l i o A r e s t a b a = n e w B i b l i o A r e s t a ( I n t e g e r . p a r s e I n t ( t o k e n s [ 1 ] . t r i m ( ) ) ) ;  

5 4 

g r a p h . a d d V e r t e x ( b v 1 ) ;  

5 5  g r a p h . a d d V e r t e x ( b v 2 ) ;  

5 6  g r a p h . a d d E d g e ( b a , b v 1 , b v 2 ) ;  

5 7  } 

5 8  b r . c l o s e ( ) ;  

5 9  / / P a r a v i s u a l i z a r o g r a f o p r e c i s a r e m o s d e u m l a y o u t a d e q u a d o - - e x i s t e a m p l o e s p a ç o p a r a  

6 0  / / e x p e r i ê n c i a s a q u i .  

6 1 

S p r i n g L a y o u t 2 < B i b l i o V e r t i c e , B i b l i o A r e s t a > l a y o u t =  

6 2  n e w S p r i n g L a y o u t 2 < B i b l i o V e r t i c e , B i b l i o A r e s t a > ( g r a p h ) ;  

6 3  l a y o u t . s e t S i z e ( n e w D i m e n s i o n ( 7 0 0 , 7 0 0 ) ) ;  

6 4 

/ / P r e c i s a m o s t a m b é m d e u m c o m p o n e n t e p a r a v i s u a l i z a ç ã o . U s a r e m o s u m V i s u a l i z a t i o n V i e w e r  

6 5  / / q u e p e r m i t e i n t e r a ç ã o c o m o u s u á r i o .  

6 6  c o m p o n e n t = n e w V i s u a l i z a t i o n V i e w e r < B i b l i o V e r t i c e , B i b l i o A r e s t a > ( l a y o u t ) ;  

6 7  c o m p o n e n t . s e t P r e f e r r e d S i z e ( n e w D i m e n s i o n ( 7 5 0 , 7 5 0 ) ) ;  

6 8  c o m p o n e n t . s e t B a c k g r o u n d ( C o l o r . W H I T E ) ;  

6 9  c o m p o n e n t . a d d M o u s e L i s t e n e r ( t h i s ) ;  

7 0  / / Q u e r e m o s u m a b o a q u a l i d a d e d e r e n d e r i z a ç ã o , c o m a n t i a l i a s i n g e t r a n s p a r ê n c i a .  

7 1 

H a s h M a p < K e y , O b j e c t > r e n d e r i n g H i n t s = n e w H a s h M a p < K e y , O b j e c t > ( ) ;  

7 2  r e n d e r i n g H i n t s . p u t ( R e n d e r i n g H i n t s . K E Y _ A L P H A _ I N T E R P O L A T I O N ,  

7 3  R e n d e r i n g H i n t s . V A L U E _ A L P H A _ I N T E R P O L A T I O N _ Q U A L I T Y ) ;  

7 4  r e n d e r i n g H i n t s . p u t ( R e n d e r i n g H i n t s . K E Y _ A N T I A L I A S I N G , R e n d e r i n g H i n t s . V A L U E _ A N T I A L I A S _ O N ) ;  

7 5  c o m p o n e n t . s e t R e n d e r i n g H i n t s ( r e n d e r i n g H i n t s ) ;  

7 6  / / A d i c i o n a m o s i n t e r a t i v i d a d e b á s i c a c o m o m o u s e p a r a e s t e c o m p o n e n t e .  

7 7  D e f a u l t M o d a l G r a p h M o u s e < B i b l i o V e r t i c e , B i b l i o A r e s t a > g m =  

7 8 

n e w D e f a u l t M o d a l G r a p h M o u s e < B i b l i o V e r t i c e , B i b l i o A r e s t a > ( ) ;  

7 9  g m . s e t M o d e ( M o d a l G r a p h M o u s e . M o d e . T R A N S F O R M I N G ) ;  

8 0  c o m p o n e n t . s e t G r a p h M o u s e ( g m ) ;  

8 1 

/ / C r i a m o s o s t r a n s f o r m a d o r e s p a r a m o d i f i c a r a a p a r ê n c i a d o s v é r t i c e s e a r e s t a s .  

8 2  c o m p o n e n t . g e t R e n d e r C o n t e x t ( ) . s e t V e r t e x F i l l P a i n t T r a n s f o r m e r ( n e w G r a f o B i b l i o _ B i b l i o V e r t i c e P a i n t ( ) ) ;  

8 3  c o m p o n e n t . g e t R e n d e r C o n t e x t ( ) . s e t V e r t e x S h a p e T r a n s f o r m e r ( n e w G r a f o B i b l i o _ B i b l i o V e r t i c e S h a p e ( ) ) ;  

R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s  

Page 40: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 40/4

4 0 M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

8 4  c o m p o n e n t . g e t R e n d e r C o n t e x t ( ) . s e t V e r t e x L a b e l T r a n s f o r m e r ( n e w G r a f o B i b l i o _ B i b l i o V e r t i c e L a b e l ( ) ) ;  

8 5 

c o m p o n e n t . g e t R e n d e r C o n t e x t ( ) . s e t E d g e S t r o k e T r a n s f o r m e r ( n e w G r a f o B i b l i o _ B i b l i o A r e s t a S t r o k e ( ) ) ;  

8 6  c o m p o n e n t . g e t R e n d e r C o n t e x t ( ) . s e t E d g e D r a w P a i n t T r a n s f o r m e r ( n e w G r a f o B i b l i o _ B i b l i o A r e s t a P a i n t ( ) ) ;  

8 7  / / M o n t a m o s a U I p a r a v i s u a l i z a r o c o m p o n e n t e .  

8 8 

J F r a m e f = n e w J F r a m e ( " G r a p h V i e w " ) ;  

8 9  f . g e t C o n t e n t P a n e ( ) . a d d ( c o m p o n e n t ) ;  

9 0  f . p a c k ( ) ;  

9 1  f . s e t V i s i b l e ( t r u e ) ;  

9 2  f . s e t D e f a u l t C l o s e O p e r a t i o n ( J F r a m e . E X I T _ O N _ C L O S E ) ;  

9 3  } 

9 4 

9 5 

/ / S e o m o u s e f o r c l i c a d o ( i n d e p e n d e n t e d a i n t e r a t i v i d a d e j á r e g i s t r a d a c o m o c o m p o n e n t e ) ,  

9 6  / / v e r i f i c a r e m o s o b o t ã o c l i c a d o p a r a g r a v a r , e m u m a i m a g e m , u m s n a p s h o t d o c o m p o n e n t e .  

9 7  p u b l i c v o i d m o u s e C l i c k e d ( M o u s e E v e n t e )  

9 8  { 

9 9  i f ( e . g e t B u t t o n ( ) = = M o u s e E v e n t . B U T T O N 3 )  

1 0 0  { 

1 0 1  / / C r i a m o s u m a i m a g e m d o t a m a n h o d o c o m p o n e n t e d e v i s u a l i z a ç ã o .  

1 0 2 

B u f f e r e d I m a g e i m = ( B u f f e r e d I m a g e ) c o m p o n e n t . c r e a t e I m a g e ( c o m p o n e n t . g e t W i d t h ( ) ,  

1 0 3  c o m p o n e n t . g e t H e i g h t ( ) ) ;  

1 0 4  / / P e g a m o s s e u c o n t e x t o g r á f i c o .  

1 0 5 

G r a p h i c s g r a p h i c s = i m . c r e a t e G r a p h i c s ( ) ;  

1 0 6  / / D e s e n h a m o s o c o m p o n e n t e n a i m a g e m .  

1 0 7  c o m p o n e n t . p a i n t C o m p o n e n t s ( g r a p h i c s ) ;  

1 0 8  c o m p o n e n t . u p d a t e ( g r a p h i c s ) ;  

1 0 9  / / G r a v a m o s a i m a g e m .  

1 1 0  t r y 

1 1 1  { 

1 1 2 

I m a g e I O . w r i t e ( i m , " P N G " , n e w F i l e ( " b i b g r a p h . p n g " ) ) ;  

1 1 3  } 

1 1 4  c a t c h ( I O E x c e p t i o n e 1 )  

1 1 5  { 

1 1 6  e 1 . p r i n t S t a c k T r a c e ( ) ;  

1 1 7  } 

1 1 8  } 

1 1 9 

1 2 0 

1 2 1  / / M é t o d o s r e q u e r i d o s p e l a i n t e r f a c e M o u s e L i s t e n e r .  

1 2 2 

p u b l i c v o i d m o u s e E n t e r e d ( M o u s e E v e n t a r g 0 ) { }  

1 2 3  p u b l i c v o i d m o u s e E x i t e d ( M o u s e E v e n t a r g 0 ) { }  

1 2 4  p u b l i c v o i d m o u s e P r e s s e d ( M o u s e E v e n t a r g 0 ) { }  

1 2 5  p u b l i c v o i d m o u s e R e l e a s e d ( M o u s e E v e n t a r g 0 ) { }  

1 2 6 

1 2 7  / / P o n t o d e e n t r a d a d a a p l i c a ç ã o .  

1 2 8  p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) t h r o w s I O E x c e p t i o n  

1 2 9 

1 3 0  n e w G r a f o B i b l i o ( ) ;  

1 3 1  } 

1 3 2 

1 3 3  } 

A c l a s s e   G r a f o B i b l i o   ( l i s t a g e m 3 0 ) u s a c i n c o t r a n s f o r m a ç õ e s p a r a m o d i c a r a a p a r ê n c i a d o s v é r t i c e s e a r e s t a s ,  

q u e s ã o i m p l e m e n t a d a s p o r c l a s s e s e s p e c i a i s . A p r i m e i r a d e s t a s c l a s s e s c o n t é m u m m é t o d o q u e d e t e r m i n a a s  

f o r m a s g e o m é t r i c a s q u e s e r ã o u s a d a s p a r a d e s e n h o d o s v é r t i c e s . C a d a v é r t i c e s e r á d e s e n h a d o c o m u m a f o r m a  

d e t e r m i n a d a a p a r t i r d o i n s t i t u t o q u e g e r o u a p u b l i c a ç ã o c o r r e s p o n d e n t e a o v é r t i c e . O c ó d i g o p a r a d e t e r m i n a ç ã o  

d a s f o r m a s g e o m é t r i c a s é i m p l e m e n t a d o n a c l a s s e   G r a f o B i b l i o _ B i b l i o V e r t i c e S h a p e   , n a l i s t a g e m 3 1 .  

L i s t a g e m 3 1 : A c l a s s e   G r a f o B i b l i o _ B i b l i o V e r t i c e S h a p e   , q u e d e t e r m i n a q u e f o r m a s g e o m é t r i c a s s e r ã o u s a d a s  

p a r a d e s e n h a r v é r t i c e s .  

/ * 

2  * P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

4  * h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

5  * / 

6  p a c k a g e j u n g ;  

i m p o r t j a v a . a w t . P o l y g o n ;  

9  i m p o r t j a v a . a w t . S h a p e ;  

1 0  i m p o r t j a v a . a w t . g e o m . E l l i p s e 2 D ;  

1 1  i m p o r t j a v a . a w t . g e o m . R e c t a n g l e 2 D ;  

1 2 

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s R a f a e l S a n t o s  

Page 41: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 41/4

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 4 1  

1 3  i m p o r t o r g . a p a c h e . c o m m o n s . c o l l e c t i o n s 1 5 . T r a n s f o r m e r ;  

1 4 

1 5  / * * 

1 6  * E s t a c l a s s e m a p e i a B i b l i o V e r t i c e p a r a S h a p e , d e f i n i n d o c o m o v é r t i c e s s e r ã o d e s e n h a d o s n o g r a f o .  

1 7 

* / 

1 8  p u b l i c c l a s s G r a f o B i b l i o _ B i b l i o V e r t i c e S h a p e i m p l e m e n t s T r a n s f o r m e r < B i b l i o V e r t i c e , S h a p e >  

1 9  { 

2 0  / / M é t o d o p a r a m a p e a r B i b l i o V e r t i c e p a r a S h a p e - - u s a m o s o i n s t i t u t o q u e p u b l i c o u o d o c u m e n t o .  

2 1  p u b l i c S h a p e t r a n s f o r m ( B i b l i o V e r t i c e a )  

2 2  { 

2 3  i f ( a . g e t I n s t i t u t o ( ) . e q u a l s ( " I E A v " ) ) / / E s t r e l a  

2 4 

2 5  i n t [ ] x = n e w i n t [ ] { 0 , 4 , 1 2 , 4 , 0 , - 4 , - 1 2 , - 4 } ;  

2 6  i n t [ ] y = n e w i n t [ ] { - 1 2 , - 4 , 0 , 4 , 1 2 , 4 , 0 , - 4 } ;  

2 7  r e t u r n n e w P o l y g o n ( x , y , x . l e n g t h ) ;  

2 8  } 

2 9  e l s e i f ( a . g e t I n s t i t u t o ( ) . e q u a l s ( " I T A " ) ) / / C í r c u l o  

3 0  { 

3 1 

r e t u r n n e w E l l i p s e 2 D . F l o a t ( - 1 2 , - 1 2 , 2 4 , 2 4 ) ;  

3 2  } 

3 3  e l s e i f ( a . g e t I n s t i t u t o ( ) . e q u a l s ( " I A E " ) ) / / L o s a n g o  

3 4 

3 5  i n t [ ] x = n e w i n t [ ] { 0 , 1 2 , 0 , - 1 2 } ;  

3 6  i n t [ ] y = n e w i n t [ ] { - 1 2 , 0 , 1 2 , 0 } ;  

3 7  r e t u r n n e w P o l y g o n ( x , y , x . l e n g t h ) ;  

3 8  } 

3 9  e l s e i f ( a . g e t I n s t i t u t o ( ) . e q u a l s ( " V D R " ) ) / / Q u a d r a d o  

4 0  { 

4 1 

r e t u r n n e w R e c t a n g l e 2 D . F l o a t ( - 1 0 , - 1 0 , 2 0 , 2 0 ) ;  

4 2  } 

4 3  e l s e r e t u r n n e w E l l i p s e 2 D . F l o a t ( - 3 , - 3 , 6 , 6 ) ; / / C í r c u l o p e q u e n o  

4 4  } 

4 5 

4 6  } 

O u t r a m o d i c a ç ã o n o g r a f o d e s t e e x e m p l o s e r á a e s c o l h a d a c o r d e p r e e n c h i m e n t o d o v é r t i c e . U s a r e m o s o a n o d a  

p u b l i c a ç ã o , c o m u m a t a b e l a d e c o r e s d e n i d a p e l a c l a s s e   G r a f o B i b l i o _ B i b l i o V e r t i c e P a i n t   , n a l i s t a g e m 3 2 .  

L i s t a g e m 3 2 : A c l a s s e   G r a f o B i b l i o _ B i b l i o V e r t i c e P a i n t   , q u e d e t e r m i n a q u e c o r e s s e r ã o u s a d a s p a r a p i n t a r  

v é r t i c e s .  

1  / * 

2  * P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

* h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

5  * / 

6  p a c k a g e j u n g ;  

8  i m p o r t j a v a . a w t . * ;  

1 0  i m p o r t o r g . a p a c h e . c o m m o n s . c o l l e c t i o n s 1 5 . T r a n s f o r m e r ;  

1 1 

1 2  / * * 

1 3  * E s t a c l a s s e m a p e i a B i b l i o V e r t i c e p a r a P a i n t , d e f i n i n d o c o m o v é r t i c e s s e r ã o p r e e n c h i d o s n o g r a f o .  

1 4 

* / 

1 5  p u b l i c c l a s s G r a f o B i b l i o _ B i b l i o V e r t i c e P a i n t i m p l e m e n t s T r a n s f o r m e r < B i b l i o V e r t i c e , P a i n t >  

1 6  { 

1 7 

/ / M é t o d o p a r a m a p e a r B i b l i o V e r t i c e p a r a P a i n t - - u s a m o s o a n o d a p u b l i c a ç ã o .  

1 8  p u b l i c P a i n t t r a n s f o r m ( B i b l i o V e r t i c e v )  

1 9  { 

2 0  C o l o r c = C o l o r . L I G H T _ G R A Y ;  

2 1 

s w i t c h ( v . g e t A n o ( ) )  

2 2  { 

2 3  c a s e 2 0 0 1 : c = C o l o r . R E D ; b r e a k ;  

2 4 

c a s e 2 0 0 2 : c = C o l o r . O R A N G E ; b r e a k ;  

2 5  c a s e 2 0 0 3 : c = C o l o r . Y E L L O W ; b r e a k ;  

2 6  c a s e 2 0 0 4 : c = C o l o r . G R E E N ; b r e a k ;  

2 7  c a s e 2 0 0 5 : c = C o l o r . C Y A N ; b r e a k ;  

2 8  } 

2 9  r e t u r n c ;  

3 0  } 

3 1 

3 2  } 

R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s  

Page 42: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 42/4

4 2 M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

A t e r c e i r a m o d i c a ç ã o n a a p a r ê n c i a d o s v é r t i c e s s e r á a d o s r ó t u l o s q u e s e r ã o d e s e n h a d o s j u n t o d o s v é r t i c e s .  

A o i n v é s d e u s a r m o s t o d a a i n f o r m a ç ã o s o b r e d o c u m e n t o s , u s a r e m o s s o m e n t e o s i d e n t i c a d o r e s s i m p l e s . E s t a  

m o d i c a ç ã o é c o n t r o l a d a p e l a c l a s s e   G r a f o B i b l i o _ B i b l i o V e r t i c e L a b e l   ( l i s t a g e m 3 3 ) .  

L i s t a g e m 3 3 : A c l a s s e   G r a f o B i b l i o _ B i b l i o V e r t i c e L a b e l   , q u e d e t e r m i n a q u e r ó t u l o s s e r ã o d e s e n h a d o s j u n t o  

a o s v é r t i c e s .  

/ * 

2  * P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

* h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

5  * / 

6  p a c k a g e j u n g ;  

i m p o r t o r g . a p a c h e . c o m m o n s . c o l l e c t i o n s 1 5 . T r a n s f o r m e r ;  

1 0  / * * 

1 1 

* E s t a c l a s s e m a p e i a B i b l i o V e r t i c e p a r a S t r i n g , d e f i n i n d o c o m o v é r t i c e s s e r ã o i d e n t i f i c a d o s  

1 2  * ( c o m r ó t u l o s ) n o g r a f o .  

1 3  * / 

1 4  p u b l i c c l a s s G r a f o B i b l i o _ B i b l i o V e r t i c e L a b e l i m p l e m e n t s T r a n s f o r m e r < B i b l i o V e r t i c e , S t r i n g >  

1 5  { 

1 6  / / M é t o d o p a r a m a p e a r B i b l i o V e r t i c e p a r a S t r i n g - - u s a m o s o i d e n t i f i c a d o r d o d o c u m e n t o .  

1 7  p u b l i c S t r i n g t r a n s f o r m ( B i b l i o V e r t i c e v )  

1 8 

1 9  r e t u r n v . g e t D o c I d ( ) ;  

2 0  } 

2 1 

2 2  } 

F i n a l m e n t e , t e r e m o s d u a s m o d i c a ç õ e s n a a p a r ê n c i a d a s a r e s t a s . A p r i m e i r a s e r á o e s t i l o d a l i n h a d a a r e s t a e n t r e  

d o i s v é r t i c e s ( d u a s p u b l i c a ç õ e s ) , q u e s e r á d e t e r m i n a d o p e l o p e s o o u s i m i l a r i d a d e e n t r e e s t a s d u a s p u b l i c a ç õ e s .  

O m a p e a m e n t o d o p e s o p a r a o t i p o d e l i n h a s e r á f e i t o p e l a c l a s s e   G r a f o B i b l i o _ B i b l i o A r e s t a S t r o k e   , n a 

l i s t a g e m 3 4 .  

L i s t a g e m 3 4 : A c l a s s e   G r a f o B i b l i o _ B i b l i o A r e s t a S t r o k e   , q u e m a p e i a s i m i l a r i d a d e e n t r e v é r t i c e s p a r a e s t i l o  

d e l i n h a d a s a r e s t a s .  

1  / * 

* P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

4  * h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

5  * / 

p a c k a g e j u n g ;  

8  i m p o r t j a v a . a w t . B a s i c S t r o k e ;  

i m p o r t j a v a . a w t . S t r o k e ;  

1 0 

1 1  i m p o r t o r g . a p a c h e . c o m m o n s . c o l l e c t i o n s 1 5 . T r a n s f o r m e r ;  

1 2 

1 3  / * * 

1 4  * E s t a c l a s s e m a p e i a B i b l i o A r e s t a p a r a S t r o k e , d e f i n i n d o e s t i l o s d e l i n h a p a r a a r e s t a s n o g r a f o .  

1 5  * / 

1 6 

p u b l i c c l a s s G r a f o B i b l i o _ B i b l i o A r e s t a S t r o k e i m p l e m e n t s T r a n s f o r m e r < B i b l i o A r e s t a , S t r o k e >  

1 7  { 

1 8  / / M é t o d o p a r a m a p e a r B i b l i o A r e s t a p a r a S t r o k e - - u s a m o s o p e s o d a s i m i l a r i d a d e .  

1 9 

p u b l i c S t r o k e t r a n s f o r m ( B i b l i o A r e s t a a )  

2 0  { 

2 1  d o u b l e e s p e s s u r a = M a t h . m a x ( 0 , a . g e t P e s o ( ) - 1 0 ) ;  

2 2  r e t u r n n e w B a s i c S t r o k e ( ( f l o a t ) ( e s p e s s u r a ) ) ;  

2 3 

2 4 

2 5  } 

A ú l t i m a t r a n s f o r m a ç ã o p a r a m o d i c a r a a p a r ê n c i a d o s v é r t i c e s e a r e s t a s d e t e r m i n a a c o r d a a r e s t a t a m b é m e m  

f u n ç ã o d a s i m i l a r i d a d e e n t r e o s v é r t i c e s , e é i m p l e m e n t a d a p e l a c l a s s e   G r a f o B i b l i o _ B i b l i o A r e s t a P a i n t   , n a 

l i s t a g e m 3 5 .  

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s R a f a e l S a n t o s  

Page 43: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 43/4

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 4 3  

L i s t a g e m 3 5 : A c l a s s e   G r a f o B i b l i o _ B i b l i o A r e s t a P a i n t   , q u e m a p e i a s i m i l a r i d a d e e n t r e v é r t i c e s p a r a c o r d e  

l i n h a d a s a r e s t a s .  

/ * 

2  * P a r t e d o t r e i n a m e n t o e m M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

3  * R a f a e l S a n t o s ( r a f a e l . s a n t o s @ l a c . i n p e . b r )  

4  * h t t p : / / w w w . l a c . i n p e . b r / ~ r a f a e l . s a n t o s /  

5  * / 

6  p a c k a g e j u n g ;  

i m p o r t j a v a . a w t . * ;  

1 0  i m p o r t o r g . a p a c h e . c o m m o n s . c o l l e c t i o n s 1 5 . T r a n s f o r m e r ;  

1 1 

1 2  / * * 

1 3  * E s t a c l a s s e m a p e i a B i b l i o A r e s t a p a r a P a i n t , d e f i n i n d o c o r d e l i n h a p a r a a r e s t a s n o g r a f o .  

1 4  * / 

1 5  p u b l i c c l a s s G r a f o B i b l i o _ B i b l i o A r e s t a P a i n t i m p l e m e n t s T r a n s f o r m e r < B i b l i o A r e s t a , P a i n t >  

1 6  { 

1 7  / / M é t o d o p a r a m a p e a r B i b l i o A r e s t a p a r a P a i n t - - u s a m o s o p e s o d a s i m i l a r i d a d e .  

1 8 

p u b l i c P a i n t t r a n s f o r m ( B i b l i o A r e s t a a )  

1 9  { 

2 0  i f ( a . g e t P e s o ( ) > = 1 8 ) r e t u r n n e w C o l o r ( 0 , 0 , 2 1 0 ) ;  

2 1  e l s e i f ( a . g e t P e s o ( ) > = 1 5 ) r e t u r n n e w C o l o r ( 0 , 0 , 1 0 5 ) ;  

2 2  e l s e r e t u r n C o l o r . B L A C K ;  

2 3  } 

2 4 

2 5 

A l g u n s d o s r e s u l t a d o s d a e x e c u ç ã o d a c l a s s e   G r a f o B i b l i o   ( l i s t a g e m 3 0 ) ( c o m d e m o n s t r a ç ã o d a s i n t e r a ç õ e s c o m  

u s u á r i o ) s ã o m o s t r a d o s n a s g u r a s a s e g u i r .  

F i g u r a 1 3 : G r a f o d e p u b l i c a ç õ e s e s i m i l a r i d a d e s c o n -  

g u r a ç ã o i n i c i a l .  

F i g u r a 1 4 : G r a f o d e p u b l i c a ç õ e s e s i m i l a r i d a d e s c o n -  

g u r a ç ã o m a i s e s t á v e l .  

U m a a p r e s e n t a ç ã o s o b r e o s t i p o s d e   l a y o u t   e s u a s p r i n c i p a i s c a r a c t e r í s t i c a s e s t á f o r a d o e s c o p o d e s t e d o c u m e n t o ,  

m a s p a r a c o m p a r a ç ã o , s e g u e m g u r a s d o m e s m o g r a f o r e n d e r i z a d o s c o m d i f e r e n t e s t i p o s d e   l a y o u t   i m p l e m e n t a -  

d o s n a A P I J U N G p a r a m u d a r o t i p o d e   l a y o u t   b a s t a m o d i c a r a c l a s s e u s a d a n a s l i n h a s 6 1 e 6 2 d a c l a s s e  

G r a f o B i b l i o   ( l i s t a g e m 3 0 ) . P a r a m a i s i n f o r m a ç õ e s v e r i q u e a d o c u m e n t a ç ã o   o n - l i n e   e m [ 1 2 ] .  

R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s  

Page 44: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 44/4

4 4 M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

F i g u r a 1 5 : A m p l i a ç ã o d e u m s e t o r d o g r a f o , m o s t r a n d o  

o q u e p o d e m s e r   c l i q u e s   d e p u b l i c a ç õ e s .  

F i g u r a 1 6 : A m p l i a ç ã o d e o u t r o s e t o r d o g r a f o .  

F i g u r a 1 7 : O g r á c o p o d e s e r g i r a d o e m t o r n o d o  

c e n t r o d o c o m p o n e n t e , p r e s e r v a n d o a s o r i e n t a ç õ e s d o s  

r ó t u l o s .  

F i g u r a 1 8 : O g r a f o p o d e s e r i n c l i n a d o , t a m b é m p r e -  

s e r v a n d o o r i e n t a ç õ e s d o s r ó t u l o s .  

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s R a f a e l S a n t o s  

Page 45: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 45/4

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 4 5  

F i g u r a 1 9 : G r a f o r e n d e r i z a d o c o m o   l a y o u t   i m p l e m e n -  

t a d o p e l a c l a s s e   C i r c l e L a y o u t   . 

F i g u r a 2 0 : G r a f o r e n d e r i z a d o c o m o   l a y o u t   i m p l e m e n -  

t a d o p e l a c l a s s e   I S O M L a y o u t   . 

F i g u r a 2 1 : G r a f o r e n d e r i z a d o c o m o   l a y o u t   i m p l e m e n -  

t a d o p e l a c l a s s e   F R L a y o u t   . 

F i g u r a 2 2 : G r a f o r e n d e r i z a d o c o m o   l a y o u t   i m p l e m e n -  

t a d o p e l a c l a s s e   F R L a y o u t 2   . 

R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s  

Page 46: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 46/4

4 6 M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a  

F i g u r a 2 3 : G r a f o r e n d e r i z a d o c o m o   l a y o u t   i m p l e m e n -  

t a d o p e l a c l a s s e   K K L a y o u t   . 

F i g u r a 2 4 : G r a f o r e n d e r i z a d o c o m o   l a y o u t   i m p l e m e n -  

t a d o p e l a c l a s s e   S p r i n g L a y o u t   . 

É i m p o r t a n t e o b s e r v a r q u e a l g u n s d e s t e s   l a y o u t s   n ã o m o s t r a m d e f o r m a i m e d i a t a o s v é r t i c e s e a r e s t a s o r g a n i z a d o s ,  

d e m o r a n d o a l g u m t e m p o p a r a o r g a n i z a r o s v é r t i c e s e a r e s t a s a t é u m a c o n g u r a ç ã o e s t á v e l , o q u e p o d e c a u s a r  

l o n g o s t e m p o s d e e x e c u ç ã o e m a p l i c a ç õ e s q u e t e m m u i t o s v é r t i c e s e / o u a r e s t a s .  

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s R a f a e l S a n t o s  

Page 47: Mineração e Visualização de Dados usando Java

5/10/2018 Minera o e Visualiza o de Dados usando Java - slidepdf.com

http://slidepdf.com/reader/full/mineracao-e-visualizacao-de-dados-usando-java 47/4

M i n e r a ç ã o e V i s u a l i z a ç ã o d e D a d o s u s a n d o J a v a 4 7  

R e f e r ê n c i a s    

[ 1 ] A l e s s a n d r o O l i v e i r a A r a n t e s . U m s i s t e m a d e r e c o m e n d a ç ã o d e p u b l i c a ç õ e s c i e n t í -  

c a s b a s e a d o e m a v a l i a ç ã o d e c o n t e ú d o . h t t p : / / m t c - m 1 8 . s i d . i n p e . b r / r e p / s i d . i n p e . b r / m t c -  

m 1 8 @ 8 0 / 2 0 0 9 / 1 0 . 0 1 . 1 9 . 3 2 ? l a n g u a g e b u t t o n = p t - B R , 2 0 0 9 . V i s i t a d o e m F e v e r e i r o d e 2 0 1 0 .  

[ 2 ] R . B e a l e e T . J a c k s o n .   N e u r a l C o m p u t i n g : A n I n t r o d u c t i o n  . M I T P r e s s , 1 9 9 0 .  

[ 3 ] G r e g B e r n s t e i n . J U N G 2 . 0 T u t o r i a l . h t t p : / / w w w . g r o t t o - n e t w o r k i n g . c o m / J U N G / J U N G 2 - T u t o r i a l . p d f , 2 0 1 0 .  

V i s i t a d o e m M a r ç o d e 2 0 1 0 .  

[ 4 ] L a u r e n e V . F a u s e t t .   F u n d a m e n t a l s o f N e u r a l N e t w o r k s  . P r e n t i c e H a l l , 1 9 9 4 .  

[ 5 ] A . I n s e l b e r t e B . D i m s d a l e . P a r a l l e l C o o r d i n a t e s f o r V i s u a l i z i n g M u l t i - D i m e n s i o n a l G e o m e t r y . E m   P r o c .  

C o m p u t e r G r a p h i c s I n t e r n a t i o n a l C o n f e r e n c e  , 1 9 8 7 .  

[ 6 ] C a r l G . L o o n e y .   P a t t e r n R e c o g n i t i o n U s i n g N e u r a l N e t w o r k s  . O x f o r d U n i v e r s i t y P r e s s , 1 s t e d i ç ã o , 1 9 9 7 .  

[ 7 ] J . R o s s Q u i n l a n .   C 4 . 5 : P r o g r a m s f o r M a c h i n e L e a r n i n g  . M o r g a n K a u f m a n n , 1 9 9 3 .  

[ 8 ] R a f a e l S a n t o s .   I n t r o d u ç ã o à P r o g r a m a ç ã o O r i e n t a d a a O b j e t o s U s a n d o J a v a  . C a m p u s , 2 0 0 3 .  

[ 9 ] R a f a e l S a n t o s . M a t e r i a l d a d i s c i p l i n a C A P - 3 5 9 : P r i n c í p i o s e A p l i c a ç õ e s d e M i n e r a ç ã o d e D a d o s .  

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s / c a p 3 5 9 . j s p , 2 0 1 0 . V i s i t a d o e m F e v e r e i r o d e 2 0 1 0 .  

[ 1 0 ] R a f a e l S a n t o s . M a t e r i a l d e A p r e s e n t a ç õ e s e T u t o r i a i s s o b r e a L i n g u a g e m J a v a .  

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s / j a v a a p r e s e n t a c o e s . j s p , 2 0 1 0 . V i s i t a d o e m F e v e r e i r o d e 2 0 1 0 .  

[ 1 1 ] R a f a e l S a n t o s . M a t e r i a l d e A p r e s e n t a ç õ e s e T u t o r i a i s s o b r e M i n e r a ç ã o d e D a d o s .  

h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s / d m a p r e s e n t a c o e s . j s p , 2 0 1 0 . V i s i t a d o e m F e v e r e i r o d e 2 0 1 0 .  

[ 1 2 ] J u n g D e v e l o p m e n t T e a m . J u n g J a v a U n i v e r s a l N e t w o r k / G r a p h F r a m e w o r k .  

h t t p : / / j u n g . s o u r c e f o r g e . n e t / i n d e x . h t m l , 2 0 1 0 . V i s i t a d o e m F e v e r e i r o d e 2 0 1 0 .  

[ 1 3 ] I a n H . W i t t e n e E i b e F r a n k . W e k a t h e w a i k a t o e n v i r o n m e n t f o r k n o w l e d g e a n a l y s i s .  

h t t p : / / w w w . c s . w a i k a t o . a c . n z / m l / w e k a / . V i s i t a d o e m M a r ç o d e 2 0 1 0 .  

[ 1 4 ] I a n H . W i t t e n e E i b e F r a n k .   D a t a M i n i n g - P r a c t i c a l M a c h i n e L e a r n i n g T o o l s a n d T e c h n i q u e s  . M o r g a n  

K a u f m a n n P u b l i s h e r s , 2 n d e d i ç ã o , 2 0 0 5 .  

R a f a e l S a n t o s h t t p : / / w w w . l a c . i n p e . b r /  ∼r a f a e l . s a n t o s