{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Our team members:\n", "\n", "\n", "\n", "In this jupiter notebook, we only test the code with the first 100 lines of data, due to the enourmous amount of transactions, it takes too long to produce result. " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "from itertools import combinations" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "ename": "FileNotFoundError", "evalue": "[Errno 2] No such file or directory: 'C:\\\\Users\\\\Admin\\\\Documents\\\\machine learning\\\\SuperCenterDataNew.csv'", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", "Cell \u001b[1;32mIn[2], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m RawData \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mread_csv(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC:\u001b[39m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;124mUsers\u001b[39m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;124mAdmin\u001b[39m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;124mDocuments\u001b[39m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;124mmachine learning\u001b[39m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;124mSuperCenterDataNew.csv\u001b[39m\u001b[38;5;124m\"\u001b[39m, header\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m)\n", "File \u001b[1;32mc:\\Users\\ADMIN\\anaconda3\\Lib\\site-packages\\pandas\\io\\parsers\\readers.py:1026\u001b[0m, in \u001b[0;36mread_csv\u001b[1;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, date_format, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, on_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options, dtype_backend)\u001b[0m\n\u001b[0;32m 1013\u001b[0m kwds_defaults \u001b[38;5;241m=\u001b[39m _refine_defaults_read(\n\u001b[0;32m 1014\u001b[0m dialect,\n\u001b[0;32m 1015\u001b[0m delimiter,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 1022\u001b[0m dtype_backend\u001b[38;5;241m=\u001b[39mdtype_backend,\n\u001b[0;32m 1023\u001b[0m )\n\u001b[0;32m 1024\u001b[0m kwds\u001b[38;5;241m.\u001b[39mupdate(kwds_defaults)\n\u001b[1;32m-> 1026\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m _read(filepath_or_buffer, kwds)\n", "File \u001b[1;32mc:\\Users\\ADMIN\\anaconda3\\Lib\\site-packages\\pandas\\io\\parsers\\readers.py:620\u001b[0m, in \u001b[0;36m_read\u001b[1;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[0;32m 617\u001b[0m _validate_names(kwds\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mnames\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m))\n\u001b[0;32m 619\u001b[0m \u001b[38;5;66;03m# Create the parser.\u001b[39;00m\n\u001b[1;32m--> 620\u001b[0m parser \u001b[38;5;241m=\u001b[39m TextFileReader(filepath_or_buffer, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwds)\n\u001b[0;32m 622\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m chunksize \u001b[38;5;129;01mor\u001b[39;00m iterator:\n\u001b[0;32m 623\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m parser\n", "File \u001b[1;32mc:\\Users\\ADMIN\\anaconda3\\Lib\\site-packages\\pandas\\io\\parsers\\readers.py:1620\u001b[0m, in \u001b[0;36mTextFileReader.__init__\u001b[1;34m(self, f, engine, **kwds)\u001b[0m\n\u001b[0;32m 1617\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhas_index_names\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m kwds[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhas_index_names\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[0;32m 1619\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles: IOHandles \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m-> 1620\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_engine \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_make_engine(f, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mengine)\n", "File \u001b[1;32mc:\\Users\\ADMIN\\anaconda3\\Lib\\site-packages\\pandas\\io\\parsers\\readers.py:1880\u001b[0m, in \u001b[0;36mTextFileReader._make_engine\u001b[1;34m(self, f, engine)\u001b[0m\n\u001b[0;32m 1878\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m mode:\n\u001b[0;32m 1879\u001b[0m mode \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m-> 1880\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles \u001b[38;5;241m=\u001b[39m get_handle(\n\u001b[0;32m 1881\u001b[0m f,\n\u001b[0;32m 1882\u001b[0m mode,\n\u001b[0;32m 1883\u001b[0m encoding\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mencoding\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m),\n\u001b[0;32m 1884\u001b[0m compression\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcompression\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m),\n\u001b[0;32m 1885\u001b[0m memory_map\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmemory_map\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mFalse\u001b[39;00m),\n\u001b[0;32m 1886\u001b[0m is_text\u001b[38;5;241m=\u001b[39mis_text,\n\u001b[0;32m 1887\u001b[0m errors\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mencoding_errors\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mstrict\u001b[39m\u001b[38;5;124m\"\u001b[39m),\n\u001b[0;32m 1888\u001b[0m storage_options\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mstorage_options\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m),\n\u001b[0;32m 1889\u001b[0m )\n\u001b[0;32m 1890\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 1891\u001b[0m f \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles\u001b[38;5;241m.\u001b[39mhandle\n", "File \u001b[1;32mc:\\Users\\ADMIN\\anaconda3\\Lib\\site-packages\\pandas\\io\\common.py:873\u001b[0m, in \u001b[0;36mget_handle\u001b[1;34m(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)\u001b[0m\n\u001b[0;32m 868\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(handle, \u001b[38;5;28mstr\u001b[39m):\n\u001b[0;32m 869\u001b[0m \u001b[38;5;66;03m# Check whether the filename is to be opened in binary mode.\u001b[39;00m\n\u001b[0;32m 870\u001b[0m \u001b[38;5;66;03m# Binary mode does not support 'encoding' and 'newline'.\u001b[39;00m\n\u001b[0;32m 871\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m ioargs\u001b[38;5;241m.\u001b[39mencoding \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m ioargs\u001b[38;5;241m.\u001b[39mmode:\n\u001b[0;32m 872\u001b[0m \u001b[38;5;66;03m# Encoding\u001b[39;00m\n\u001b[1;32m--> 873\u001b[0m handle \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mopen\u001b[39m(\n\u001b[0;32m 874\u001b[0m handle,\n\u001b[0;32m 875\u001b[0m ioargs\u001b[38;5;241m.\u001b[39mmode,\n\u001b[0;32m 876\u001b[0m encoding\u001b[38;5;241m=\u001b[39mioargs\u001b[38;5;241m.\u001b[39mencoding,\n\u001b[0;32m 877\u001b[0m errors\u001b[38;5;241m=\u001b[39merrors,\n\u001b[0;32m 878\u001b[0m newline\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 879\u001b[0m )\n\u001b[0;32m 880\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 881\u001b[0m \u001b[38;5;66;03m# Binary mode\u001b[39;00m\n\u001b[0;32m 882\u001b[0m handle \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mopen\u001b[39m(handle, ioargs\u001b[38;5;241m.\u001b[39mmode)\n", "\u001b[1;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'C:\\\\Users\\\\Admin\\\\Documents\\\\machine learning\\\\SuperCenterDataNew.csv'" ] } ], "source": [ "RawData = pd.read_csv(\"C:\\\\Users\\\\Admin\\\\Documents\\\\machine learning\\\\SuperCenterDataNew.csv\", header=None)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0123456789...66676869707172737475
03948.0130.0147.0475.02998.04792.05478.07146.07160.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
13248.0NaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
24879.0232.0340.0396.0649.0911.01016.01020.01172.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
33248.065.0130.0772.0816.01344.03220.04445.06536.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
439175.0421.0806.01025.01629.02424.03151.0NaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
..................................................................
3687639875.02665.02962.012959.014070.014406.015518.016379.0NaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
368773941.0101.0346.0393.0413.0479.0522.0586.0635.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
3687823104267.0NaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
368793948.02528.0NaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
368803239.0205.0242.01393.0NaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", "

36881 rows × 76 columns

\n", "
" ], "text/plain": [ " 0 1 2 3 4 5 6 7 \\\n", "0 39 48.0 130.0 147.0 475.0 2998.0 4792.0 5478.0 \n", "1 32 48.0 NaN NaN NaN NaN NaN NaN \n", "2 48 79.0 232.0 340.0 396.0 649.0 911.0 1016.0 \n", "3 32 48.0 65.0 130.0 772.0 816.0 1344.0 3220.0 \n", "4 39 175.0 421.0 806.0 1025.0 1629.0 2424.0 3151.0 \n", "... ... ... ... ... ... ... ... ... \n", "36876 39 875.0 2665.0 2962.0 12959.0 14070.0 14406.0 15518.0 \n", "36877 39 41.0 101.0 346.0 393.0 413.0 479.0 522.0 \n", "36878 2310 4267.0 NaN NaN NaN NaN NaN NaN \n", "36879 39 48.0 2528.0 NaN NaN NaN NaN NaN \n", "36880 32 39.0 205.0 242.0 1393.0 NaN NaN NaN \n", "\n", " 8 9 ... 66 67 68 69 70 71 72 73 74 75 \n", "0 7146.0 7160.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", "1 NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", "2 1020.0 1172.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", "3 4445.0 6536.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", "4 NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", "... ... ... ... .. .. .. .. .. .. .. .. .. .. \n", "36876 16379.0 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", "36877 586.0 635.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", "36878 NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", "36879 NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", "36880 NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", "\n", "[36881 rows x 76 columns]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "RawData" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "def load_dataset(num_transactions):\n", " dataset = []\n", " for _, row in RawData.head(num_transactions).iterrows():\n", " transaction = set(row.dropna().values)\n", " dataset.append(transaction)\n", " return dataset" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "def get_frequent_itemsets(dataset, support):\n", " itemsets = {}\n", " for transaction in dataset:\n", " for item in transaction:\n", " itemsets[item] = itemsets.get(item, 0) + 1\n", "\n", " frequent_itemsets = {}\n", " for item, count in itemsets.items():\n", " if count >= support:\n", " frequent_itemsets[frozenset([item])] = count\n", "\n", " return frequent_itemsets" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "def apriori(dataset, support):\n", " frequent_itemsets = {}\n", " k = 1\n", "\n", " while True:\n", " candidates = {}\n", " for transaction in dataset:\n", " for itemset in combinations(transaction, k):\n", " itemset = tuple(sorted(list(itemset)))\n", " candidates[itemset] = candidates.get(itemset, 0) + 1\n", "\n", " frequent_itemsets_k = {}\n", " for itemset, count in candidates.items():\n", " if count >= support:\n", " frequent_itemsets_k[itemset] = count\n", "\n", " if not frequent_itemsets_k:\n", " break\n", "\n", " frequent_itemsets.update(frequent_itemsets_k)\n", " k += 1\n", "\n", " return frequent_itemsets" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[{39.0,\n", " 48.0,\n", " 130.0,\n", " 147.0,\n", " 475.0,\n", " 2998.0,\n", " 4792.0,\n", " 5478.0,\n", " 7146.0,\n", " 7160.0,\n", " 10410.0},\n", " {32.0, 48.0},\n", " {48.0,\n", " 79.0,\n", " 232.0,\n", " 340.0,\n", " 396.0,\n", " 649.0,\n", " 911.0,\n", " 1016.0,\n", " 1020.0,\n", " 1172.0,\n", " 1874.0,\n", " 2115.0,\n", " 2208.0,\n", " 2792.0,\n", " 3106.0,\n", " 3964.0,\n", " 4070.0,\n", " 4146.0,\n", " 4764.0,\n", " 5432.0,\n", " 6446.0,\n", " 9082.0,\n", " 9231.0,\n", " 10579.0,\n", " 14029.0,\n", " 14350.0},\n", " {32.0,\n", " 48.0,\n", " 65.0,\n", " 130.0,\n", " 772.0,\n", " 816.0,\n", " 1344.0,\n", " 3220.0,\n", " 4445.0,\n", " 6536.0,\n", " 13083.0},\n", " {39.0, 175.0, 421.0, 806.0, 1025.0, 1629.0, 2424.0, 3151.0},\n", " {31.0,\n", " 39.0,\n", " 65.0,\n", " 107.0,\n", " 179.0,\n", " 301.0,\n", " 441.0,\n", " 533.0,\n", " 548.0,\n", " 878.0,\n", " 961.0,\n", " 1024.0,\n", " 1319.0,\n", " 1404.0,\n", " 1476.0,\n", " 1486.0,\n", " 1897.0,\n", " 1987.0,\n", " 2052.0,\n", " 2083.0,\n", " 2625.0,\n", " 4064.0,\n", " 4753.0,\n", " 4953.0,\n", " 5051.0,\n", " 5347.0,\n", " 6567.0,\n", " 7017.0,\n", " 9271.0,\n", " 10074.0,\n", " 13062.0,\n", " 13695.0},\n", " {39.0, 232.0, 495.0, 2008.0, 7378.0, 10650.0},\n", " {39.0, 5994.0},\n", " {55.0},\n", " {664.0, 1052.0, 4383.0, 11702.0, 12285.0, 12469.0},\n", " {39.0,\n", " 48.0,\n", " 89.0,\n", " 186.0,\n", " 192.0,\n", " 237.0,\n", " 365.0,\n", " 938.0,\n", " 1066.0,\n", " 1071.0,\n", " 1677.0,\n", " 3539.0,\n", " 5782.0,\n", " 11173.0},\n", " {76.0,\n", " 961.0,\n", " 1211.0,\n", " 1239.0,\n", " 1677.0,\n", " 2748.0,\n", " 2815.0,\n", " 2915.0,\n", " 3314.0,\n", " 3510.0,\n", " 3794.0,\n", " 3972.0,\n", " 4211.0,\n", " 4299.0,\n", " 4730.0,\n", " 5489.0,\n", " 5714.0,\n", " 6404.0,\n", " 6893.0,\n", " 9042.0,\n", " 9802.0,\n", " 10451.0,\n", " 10540.0,\n", " 11104.0,\n", " 11383.0,\n", " 11692.0,\n", " 12437.0,\n", " 12946.0,\n", " 13413.0,\n", " 14029.0,\n", " 14098.0,\n", " 14345.0},\n", " {45.0,\n", " 111.0,\n", " 759.0,\n", " 825.0,\n", " 829.0,\n", " 1018.0,\n", " 1239.0,\n", " 2002.0,\n", " 2161.0,\n", " 2162.0,\n", " 2202.0,\n", " 2212.0,\n", " 2241.0,\n", " 2498.0,\n", " 2629.0,\n", " 2882.0,\n", " 2967.0,\n", " 3231.0,\n", " 3246.0,\n", " 3354.0,\n", " 3866.0,\n", " 4945.0,\n", " 6110.0,\n", " 7205.0,\n", " 8485.0,\n", " 10106.0,\n", " 11780.0,\n", " 12517.0,\n", " 14034.0,\n", " 14041.0,\n", " 14288.0},\n", " {32.0, 39.0, 48.0},\n", " {30.0,\n", " 39.0,\n", " 48.0,\n", " 526.0,\n", " 3972.0,\n", " 4145.0,\n", " 8985.0,\n", " 9802.0,\n", " 11252.0,\n", " 12794.0,\n", " 12981.0,\n", " 13709.0,\n", " 14385.0},\n", " {548.0, 1067.0, 13626.0},\n", " {39.0,\n", " 164.0,\n", " 165.0,\n", " 262.0,\n", " 696.0,\n", " 699.0,\n", " 1533.0,\n", " 1534.0,\n", " 3291.0,\n", " 3366.0,\n", " 4145.0,\n", " 8040.0,\n", " 9419.0,\n", " 13335.0,\n", " 14385.0},\n", " {5645.0, 13962.0},\n", " {48.0,\n", " 83.0,\n", " 101.0,\n", " 309.0,\n", " 606.0,\n", " 918.0,\n", " 1080.0,\n", " 2191.0,\n", " 3683.0,\n", " 4358.0,\n", " 4480.0,\n", " 10653.0},\n", " {39.0, 7112.0},\n", " {39.0,\n", " 79.0,\n", " 204.0,\n", " 561.0,\n", " 885.0,\n", " 2238.0,\n", " 4913.0,\n", " 10797.0,\n", " 10939.0,\n", " 11270.0,\n", " 13716.0,\n", " 14103.0,\n", " 14386.0},\n", " {270.0,\n", " 271.0,\n", " 350.0,\n", " 420.0,\n", " 522.0,\n", " 1600.0,\n", " 1619.0,\n", " 2168.0,\n", " 2208.0,\n", " 3735.0,\n", " 4764.0,\n", " 4976.0,\n", " 7603.0,\n", " 9579.0,\n", " 10184.0,\n", " 11336.0,\n", " 11457.0},\n", " {32.0,\n", " 39.0,\n", " 79.0,\n", " 147.0,\n", " 197.0,\n", " 587.0,\n", " 873.0,\n", " 947.0,\n", " 1486.0,\n", " 2117.0,\n", " 2511.0,\n", " 3390.0,\n", " 3774.0,\n", " 4051.0,\n", " 4055.0,\n", " 4093.0,\n", " 4698.0,\n", " 6028.0,\n", " 9802.0,\n", " 10510.0,\n", " 13258.0},\n", " {89.0, 334.0, 809.0, 885.0},\n", " {39.0,\n", " 48.0,\n", " 65.0,\n", " 301.0,\n", " 415.0,\n", " 475.0,\n", " 921.0,\n", " 993.0,\n", " 1252.0,\n", " 1629.0,\n", " 1752.0,\n", " 1811.0,\n", " 1976.0,\n", " 2054.0,\n", " 2785.0,\n", " 2815.0,\n", " 3896.0,\n", " 4859.0,\n", " 5481.0,\n", " 5594.0,\n", " 6736.0,\n", " 8762.0,\n", " 9541.0,\n", " 9858.0,\n", " 9887.0,\n", " 10444.0,\n", " 10584.0,\n", " 10627.0,\n", " 11747.0,\n", " 12951.0,\n", " 13018.0,\n", " 13135.0,\n", " 13341.0},\n", " {7.0,\n", " 48.0,\n", " 89.0,\n", " 375.0,\n", " 405.0,\n", " 544.0,\n", " 596.0,\n", " 2061.0,\n", " 2788.0,\n", " 4207.0,\n", " 7315.0,\n", " 8002.0,\n", " 9320.0,\n", " 10441.0,\n", " 13335.0,\n", " 13615.0,\n", " 14068.0,\n", " 14386.0,\n", " 14473.0},\n", " {39.0,\n", " 653.0,\n", " 727.0,\n", " 1329.0,\n", " 1696.0,\n", " 1804.0,\n", " 2046.0,\n", " 4144.0,\n", " 4224.0,\n", " 4550.0,\n", " 11718.0},\n", " {38.0,\n", " 39.0,\n", " 167.0,\n", " 260.0,\n", " 890.0,\n", " 1071.0,\n", " 1529.0,\n", " 3021.0,\n", " 3055.0,\n", " 7156.0,\n", " 10444.0},\n", " {1146.0},\n", " {39.0,\n", " 48.0,\n", " 79.0,\n", " 89.0,\n", " 101.0,\n", " 248.0,\n", " 258.0,\n", " 397.0,\n", " 399.0,\n", " 493.0,\n", " 548.0,\n", " 611.0,\n", " 875.0,\n", " 1043.0,\n", " 1115.0,\n", " 1344.0,\n", " 1486.0,\n", " 1659.0,\n", " 1805.0,\n", " 2609.0,\n", " 2623.0,\n", " 3130.0,\n", " 3291.0,\n", " 4277.0,\n", " 4502.0,\n", " 4546.0,\n", " 4852.0,\n", " 5535.0,\n", " 6095.0,\n", " 8405.0,\n", " 9798.0,\n", " 10419.0,\n", " 12736.0},\n", " {38.0,\n", " 39.0,\n", " 48.0,\n", " 101.0,\n", " 110.0,\n", " 237.0,\n", " 301.0,\n", " 469.0,\n", " 502.0,\n", " 753.0,\n", " 809.0,\n", " 1702.0,\n", " 2052.0,\n", " 2900.0,\n", " 3203.0,\n", " 4393.0,\n", " 4982.0,\n", " 5690.0,\n", " 9285.0,\n", " 9579.0,\n", " 14120.0,\n", " 14474.0},\n", " {32.0,\n", " 39.0,\n", " 467.0,\n", " 591.0,\n", " 1196.0,\n", " 3214.0,\n", " 3349.0,\n", " 3772.0,\n", " 4093.0,\n", " 12958.0,\n", " 14400.0},\n", " {39.0, 65.0, 1595.0, 11468.0},\n", " {1.0,\n", " 39.0,\n", " 48.0,\n", " 279.0,\n", " 405.0,\n", " 479.0,\n", " 837.0,\n", " 910.0,\n", " 1504.0,\n", " 1968.0,\n", " 1994.0,\n", " 2546.0,\n", " 2654.0,\n", " 3160.0,\n", " 3678.0,\n", " 3788.0,\n", " 10515.0,\n", " 13748.0},\n", " {19.0,\n", " 32.0,\n", " 48.0,\n", " 185.0,\n", " 261.0,\n", " 279.0,\n", " 398.0,\n", " 544.0,\n", " 597.0,\n", " 1393.0,\n", " 1594.0,\n", " 1677.0,\n", " 1818.0,\n", " 2150.0,\n", " 2723.0,\n", " 3311.0,\n", " 3746.0,\n", " 5487.0,\n", " 5781.0,\n", " 10074.0,\n", " 13203.0},\n", " {39.0,\n", " 178.0,\n", " 248.0,\n", " 270.0,\n", " 271.0,\n", " 374.0,\n", " 413.0,\n", " 452.0,\n", " 475.0,\n", " 783.0,\n", " 1214.0,\n", " 1596.0,\n", " 2635.0,\n", " 7266.0,\n", " 10839.0,\n", " 11316.0,\n", " 13335.0},\n", " {123.0,\n", " 413.0,\n", " 924.0,\n", " 1232.0,\n", " 1308.0,\n", " 1604.0,\n", " 2388.0,\n", " 3845.0,\n", " 9985.0,\n", " 10653.0,\n", " 10777.0,\n", " 14163.0},\n", " {927.0,\n", " 1396.0,\n", " 1784.0,\n", " 1987.0,\n", " 2528.0,\n", " 3106.0,\n", " 3975.0,\n", " 4647.0,\n", " 7975.0,\n", " 12946.0,\n", " 14179.0,\n", " 14475.0},\n", " {32.0},\n", " {552.0,\n", " 833.0,\n", " 1372.0,\n", " 1697.0,\n", " 1796.0,\n", " 2361.0,\n", " 8346.0,\n", " 11133.0,\n", " 11935.0,\n", " 14476.0},\n", " {9.0,\n", " 65.0,\n", " 76.0,\n", " 101.0,\n", " 278.0,\n", " 301.0,\n", " 413.0,\n", " 415.0,\n", " 464.0,\n", " 479.0,\n", " 673.0,\n", " 704.0,\n", " 809.0,\n", " 817.0,\n", " 921.0,\n", " 997.0,\n", " 1286.0,\n", " 2596.0,\n", " 2965.0,\n", " 3467.0,\n", " 3579.0,\n", " 4252.0,\n", " 4920.0,\n", " 5060.0,\n", " 6458.0,\n", " 7703.0,\n", " 10605.0,\n", " 10739.0,\n", " 11749.0,\n", " 12981.0},\n", " {32.0,\n", " 38.0,\n", " 39.0,\n", " 47.0,\n", " 48.0,\n", " 56.0,\n", " 176.0,\n", " 237.0,\n", " 301.0,\n", " 475.0,\n", " 548.0,\n", " 913.0,\n", " 958.0,\n", " 1435.0,\n", " 1475.0,\n", " 1479.0,\n", " 1481.0,\n", " 1773.0,\n", " 3239.0,\n", " 3537.0,\n", " 4067.0,\n", " 4393.0,\n", " 4753.0,\n", " 6276.0,\n", " 7743.0,\n", " 8985.0,\n", " 10818.0},\n", " {9569.0},\n", " {10674.0, 12946.0},\n", " {39.0,\n", " 48.0,\n", " 49.0,\n", " 50.0,\n", " 65.0,\n", " 69.0,\n", " 155.0,\n", " 828.0,\n", " 865.0,\n", " 1290.0,\n", " 2792.0,\n", " 2838.0,\n", " 3276.0,\n", " 4373.0,\n", " 4392.0,\n", " 4877.0,\n", " 10491.0,\n", " 10868.0,\n", " 10908.0,\n", " 11512.0,\n", " 11736.0,\n", " 13062.0,\n", " 14023.0,\n", " 14230.0},\n", " {127.0,\n", " 413.0,\n", " 544.0,\n", " 1237.0,\n", " 1417.0,\n", " 2080.0,\n", " 2243.0,\n", " 2812.0,\n", " 4976.0,\n", " 5731.0,\n", " 10491.0},\n", " {39.0,\n", " 48.0,\n", " 260.0,\n", " 310.0,\n", " 365.0,\n", " 503.0,\n", " 837.0,\n", " 924.0,\n", " 1160.0,\n", " 1191.0,\n", " 1698.0,\n", " 1973.0,\n", " 1974.0,\n", " 2065.0,\n", " 2767.0,\n", " 2975.0,\n", " 3034.0,\n", " 3199.0,\n", " 3200.0,\n", " 3201.0,\n", " 4270.0,\n", " 4521.0,\n", " 4698.0,\n", " 5481.0,\n", " 5624.0,\n", " 6502.0,\n", " 10616.0,\n", " 14120.0},\n", " {32.0,\n", " 48.0,\n", " 65.0,\n", " 262.0,\n", " 1578.0,\n", " 1594.0,\n", " 2052.0,\n", " 2654.0,\n", " 11383.0,\n", " 12002.0,\n", " 14042.0,\n", " 14386.0,\n", " 14391.0,\n", " 14405.0,\n", " 14408.0},\n", " {32.0,\n", " 38.0,\n", " 39.0,\n", " 105.0,\n", " 155.0,\n", " 201.0,\n", " 1076.0,\n", " 1084.0,\n", " 1382.0,\n", " 1611.0,\n", " 4486.0,\n", " 10441.0},\n", " {39.0, 48.0, 413.0, 1066.0, 1313.0},\n", " {1.0, 39.0, 178.0, 225.0, 668.0, 1216.0, 2036.0, 4764.0, 4880.0, 14098.0},\n", " {1513.0},\n", " {39.0,\n", " 79.0,\n", " 89.0,\n", " 222.0,\n", " 248.0,\n", " 309.0,\n", " 675.0,\n", " 681.0,\n", " 768.0,\n", " 1080.0,\n", " 1146.0,\n", " 1269.0,\n", " 1393.0,\n", " 1425.0,\n", " 1655.0,\n", " 1845.0,\n", " 4393.0,\n", " 6132.0,\n", " 10511.0,\n", " 11491.0},\n", " {48.0, 1004.0, 12929.0},\n", " {39.0, 48.0, 251.0, 522.0, 1594.0, 2115.0, 2569.0, 3136.0, 4009.0},\n", " {49.0, 255.0, 715.0, 2069.0, 2861.0, 7209.0, 13188.0},\n", " {39.0, 78.0, 205.0, 564.0, 587.0, 1224.0, 1587.0, 2458.0, 3136.0, 13653.0},\n", " {9.0,\n", " 185.0,\n", " 201.0,\n", " 255.0,\n", " 259.0,\n", " 310.0,\n", " 413.0,\n", " 549.0,\n", " 729.0,\n", " 991.0,\n", " 1004.0,\n", " 1165.0,\n", " 1214.0,\n", " 1281.0,\n", " 1773.0,\n", " 2191.0,\n", " 2225.0,\n", " 2325.0,\n", " 2399.0,\n", " 3236.0,\n", " 3513.0,\n", " 4112.0,\n", " 4143.0,\n", " 4307.0,\n", " 4336.0,\n", " 4790.0,\n", " 6126.0,\n", " 6758.0,\n", " 6964.0,\n", " 7205.0,\n", " 8867.0,\n", " 10523.0,\n", " 14207.0},\n", " {65.0,\n", " 107.0,\n", " 243.0,\n", " 947.0,\n", " 1020.0,\n", " 1603.0,\n", " 3121.0,\n", " 3366.0,\n", " 4037.0,\n", " 4694.0,\n", " 5015.0,\n", " 7687.0,\n", " 13567.0,\n", " 14317.0},\n", " {38.0,\n", " 39.0,\n", " 48.0,\n", " 55.0,\n", " 89.0,\n", " 124.0,\n", " 405.0,\n", " 2350.0,\n", " 2383.0,\n", " 2558.0,\n", " 5931.0,\n", " 10546.0,\n", " 10860.0},\n", " {32.0,\n", " 39.0,\n", " 48.0,\n", " 1486.0,\n", " 2060.0,\n", " 2678.0,\n", " 2747.0,\n", " 3198.0,\n", " 3388.0,\n", " 3635.0,\n", " 4698.0,\n", " 9365.0,\n", " 12946.0},\n", " {32.0,\n", " 37.0,\n", " 38.0,\n", " 39.0,\n", " 48.0,\n", " 55.0,\n", " 168.0,\n", " 370.0,\n", " 438.0,\n", " 1486.0,\n", " 1592.0,\n", " 2150.0,\n", " 3510.0,\n", " 3964.0,\n", " 5091.0,\n", " 6255.0,\n", " 14098.0,\n", " 14386.0},\n", " {65.0, 116.0, 663.0, 1688.0, 4251.0},\n", " {39.0, 544.0, 552.0, 1435.0, 2150.0, 4074.0, 11512.0, 13474.0},\n", " {39.0,\n", " 269.0,\n", " 407.0,\n", " 856.0,\n", " 910.0,\n", " 1435.0,\n", " 1578.0,\n", " 2053.0,\n", " 3404.0,\n", " 4166.0,\n", " 4207.0,\n", " 4310.0,\n", " 5608.0,\n", " 6959.0,\n", " 7317.0,\n", " 8559.0,\n", " 13192.0},\n", " {39.0, 48.0, 89.0, 605.0, 837.0, 2150.0, 7652.0, 10546.0, 14090.0, 14386.0},\n", " {39.0,\n", " 48.0,\n", " 492.0,\n", " 610.0,\n", " 804.0,\n", " 981.0,\n", " 1001.0,\n", " 1022.0,\n", " 3291.0,\n", " 4270.0,\n", " 4336.0,\n", " 4723.0,\n", " 6098.0,\n", " 10491.0,\n", " 10669.0,\n", " 10788.0,\n", " 14390.0},\n", " {32.0, 48.0, 12768.0, 14386.0},\n", " {4165.0, 14098.0},\n", " {9886.0},\n", " {39.0,\n", " 48.0,\n", " 340.0,\n", " 789.0,\n", " 1095.0,\n", " 2048.0,\n", " 3794.0,\n", " 5646.0,\n", " 5711.0,\n", " 5787.0,\n", " 8835.0,\n", " 10162.0,\n", " 10663.0,\n", " 10785.0,\n", " 12636.0,\n", " 13357.0,\n", " 13626.0,\n", " 14068.0,\n", " 14073.0,\n", " 14137.0,\n", " 14184.0,\n", " 14214.0,\n", " 14364.0},\n", " {36.0,\n", " 38.0,\n", " 39.0,\n", " 48.0,\n", " 147.0,\n", " 340.0,\n", " 371.0,\n", " 453.0,\n", " 694.0,\n", " 809.0,\n", " 885.0,\n", " 930.0,\n", " 1417.0,\n", " 2878.0,\n", " 3160.0,\n", " 4393.0,\n", " 4424.0,\n", " 4630.0,\n", " 5108.0,\n", " 6602.0,\n", " 12983.0,\n", " 14019.0},\n", " {39.0,\n", " 48.0,\n", " 225.0,\n", " 264.0,\n", " 966.0,\n", " 1595.0,\n", " 2052.0,\n", " 2685.0,\n", " 3074.0,\n", " 3240.0,\n", " 3662.0,\n", " 3663.0,\n", " 7951.0,\n", " 10503.0,\n", " 14477.0},\n", " {32.0, 185.0, 405.0, 2202.0, 3194.0, 3270.0, 10860.0, 13035.0, 13307.0},\n", " {38.0, 286.0, 14386.0},\n", " {9.0,\n", " 11.0,\n", " 39.0,\n", " 48.0,\n", " 271.0,\n", " 413.0,\n", " 489.0,\n", " 926.0,\n", " 1428.0,\n", " 1481.0,\n", " 1834.0,\n", " 2238.0,\n", " 2284.0,\n", " 2505.0,\n", " 2635.0,\n", " 3080.0,\n", " 3755.0,\n", " 4026.0,\n", " 4606.0,\n", " 4607.0,\n", " 5147.0,\n", " 5671.0,\n", " 5851.0,\n", " 6356.0,\n", " 6828.0,\n", " 11318.0,\n", " 12773.0,\n", " 13034.0,\n", " 14045.0},\n", " {32.0, 39.0, 549.0, 898.0, 1014.0, 1772.0, 6624.0, 10493.0},\n", " {39.0, 45.0, 79.0, 681.0, 4055.0},\n", " {242.0, 495.0, 740.0, 1545.0, 4486.0},\n", " {147.0,\n", " 179.0,\n", " 204.0,\n", " 325.0,\n", " 365.0,\n", " 534.0,\n", " 592.0,\n", " 766.0,\n", " 898.0,\n", " 1486.0,\n", " 1592.0,\n", " 1600.0,\n", " 1677.0,\n", " 1714.0,\n", " 2177.0,\n", " 2276.0,\n", " 2891.0,\n", " 4214.0,\n", " 4698.0,\n", " 7585.0,\n", " 8907.0,\n", " 8985.0},\n", " {32.0, 768.0, 2581.0},\n", " {1064.0,\n", " 1417.0,\n", " 1486.0,\n", " 1677.0,\n", " 2654.0,\n", " 4698.0,\n", " 9555.0,\n", " 9802.0,\n", " 10079.0,\n", " 11383.0,\n", " 14345.0,\n", " 14362.0,\n", " 14366.0},\n", " {39.0,\n", " 48.0,\n", " 297.0,\n", " 577.0,\n", " 956.0,\n", " 1594.0,\n", " 1896.0,\n", " 2147.0,\n", " 2169.0,\n", " 2223.0,\n", " 2891.0,\n", " 4055.0,\n", " 4941.0,\n", " 10515.0,\n", " 10551.0,\n", " 10630.0,\n", " 10794.0,\n", " 11477.0,\n", " 11970.0,\n", " 14098.0,\n", " 14357.0,\n", " 14400.0},\n", " {39.0, 270.0, 1146.0, 1430.0, 1578.0, 4221.0, 13413.0},\n", " {112.0, 113.0, 1549.0, 2227.0, 2249.0, 2318.0, 3644.0, 4154.0},\n", " {32.0, 1469.0, 2581.0, 2884.0, 3418.0, 5506.0, 12636.0, 12921.0, 13228.0},\n", " {39.0,\n", " 89.0,\n", " 475.0,\n", " 1670.0,\n", " 2370.0,\n", " 3218.0,\n", " 4336.0,\n", " 4389.0,\n", " 5873.0,\n", " 6523.0,\n", " 12965.0,\n", " 13019.0},\n", " {48.0},\n", " {32.0, 48.0},\n", " {584.0,\n", " 976.0,\n", " 1001.0,\n", " 1095.0,\n", " 1564.0,\n", " 1677.0,\n", " 1886.0,\n", " 2164.0,\n", " 2546.0,\n", " 3476.0,\n", " 3774.0,\n", " 4340.0,\n", " 4445.0,\n", " 4642.0,\n", " 4945.0,\n", " 5074.0,\n", " 5113.0,\n", " 5596.0,\n", " 5608.0,\n", " 8094.0,\n", " 11367.0,\n", " 11836.0,\n", " 13550.0,\n", " 14105.0},\n", " {39.0,\n", " 48.0,\n", " 68.0,\n", " 79.0,\n", " 526.0,\n", " 1004.0,\n", " 1066.0,\n", " 1114.0,\n", " 1115.0,\n", " 1513.0,\n", " 2501.0,\n", " 4424.0,\n", " 11531.0},\n", " {32.0,\n", " 123.0,\n", " 147.0,\n", " 516.0,\n", " 639.0,\n", " 1052.0,\n", " 1066.0,\n", " 2113.0,\n", " 3315.0,\n", " 4629.0,\n", " 4967.0,\n", " 5294.0,\n", " 10162.0,\n", " 10879.0},\n", " {11.0,\n", " 39.0,\n", " 48.0,\n", " 623.0,\n", " 827.0,\n", " 865.0,\n", " 939.0,\n", " 1014.0,\n", " 1098.0,\n", " 1336.0,\n", " 1344.0,\n", " 1459.0,\n", " 1658.0,\n", " 1677.0,\n", " 1938.0,\n", " 2364.0,\n", " 2573.0,\n", " 3418.0,\n", " 3888.0,\n", " 4392.0,\n", " 4698.0,\n", " 4764.0,\n", " 4994.0,\n", " 5915.0,\n", " 5948.0,\n", " 6893.0,\n", " 6974.0,\n", " 7153.0,\n", " 9242.0,\n", " 10261.0,\n", " 10515.0,\n", " 13897.0},\n", " {48.0,\n", " 62.0,\n", " 89.0,\n", " 405.0,\n", " 516.0,\n", " 529.0,\n", " 789.0,\n", " 927.0,\n", " 938.0,\n", " 1003.0,\n", " 1975.0,\n", " 1976.0,\n", " 2235.0,\n", " 3320.0,\n", " 3366.0,\n", " 3525.0,\n", " 5156.0,\n", " 5370.0,\n", " 5596.0,\n", " 5782.0,\n", " 7205.0,\n", " 10515.0,\n", " 14373.0},\n", " {1179.0, 1344.0, 2892.0, 12981.0, 14029.0, 14405.0},\n", " {9.0,\n", " 39.0,\n", " 48.0,\n", " 265.0,\n", " 310.0,\n", " 1486.0,\n", " 1600.0,\n", " 1677.0,\n", " 3769.0,\n", " 4318.0,\n", " 4336.0,\n", " 10515.0,\n", " 10579.0,\n", " 11681.0,\n", " 14098.0,\n", " 14443.0},\n", " {38.0,\n", " 39.0,\n", " 48.0,\n", " 286.0,\n", " 319.0,\n", " 320.0,\n", " 1249.0,\n", " 1617.0,\n", " 2242.0,\n", " 3121.0,\n", " 4580.0,\n", " 4901.0,\n", " 6190.0,\n", " 6231.0,\n", " 9718.0,\n", " 10491.0,\n", " 14478.0},\n", " {39.0, 264.0},\n", " {9097.0, 14479.0},\n", " {48.0,\n", " 66.0,\n", " 123.0,\n", " 147.0,\n", " 310.0,\n", " 981.0,\n", " 1001.0,\n", " 1503.0,\n", " 2129.0,\n", " 4155.0,\n", " 4170.0,\n", " 4771.0,\n", " 11007.0,\n", " 12873.0,\n", " 12946.0,\n", " 13648.0}]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "num_transactions = 100\n", "dataset = load_dataset(num_transactions)\n", "dataset" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "50" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "absolute_Support = int(input(\"Enter the absolute support: \"))\n", "absolute_Support" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Minimum Support: 3\n", "Frequent Itemsets:\n", "(39.0,) : 51\n", "(48.0,) : 40\n", "(147.0,) : 6\n", "(475.0,) : 5\n", "(32.0,) : 19\n", "(4764.0,) : 4\n", "(14029.0,) : 3\n", "(79.0,) : 7\n", "(340.0,) : 3\n", "(65.0,) : 9\n", "(1344.0,) : 4\n", "(2052.0,) : 4\n", "(548.0,) : 4\n", "(301.0,) : 5\n", "(1486.0,) : 8\n", "(55.0,) : 3\n", "(1066.0,) : 4\n", "(237.0,) : 3\n", "(365.0,) : 3\n", "(1677.0,) : 8\n", "(89.0,) : 9\n", "(12946.0,) : 5\n", "(14098.0,) : 6\n", "(9802.0,) : 4\n", "(11383.0,) : 3\n", "(7205.0,) : 3\n", "(12981.0,) : 3\n", "(8985.0,) : 3\n", "(3366.0,) : 3\n", "(3291.0,) : 3\n", "(13335.0,) : 3\n", "(101.0,) : 4\n", "(14386.0,) : 7\n", "(885.0,) : 3\n", "(1600.0,) : 3\n", "(270.0,) : 3\n", "(271.0,) : 3\n", "(4055.0,) : 3\n", "(4698.0,) : 6\n", "(809.0,) : 4\n", "(405.0,) : 5\n", "(544.0,) : 4\n", "(38.0,) : 9\n", "(1146.0,) : 3\n", "(248.0,) : 3\n", "(4393.0,) : 4\n", "(837.0,) : 3\n", "(10515.0,) : 5\n", "(2654.0,) : 3\n", "(185.0,) : 3\n", "(1594.0,) : 4\n", "(2150.0,) : 4\n", "(413.0,) : 7\n", "(123.0,) : 3\n", "(9.0,) : 4\n", "(1435.0,) : 3\n", "(10491.0,) : 4\n", "(1417.0,) : 3\n", "(310.0,) : 4\n", "(1578.0,) : 3\n", "(1004.0,) : 3\n", "(4336.0,) : 4\n", "(1001.0,) : 3\n", "(39.0, 48.0) : 27\n", "(39.0, 147.0) : 3\n", "(39.0, 475.0) : 5\n", "(48.0, 147.0) : 3\n", "(48.0, 475.0) : 3\n", "(32.0, 48.0) : 10\n", "(48.0, 79.0) : 3\n", "(48.0, 340.0) : 3\n", "(48.0, 65.0) : 4\n", "(48.0, 1344.0) : 3\n", "(39.0, 2052.0) : 3\n", "(39.0, 548.0) : 3\n", "(39.0, 301.0) : 4\n", "(39.0, 65.0) : 4\n", "(39.0, 1486.0) : 6\n", "(65.0, 301.0) : 3\n", "(39.0, 1066.0) : 3\n", "(39.0, 237.0) : 3\n", "(39.0, 1677.0) : 3\n", "(39.0, 89.0) : 6\n", "(48.0, 1066.0) : 3\n", "(48.0, 237.0) : 3\n", "(48.0, 1677.0) : 4\n", "(48.0, 89.0) : 6\n", "(32.0, 39.0) : 8\n", "(39.0, 3291.0) : 3\n", "(48.0, 101.0) : 3\n", "(39.0, 79.0) : 6\n", "(39.0, 14386.0) : 3\n", "(32.0, 1486.0) : 3\n", "(39.0, 4055.0) : 3\n", "(39.0, 4698.0) : 4\n", "(1486.0, 4698.0) : 4\n", "(48.0, 301.0) : 3\n", "(48.0, 405.0) : 4\n", "(89.0, 405.0) : 3\n", "(48.0, 14386.0) : 5\n", "(38.0, 39.0) : 8\n", "(39.0, 248.0) : 3\n", "(48.0, 1486.0) : 4\n", "(48.0, 2052.0) : 3\n", "(38.0, 4393.0) : 3\n", "(38.0, 48.0) : 6\n", "(39.0, 4393.0) : 4\n", "(48.0, 4393.0) : 3\n", "(39.0, 837.0) : 3\n", "(48.0, 837.0) : 3\n", "(39.0, 10515.0) : 4\n", "(48.0, 10515.0) : 5\n", "(48.0, 1594.0) : 4\n", "(48.0, 2150.0) : 3\n", "(39.0, 413.0) : 3\n", "(9.0, 413.0) : 3\n", "(39.0, 1435.0) : 3\n", "(32.0, 38.0) : 3\n", "(39.0, 10491.0) : 3\n", "(48.0, 10491.0) : 3\n", "(48.0, 310.0) : 3\n", "(48.0, 4698.0) : 3\n", "(32.0, 14386.0) : 3\n", "(39.0, 14098.0) : 4\n", "(39.0, 2150.0) : 3\n", "(48.0, 14098.0) : 3\n", "(39.0, 4336.0) : 3\n", "(1486.0, 1677.0) : 3\n", "(1677.0, 4698.0) : 3\n", "(39.0, 48.0, 475.0) : 3\n", "(39.0, 48.0, 1066.0) : 3\n", "(39.0, 48.0, 237.0) : 3\n", "(39.0, 48.0, 1677.0) : 3\n", "(39.0, 48.0, 89.0) : 4\n", "(32.0, 39.0, 48.0) : 4\n", "(32.0, 39.0, 1486.0) : 3\n", "(39.0, 48.0, 301.0) : 3\n", "(48.0, 89.0, 405.0) : 3\n", "(39.0, 48.0, 1486.0) : 4\n", "(38.0, 39.0, 4393.0) : 3\n", "(38.0, 39.0, 48.0) : 6\n", "(38.0, 48.0, 4393.0) : 3\n", "(39.0, 48.0, 4393.0) : 3\n", "(39.0, 48.0, 837.0) : 3\n", "(39.0, 48.0, 10515.0) : 4\n", "(32.0, 38.0, 39.0) : 3\n", "(39.0, 48.0, 10491.0) : 3\n", "(39.0, 48.0, 4698.0) : 3\n", "(32.0, 48.0, 14386.0) : 3\n", "(39.0, 48.0, 14098.0) : 3\n", "(38.0, 39.0, 48.0, 4393.0) : 3\n", "------------------\n", "Minimum Support: 4\n", "Frequent Itemsets:\n", "(39.0,) : 51\n", "(48.0,) : 40\n", "(147.0,) : 6\n", "(475.0,) : 5\n", "(32.0,) : 19\n", "(4764.0,) : 4\n", "(79.0,) : 7\n", "(65.0,) : 9\n", "(1344.0,) : 4\n", "(2052.0,) : 4\n", "(548.0,) : 4\n", "(301.0,) : 5\n", "(1486.0,) : 8\n", "(1066.0,) : 4\n", "(1677.0,) : 8\n", "(89.0,) : 9\n", "(12946.0,) : 5\n", "(14098.0,) : 6\n", "(9802.0,) : 4\n", "(101.0,) : 4\n", "(14386.0,) : 7\n", "(4698.0,) : 6\n", "(809.0,) : 4\n", "(405.0,) : 5\n", "(544.0,) : 4\n", "(38.0,) : 9\n", "(4393.0,) : 4\n", "(10515.0,) : 5\n", "(1594.0,) : 4\n", "(2150.0,) : 4\n", "(413.0,) : 7\n", "(9.0,) : 4\n", "(10491.0,) : 4\n", "(310.0,) : 4\n", "(4336.0,) : 4\n", "(39.0, 48.0) : 27\n", "(39.0, 475.0) : 5\n", "(32.0, 48.0) : 10\n", "(48.0, 65.0) : 4\n", "(39.0, 301.0) : 4\n", "(39.0, 65.0) : 4\n", "(39.0, 1486.0) : 6\n", "(39.0, 89.0) : 6\n", "(48.0, 1677.0) : 4\n", "(48.0, 89.0) : 6\n", "(32.0, 39.0) : 8\n", "(39.0, 79.0) : 6\n", "(39.0, 4698.0) : 4\n", "(1486.0, 4698.0) : 4\n", "(48.0, 405.0) : 4\n", "(48.0, 14386.0) : 5\n", "(38.0, 39.0) : 8\n", "(48.0, 1486.0) : 4\n", "(38.0, 48.0) : 6\n", "(39.0, 4393.0) : 4\n", "(39.0, 10515.0) : 4\n", "(48.0, 10515.0) : 5\n", "(48.0, 1594.0) : 4\n", "(39.0, 14098.0) : 4\n", "(39.0, 48.0, 89.0) : 4\n", "(32.0, 39.0, 48.0) : 4\n", "(39.0, 48.0, 1486.0) : 4\n", "(38.0, 39.0, 48.0) : 6\n", "(39.0, 48.0, 10515.0) : 4\n", "------------------\n", "Minimum Support: 5\n", "Frequent Itemsets:\n", "(39.0,) : 51\n", "(48.0,) : 40\n", "(147.0,) : 6\n", "(475.0,) : 5\n", "(32.0,) : 19\n", "(79.0,) : 7\n", "(65.0,) : 9\n", "(301.0,) : 5\n", "(1486.0,) : 8\n", "(1677.0,) : 8\n", "(89.0,) : 9\n", "(12946.0,) : 5\n", "(14098.0,) : 6\n", "(14386.0,) : 7\n", "(4698.0,) : 6\n", "(405.0,) : 5\n", "(38.0,) : 9\n", "(10515.0,) : 5\n", "(413.0,) : 7\n", "(39.0, 48.0) : 27\n", "(39.0, 475.0) : 5\n", "(32.0, 48.0) : 10\n", "(39.0, 1486.0) : 6\n", "(39.0, 89.0) : 6\n", "(48.0, 89.0) : 6\n", "(32.0, 39.0) : 8\n", "(39.0, 79.0) : 6\n", "(48.0, 14386.0) : 5\n", "(38.0, 39.0) : 8\n", "(38.0, 48.0) : 6\n", "(48.0, 10515.0) : 5\n", "(38.0, 39.0, 48.0) : 6\n", "------------------\n", "Minimum Support: 6\n", "Frequent Itemsets:\n", "(39.0,) : 51\n", "(48.0,) : 40\n", "(147.0,) : 6\n", "(32.0,) : 19\n", "(79.0,) : 7\n", "(65.0,) : 9\n", "(1486.0,) : 8\n", "(1677.0,) : 8\n", "(89.0,) : 9\n", "(14098.0,) : 6\n", "(14386.0,) : 7\n", "(4698.0,) : 6\n", "(38.0,) : 9\n", "(413.0,) : 7\n", "(39.0, 48.0) : 27\n", "(32.0, 48.0) : 10\n", "(39.0, 1486.0) : 6\n", "(39.0, 89.0) : 6\n", "(48.0, 89.0) : 6\n", "(32.0, 39.0) : 8\n", "(39.0, 79.0) : 6\n", "(38.0, 39.0) : 8\n", "(38.0, 48.0) : 6\n", "(38.0, 39.0, 48.0) : 6\n", "------------------\n", "Minimum Support: 7\n", "Frequent Itemsets:\n", "(39.0,) : 51\n", "(48.0,) : 40\n", "(32.0,) : 19\n", "(79.0,) : 7\n", "(65.0,) : 9\n", "(1486.0,) : 8\n", "(1677.0,) : 8\n", "(89.0,) : 9\n", "(14386.0,) : 7\n", "(38.0,) : 9\n", "(413.0,) : 7\n", "(39.0, 48.0) : 27\n", "(32.0, 48.0) : 10\n", "(32.0, 39.0) : 8\n", "(38.0, 39.0) : 8\n", "------------------\n", "Minimum Support: 8\n", "Frequent Itemsets:\n", "(39.0,) : 51\n", "(48.0,) : 40\n", "(32.0,) : 19\n", "(65.0,) : 9\n", "(1486.0,) : 8\n", "(1677.0,) : 8\n", "(89.0,) : 9\n", "(38.0,) : 9\n", "(39.0, 48.0) : 27\n", "(32.0, 48.0) : 10\n", "(32.0, 39.0) : 8\n", "(38.0, 39.0) : 8\n", "------------------\n", "Minimum Support: 9\n", "Frequent Itemsets:\n", "(39.0,) : 51\n", "(48.0,) : 40\n", "(32.0,) : 19\n", "(65.0,) : 9\n", "(89.0,) : 9\n", "(38.0,) : 9\n", "(39.0, 48.0) : 27\n", "(32.0, 48.0) : 10\n", "------------------\n", "Minimum Support: 10\n", "Frequent Itemsets:\n", "(39.0,) : 51\n", "(48.0,) : 40\n", "(32.0,) : 19\n", "(39.0, 48.0) : 27\n", "(32.0, 48.0) : 10\n", "------------------\n" ] } ], "source": [ "minimum_support_range = range(3, 11)\n", "for minimum_support in minimum_support_range:\n", " frequent_itemsets = apriori(dataset, minimum_support)\n", "\n", " print('Minimum Support:', minimum_support)\n", " print('Frequent Itemsets:')\n", " for itemset, count in frequent_itemsets.items():\n", " print(itemset, ':', count)\n", " print('------------------')" ] } ], "metadata": { "kernelspec": { "display_name": "base", "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.12.4" } }, "nbformat": 4, "nbformat_minor": 2 }