mlxtend (http://rasbt.github.io/mlxtend/) 是一款高级的机器学习扩展库,可用于日常机器学习任务的主要工具,也可以作为sklearn的一个补充和辅助工具。
! pip install mlxtend
import pandas as pd
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori
Collecting mlxtend
Obtaining dependency information for mlxtend from https://files.pythonhosted.org/packages/1c/07/512f6a780239ad6ce06ce2aa7b4067583f5ddcfc7703a964a082c706a070/mlxtend-0.23.1-py3-none-any.whl.metadata
Downloading mlxtend-0.23.1-py3-none-any.whl.metadata (7.3 kB)
Requirement already satisfied: scipy>=1.2.1 in c:\users\ssx\anaconda3\lib\site-packages (from mlxtend) (1.11.1)
Requirement already satisfied: numpy>=1.16.2 in c:\users\ssx\anaconda3\lib\site-packages (from mlxtend) (1.24.3)
Requirement already satisfied: pandas>=0.24.2 in c:\users\ssx\anaconda3\lib\site-packages (from mlxtend) (2.0.3)
Requirement already satisfied: scikit-learn>=1.0.2 in c:\users\ssx\anaconda3\lib\site-packages (from mlxtend) (1.3.0)
Requirement already satisfied: matplotlib>=3.0.0 in c:\users\ssx\anaconda3\lib\site-packages (from mlxtend) (3.7.2)
Requirement already satisfied: joblib>=0.13.2 in c:\users\ssx\anaconda3\lib\site-packages (from mlxtend) (1.2.0)
Requirement already satisfied: contourpy>=1.0.1 in c:\users\ssx\anaconda3\lib\site-packages (from matplotlib>=3.0.0->mlxtend) (1.0.5)
Requirement already satisfied: cycler>=0.10 in c:\users\ssx\anaconda3\lib\site-packages (from matplotlib>=3.0.0->mlxtend) (0.11.0)
Requirement already satisfied: fonttools>=4.22.0 in c:\users\ssx\anaconda3\lib\site-packages (from matplotlib>=3.0.0->mlxtend) (4.25.0)
Requirement already satisfied: kiwisolver>=1.0.1 in c:\users\ssx\anaconda3\lib\site-packages (from matplotlib>=3.0.0->mlxtend) (1.4.4)
Requirement already satisfied: packaging>=20.0 in c:\users\ssx\anaconda3\lib\site-packages (from matplotlib>=3.0.0->mlxtend) (23.1)
Requirement already satisfied: pillow>=6.2.0 in c:\users\ssx\anaconda3\lib\site-packages (from matplotlib>=3.0.0->mlxtend) (9.4.0)
Requirement already satisfied: pyparsing<3.1,>=2.3.1 in c:\users\ssx\anaconda3\lib\site-packages (from matplotlib>=3.0.0->mlxtend) (3.0.9)
Requirement already satisfied: python-dateutil>=2.7 in c:\users\ssx\anaconda3\lib\site-packages (from matplotlib>=3.0.0->mlxtend) (2.8.2)
Requirement already satisfied: pytz>=2020.1 in c:\users\ssx\anaconda3\lib\site-packages (from pandas>=0.24.2->mlxtend) (2023.3.post1)
Requirement already satisfied: tzdata>=2022.1 in c:\users\ssx\anaconda3\lib\site-packages (from pandas>=0.24.2->mlxtend) (2023.3)
Requirement already satisfied: threadpoolctl>=2.0.0 in c:\users\ssx\anaconda3\lib\site-packages (from scikit-learn>=1.0.2->mlxtend) (2.2.0)
Requirement already satisfied: six>=1.5 in c:\users\ssx\anaconda3\lib\site-packages (from python-dateutil>=2.7->matplotlib>=3.0.0->mlxtend) (1.16.0)
Downloading mlxtend-0.23.1-py3-none-any.whl (1.4 MB)
---------------------------------------- 0.0/1.4 MB ? eta -:--:--
---------------------------------------- 0.0/1.4 MB ? eta -:--:--
--------------------------------------- 0.0/1.4 MB 435.7 kB/s eta 0:00:04
- -------------------------------------- 0.0/1.4 MB 393.8 kB/s eta 0:00:04
- -------------------------------------- 0.0/1.4 MB 393.8 kB/s eta 0:00:04
- -------------------------------------- 0.1/1.4 MB 252.2 kB/s eta 0:00:06
---- ----------------------------------- 0.2/1.4 MB 748.1 kB/s eta 0:00:02
----- ---------------------------------- 0.2/1.4 MB 620.6 kB/s eta 0:00:03
----- ---------------------------------- 0.2/1.4 MB 620.6 kB/s eta 0:00:03
----- ---------------------------------- 0.2/1.4 MB 620.6 kB/s eta 0:00:03
------- -------------------------------- 0.3/1.4 MB 561.1 kB/s eta 0:00:03
------- -------------------------------- 0.3/1.4 MB 561.1 kB/s eta 0:00:03
-------- ------------------------------- 0.3/1.4 MB 558.2 kB/s eta 0:00:03
-------- ------------------------------- 0.3/1.4 MB 558.2 kB/s eta 0:00:03
---------- ----------------------------- 0.4/1.4 MB 606.2 kB/s eta 0:00:02
---------- ----------------------------- 0.4/1.4 MB 606.2 kB/s eta 0:00:02
---------- ----------------------------- 0.4/1.4 MB 606.2 kB/s eta 0:00:02
----------- ---------------------------- 0.4/1.4 MB 543.3 kB/s eta 0:00:02
----------- ---------------------------- 0.4/1.4 MB 543.3 kB/s eta 0:00:02
----------- ---------------------------- 0.4/1.4 MB 488.2 kB/s eta 0:00:03
------------ --------------------------- 0.5/1.4 MB 496.8 kB/s eta 0:00:02
------------ --------------------------- 0.5/1.4 MB 496.8 kB/s eta 0:00:02
------------ --------------------------- 0.5/1.4 MB 496.8 kB/s eta 0:00:02
------------ --------------------------- 0.5/1.4 MB 496.8 kB/s eta 0:00:02
------------- -------------------------- 0.5/1.4 MB 433.6 kB/s eta 0:00:03
------------- -------------------------- 0.5/1.4 MB 433.6 kB/s eta 0:00:03
------------- -------------------------- 0.5/1.4 MB 433.6 kB/s eta 0:00:03
------------- -------------------------- 0.5/1.4 MB 433.6 kB/s eta 0:00:03
------------- -------------------------- 0.5/1.4 MB 433.6 kB/s eta 0:00:03
------------- -------------------------- 0.5/1.4 MB 433.6 kB/s eta 0:00:03
-------------- ------------------------- 0.5/1.4 MB 368.9 kB/s eta 0:00:03
-------------- ------------------------- 0.5/1.4 MB 363.2 kB/s eta 0:00:03
-------------- ------------------------- 0.5/1.4 MB 363.2 kB/s eta 0:00:03
-------------- ------------------------- 0.5/1.4 MB 363.2 kB/s eta 0:00:03
-------------- ------------------------- 0.5/1.4 MB 363.2 kB/s eta 0:00:03
-------------- ------------------------- 0.5/1.4 MB 334.1 kB/s eta 0:00:03
-------------- ------------------------- 0.5/1.4 MB 334.1 kB/s eta 0:00:03
-------------- ------------------------- 0.5/1.4 MB 334.1 kB/s eta 0:00:03
--------------- ------------------------ 0.6/1.4 MB 316.0 kB/s eta 0:00:03
--------------- ------------------------ 0.6/1.4 MB 316.0 kB/s eta 0:00:03
--------------- ------------------------ 0.6/1.4 MB 316.0 kB/s eta 0:00:03
--------------- ------------------------ 0.6/1.4 MB 316.0 kB/s eta 0:00:03
--------------- ------------------------ 0.6/1.4 MB 295.3 kB/s eta 0:00:03
--------------- ------------------------ 0.6/1.4 MB 295.3 kB/s eta 0:00:03
--------------- ------------------------ 0.6/1.4 MB 295.3 kB/s eta 0:00:03
---------------- ----------------------- 0.6/1.4 MB 282.9 kB/s eta 0:00:04
---------------- ----------------------- 0.6/1.4 MB 282.9 kB/s eta 0:00:04
---------------- ----------------------- 0.6/1.4 MB 282.9 kB/s eta 0:00:04
---------------- ----------------------- 0.6/1.4 MB 282.9 kB/s eta 0:00:04
---------------- ----------------------- 0.6/1.4 MB 282.9 kB/s eta 0:00:04
---------------- ----------------------- 0.6/1.4 MB 263.0 kB/s eta 0:00:04
---------------- ----------------------- 0.6/1.4 MB 263.0 kB/s eta 0:00:04
---------------- ----------------------- 0.6/1.4 MB 263.0 kB/s eta 0:00:04
---------------- ----------------------- 0.6/1.4 MB 263.0 kB/s eta 0:00:04
---------------- ----------------------- 0.6/1.4 MB 263.0 kB/s eta 0:00:04
----------------- ---------------------- 0.6/1.4 MB 241.2 kB/s eta 0:00:04
----------------- ---------------------- 0.6/1.4 MB 241.2 kB/s eta 0:00:04
----------------- ---------------------- 0.6/1.4 MB 241.2 kB/s eta 0:00:04
----------------- ---------------------- 0.6/1.4 MB 241.2 kB/s eta 0:00:04
----------------- ---------------------- 0.6/1.4 MB 241.2 kB/s eta 0:00:04
----------------- ---------------------- 0.6/1.4 MB 230.9 kB/s eta 0:00:04
----------------- ---------------------- 0.6/1.4 MB 230.9 kB/s eta 0:00:04
----------------- ---------------------- 0.6/1.4 MB 230.9 kB/s eta 0:00:04
----------------- ---------------------- 0.6/1.4 MB 230.9 kB/s eta 0:00:04
------------------ --------------------- 0.7/1.4 MB 219.6 kB/s eta 0:00:04
------------------ --------------------- 0.7/1.4 MB 219.6 kB/s eta 0:00:04
------------------ --------------------- 0.7/1.4 MB 219.6 kB/s eta 0:00:04
------------------ --------------------- 0.7/1.4 MB 219.6 kB/s eta 0:00:04
------------------ --------------------- 0.7/1.4 MB 219.6 kB/s eta 0:00:04
------------------ --------------------- 0.7/1.4 MB 219.6 kB/s eta 0:00:04
------------------ --------------------- 0.7/1.4 MB 219.6 kB/s eta 0:00:04
------------------ --------------------- 0.7/1.4 MB 219.6 kB/s eta 0:00:04
------------------ --------------------- 0.7/1.4 MB 219.6 kB/s eta 0:00:04
------------------ --------------------- 0.7/1.4 MB 195.0 kB/s eta 0:00:05
------------------ --------------------- 0.7/1.4 MB 195.0 kB/s eta 0:00:05
------------------ --------------------- 0.7/1.4 MB 195.0 kB/s eta 0:00:05
------------------ --------------------- 0.7/1.4 MB 195.0 kB/s eta 0:00:05
------------------ --------------------- 0.7/1.4 MB 195.0 kB/s eta 0:00:05
------------------ --------------------- 0.7/1.4 MB 195.0 kB/s eta 0:00:05
------------------ --------------------- 0.7/1.4 MB 195.0 kB/s eta 0:00:05
------------------ --------------------- 0.7/1.4 MB 195.0 kB/s eta 0:00:05
------------------ --------------------- 0.7/1.4 MB 195.0 kB/s eta 0:00:05
------------------ --------------------- 0.7/1.4 MB 195.0 kB/s eta 0:00:05
------------------ --------------------- 0.7/1.4 MB 172.3 kB/s eta 0:00:05
------------------ --------------------- 0.7/1.4 MB 172.3 kB/s eta 0:00:05
------------------ --------------------- 0.7/1.4 MB 172.3 kB/s eta 0:00:05
------------------ --------------------- 0.7/1.4 MB 172.3 kB/s eta 0:00:05
------------------ --------------------- 0.7/1.4 MB 172.3 kB/s eta 0:00:05
------------------ --------------------- 0.7/1.4 MB 172.3 kB/s eta 0:00:05
------------------ --------------------- 0.7/1.4 MB 172.3 kB/s eta 0:00:05
------------------ --------------------- 0.7/1.4 MB 172.3 kB/s eta 0:00:05
------------------ --------------------- 0.7/1.4 MB 172.3 kB/s eta 0:00:05
------------------ --------------------- 0.7/1.4 MB 172.3 kB/s eta 0:00:05
------------------- -------------------- 0.7/1.4 MB 159.2 kB/s eta 0:00:05
------------------- -------------------- 0.7/1.4 MB 159.2 kB/s eta 0:00:05
------------------- -------------------- 0.7/1.4 MB 159.2 kB/s eta 0:00:05
------------------- -------------------- 0.7/1.4 MB 159.2 kB/s eta 0:00:05
------------------- -------------------- 0.7/1.4 MB 159.2 kB/s eta 0:00:05
------------------- -------------------- 0.7/1.4 MB 159.2 kB/s eta 0:00:05
------------------- -------------------- 0.7/1.4 MB 159.2 kB/s eta 0:00:05
------------------- -------------------- 0.7/1.4 MB 159.2 kB/s eta 0:00:05
------------------- -------------------- 0.7/1.4 MB 148.2 kB/s eta 0:00:05
------------------- -------------------- 0.7/1.4 MB 148.2 kB/s eta 0:00:05
------------------- -------------------- 0.7/1.4 MB 148.2 kB/s eta 0:00:05
------------------- -------------------- 0.7/1.4 MB 148.2 kB/s eta 0:00:05
------------------- -------------------- 0.7/1.4 MB 148.2 kB/s eta 0:00:05
-------------------- ------------------- 0.7/1.4 MB 145.8 kB/s eta 0:00:05
-------------------- ------------------- 0.7/1.4 MB 145.8 kB/s eta 0:00:05
-------------------- ------------------- 0.7/1.4 MB 145.8 kB/s eta 0:00:05
-------------------- ------------------- 0.7/1.4 MB 145.8 kB/s eta 0:00:05
-------------------- ------------------- 0.7/1.4 MB 145.8 kB/s eta 0:00:05
-------------------- ------------------- 0.7/1.4 MB 140.8 kB/s eta 0:00:05
-------------------- ------------------- 0.7/1.4 MB 140.8 kB/s eta 0:00:05
-------------------- ------------------- 0.7/1.4 MB 140.8 kB/s eta 0:00:05
-------------------- ------------------- 0.7/1.4 MB 140.8 kB/s eta 0:00:05
-------------------- ------------------- 0.7/1.4 MB 140.8 kB/s eta 0:00:05
--------------------- ------------------ 0.8/1.4 MB 138.2 kB/s eta 0:00:05
--------------------- ------------------ 0.8/1.4 MB 138.2 kB/s eta 0:00:05
--------------------- ------------------ 0.8/1.4 MB 138.2 kB/s eta 0:00:05
--------------------- ------------------ 0.8/1.4 MB 138.2 kB/s eta 0:00:05
--------------------- ------------------ 0.8/1.4 MB 138.2 kB/s eta 0:00:05
--------------------- ------------------ 0.8/1.4 MB 136.1 kB/s eta 0:00:05
--------------------- ------------------ 0.8/1.4 MB 136.1 kB/s eta 0:00:05
--------------------- ------------------ 0.8/1.4 MB 136.1 kB/s eta 0:00:05
---------------------- ----------------- 0.8/1.4 MB 134.6 kB/s eta 0:00:05
---------------------- ----------------- 0.8/1.4 MB 134.6 kB/s eta 0:00:05
---------------------- ----------------- 0.8/1.4 MB 134.6 kB/s eta 0:00:05
---------------------- ----------------- 0.8/1.4 MB 134.6 kB/s eta 0:00:05
---------------------- ----------------- 0.8/1.4 MB 134.6 kB/s eta 0:00:05
---------------------- ----------------- 0.8/1.4 MB 132.7 kB/s eta 0:00:05
---------------------- ----------------- 0.8/1.4 MB 132.7 kB/s eta 0:00:05
---------------------- ----------------- 0.8/1.4 MB 132.7 kB/s eta 0:00:05
---------------------- ----------------- 0.8/1.4 MB 132.7 kB/s eta 0:00:05
---------------------- ----------------- 0.8/1.4 MB 130.7 kB/s eta 0:00:05
---------------------- ----------------- 0.8/1.4 MB 130.7 kB/s eta 0:00:05
---------------------- ----------------- 0.8/1.4 MB 130.7 kB/s eta 0:00:05
---------------------- ----------------- 0.8/1.4 MB 130.7 kB/s eta 0:00:05
---------------------- ----------------- 0.8/1.4 MB 130.7 kB/s eta 0:00:05
----------------------- ---------------- 0.8/1.4 MB 129.2 kB/s eta 0:00:05
----------------------- ---------------- 0.8/1.4 MB 129.2 kB/s eta 0:00:05
----------------------- ---------------- 0.8/1.4 MB 129.2 kB/s eta 0:00:05
----------------------- ---------------- 0.8/1.4 MB 129.2 kB/s eta 0:00:05
----------------------- ---------------- 0.8/1.4 MB 129.2 kB/s eta 0:00:05
----------------------- ---------------- 0.8/1.4 MB 129.2 kB/s eta 0:00:05
------------------------ --------------- 0.9/1.4 MB 126.5 kB/s eta 0:00:05
------------------------ --------------- 0.9/1.4 MB 126.5 kB/s eta 0:00:05
------------------------ --------------- 0.9/1.4 MB 126.5 kB/s eta 0:00:05
------------------------ --------------- 0.9/1.4 MB 126.5 kB/s eta 0:00:05
------------------------ --------------- 0.9/1.4 MB 125.2 kB/s eta 0:00:05
------------------------ --------------- 0.9/1.4 MB 125.2 kB/s eta 0:00:05
------------------------ --------------- 0.9/1.4 MB 125.2 kB/s eta 0:00:05
------------------------ --------------- 0.9/1.4 MB 125.2 kB/s eta 0:00:05
------------------------ --------------- 0.9/1.4 MB 124.5 kB/s eta 0:00:05
------------------------ --------------- 0.9/1.4 MB 124.5 kB/s eta 0:00:05
------------------------- -------------- 0.9/1.4 MB 124.3 kB/s eta 0:00:05
------------------------- -------------- 0.9/1.4 MB 124.3 kB/s eta 0:00:05
------------------------- -------------- 0.9/1.4 MB 124.3 kB/s eta 0:00:05
------------------------- -------------- 0.9/1.4 MB 123.0 kB/s eta 0:00:05
------------------------- -------------- 0.9/1.4 MB 123.0 kB/s eta 0:00:05
------------------------- -------------- 0.9/1.4 MB 123.0 kB/s eta 0:00:05
------------------------- -------------- 0.9/1.4 MB 123.0 kB/s eta 0:00:05
------------------------- -------------- 0.9/1.4 MB 123.2 kB/s eta 0:00:05
------------------------- -------------- 0.9/1.4 MB 123.2 kB/s eta 0:00:05
-------------------------- ------------- 1.0/1.4 MB 124.1 kB/s eta 0:00:04
-------------------------- ------------- 1.0/1.4 MB 124.1 kB/s eta 0:00:04
-------------------------- ------------- 1.0/1.4 MB 124.1 kB/s eta 0:00:04
-------------------------- ------------- 1.0/1.4 MB 123.2 kB/s eta 0:00:04
-------------------------- ------------- 1.0/1.4 MB 123.2 kB/s eta 0:00:04
--------------------------- ------------ 1.0/1.4 MB 124.1 kB/s eta 0:00:04
--------------------------- ------------ 1.0/1.4 MB 124.1 kB/s eta 0:00:04
--------------------------- ------------ 1.0/1.4 MB 124.1 kB/s eta 0:00:04
---------------------------- ----------- 1.0/1.4 MB 125.0 kB/s eta 0:00:04
---------------------------- ----------- 1.0/1.4 MB 125.0 kB/s eta 0:00:04
---------------------------- ----------- 1.0/1.4 MB 125.0 kB/s eta 0:00:04
---------------------------- ----------- 1.0/1.4 MB 125.1 kB/s eta 0:00:04
---------------------------- ----------- 1.0/1.4 MB 125.1 kB/s eta 0:00:04
---------------------------- ----------- 1.0/1.4 MB 125.1 kB/s eta 0:00:04
---------------------------- ----------- 1.0/1.4 MB 125.1 kB/s eta 0:00:04
----------------------------- ---------- 1.1/1.4 MB 123.8 kB/s eta 0:00:04
----------------------------- ---------- 1.1/1.4 MB 123.8 kB/s eta 0:00:04
----------------------------- ---------- 1.1/1.4 MB 123.8 kB/s eta 0:00:04
----------------------------- ---------- 1.1/1.4 MB 123.8 kB/s eta 0:00:04
----------------------------- ---------- 1.1/1.4 MB 123.8 kB/s eta 0:00:04
----------------------------- ---------- 1.1/1.4 MB 123.8 kB/s eta 0:00:04
----------------------------- ---------- 1.1/1.4 MB 123.8 kB/s eta 0:00:04
----------------------------- ---------- 1.1/1.4 MB 121.7 kB/s eta 0:00:04
----------------------------- ---------- 1.1/1.4 MB 121.7 kB/s eta 0:00:04
----------------------------- ---------- 1.1/1.4 MB 121.7 kB/s eta 0:00:04
----------------------------- ---------- 1.1/1.4 MB 121.7 kB/s eta 0:00:04
----------------------------- ---------- 1.1/1.4 MB 120.3 kB/s eta 0:00:04
----------------------------- ---------- 1.1/1.4 MB 120.3 kB/s eta 0:00:04
----------------------------- ---------- 1.1/1.4 MB 120.3 kB/s eta 0:00:04
----------------------------- ---------- 1.1/1.4 MB 120.3 kB/s eta 0:00:04
----------------------------- ---------- 1.1/1.4 MB 120.3 kB/s eta 0:00:04
----------------------------- ---------- 1.1/1.4 MB 120.3 kB/s eta 0:00:04
------------------------------ --------- 1.1/1.4 MB 118.8 kB/s eta 0:00:03
------------------------------ --------- 1.1/1.4 MB 118.8 kB/s eta 0:00:03
------------------------------ --------- 1.1/1.4 MB 118.8 kB/s eta 0:00:03
------------------------------ --------- 1.1/1.4 MB 118.8 kB/s eta 0:00:03
------------------------------ --------- 1.1/1.4 MB 118.8 kB/s eta 0:00:03
------------------------------ --------- 1.1/1.4 MB 118.8 kB/s eta 0:00:03
------------------------------ --------- 1.1/1.4 MB 118.8 kB/s eta 0:00:03
------------------------------- -------- 1.1/1.4 MB 116.5 kB/s eta 0:00:03
------------------------------- -------- 1.1/1.4 MB 116.5 kB/s eta 0:00:03
------------------------------- -------- 1.1/1.4 MB 116.5 kB/s eta 0:00:03
------------------------------- -------- 1.1/1.4 MB 116.5 kB/s eta 0:00:03
------------------------------- -------- 1.1/1.4 MB 116.5 kB/s eta 0:00:03
------------------------------- -------- 1.1/1.4 MB 116.5 kB/s eta 0:00:03
------------------------------- -------- 1.1/1.4 MB 116.5 kB/s eta 0:00:03
------------------------------- -------- 1.1/1.4 MB 116.5 kB/s eta 0:00:03
------------------------------- -------- 1.1/1.4 MB 116.5 kB/s eta 0:00:03
------------------------------- -------- 1.1/1.4 MB 116.5 kB/s eta 0:00:03
------------------------------- -------- 1.1/1.4 MB 112.5 kB/s eta 0:00:03
------------------------------- -------- 1.1/1.4 MB 112.5 kB/s eta 0:00:03
------------------------------- -------- 1.1/1.4 MB 112.5 kB/s eta 0:00:03
------------------------------- -------- 1.1/1.4 MB 112.5 kB/s eta 0:00:03
------------------------------- -------- 1.1/1.4 MB 112.5 kB/s eta 0:00:03
------------------------------- -------- 1.1/1.4 MB 112.5 kB/s eta 0:00:03
------------------------------- -------- 1.1/1.4 MB 112.5 kB/s eta 0:00:03
------------------------------- -------- 1.1/1.4 MB 112.5 kB/s eta 0:00:03
------------------------------- -------- 1.2/1.4 MB 110.2 kB/s eta 0:00:03
------------------------------- -------- 1.2/1.4 MB 110.2 kB/s eta 0:00:03
------------------------------- -------- 1.2/1.4 MB 110.2 kB/s eta 0:00:03
------------------------------- -------- 1.2/1.4 MB 110.2 kB/s eta 0:00:03
-------------------------------- ------- 1.2/1.4 MB 109.2 kB/s eta 0:00:03
-------------------------------- ------- 1.2/1.4 MB 109.2 kB/s eta 0:00:03
-------------------------------- ------- 1.2/1.4 MB 109.2 kB/s eta 0:00:03
-------------------------------- ------- 1.2/1.4 MB 109.2 kB/s eta 0:00:03
-------------------------------- ------- 1.2/1.4 MB 109.2 kB/s eta 0:00:03
-------------------------------- ------- 1.2/1.4 MB 109.2 kB/s eta 0:00:03
-------------------------------- ------- 1.2/1.4 MB 109.2 kB/s eta 0:00:03
-------------------------------- ------- 1.2/1.4 MB 108.0 kB/s eta 0:00:03
-------------------------------- ------- 1.2/1.4 MB 108.0 kB/s eta 0:00:03
-------------------------------- ------- 1.2/1.4 MB 108.0 kB/s eta 0:00:03
-------------------------------- ------- 1.2/1.4 MB 108.0 kB/s eta 0:00:03
-------------------------------- ------- 1.2/1.4 MB 108.0 kB/s eta 0:00:03
-------------------------------- ------- 1.2/1.4 MB 108.0 kB/s eta 0:00:03
--------------------------------- ------ 1.2/1.4 MB 105.0 kB/s eta 0:00:03
--------------------------------- ------ 1.2/1.4 MB 105.0 kB/s eta 0:00:03
--------------------------------- ------ 1.2/1.4 MB 105.0 kB/s eta 0:00:03
--------------------------------- ------ 1.2/1.4 MB 105.0 kB/s eta 0:00:03
--------------------------------- ------ 1.2/1.4 MB 105.0 kB/s eta 0:00:03
--------------------------------- ------ 1.2/1.4 MB 105.0 kB/s eta 0:00:03
--------------------------------- ------ 1.2/1.4 MB 105.0 kB/s eta 0:00:03
--------------------------------- ------ 1.2/1.4 MB 105.0 kB/s eta 0:00:03
--------------------------------- ------ 1.2/1.4 MB 105.0 kB/s eta 0:00:03
--------------------------------- ------ 1.2/1.4 MB 103.4 kB/s eta 0:00:03
--------------------------------- ------ 1.2/1.4 MB 103.4 kB/s eta 0:00:03
--------------------------------- ------ 1.2/1.4 MB 103.4 kB/s eta 0:00:03
--------------------------------- ------ 1.2/1.4 MB 103.4 kB/s eta 0:00:03
---------------------------------- ----- 1.2/1.4 MB 103.3 kB/s eta 0:00:03
---------------------------------- ----- 1.2/1.4 MB 103.3 kB/s eta 0:00:03
---------------------------------- ----- 1.2/1.4 MB 103.3 kB/s eta 0:00:03
---------------------------------- ----- 1.2/1.4 MB 102.3 kB/s eta 0:00:02
---------------------------------- ----- 1.2/1.4 MB 102.3 kB/s eta 0:00:02
---------------------------------- ----- 1.2/1.4 MB 102.3 kB/s eta 0:00:02
----------------------------------- ---- 1.3/1.4 MB 102.3 kB/s eta 0:00:02
----------------------------------- ---- 1.3/1.4 MB 102.3 kB/s eta 0:00:02
----------------------------------- ---- 1.3/1.4 MB 102.1 kB/s eta 0:00:02
----------------------------------- ---- 1.3/1.4 MB 102.1 kB/s eta 0:00:02
----------------------------------- ---- 1.3/1.4 MB 102.1 kB/s eta 0:00:02
----------------------------------- ---- 1.3/1.4 MB 102.7 kB/s eta 0:00:02
----------------------------------- ---- 1.3/1.4 MB 102.7 kB/s eta 0:00:02
----------------------------------- ---- 1.3/1.4 MB 102.7 kB/s eta 0:00:02
------------------------------------ --- 1.3/1.4 MB 103.3 kB/s eta 0:00:02
------------------------------------ --- 1.3/1.4 MB 103.3 kB/s eta 0:00:02
------------------------------------ --- 1.3/1.4 MB 103.3 kB/s eta 0:00:02
------------------------------------ --- 1.3/1.4 MB 103.3 kB/s eta 0:00:02
------------------------------------- -- 1.4/1.4 MB 103.9 kB/s eta 0:00:01
------------------------------------- -- 1.4/1.4 MB 103.9 kB/s eta 0:00:01
------------------------------------- -- 1.4/1.4 MB 103.9 kB/s eta 0:00:01
------------------------------------- -- 1.4/1.4 MB 103.8 kB/s eta 0:00:01
-------------------------------------- - 1.4/1.4 MB 104.8 kB/s eta 0:00:01
-------------------------------------- - 1.4/1.4 MB 104.8 kB/s eta 0:00:01
-------------------------------------- - 1.4/1.4 MB 105.6 kB/s eta 0:00:01
-------------------------------------- - 1.4/1.4 MB 105.6 kB/s eta 0:00:01
-------------------------------------- - 1.4/1.4 MB 105.6 kB/s eta 0:00:01
-------------------------------------- - 1.4/1.4 MB 105.6 kB/s eta 0:00:01
--------------------------------------- 1.4/1.4 MB 106.5 kB/s eta 0:00:01
--------------------------------------- 1.4/1.4 MB 106.5 kB/s eta 0:00:01
---------------------------------------- 1.4/1.4 MB 107.1 kB/s eta 0:00:00
Installing collected packages: mlxtend
Successfully installed mlxtend-0.23.1
dataset = [['牛奶', '洋葱', '肉豆蔻', '芸豆', '鸡蛋', '酸奶'],
['莳萝', '洋葱', '肉豆蔻', '芸豆', '鸡蛋', '酸奶'],
['牛奶', '苹果', '芸豆', '鸡蛋'],
['牛奶', '独角兽', '玉米', '芸豆', '酸奶'],
['玉米', '洋葱', '洋葱', '芸豆', '冰淇淋', '鸡蛋']]
dataset
[['牛奶', '洋葱', '肉豆蔻', '芸豆', '鸡蛋', '酸奶'], ['莳萝', '洋葱', '肉豆蔻', '芸豆', '鸡蛋', '酸奶'], ['牛奶', '苹果', '芸豆', '鸡蛋'], ['牛奶', '独角兽', '玉米', '芸豆', '酸奶'], ['玉米', '洋葱', '洋葱', '芸豆', '冰淇淋', '鸡蛋']]
te = TransactionEncoder()
te_ary = te.fit(dataset).transform(dataset)
te_ary
array([[False, True, True, False, False, True, True, False, False,
True, True],
[False, True, False, False, False, True, True, False, True,
True, True],
[False, False, True, False, False, False, True, True, False,
False, True],
[False, False, True, True, True, False, True, False, False,
True, False],
[ True, True, False, False, True, False, True, False, False,
False, True]])
df = pd.DataFrame(te_ary, columns = te.columns_)
df
| 冰淇淋 | 洋葱 | 牛奶 | 独角兽 | 玉米 | 肉豆蔻 | 芸豆 | 苹果 | 莳萝 | 酸奶 | 鸡蛋 | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | False | True | True | False | False | True | True | False | False | True | True |
| 1 | False | True | False | False | False | True | True | False | True | True | True |
| 2 | False | False | True | False | False | False | True | True | False | False | True |
| 3 | False | False | True | True | True | False | True | False | False | True | False |
| 4 | True | True | False | False | True | False | True | False | False | False | True |
from mlxtend.frequent_patterns import apriori
freq = apriori(df, min_support = 0.5, use_colnames = True)
freq
| support | itemsets | |
|---|---|---|
| 0 | 0.6 | (洋葱) |
| 1 | 0.6 | (牛奶) |
| 2 | 1.0 | (芸豆) |
| 3 | 0.6 | (酸奶) |
| 4 | 0.8 | (鸡蛋) |
| 5 | 0.6 | (洋葱, 芸豆) |
| 6 | 0.6 | (洋葱, 鸡蛋) |
| 7 | 0.6 | (牛奶, 芸豆) |
| 8 | 0.6 | (酸奶, 芸豆) |
| 9 | 0.8 | (鸡蛋, 芸豆) |
| 10 | 0.6 | (洋葱, 鸡蛋, 芸豆) |
freq = apriori(df, min_support = 0.5, use_colnames = False)
freq
| support | itemsets | |
|---|---|---|
| 0 | 0.6 | (1) |
| 1 | 0.6 | (2) |
| 2 | 1.0 | (6) |
| 3 | 0.6 | (9) |
| 4 | 0.8 | (10) |
| 5 | 0.6 | (1, 6) |
| 6 | 0.6 | (1, 10) |
| 7 | 0.6 | (2, 6) |
| 8 | 0.6 | (9, 6) |
| 9 | 0.8 | (10, 6) |
| 10 | 0.6 | (1, 10, 6) |
freq = apriori(df, min_support = 0.5, use_colnames = True)
from mlxtend.frequent_patterns import association_rules
Rules = association_rules(freq, metric = "confidence", min_threshold = 0.8)
Rules
| antecedents | consequents | antecedent support | consequent support | support | confidence | lift | leverage | conviction | zhangs_metric | |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | (洋葱) | (芸豆) | 0.6 | 1.0 | 0.6 | 1.0 | 1.00 | 0.00 | inf | 0.0 |
| 1 | (洋葱) | (鸡蛋) | 0.6 | 0.8 | 0.6 | 1.0 | 1.25 | 0.12 | inf | 0.5 |
| 2 | (牛奶) | (芸豆) | 0.6 | 1.0 | 0.6 | 1.0 | 1.00 | 0.00 | inf | 0.0 |
| 3 | (酸奶) | (芸豆) | 0.6 | 1.0 | 0.6 | 1.0 | 1.00 | 0.00 | inf | 0.0 |
| 4 | (鸡蛋) | (芸豆) | 0.8 | 1.0 | 0.8 | 1.0 | 1.00 | 0.00 | inf | 0.0 |
| 5 | (芸豆) | (鸡蛋) | 1.0 | 0.8 | 0.8 | 0.8 | 1.00 | 0.00 | 1.0 | 0.0 |
| 6 | (洋葱, 鸡蛋) | (芸豆) | 0.6 | 1.0 | 0.6 | 1.0 | 1.00 | 0.00 | inf | 0.0 |
| 7 | (洋葱, 芸豆) | (鸡蛋) | 0.6 | 0.8 | 0.6 | 1.0 | 1.25 | 0.12 | inf | 0.5 |
| 8 | (洋葱) | (鸡蛋, 芸豆) | 0.6 | 0.8 | 0.6 | 1.0 | 1.25 | 0.12 | inf | 0.5 |
type(Rules)
pandas.core.frame.DataFrame
Rules2 = Rules[['antecedents', 'consequents', 'support', 'confidence']]
Rules2
| antecedents | consequents | support | confidence | |
|---|---|---|---|---|
| 0 | (洋葱) | (芸豆) | 0.6 | 1.0 |
| 1 | (洋葱) | (鸡蛋) | 0.6 | 1.0 |
| 2 | (牛奶) | (芸豆) | 0.6 | 1.0 |
| 3 | (酸奶) | (芸豆) | 0.6 | 1.0 |
| 4 | (鸡蛋) | (芸豆) | 0.8 | 1.0 |
| 5 | (芸豆) | (鸡蛋) | 0.8 | 0.8 |
| 6 | (洋葱, 鸡蛋) | (芸豆) | 0.6 | 1.0 |
| 7 | (洋葱, 芸豆) | (鸡蛋) | 0.6 | 1.0 |
| 8 | (洋葱) | (鸡蛋, 芸豆) | 0.6 | 1.0 |
Rules3 = Rules2[Rules2['confidence'] >= 0.9]
Rules3
| antecedents | consequents | support | confidence | |
|---|---|---|---|---|
| 0 | (洋葱) | (芸豆) | 0.6 | 1.0 |
| 1 | (洋葱) | (鸡蛋) | 0.6 | 1.0 |
| 2 | (牛奶) | (芸豆) | 0.6 | 1.0 |
| 3 | (酸奶) | (芸豆) | 0.6 | 1.0 |
| 4 | (鸡蛋) | (芸豆) | 0.8 | 1.0 |
| 6 | (洋葱, 鸡蛋) | (芸豆) | 0.6 | 1.0 |
| 7 | (洋葱, 芸豆) | (鸡蛋) | 0.6 | 1.0 |
| 8 | (洋葱) | (鸡蛋, 芸豆) | 0.6 | 1.0 |
import numpy as np
import matplotlib.pyplot as plt
# 读取外部数据
purchase_data = pd.read_csv('./PurchaseData.csv', header = None, keep_default_na = False)
purchase_data.head()
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | shrimp | almonds | avocado | vegetables mix | green grapes | whole weat flour | yams | cottage cheese | energy drink | tomato juice | low fat yogurt | green tea | honey | salad | mineral water | salmon | antioxydant juice | frozen smoothie | spinach | olive oil |
| 1 | burgers | meatballs | eggs | |||||||||||||||||
| 2 | chutney | |||||||||||||||||||
| 3 | turkey | avocado | ||||||||||||||||||
| 4 | mineral water | milk | energy bar | whole wheat rice | green tea |
num_records = len(purchase_data)
num_records
7501
records = []
for i in range(0, num_records):
records.append([str(purchase_data.values[i, j]) for j in range(0, 20)])
records[2]
# 去除空值
for i in range(0, num_records):
records[i] = [x for x in records[i] if x]
records[1]
['burgers', 'meatballs', 'eggs']
te_ary = te.fit(records).transform(records)
te_ary[0]
array([False, True, True, False, True, False, False, False, False,
False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, True, False, False,
False, False, False, True, False, False, False, False, False,
False, False, False, True, False, False, False, False, True,
True, False, False, False, False, False, True, False, False,
False, False, True, False, False, False, False, False, False,
True, False, False, False, False, False, False, False, False,
True, False, False, False, False, False, False, False, False,
False, True, True, False, False, False, False, True, False,
False, False, False, True, False, False, False, True, False,
False, False, False, True, False, False, True, False, False,
True, False, False])
df = pd.DataFrame(te_ary, columns = te.columns_)
df.head()
| asparagus | almonds | antioxydant juice | asparagus | avocado | babies food | bacon | barbecue sauce | black tea | blueberries | ... | turkey | vegetables mix | water spray | white wine | whole weat flour | whole wheat pasta | whole wheat rice | yams | yogurt cake | zucchini | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | False | True | True | False | True | False | False | False | False | False | ... | False | True | False | False | True | False | False | True | False | False |
| 1 | False | False | False | False | False | False | False | False | False | False | ... | False | False | False | False | False | False | False | False | False | False |
| 2 | False | False | False | False | False | False | False | False | False | False | ... | False | False | False | False | False | False | False | False | False | False |
| 3 | False | False | False | False | True | False | False | False | False | False | ... | True | False | False | False | False | False | False | False | False | False |
| 4 | False | False | False | False | False | False | False | False | False | False | ... | False | False | False | False | False | False | True | False | False | False |
5 rows × 120 columns
# 生成频繁项集
freq = apriori(df, min_support = 0.05, use_colnames = True)
freq
| support | itemsets | |
|---|---|---|
| 0 | 0.087188 | (burgers) |
| 1 | 0.081056 | (cake) |
| 2 | 0.059992 | (chicken) |
| 3 | 0.163845 | (chocolate) |
| 4 | 0.080389 | (cookies) |
| 5 | 0.051060 | (cooking oil) |
| 6 | 0.179709 | (eggs) |
| 7 | 0.079323 | (escalope) |
| 8 | 0.170911 | (french fries) |
| 9 | 0.063325 | (frozen smoothie) |
| 10 | 0.095321 | (frozen vegetables) |
| 11 | 0.052393 | (grated cheese) |
| 12 | 0.132116 | (green tea) |
| 13 | 0.098254 | (ground beef) |
| 14 | 0.076523 | (low fat yogurt) |
| 15 | 0.129583 | (milk) |
| 16 | 0.238368 | (mineral water) |
| 17 | 0.065858 | (olive oil) |
| 18 | 0.095054 | (pancakes) |
| 19 | 0.071457 | (shrimp) |
| 20 | 0.050527 | (soup) |
| 21 | 0.174110 | (spaghetti) |
| 22 | 0.068391 | (tomatoes) |
| 23 | 0.062525 | (turkey) |
| 24 | 0.058526 | (whole wheat rice) |
| 25 | 0.052660 | (mineral water, chocolate) |
| 26 | 0.050927 | (eggs, mineral water) |
| 27 | 0.059725 | (spaghetti, mineral water) |
# 计算关联规则
Rules = association_rules(freq, metric = "confidence", min_threshold = 0.2)
Rules
| antecedents | consequents | antecedent support | consequent support | support | confidence | lift | leverage | conviction | zhangs_metric | |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | (mineral water) | (chocolate) | 0.238368 | 0.163845 | 0.052660 | 0.220917 | 1.348332 | 0.013604 | 1.073256 | 0.339197 |
| 1 | (chocolate) | (mineral water) | 0.163845 | 0.238368 | 0.052660 | 0.321400 | 1.348332 | 0.013604 | 1.122357 | 0.308965 |
| 2 | (eggs) | (mineral water) | 0.179709 | 0.238368 | 0.050927 | 0.283383 | 1.188845 | 0.008090 | 1.062815 | 0.193648 |
| 3 | (mineral water) | (eggs) | 0.238368 | 0.179709 | 0.050927 | 0.213647 | 1.188845 | 0.008090 | 1.043158 | 0.208562 |
| 4 | (spaghetti) | (mineral water) | 0.174110 | 0.238368 | 0.059725 | 0.343032 | 1.439085 | 0.018223 | 1.159314 | 0.369437 |
| 5 | (mineral water) | (spaghetti) | 0.238368 | 0.174110 | 0.059725 | 0.250559 | 1.439085 | 0.018223 | 1.102008 | 0.400606 |