# p r 7 
 
 
 
 i m p o r t   p a n d a s   a s   p d 
 
 f r o m   s k l e a r n . p r e p r o c e s s i n g   i m p o r t   S t a n d a r d S c a l e r 
 
 f r o m   s k l e a r n . c l u s t e r   i m p o r t   K M e a n s ,   A g g l o m e r a t i v e C l u s t e r i n g 
 
 i m p o r t   m a t p l o t l i b . p y p l o t   a s   p l t 
 
 i m p o r t   s e a b o r n   a s   s n s 
 
 
 
 d a t a   =   p d . r e a d _ c s v ( " M a l l _ C u s t o m e r s . c s v " ) 
 
 p r i n t ( d a t a . h e a d ( ) ) 
 
 
 
 d a t a [ ' G e n r e ' ]   =   d a t a [ ' G e n r e ' ] . a s t y p e ( s t r ) . s t r . s t r i p ( ) . s t r . c a p i t a l i z e ( ) 
 
 d a t a [ ' G e n r e ' ]   =   d a t a [ ' G e n r e ' ] . m a p ( { ' M a l e ' :   1 ,   ' F e m a l e ' :   0 } ) 
 
 p r i n t ( d a t a . i s n u l l ( ) . s u m ( ) ) 
 
 
 
 
 
 d a t a [ ' G e n r e ' ] 
 
 
 
 X   =   d a t a [ [ ' A n n u a l   I n c o m e   ( k $ ) ' ,   ' S p e n d i n g   S c o r e   ( 1 - 1 0 0 ) ' ] ] 
 
 X 
 
 
 
 s c a l e r   =   S t a n d a r d S c a l e r ( ) 
 
 X _ s c a l e d   =   s c a l e r . f i t _ t r a n s f o r m ( X ) 
 
 
 
 X _ s c a l e d 
 
 
 
 k m e a n s   =   K M e a n s ( n _ c l u s t e r s = 5 ,   r a n d o m _ s t a t e = 4 2 ) 
 
 l a b e l s _ k m e a n s   =   k m e a n s . f i t _ p r e d i c t ( X _ s c a l e d ) 
 
 d a t a [ ' K M e a n s _ C l u s t e r ' ]   =   l a b e l s _ k m e a n s 
 
 d a t a 
 
 
 
 
 
 a g g l o   =   A g g l o m e r a t i v e C l u s t e r i n g ( n _ c l u s t e r s = 5 ) 
 
 l a b e l s _ a g g l o   =   a g g l o . f i t _ p r e d i c t ( X _ s c a l e d ) 
 
 d a t a [ ' A g g l o _ C l u s t e r ' ]   =   l a b e l s _ a g g l o 
 
 d a t a 
 
 
 
 p l t . f i g u r e ( f i g s i z e = ( 1 8 , 5 ) ) 
 
 
 
 #   K M e a n s 
 
 p l t . s u b p l o t ( 1 , 2 , 1 ) 
 
 s n s . s c a t t e r p l o t ( x = X _ s c a l e d [ : , 0 ] ,   y = X _ s c a l e d [ : , 1 ] ,   h u e = l a b e l s _ k m e a n s ,   p a l e t t e = ' S e t 1 ' ) 
 
 p l t . t i t l e ( " K M e a n s   C l u s t e r i n g " ) 
 
 p l t . x l a b e l ( " A n n u a l   I n c o m e   ( s c a l e d ) " ) 
 
 p l t . y l a b e l ( " S p e n d i n g   S c o r e   ( s c a l e d ) " ) 
 
 
 
 #   A g g l o m e r a t i v e 
 
 p l t . s u b p l o t ( 1 , 2 , 2 ) 
 
 s n s . s c a t t e r p l o t ( x = X _ s c a l e d [ : , 0 ] ,   y = X _ s c a l e d [ : , 1 ] ,   h u e = l a b e l s _ a g g l o ,   p a l e t t e = ' S e t 2 ' ) 
 
 p l t . t i t l e ( " A g g l o m e r a t i v e   C l u s t e r i n g " ) 
 
 p l t . x l a b e l ( " A n n u a l   I n c o m e   ( s c a l e d ) " ) 
 
 p l t . y l a b e l ( " S p e n d i n g   S c o r e   ( s c a l e d ) " ) 
 
           