# p r   8 
 
 
 
 ! p i p   i n s t a l l   m l x t e n d 
 
 
 
 
 
 i m p o r t   p a n d a s   a s   p d 
 
 i m p o r t   c s v 
 
 f r o m   m l x t e n d . p r e p r o c e s s i n g   i m p o r t   T r a n s a c t i o n E n c o d e r 
 
 f r o m   m l x t e n d . f r e q u e n t _ p a t t e r n s   i m p o r t   a p r i o r i , a s s o c i a t i o n _ r u l e s 
 
 
 
 
 
 d a t a s e t   =   [ ] 
 
 w i t h   o p e n   ( ' M a r k e t _ B a s k e t _ O p t i m i s a t i o n . c s v ' )   a s   f i l e : 
 
     r e a d e r   =   c s v . r e a d e r ( f i l e , d e l i m i t e r = ' , ' ) 
 
     f o r   r o w   i n   r e a d e r : 
 
         d a t a s e t + =   [ r o w ] 
 
 
 
 
 
 i m p o r t   w a r n i n g s 
 
 w a r n i n g s . f i l t e r w a r n i n g s ( " i g n o r e " ,   c a t e g o r y = D e p r e c a t i o n W a r n i n g ) 
 
 
 
 
 
 d a t a s e t [ 0 : 1 0 ] 
 
 
 
 
 
 
 
 l e n ( d a t a s e t ) 
 
 
 
 t e   =   T r a n s a c t i o n E n c o d e r ( ) 
 
 
 
 x =   t e . f i t _ t r a n s f o r m ( d a t a s e t ) 
 
 
 
 x 
 
           
 
 t e . c o l u m n s _ 
 
 
 
 l e n ( t e . c o l u m n s _ ) 
 
 
 
 
 
 d f   =   p d . D a t a F r a m e ( x , c o l u m n s = t e . c o l u m n s _ ) 
 
 
 
 
 
 d f . h e a d ( ) 
 
 
 
 
 
 f r e q _ i t e m s e t   =   a p r i o r i ( d f , m i n _ s u p p o r t = 0 . 0 1 , u s e _ c o l n a m e s = T r u e ) 
 
 f r e q _ i t e m s e t 
 
 
 
 r u l e s   =   a s s o c i a t i o n _ r u l e s ( f r e q _ i t e m s e t , m e t r i c = ' c o n f i d e n c e ' , m i n _ t h r e s h o l d = 0 . 2 5 ) 
 
 r u l e s 
 
 
 
 r u l e s =   r u l e s [ [ ' a n t e c e d e n t s ' ,   ' c o n s e q u e n t s ' , ' s u p p o r t ' , ' c o n f i d e n c e ' ] ] 
 
 r u l e s . h e a d ( ) 
 
 
 
 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 
 
 
 
 p l t . f i g u r e ( f i g s i z e = ( 8 , 6 ) ) 
 
 p l t . s c a t t e r ( r u l e s [ ' s u p p o r t ' ] ,   r u l e s [ ' c o n f i d e n c e ' ] ,   a l p h a = 0 . 6 ,   c o l o r = ' t e a l ' ) 
 
 p l t . t i t l e ( ' A s s o c i a t i o n   R u l e s :   S u p p o r t   v s   C o n f i d e n c e ' ) 
 
 p l t . x l a b e l ( ' S u p p o r t ' ) 
 
 p l t . y l a b e l ( ' C o n f i d e n c e ' ) 
 
 p l t . g r i d ( T r u e ) 
 
 p l t . s h o w ( ) 
 
 
 
 
 
 t o p 1 0   =   r u l e s . s o r t _ v a l u e s ( b y = ' c o n f i d e n c e ' ,   a s c e n d i n g = F a l s e ) . h e a d ( 1 0 ) 
 
 t o p 1 0 [ ' r u l e ' ]   =   t o p 1 0 [ ' a n t e c e d e n t s ' ] . a s t y p e ( s t r )   +   "   !  "   +   t o p 1 0 [ ' c o n s e q u e n t s ' ] . a s t y p e ( s t r ) 
 
 
 
 p l t . f i g u r e ( f i g s i z e = ( 1 0 , 5 ) ) 
 
 p l t . b a r h ( t o p 1 0 [ ' r u l e ' ] ,   t o p 1 0 [ ' c o n f i d e n c e ' ] ) 
 
 p l t . x l a b e l ( ' C o n f i d e n c e ' ) 
 
 p l t . y l a b e l ( ' R u l e ' ) 
 
 p l t . t i t l e ( ' T o p   1 0   A s s o c i a t i o n   R u l e s   b y   C o n f i d e n c e ' ) 
 
 p l t . g c a ( ) . i n v e r t _ y a x i s ( ) 
 
 p l t . t i g h t _ l a y o u t ( ) 
 
 p l t . s h o w ( ) 