bigdata/day1/关联规则分析.ipynb

579 lines
80 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "code",
"execution_count": 4,
"id": "d8389163",
"metadata": {
"ExecuteTime": {
"end_time": "2024-02-28T07:38:15.682484Z",
"start_time": "2024-02-28T07:37:50.813485Z"
}
},
"outputs": [],
"source": [
"import pandas as pd\n",
"\n",
"df = pd.read_excel('OnlineRetail.xlsx', header=0)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "bc67ee34",
"metadata": {
"ExecuteTime": {
"end_time": "2024-02-28T07:38:15.695896Z",
"start_time": "2024-02-28T07:38:15.683485Z"
}
},
"outputs": [
{
"data": {
"text/plain": " InvoiceNo StockCode Description Quantity \\\n0 536365 85123A WHITE HANGING HEART T-LIGHT HOLDER 6 \n1 536365 71053 WHITE METAL LANTERN 6 \n2 536365 84406B CREAM CUPID HEARTS COAT HANGER 8 \n3 536365 84029G KNITTED UNION FLAG HOT WATER BOTTLE 6 \n4 536365 84029E RED WOOLLY HOTTIE WHITE HEART. 6 \n\n InvoiceDate UnitPrice CustomerID Country \n0 2010-12-01 08:26:00 2.55 17850.0 United Kingdom \n1 2010-12-01 08:26:00 3.39 17850.0 United Kingdom \n2 2010-12-01 08:26:00 2.75 17850.0 United Kingdom \n3 2010-12-01 08:26:00 3.39 17850.0 United Kingdom \n4 2010-12-01 08:26:00 3.39 17850.0 United Kingdom ",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>InvoiceNo</th>\n <th>StockCode</th>\n <th>Description</th>\n <th>Quantity</th>\n <th>InvoiceDate</th>\n <th>UnitPrice</th>\n <th>CustomerID</th>\n <th>Country</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>536365</td>\n <td>85123A</td>\n <td>WHITE HANGING HEART T-LIGHT HOLDER</td>\n <td>6</td>\n <td>2010-12-01 08:26:00</td>\n <td>2.55</td>\n <td>17850.0</td>\n <td>United Kingdom</td>\n </tr>\n <tr>\n <th>1</th>\n <td>536365</td>\n <td>71053</td>\n <td>WHITE METAL LANTERN</td>\n <td>6</td>\n <td>2010-12-01 08:26:00</td>\n <td>3.39</td>\n <td>17850.0</td>\n <td>United Kingdom</td>\n </tr>\n <tr>\n <th>2</th>\n <td>536365</td>\n <td>84406B</td>\n <td>CREAM CUPID HEARTS COAT HANGER</td>\n <td>8</td>\n <td>2010-12-01 08:26:00</td>\n <td>2.75</td>\n <td>17850.0</td>\n <td>United Kingdom</td>\n </tr>\n <tr>\n <th>3</th>\n <td>536365</td>\n <td>84029G</td>\n <td>KNITTED UNION FLAG HOT WATER BOTTLE</td>\n <td>6</td>\n <td>2010-12-01 08:26:00</td>\n <td>3.39</td>\n <td>17850.0</td>\n <td>United Kingdom</td>\n </tr>\n <tr>\n <th>4</th>\n <td>536365</td>\n <td>84029E</td>\n <td>RED WOOLLY HOTTIE WHITE HEART.</td>\n <td>6</td>\n <td>2010-12-01 08:26:00</td>\n <td>3.39</td>\n <td>17850.0</td>\n <td>United Kingdom</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "373846a1",
"metadata": {
"ExecuteTime": {
"end_time": "2024-02-28T07:38:15.700685Z",
"start_time": "2024-02-28T07:38:15.696407Z"
}
},
"outputs": [
{
"data": {
"text/plain": "(541909, 8)"
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.shape"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "9a377803",
"metadata": {
"ExecuteTime": {
"end_time": "2024-02-28T07:38:15.869792Z",
"start_time": "2024-02-28T07:38:15.701684Z"
}
},
"outputs": [
{
"data": {
"text/plain": " Quantity InvoiceDate UnitPrice \\\ncount 541909.000000 541909 541909.000000 \nmean 9.552250 2011-07-04 13:34:57.156386048 4.611114 \nmin -80995.000000 2010-12-01 08:26:00 -11062.060000 \n25% 1.000000 2011-03-28 11:34:00 1.250000 \n50% 3.000000 2011-07-19 17:17:00 2.080000 \n75% 10.000000 2011-10-19 11:27:00 4.130000 \nmax 80995.000000 2011-12-09 12:50:00 38970.000000 \nstd 218.081158 NaN 96.759853 \n\n CustomerID \ncount 406829.000000 \nmean 15287.690570 \nmin 12346.000000 \n25% 13953.000000 \n50% 15152.000000 \n75% 16791.000000 \nmax 18287.000000 \nstd 1713.600303 ",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Quantity</th>\n <th>InvoiceDate</th>\n <th>UnitPrice</th>\n <th>CustomerID</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>count</th>\n <td>541909.000000</td>\n <td>541909</td>\n <td>541909.000000</td>\n <td>406829.000000</td>\n </tr>\n <tr>\n <th>mean</th>\n <td>9.552250</td>\n <td>2011-07-04 13:34:57.156386048</td>\n <td>4.611114</td>\n <td>15287.690570</td>\n </tr>\n <tr>\n <th>min</th>\n <td>-80995.000000</td>\n <td>2010-12-01 08:26:00</td>\n <td>-11062.060000</td>\n <td>12346.000000</td>\n </tr>\n <tr>\n <th>25%</th>\n <td>1.000000</td>\n <td>2011-03-28 11:34:00</td>\n <td>1.250000</td>\n <td>13953.000000</td>\n </tr>\n <tr>\n <th>50%</th>\n <td>3.000000</td>\n <td>2011-07-19 17:17:00</td>\n <td>2.080000</td>\n <td>15152.000000</td>\n </tr>\n <tr>\n <th>75%</th>\n <td>10.000000</td>\n <td>2011-10-19 11:27:00</td>\n <td>4.130000</td>\n <td>16791.000000</td>\n </tr>\n <tr>\n <th>max</th>\n <td>80995.000000</td>\n <td>2011-12-09 12:50:00</td>\n <td>38970.000000</td>\n <td>18287.000000</td>\n </tr>\n <tr>\n <th>std</th>\n <td>218.081158</td>\n <td>NaN</td>\n <td>96.759853</td>\n <td>1713.600303</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "742d7691",
"metadata": {
"ExecuteTime": {
"end_time": "2024-02-28T07:38:15.876557Z",
"start_time": "2024-02-28T07:38:15.869792Z"
}
},
"outputs": [
{
"data": {
"text/plain": "<bound method DataFrame.info of InvoiceNo StockCode Description Quantity \\\n0 536365 85123A WHITE HANGING HEART T-LIGHT HOLDER 6 \n1 536365 71053 WHITE METAL LANTERN 6 \n2 536365 84406B CREAM CUPID HEARTS COAT HANGER 8 \n3 536365 84029G KNITTED UNION FLAG HOT WATER BOTTLE 6 \n4 536365 84029E RED WOOLLY HOTTIE WHITE HEART. 6 \n... ... ... ... ... \n541904 581587 22613 PACK OF 20 SPACEBOY NAPKINS 12 \n541905 581587 22899 CHILDREN'S APRON DOLLY GIRL 6 \n541906 581587 23254 CHILDRENS CUTLERY DOLLY GIRL 4 \n541907 581587 23255 CHILDRENS CUTLERY CIRCUS PARADE 4 \n541908 581587 22138 BAKING SET 9 PIECE RETROSPOT 3 \n\n InvoiceDate UnitPrice CustomerID Country \n0 2010-12-01 08:26:00 2.55 17850.0 United Kingdom \n1 2010-12-01 08:26:00 3.39 17850.0 United Kingdom \n2 2010-12-01 08:26:00 2.75 17850.0 United Kingdom \n3 2010-12-01 08:26:00 3.39 17850.0 United Kingdom \n4 2010-12-01 08:26:00 3.39 17850.0 United Kingdom \n... ... ... ... ... \n541904 2011-12-09 12:50:00 0.85 12680.0 France \n541905 2011-12-09 12:50:00 2.10 12680.0 France \n541906 2011-12-09 12:50:00 4.15 12680.0 France \n541907 2011-12-09 12:50:00 4.15 12680.0 France \n541908 2011-12-09 12:50:00 4.95 12680.0 France \n\n[541909 rows x 8 columns]>"
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.info"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "5b5b8cdc",
"metadata": {
"ExecuteTime": {
"end_time": "2024-02-28T07:38:15.882036Z",
"start_time": "2024-02-28T07:38:15.877596Z"
}
},
"outputs": [
{
"data": {
"text/plain": "0 United Kingdom\n1 United Kingdom\n2 United Kingdom\n3 United Kingdom\n4 United Kingdom\n ... \n541904 France\n541905 France\n541906 France\n541907 France\n541908 France\nName: Country, Length: 541909, dtype: object"
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['Country']"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "d4cc1311",
"metadata": {
"ExecuteTime": {
"end_time": "2024-02-28T07:38:15.900937Z",
"start_time": "2024-02-28T07:38:15.883083Z"
}
},
"outputs": [
{
"data": {
"text/plain": "Country\nUnited Kingdom 495478\nGermany 9495\nFrance 8557\nEIRE 8196\nSpain 2533\nNetherlands 2371\nBelgium 2069\nSwitzerland 2002\nPortugal 1519\nAustralia 1259\nNorway 1086\nItaly 803\nChannel Islands 758\nFinland 695\nCyprus 622\nSweden 462\nUnspecified 446\nAustria 401\nDenmark 389\nJapan 358\nPoland 341\nIsrael 297\nUSA 291\nHong Kong 288\nSingapore 229\nIceland 182\nCanada 151\nGreece 146\nMalta 127\nUnited Arab Emirates 68\nEuropean Community 61\nRSA 58\nLebanon 45\nLithuania 35\nBrazil 32\nCzech Republic 30\nBahrain 19\nSaudi Arabia 10\nName: count, dtype: int64"
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[\"Country\"].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "7c38e8a1",
"metadata": {
"ExecuteTime": {
"end_time": "2024-02-28T07:38:15.916952Z",
"start_time": "2024-02-28T07:38:15.902031Z"
}
},
"outputs": [
{
"data": {
"text/plain": "True"
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.duplicated(subset=[\"InvoiceNo\"]).any()"
]
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": "InvoiceNo 0\nStockCode 0\nDescription 1454\nQuantity 0\nInvoiceDate 0\nUnitPrice 0\nCustomerID 135080\nCountry 0\ndtype: int64"
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.isna().sum()"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-28T07:39:55.201285Z",
"start_time": "2024-02-28T07:39:55.151793Z"
}
},
"id": "14992f9c11c510c4",
"execution_count": 12
},
{
"cell_type": "code",
"outputs": [],
"source": [
"df['Description'] = df['Description'].str.strip()"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-28T07:40:50.115934Z",
"start_time": "2024-02-28T07:40:50.013818Z"
}
},
"id": "192399a4012c02cd",
"execution_count": 13
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": "1455"
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['Description'].isna().sum()"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-28T07:41:06.743426Z",
"start_time": "2024-02-28T07:41:06.723926Z"
}
},
"id": "802455edc452f998",
"execution_count": 14
},
{
"cell_type": "code",
"outputs": [],
"source": [
"df.dropna(axis=0, subset=['Description'], inplace=True)"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-28T07:58:11.350821Z",
"start_time": "2024-02-28T07:58:11.289749Z"
}
},
"id": "5d16f91c978dec55",
"execution_count": 15
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": "(531166, 8)"
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['InvoiceNo'] = df['InvoiceNo'].astype('str')\n",
"df = df[~df['InvoiceNo'].str.contains('C')]\n",
"df.shape"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-28T08:00:14.192116Z",
"start_time": "2024-02-28T08:00:14.054905Z"
}
},
"id": "e3243a42ab0b019b",
"execution_count": 18
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": "(457, 1695)"
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_de = (df[df['Country'] ==\"Germany\"] \n",
" .groupby(['InvoiceNo', 'Description'])['Quantity']\n",
" .sum()\n",
" .unstack()\n",
" .reset_index()\n",
" .fillna(0)\n",
" .set_index('InvoiceNo'))\n",
"\n",
"df_de.shape"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-28T08:52:18.640048Z",
"start_time": "2024-02-28T08:52:18.602732Z"
}
},
"id": "ce1d60ca48f883da",
"execution_count": 19
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": "Description 10 COLOUR SPACEBOY PEN 12 COLOURED PARTY BALLOONS \\\nInvoiceNo \n536527 0.0 0.0 \n536840 0.0 0.0 \n536861 0.0 0.0 \n536967 0.0 0.0 \n536983 0.0 0.0 \n\nDescription 12 IVORY ROSE PEG PLACE SETTINGS \\\nInvoiceNo \n536527 0.0 \n536840 0.0 \n536861 0.0 \n536967 0.0 \n536983 0.0 \n\nDescription 12 MESSAGE CARDS WITH ENVELOPES 12 PENCIL SMALL TUBE WOODLAND \\\nInvoiceNo \n536527 0.0 0.0 \n536840 0.0 0.0 \n536861 0.0 0.0 \n536967 0.0 0.0 \n536983 0.0 0.0 \n\nDescription 12 PENCILS SMALL TUBE RED RETROSPOT 12 PENCILS SMALL TUBE SKULL \\\nInvoiceNo \n536527 0.0 0.0 \n536840 0.0 0.0 \n536861 0.0 0.0 \n536967 0.0 0.0 \n536983 0.0 0.0 \n\nDescription 12 PENCILS TALL TUBE POSY 12 PENCILS TALL TUBE RED RETROSPOT \\\nInvoiceNo \n536527 0.0 0.0 \n536840 0.0 0.0 \n536861 0.0 0.0 \n536967 0.0 0.0 \n536983 0.0 0.0 \n\nDescription 12 PENCILS TALL TUBE SKULLS ... YULETIDE IMAGES GIFT WRAP SET \\\nInvoiceNo ... \n536527 0.0 ... 0.0 \n536840 0.0 ... 0.0 \n536861 0.0 ... 0.0 \n536967 0.0 ... 0.0 \n536983 0.0 ... 0.0 \n\nDescription ZINC HEART T-LIGHT HOLDER ZINC STAR T-LIGHT HOLDER \\\nInvoiceNo \n536527 0.0 0.0 \n536840 0.0 0.0 \n536861 0.0 0.0 \n536967 0.0 0.0 \n536983 0.0 0.0 \n\nDescription ZINC BOX SIGN HOME ZINC FOLKART SLEIGH BELLS \\\nInvoiceNo \n536527 0.0 0.0 \n536840 0.0 0.0 \n536861 0.0 0.0 \n536967 0.0 0.0 \n536983 0.0 0.0 \n\nDescription ZINC HEART LATTICE T-LIGHT HOLDER ZINC METAL HEART DECORATION \\\nInvoiceNo \n536527 0.0 0.0 \n536840 0.0 0.0 \n536861 0.0 0.0 \n536967 0.0 0.0 \n536983 0.0 0.0 \n\nDescription ZINC T-LIGHT HOLDER STAR LARGE ZINC T-LIGHT HOLDER STARS SMALL \\\nInvoiceNo \n536527 0.0 0.0 \n536840 0.0 0.0 \n536861 0.0 0.0 \n536967 0.0 0.0 \n536983 0.0 0.0 \n\nDescription ZINC WILLIE WINKIE CANDLE STICK \nInvoiceNo \n536527 0.0 \n536840 0.0 \n536861 0.0 \n536967 0.0 \n536983 0.0 \n\n[5 rows x 1695 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th>Description</th>\n <th>10 COLOUR SPACEBOY PEN</th>\n <th>12 COLOURED PARTY BALLOONS</th>\n <th>12 IVORY ROSE PEG PLACE SETTINGS</th>\n <th>12 MESSAGE CARDS WITH ENVELOPES</th>\n <th>12 PENCIL SMALL TUBE WOODLAND</th>\n <th>12 PENCILS SMALL TUBE RED RETROSPOT</th>\n <th>12 PENCILS SMALL TUBE SKULL</th>\n <th>12 PENCILS TALL TUBE POSY</th>\n <th>12 PENCILS TALL TUBE RED RETROSPOT</th>\n <th>12 PENCILS TALL TUBE SKULLS</th>\n <th>...</th>\n <th>YULETIDE IMAGES GIFT WRAP SET</th>\n <th>ZINC HEART T-LIGHT HOLDER</th>\n <th>ZINC STAR T-LIGHT HOLDER</th>\n <th>ZINC BOX SIGN HOME</th>\n <th>ZINC FOLKART SLEIGH BELLS</th>\n <th>ZINC HEART LATTICE T-LIGHT HOLDER</th>\n <th>ZINC METAL HEART DECORATION</th>\n <th>ZINC T-LIGHT HOLDER STAR LARGE</th>\n <th>ZINC T-LIGHT HOLDER STARS SMALL</th>\n <th>ZINC WILLIE WINKIE CANDLE STICK</th>\n </tr>\n <tr>\n <th>InvoiceNo</th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>536527</th>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>536840</th>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>536861</th>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>536967</th>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>536983</th>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n </tbody>\n</table>\n<p>5 rows × 1695 columns</p>\n</div>"
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_de.head()"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-28T08:52:31.825461Z",
"start_time": "2024-02-28T08:52:31.813514Z"
}
},
"id": "e4247c5f2563b3ed",
"execution_count": 20
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": "Description 10 COLOUR SPACEBOY PEN 12 COLOURED PARTY BALLOONS \\\nInvoiceNo \n536527 0 0 \n536840 0 0 \n536861 0 0 \n536967 0 0 \n536983 0 0 \n\nDescription 12 IVORY ROSE PEG PLACE SETTINGS \\\nInvoiceNo \n536527 0 \n536840 0 \n536861 0 \n536967 0 \n536983 0 \n\nDescription 12 MESSAGE CARDS WITH ENVELOPES 12 PENCIL SMALL TUBE WOODLAND \\\nInvoiceNo \n536527 0 0 \n536840 0 0 \n536861 0 0 \n536967 0 0 \n536983 0 0 \n\nDescription 12 PENCILS SMALL TUBE RED RETROSPOT 12 PENCILS SMALL TUBE SKULL \\\nInvoiceNo \n536527 0 0 \n536840 0 0 \n536861 0 0 \n536967 0 0 \n536983 0 0 \n\nDescription 12 PENCILS TALL TUBE POSY 12 PENCILS TALL TUBE RED RETROSPOT \\\nInvoiceNo \n536527 0 0 \n536840 0 0 \n536861 0 0 \n536967 0 0 \n536983 0 0 \n\nDescription 12 PENCILS TALL TUBE SKULLS ... YULETIDE IMAGES GIFT WRAP SET \\\nInvoiceNo ... \n536527 0 ... 0 \n536840 0 ... 0 \n536861 0 ... 0 \n536967 0 ... 0 \n536983 0 ... 0 \n\nDescription ZINC HEART T-LIGHT HOLDER ZINC STAR T-LIGHT HOLDER \\\nInvoiceNo \n536527 0 0 \n536840 0 0 \n536861 0 0 \n536967 0 0 \n536983 0 0 \n\nDescription ZINC BOX SIGN HOME ZINC FOLKART SLEIGH BELLS \\\nInvoiceNo \n536527 0 0 \n536840 0 0 \n536861 0 0 \n536967 0 0 \n536983 0 0 \n\nDescription ZINC HEART LATTICE T-LIGHT HOLDER ZINC METAL HEART DECORATION \\\nInvoiceNo \n536527 0 0 \n536840 0 0 \n536861 0 0 \n536967 0 0 \n536983 0 0 \n\nDescription ZINC T-LIGHT HOLDER STAR LARGE ZINC T-LIGHT HOLDER STARS SMALL \\\nInvoiceNo \n536527 0 0 \n536840 0 0 \n536861 0 0 \n536967 0 0 \n536983 0 0 \n\nDescription ZINC WILLIE WINKIE CANDLE STICK \nInvoiceNo \n536527 0 \n536840 0 \n536861 0 \n536967 0 \n536983 0 \n\n[5 rows x 1695 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th>Description</th>\n <th>10 COLOUR SPACEBOY PEN</th>\n <th>12 COLOURED PARTY BALLOONS</th>\n <th>12 IVORY ROSE PEG PLACE SETTINGS</th>\n <th>12 MESSAGE CARDS WITH ENVELOPES</th>\n <th>12 PENCIL SMALL TUBE WOODLAND</th>\n <th>12 PENCILS SMALL TUBE RED RETROSPOT</th>\n <th>12 PENCILS SMALL TUBE SKULL</th>\n <th>12 PENCILS TALL TUBE POSY</th>\n <th>12 PENCILS TALL TUBE RED RETROSPOT</th>\n <th>12 PENCILS TALL TUBE SKULLS</th>\n <th>...</th>\n <th>YULETIDE IMAGES GIFT WRAP SET</th>\n <th>ZINC HEART T-LIGHT HOLDER</th>\n <th>ZINC STAR T-LIGHT HOLDER</th>\n <th>ZINC BOX SIGN HOME</th>\n <th>ZINC FOLKART SLEIGH BELLS</th>\n <th>ZINC HEART LATTICE T-LIGHT HOLDER</th>\n <th>ZINC METAL HEART DECORATION</th>\n <th>ZINC T-LIGHT HOLDER STAR LARGE</th>\n <th>ZINC T-LIGHT HOLDER STARS SMALL</th>\n <th>ZINC WILLIE WINKIE CANDLE STICK</th>\n </tr>\n <tr>\n <th>InvoiceNo</th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>536527</th>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>...</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n </tr>\n <tr>\n <th>536840</th>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>...</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n </tr>\n <tr>\n <th>536861</th>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>...</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n </tr>\n <tr>\n <th>536967</th>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>...</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n </tr>\n <tr>\n <th>536983</th>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>...</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n </tr>\n </tbody>\n</table>\n<p>5 rows × 1695 columns</p>\n</div>"
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def encode_units(x):\n",
" if x <= 0:\n",
" return 0\n",
" if x >= 1:\n",
" return 1\n",
"\n",
"df_de_sets = df_de.map(encode_units)\n",
"df_de_sets.head()"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-28T09:01:47.204060Z",
"start_time": "2024-02-28T09:01:47.033821Z"
}
},
"id": "807fccc143c6b7d4",
"execution_count": 22
},
{
"cell_type": "code",
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\Daming\\scoop\\apps\\python\\current\\Lib\\site-packages\\mlxtend\\frequent_patterns\\fpcommon.py:109: DeprecationWarning: DataFrames with non-bool types result in worse computationalperformance and their support might be discontinued in the future.Please use a DataFrame with bool type\n",
" warnings.warn(\n"
]
},
{
"data": {
"text/plain": " support itemsets\n0 0.102845 (6 RIBBONS RUSTIC CHARM)\n1 0.070022 (ALARM CLOCK BAKELIKE PINK)\n2 0.072210 (GUMBALL COAT RACK)\n3 0.091904 (JAM MAKING SET PRINTED)\n4 0.078775 (JUMBO BAG RED RETROSPOT)\n5 0.100656 (JUMBO BAG WOODLAND ANIMALS)\n6 0.078775 (LUNCH BAG WOODLAND)\n7 0.085339 (PACK OF 72 RETROSPOT CAKE CASES)\n8 0.115974 (PLASTERS IN TIN CIRCUS PARADE)\n9 0.107221 (PLASTERS IN TIN SPACEBOY)\n10 0.070022 (PLASTERS IN TIN STRONGMAN)\n11 0.137856 (PLASTERS IN TIN WOODLAND ANIMALS)\n12 0.818381 (POSTAGE)\n13 0.070022 (RED RETROSPOT CHARLOTTE BAG)\n14 0.070022 (RED RETROSPOT CUP)\n15 0.096280 (RED TOADSTOOL LED NIGHT LIGHT)\n16 0.137856 (REGENCY CAKESTAND 3 TIER)\n17 0.157549 (ROUND SNACK BOXES SET OF 4 FRUITS)\n18 0.245077 (ROUND SNACK BOXES SET OF4 WOODLAND)\n19 0.070022 (SET OF 3 REGENCY CAKE TINS)\n20 0.102845 (SPACEBOY LUNCH BOX)\n21 0.078775 (STRAWBERRY LUNCH BOX WITH CUTLERY)\n22 0.126915 (WOODLAND CHARLOTTE BAG)\n23 0.091904 (6 RIBBONS RUSTIC CHARM, POSTAGE)\n24 0.074398 (JAM MAKING SET PRINTED, POSTAGE)\n25 0.087527 (JUMBO BAG WOODLAND ANIMALS, POSTAGE)\n26 0.100656 (PLASTERS IN TIN CIRCUS PARADE, POSTAGE)\n27 0.100656 (PLASTERS IN TIN SPACEBOY, POSTAGE)\n28 0.118162 (PLASTERS IN TIN WOODLAND ANIMALS, POSTAGE)\n29 0.074398 (ROUND SNACK BOXES SET OF4 WOODLAND, PLASTERS ...\n30 0.080963 (RED TOADSTOOL LED NIGHT LIGHT, POSTAGE)\n31 0.120350 (REGENCY CAKESTAND 3 TIER, POSTAGE)\n32 0.150985 (ROUND SNACK BOXES SET OF 4 FRUITS, POSTAGE)\n33 0.225383 (ROUND SNACK BOXES SET OF4 WOODLAND, POSTAGE)\n34 0.091904 (SPACEBOY LUNCH BOX, POSTAGE)\n35 0.115974 (POSTAGE, WOODLAND CHARLOTTE BAG)\n36 0.131291 (ROUND SNACK BOXES SET OF 4 FRUITS, ROUND SNAC...\n37 0.070022 (ROUND SNACK BOXES SET OF4 WOODLAND, SPACEBOY ...\n38 0.124726 (ROUND SNACK BOXES SET OF 4 FRUITS, ROUND SNAC...",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>support</th>\n <th>itemsets</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>0.102845</td>\n <td>(6 RIBBONS RUSTIC CHARM)</td>\n </tr>\n <tr>\n <th>1</th>\n <td>0.070022</td>\n <td>(ALARM CLOCK BAKELIKE PINK)</td>\n </tr>\n <tr>\n <th>2</th>\n <td>0.072210</td>\n <td>(GUMBALL COAT RACK)</td>\n </tr>\n <tr>\n <th>3</th>\n <td>0.091904</td>\n <td>(JAM MAKING SET PRINTED)</td>\n </tr>\n <tr>\n <th>4</th>\n <td>0.078775</td>\n <td>(JUMBO BAG RED RETROSPOT)</td>\n </tr>\n <tr>\n <th>5</th>\n <td>0.100656</td>\n <td>(JUMBO BAG WOODLAND ANIMALS)</td>\n </tr>\n <tr>\n <th>6</th>\n <td>0.078775</td>\n <td>(LUNCH BAG WOODLAND)</td>\n </tr>\n <tr>\n <th>7</th>\n <td>0.085339</td>\n <td>(PACK OF 72 RETROSPOT CAKE CASES)</td>\n </tr>\n <tr>\n <th>8</th>\n <td>0.115974</td>\n <td>(PLASTERS IN TIN CIRCUS PARADE)</td>\n </tr>\n <tr>\n <th>9</th>\n <td>0.107221</td>\n <td>(PLASTERS IN TIN SPACEBOY)</td>\n </tr>\n <tr>\n <th>10</th>\n <td>0.070022</td>\n <td>(PLASTERS IN TIN STRONGMAN)</td>\n </tr>\n <tr>\n <th>11</th>\n <td>0.137856</td>\n <td>(PLASTERS IN TIN WOODLAND ANIMALS)</td>\n </tr>\n <tr>\n <th>12</th>\n <td>0.818381</td>\n <td>(POSTAGE)</td>\n </tr>\n <tr>\n <th>13</th>\n <td>0.070022</td>\n <td>(RED RETROSPOT CHARLOTTE BAG)</td>\n </tr>\n <tr>\n <th>14</th>\n <td>0.070022</td>\n <td>(RED RETROSPOT CUP)</td>\n </tr>\n <tr>\n <th>15</th>\n <td>0.096280</td>\n <td>(RED TOADSTOOL LED NIGHT LIGHT)</td>\n </tr>\n <tr>\n <th>16</th>\n <td>0.137856</td>\n <td>(REGENCY CAKESTAND 3 TIER)</td>\n </tr>\n <tr>\n <th>17</th>\n <td>0.157549</td>\n <td>(ROUND SNACK BOXES SET OF 4 FRUITS)</td>\n </tr>\n <tr>\n <th>18</th>\n <td>0.245077</td>\n <td>(ROUND SNACK BOXES SET OF4 WOODLAND)</td>\n </tr>\n <tr>\n <th>19</th>\n <td>0.070022</td>\n <td>(SET OF 3 REGENCY CAKE TINS)</td>\n </tr>\n <tr>\n <th>20</th>\n <td>0.102845</td>\n <td>(SPACEBOY LUNCH BOX)</td>\n </tr>\n <tr>\n <th>21</th>\n <td>0.078775</td>\n <td>(STRAWBERRY LUNCH BOX WITH CUTLERY)</td>\n </tr>\n <tr>\n <th>22</th>\n <td>0.126915</td>\n <td>(WOODLAND CHARLOTTE BAG)</td>\n </tr>\n <tr>\n <th>23</th>\n <td>0.091904</td>\n <td>(6 RIBBONS RUSTIC CHARM, POSTAGE)</td>\n </tr>\n <tr>\n <th>24</th>\n <td>0.074398</td>\n <td>(JAM MAKING SET PRINTED, POSTAGE)</td>\n </tr>\n <tr>\n <th>25</th>\n <td>0.087527</td>\n <td>(JUMBO BAG WOODLAND ANIMALS, POSTAGE)</td>\n </tr>\n <tr>\n <th>26</th>\n <td>0.100656</td>\n <td>(PLASTERS IN TIN CIRCUS PARADE, POSTAGE)</td>\n </tr>\n <tr>\n <th>27</th>\n <td>0.100656</td>\n <td>(PLASTERS IN TIN SPACEBOY, POSTAGE)</td>\n </tr>\n <tr>\n <th>28</th>\n <td>0.118162</td>\n <td>(PLASTERS IN TIN WOODLAND ANIMALS, POSTAGE)</td>\n </tr>\n <tr>\n <th>29</th>\n <td>0.074398</td>\n <td>(ROUND SNACK BOXES SET OF4 WOODLAND, PLASTERS ...</td>\n </tr>\n <tr>\n <th>30</th>\n <td>0.080963</td>\n <td>(RED TOADSTOOL LED NIGHT LIGHT, POSTAGE)</td>\n </tr>\n <tr>\n <th>31</th>\n <td>0.120350</td>\n <td>(REGENCY CAKESTAND 3 TIER, POSTAGE)</td>\n </tr>\n <tr>\n <th>32</th>\n <td>0.150985</td>\n <td>(ROUND SNACK BOXES SET OF 4 FRUITS, POSTAGE)</td>\n </tr>\n <tr>\n <th>33</th>\n <td>0.225383</td>\n <td>(ROUND SNACK BOXES SET OF4 WOODLAND, POSTAGE)</td>\n </tr>\n <tr>\n <th>34</th>\n <td>0.091904</td>\n <td>(SPACEBOY LUNCH BOX, POSTAGE)</td>\n </tr>\n <tr>\n <th>35</th>\n <td>0.115974</td>\n <td>(POSTAGE, WOODLAND CHARLOTTE BAG)</td>\n </tr>\n <tr>\n <th>36</th>\n <td>0.131291</td>\n <td>(ROUND SNACK BOXES SET OF 4 FRUITS, ROUND SNAC...</td>\n </tr>\n <tr>\n <th>37</th>\n <td>0.070022</td>\n <td>(ROUND SNACK BOXES SET OF4 WOODLAND, SPACEBOY ...</td>\n </tr>\n <tr>\n <th>38</th>\n <td>0.124726</td>\n <td>(ROUND SNACK BOXES SET OF 4 FRUITS, ROUND SNAC...</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from mlxtend.frequent_patterns import apriori\n",
"\n",
"df_Frequent_Itemsets = apriori(df_de_sets\n",
" , min_support=0.07\n",
" , use_colnames=True)\n",
"df_Frequent_Itemsets\n",
"\n"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-28T09:31:58.626891Z",
"start_time": "2024-02-28T09:31:58.609867Z"
}
},
"id": "201880b3fe13ab0e",
"execution_count": 28
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": "(39, 2)"
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_Frequent_Itemsets.shape"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-28T09:06:45.962716Z",
"start_time": "2024-02-28T09:06:45.959347Z"
}
},
"id": "364e7a230b0b1822",
"execution_count": 24
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": " antecedents consequents \\\n0 (6 RIBBONS RUSTIC CHARM) (POSTAGE) \n1 (POSTAGE) (6 RIBBONS RUSTIC CHARM) \n2 (JUMBO BAG WOODLAND ANIMALS) (POSTAGE) \n3 (POSTAGE) (JUMBO BAG WOODLAND ANIMALS) \n4 (PLASTERS IN TIN CIRCUS PARADE) (POSTAGE) \n\n antecedent support consequent support support confidence lift \\\n0 0.102845 0.818381 0.091904 0.893617 1.091933 \n1 0.818381 0.102845 0.091904 0.112299 1.091933 \n2 0.100656 0.818381 0.087527 0.869565 1.062544 \n3 0.818381 0.100656 0.087527 0.106952 1.062544 \n4 0.115974 0.818381 0.100656 0.867925 1.060539 \n\n leverage conviction zhangs_metric \n0 0.007738 1.707221 0.093844 \n1 0.007738 1.010651 0.463569 \n2 0.005152 1.392414 0.065450 \n3 0.005152 1.007049 0.324096 \n4 0.005746 1.375117 0.064572 ",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>antecedents</th>\n <th>consequents</th>\n <th>antecedent support</th>\n <th>consequent support</th>\n <th>support</th>\n <th>confidence</th>\n <th>lift</th>\n <th>leverage</th>\n <th>conviction</th>\n <th>zhangs_metric</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>(6 RIBBONS RUSTIC CHARM)</td>\n <td>(POSTAGE)</td>\n <td>0.102845</td>\n <td>0.818381</td>\n <td>0.091904</td>\n <td>0.893617</td>\n <td>1.091933</td>\n <td>0.007738</td>\n <td>1.707221</td>\n <td>0.093844</td>\n </tr>\n <tr>\n <th>1</th>\n <td>(POSTAGE)</td>\n <td>(6 RIBBONS RUSTIC CHARM)</td>\n <td>0.818381</td>\n <td>0.102845</td>\n <td>0.091904</td>\n <td>0.112299</td>\n <td>1.091933</td>\n <td>0.007738</td>\n <td>1.010651</td>\n <td>0.463569</td>\n </tr>\n <tr>\n <th>2</th>\n <td>(JUMBO BAG WOODLAND ANIMALS)</td>\n <td>(POSTAGE)</td>\n <td>0.100656</td>\n <td>0.818381</td>\n <td>0.087527</td>\n <td>0.869565</td>\n <td>1.062544</td>\n <td>0.005152</td>\n <td>1.392414</td>\n <td>0.065450</td>\n </tr>\n <tr>\n <th>3</th>\n <td>(POSTAGE)</td>\n <td>(JUMBO BAG WOODLAND ANIMALS)</td>\n <td>0.818381</td>\n <td>0.100656</td>\n <td>0.087527</td>\n <td>0.106952</td>\n <td>1.062544</td>\n <td>0.005152</td>\n <td>1.007049</td>\n <td>0.324096</td>\n </tr>\n <tr>\n <th>4</th>\n <td>(PLASTERS IN TIN CIRCUS PARADE)</td>\n <td>(POSTAGE)</td>\n <td>0.115974</td>\n <td>0.818381</td>\n <td>0.100656</td>\n <td>0.867925</td>\n <td>1.060539</td>\n <td>0.005746</td>\n <td>1.375117</td>\n <td>0.064572</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from mlxtend.frequent_patterns import association_rules\n",
"\n",
"df_AssociationRules = association_rules(df_Frequent_Itemsets\n",
" , metric=\"lift\"\n",
" , min_threshold=1)\n",
"df_AssociationRules.head()"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-28T09:07:29.743069Z",
"start_time": "2024-02-28T09:07:29.733576Z"
}
},
"id": "d4c9131c77fdc880",
"execution_count": 25
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": " antecedents \\\n24 (ROUND SNACK BOXES SET OF 4 FRUITS) \n29 (ROUND SNACK BOXES SET OF 4 FRUITS, POSTAGE) \n\n consequents antecedent support \\\n24 (ROUND SNACK BOXES SET OF4 WOODLAND) 0.157549 \n29 (ROUND SNACK BOXES SET OF4 WOODLAND) 0.150985 \n\n consequent support support confidence lift leverage conviction \\\n24 0.245077 0.131291 0.833333 3.400298 0.092679 4.52954 \n29 0.245077 0.124726 0.826087 3.370730 0.087724 4.34081 \n\n zhangs_metric \n24 0.837922 \n29 0.828405 ",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>antecedents</th>\n <th>consequents</th>\n <th>antecedent support</th>\n <th>consequent support</th>\n <th>support</th>\n <th>confidence</th>\n <th>lift</th>\n <th>leverage</th>\n <th>conviction</th>\n <th>zhangs_metric</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>24</th>\n <td>(ROUND SNACK BOXES SET OF 4 FRUITS)</td>\n <td>(ROUND SNACK BOXES SET OF4 WOODLAND)</td>\n <td>0.157549</td>\n <td>0.245077</td>\n <td>0.131291</td>\n <td>0.833333</td>\n <td>3.400298</td>\n <td>0.092679</td>\n <td>4.52954</td>\n <td>0.837922</td>\n </tr>\n <tr>\n <th>29</th>\n <td>(ROUND SNACK BOXES SET OF 4 FRUITS, POSTAGE)</td>\n <td>(ROUND SNACK BOXES SET OF4 WOODLAND)</td>\n <td>0.150985</td>\n <td>0.245077</td>\n <td>0.124726</td>\n <td>0.826087</td>\n <td>3.370730</td>\n <td>0.087724</td>\n <td>4.34081</td>\n <td>0.828405</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_A= df_AssociationRules[(df_AssociationRules['lift'] >= 2) &\n",
" (df_AssociationRules['confidence'] >= 0.8) ]\n",
"df_A"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-28T09:10:06.163813Z",
"start_time": "2024-02-28T09:10:06.152727Z"
}
},
"id": "2ec1bfa5621f7326",
"execution_count": 26
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
"image/png": "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xAtqpYAyY/VJxU2jRJuA2l2Zm4jImQiSdGd9l8vKcrwDnupKEAB/fw+nGEt1OM5/SIKAdclXMP/nE9U+17z+kejVxh9iHXZRNRT+PJ0Lx+lcHHmcFbXVhBenJJIBQZLQp10gREnCO9tOWRxTo1YKmNE7Ag+29HXIMENEVN8YaIhkQqcQMDi6Ee5r6YcD6dex71wuBAG4p4UvYhp7IchNA8HRvloRETUQBhoiGREkIMRVjcbhAejfLggAIIpi+RQxwwwR3cEYaIhkSJIAo5GnZxMRVbDbadtEREREtsJAQ0RERLLHQENERESyx0BDREREssdAQ0RERLLHQENERESyx0BDREREssdAQ0RERLLHQENERESyx0BDREREssdAQ0RERLLHQENERESyx0BDREREssdAQ0RERLLHQENERESyx0BDREREssdAQ0RERLLHQENERESyx0BDREREssdAQ0RERLLHQENERESyx0BDREREssdAQ0RERLLHQENERESyx0BDREREssdAQ0RERLLHQENERESyx0BDREREssdAQ0RERLKnsncBREREdyJRFGE0GuxdBgBAEICSkhKUlekhSQ372kqlCgrF7c+vMNBYqQxAxo1SnMkuRJlBRJCnC1r5ucFLo2jwXwYiIpIPSZKQl5eD4uICe5diJidHAVEU7fLaOp07PD19IQiC1c/BQGOFHL0Ri7edwi/Hr5m1B7i7YPHgKET6uzLUEBFRpSrCjLu7DzQal9v6ELclpVKA0diwH16SJEGvL0VBQS4AwMvLz+rnYqCpo0KDhFkbj2PP2RyL+zILSvHv1Qfw5ahOaOHpYofqiIjIkYmi0RRm3N097V2OGZVKAYOh4WdoNJryz8uCglx4ePhYvfuJBwXXUVpuUaVhpoLeKGL1XxcgOUjiJiIix2E0GgH88yFO5Srej9s5poiBpg6USgW2HL1aY7+fki/jWlFZA1RERERy5Ci7mRyFLd4PBpo6EATg0vXiGvuJElBiMDZARURERAQw0NSJKEoID/aosZ+LSgE3DQ9PIiIix3D58iUkJMSb/nvgwH4AQEZGOkaOHIpu3e7F8uUfIzc3Bzt2bLNztdbhp24diKKErq0D8Nnuc9X2e6pzUwToVJBEnupERESOZcOGLfD09AIArF37HQBg9erv4OPjjffffweSJKFbt4fsWaJVOENTR828tRjS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"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"\n",
"sns.scatterplot(x = \"support\"\n",
" , y = \"confidence\"\n",
" , size = \"lift\"\n",
" , data = df_AssociationRules)\n",
"plt.show()"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-28T09:10:24.410928Z",
"start_time": "2024-02-28T09:10:24.277270Z"
}
},
"id": "812f864d292074de",
"execution_count": 27
},
{
"cell_type": "code",
"outputs": [],
"source": [],
"metadata": {
"collapsed": false
},
"id": "1ba3d127d747b70d"
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.7"
}
},
"nbformat": 4,
"nbformat_minor": 5
}