pip install mlxtend
The following command must be run outside of the IPython shell:
$ pip install mlxtend
The Python package manager (pip) can only be used from outside of IPython.
Please reissue the `pip` command in a separate terminal or command prompt.
See the Python documentation for more information on how to install packages:
https://docs.python.org/3/installing/
!pip install mlxtend
Collecting mlxtend
Downloading https://files.pythonhosted.org/packages/86/30/781c0b962a70848db83339567ecab656638c62f05adb064cb33c0ae49244/mlxtend-0.18.0-py2.py3-none-any.whl (1.3MB)
Collecting scipy>=1.2.1 (from mlxtend)
Downloading https://files.pythonhosted.org/packages/e1/8b/d05bd3bcd0057954f08f61472db95f4ac71c3f0bf5432abe651694025396/scipy-1.6.3-cp37-cp37m-win_amd64.whl (32.6MB)
Collecting scikit-learn>=0.20.3 (from mlxtend)
Downloading https://files.pythonhosted.org/packages/33/ac/98a9c3f4b6e810c45196f6e15e04f9d83fe3d6000eebbb74dfd084446432/scikit_learn-0.24.2-cp37-cp37m-win_amd64.whl (6.8MB)
Collecting joblib>=0.13.2 (from mlxtend)
Downloading https://files.pythonhosted.org/packages/55/85/70c6602b078bd9e6f3da4f467047e906525c355a4dacd4f71b97a35d9897/joblib-1.0.1-py3-none-any.whl (303kB)
Requirement already satisfied: matplotlib>=3.0.0 in c:\programdata\anaconda3\lib\site-packages (from mlxtend) (3.0.2)
Collecting pandas>=0.24.2 (from mlxtend)
Downloading https://files.pythonhosted.org/packages/74/8c/9cf2e5304f4466dbc759a799b97bfd75cd3dc93b00d49558ca93bfc29173/pandas-1.2.4-cp37-cp37m-win_amd64.whl (9.1MB)
Requirement already satisfied: setuptools in c:\programdata\anaconda3\lib\site-packages (from mlxtend) (40.6.3)
Collecting numpy>=1.16.2 (from mlxtend)
Downloading https://files.pythonhosted.org/packages/ce/de/0ed39fd77c5584cd9e44b4305ee4444ea7af1b38d4d71734ae684fc14184/numpy-1.20.3-cp37-cp37m-win_amd64.whl (13.6MB)
Collecting threadpoolctl>=2.0.0 (from scikit-learn>=0.20.3->mlxtend)
Downloading https://files.pythonhosted.org/packages/f7/12/ec3f2e203afa394a149911729357aa48affc59c20e2c1c8297a60f33f133/threadpoolctl-2.1.0-py3-none-any.whl
Requirement already satisfied: cycler>=0.10 in c:\programdata\anaconda3\lib\site-packages (from matplotlib>=3.0.0->mlxtend) (0.10.0)
Requirement already satisfied: kiwisolver>=1.0.1 in c:\programdata\anaconda3\lib\site-packages (from matplotlib>=3.0.0->mlxtend) (1.0.1)
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in c:\programdata\anaconda3\lib\site-packages (from matplotlib>=3.0.0->mlxtend) (2.3.0)
Requirement already satisfied: python-dateutil>=2.1 in c:\programdata\anaconda3\lib\site-packages (from matplotlib>=3.0.0->mlxtend) (2.7.5)
Requirement already satisfied: pytz>=2017.3 in c:\programdata\anaconda3\lib\site-packages (from pandas>=0.24.2->mlxtend) (2018.7)
Requirement already satisfied: six in c:\programdata\anaconda3\lib\site-packages (from cycler>=0.10->matplotlib>=3.0.0->mlxtend) (1.12.0)
Installing collected packages: numpy, scipy, joblib, threadpoolctl, scikit-learn, pandas, mlxtend
Found existing installation: numpy 1.15.4
Uninstalling numpy-1.15.4:
Successfully uninstalled numpy-1.15.4
Found existing installation: scipy 1.1.0
Uninstalling scipy-1.1.0:
Successfully uninstalled scipy-1.1.0
Found existing installation: joblib 0.13.0
Uninstalling joblib-0.13.0:
Successfully uninstalled joblib-0.13.0
Found existing installation: scikit-learn 0.20.1
Uninstalling scikit-learn-0.20.1:
Successfully uninstalled scikit-learn-0.20.1
Found existing installation: pandas 0.23.4
Uninstalling pandas-0.23.4:
Successfully uninstalled pandas-0.23.4
Successfully installed joblib-1.0.1 mlxtend-0.18.0 numpy-1.20.3 pandas-1.2.4 scikit-learn-0.24.2 scipy-1.6.3 threadpoolctl-2.1.0
import pandas as pd
item_list = [ [ '牛奶' , '面包' ] ,
[ '面包' , '尿布' , '啤酒' , '土豆' ] ,
[ '牛奶' , '尿布' , '啤酒' , '可乐' ] ,
[ '面包' , '牛奶' , '尿布' , '啤酒' ] ,
[ '面包' , '牛奶' , '尿布' , '可乐' ] ]
item_df = pd. DataFrame( item_list)
from mlxtend. preprocessing import TransactionEncoder
te = TransactionEncoder( )
df_tf = te. fit_transform( item_list)
df = pd. DataFrame( df_tf, columns= te. columns_)
print ( df)
可乐 啤酒 土豆 尿布 牛奶 面包
0 False False False False True True
1 False True True True False True
2 True True False True True False
3 False True False True True True
4 True False False True True True
from mlxtend. frequent_patterns import apriori
frequent_itemsets = apriori( df, min_support= 0.05 , use_colnames= True )
frequent_itemsets. sort_values( by= 'support' , ascending= False , inplace= True )
print ( frequent_itemsets[ frequent_itemsets. itemsets. apply ( lambda x: len ( x) ) == 2 ] )
support itemsets
17 0.6 (面包, 尿布)
18 0.6 (面包, 牛奶)
11 0.6 (啤酒, 尿布)
16 0.6 (牛奶, 尿布)
13 0.4 (面包, 啤酒)
7 0.4 (可乐, 尿布)
12 0.4 (啤酒, 牛奶)
8 0.4 (可乐, 牛奶)
14 0.2 (尿布, 土豆)
6 0.2 (可乐, 啤酒)
15 0.2 (面包, 土豆)
9 0.2 (面包, 可乐)
10 0.2 (啤酒, 土豆)
from mlxtend. frequent_patterns import association_rules
association_rule = association_rules( frequent_itemsets, metric= 'confidence' , min_threshold= 0.9 )
association_rule. sort_values( by= 'lift' , ascending= False , inplace= True )
association_rule
antecedents consequents antecedent support consequent support support confidence lift leverage conviction 15 (土豆) (面包, 啤酒, 尿布) 0.2 0.4 0.2 1.0 2.500000 0.12 inf 30 (土豆) (面包, 啤酒) 0.2 0.4 0.2 1.0 2.500000 0.12 inf 12 (土豆, 尿布) (面包, 啤酒) 0.2 0.4 0.2 1.0 2.500000 0.12 inf 24 (土豆) (面包, 尿布) 0.2 0.6 0.2 1.0 1.666667 0.08 inf 36 (土豆) (啤酒) 0.2 0.6 0.2 1.0 1.666667 0.08 inf 21 (可乐, 啤酒) (牛奶, 尿布) 0.2 0.6 0.2 1.0 1.666667 0.08 inf 25 (土豆, 尿布) (啤酒) 0.2 0.6 0.2 1.0 1.666667 0.08 inf 5 (可乐) (牛奶, 尿布) 0.4 0.6 0.4 1.0 1.666667 0.16 inf 18 (可乐, 面包) (牛奶, 尿布) 0.2 0.6 0.2 1.0 1.666667 0.08 inf 27 (土豆) (啤酒, 尿布) 0.2 0.6 0.2 1.0 1.666667 0.08 inf 9 (面包, 土豆, 尿布) (啤酒) 0.2 0.6 0.2 1.0 1.666667 0.08 inf 28 (面包, 土豆) (啤酒) 0.2 0.6 0.2 1.0 1.666667 0.08 inf 13 (面包, 土豆) (啤酒, 尿布) 0.2 0.6 0.2 1.0 1.666667 0.08 inf 14 (啤酒, 土豆) (面包, 尿布) 0.2 0.6 0.2 1.0 1.666667 0.08 inf 26 (啤酒, 土豆) (尿布) 0.2 0.8 0.2 1.0 1.250000 0.04 inf 0 (啤酒) (尿布) 0.6 0.8 0.6 1.0 1.250000 0.12 inf 23 (面包, 土豆) (尿布) 0.2 0.8 0.2 1.0 1.250000 0.04 inf 31 (土豆) (面包) 0.2 0.8 0.2 1.0 1.250000 0.04 inf 32 (可乐, 面包) (牛奶) 0.2 0.8 0.2 1.0 1.250000 0.04 inf 33 (可乐, 面包) (尿布) 0.2 0.8 0.2 1.0 1.250000 0.04 inf 34 (可乐, 啤酒) (牛奶) 0.2 0.8 0.2 1.0 1.250000 0.04 inf 35 (可乐, 啤酒) (尿布) 0.2 0.8 0.2 1.0 1.250000 0.04 inf 29 (啤酒, 土豆) (面包) 0.2 0.8 0.2 1.0 1.250000 0.04 inf 19 (可乐, 啤酒, 牛奶) (尿布) 0.2 0.8 0.2 1.0 1.250000 0.04 inf 22 (土豆, 尿布) (面包) 0.2 0.8 0.2 1.0 1.250000 0.04 inf 20 (可乐, 啤酒, 尿布) (牛奶) 0.2 0.8 0.2 1.0 1.250000 0.04 inf 1 (面包, 啤酒) (尿布) 0.4 0.8 0.4 1.0 1.250000 0.08 inf 17 (可乐, 面包, 尿布) (牛奶) 0.2 0.8 0.2 1.0 1.250000 0.04 inf 16 (可乐, 面包, 牛奶) (尿布) 0.2 0.8 0.2 1.0 1.250000 0.04 inf 11 (面包, 啤酒, 土豆) (尿布) 0.2 0.8 0.2 1.0 1.250000 0.04 inf 10 (啤酒, 土豆, 尿布) (面包) 0.2 0.8 0.2 1.0 1.250000 0.04 inf 8 (土豆) (尿布) 0.2 0.8 0.2 1.0 1.250000 0.04 inf 7 (可乐) (牛奶) 0.4 0.8 0.4 1.0 1.250000 0.08 inf 6 (可乐) (尿布) 0.4 0.8 0.4 1.0 1.250000 0.08 inf 4 (可乐, 尿布) (牛奶) 0.4 0.8 0.4 1.0 1.250000 0.08 inf 3 (可乐, 牛奶) (尿布) 0.4 0.8 0.4 1.0 1.250000 0.08 inf 2 (啤酒, 牛奶) (尿布) 0.4 0.8 0.4 1.0 1.250000 0.08 inf 37 (面包, 啤酒, 牛奶) (尿布) 0.2 0.8 0.2 1.0 1.250000 0.04 inf