From 30be5f9d1d5dce442f6b152fec97a40e762c7518 Mon Sep 17 00:00:00 2001 From: vanithakattumuri <134862983+vanithakattumuri@users.noreply.github.com> Date: Fri, 13 Dec 2024 20:17:37 +0530 Subject: [PATCH] Created using Colab --- chapter6.ipynb | 906 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 871 insertions(+), 35 deletions(-) diff --git a/chapter6.ipynb b/chapter6.ipynb index 54f657b..88b5041 100644 --- a/chapter6.ipynb +++ b/chapter6.ipynb @@ -1,37 +1,873 @@ { - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "initial_id", - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [], + "authorship_tag": "ABX9TyPdIipgfW/HJKzvRnOMuzWO", + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.6" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Chapter 6 Pattern Discovery in Temporal Databases" + ], + "metadata": { + "id": "yS3LLFtWVbVa" + } + }, + { + "cell_type": "markdown", + "source": [ + "## Install the PAMI library" + ], + "metadata": { + "id": "0HRecMa2VxmE" + } + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "qJA-tkEKVX6c", + "outputId": "77de9352-4751-43a9-ef1e-796bf9b90139" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Collecting pami\n", + " Downloading pami-2024.12.10.1-py3-none-any.whl.metadata (80 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m80.3/80.3 kB\u001b[0m \u001b[31m4.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: psutil in /usr/local/lib/python3.10/dist-packages (from pami) (5.9.5)\n", + "Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from pami) (2.2.2)\n", + "Requirement already satisfied: plotly in /usr/local/lib/python3.10/dist-packages (from pami) (5.24.1)\n", + "Requirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (from pami) (3.8.0)\n", + "Collecting resource (from pami)\n", + " Downloading Resource-0.2.1-py2.py3-none-any.whl.metadata (478 bytes)\n", + "Collecting validators (from pami)\n", + " Downloading validators-0.34.0-py3-none-any.whl.metadata (3.8 kB)\n", + "Requirement already satisfied: urllib3 in /usr/local/lib/python3.10/dist-packages (from pami) (2.2.3)\n", + "Requirement already satisfied: Pillow in /usr/local/lib/python3.10/dist-packages (from pami) (11.0.0)\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from pami) (1.26.4)\n", + "Requirement already satisfied: sphinx in /usr/local/lib/python3.10/dist-packages (from pami) (8.1.3)\n", + "Collecting sphinx-rtd-theme (from pami)\n", + " Downloading sphinx_rtd_theme-3.0.2-py2.py3-none-any.whl.metadata (4.4 kB)\n", + "Collecting discord.py (from pami)\n", + " Downloading discord.py-2.4.0-py3-none-any.whl.metadata (6.9 kB)\n", + "Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from pami) (3.4.2)\n", + "Requirement already satisfied: deprecated in /usr/local/lib/python3.10/dist-packages (from pami) (1.2.15)\n", + "Collecting fastparquet (from pami)\n", + " Downloading fastparquet-2024.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.2 kB)\n", + "Requirement already satisfied: wrapt<2,>=1.10 in /usr/local/lib/python3.10/dist-packages (from deprecated->pami) (1.17.0)\n", + "Requirement already satisfied: aiohttp<4,>=3.7.4 in /usr/local/lib/python3.10/dist-packages (from discord.py->pami) (3.11.10)\n", + "Collecting cramjam>=2.3 (from fastparquet->pami)\n", + " Downloading cramjam-2.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.9 kB)\n", + "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from fastparquet->pami) (2024.10.0)\n", + "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from fastparquet->pami) (24.2)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.10/dist-packages (from pandas->pami) (2.8.2)\n", + "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->pami) (2024.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.10/dist-packages (from pandas->pami) (2024.2)\n", + "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->pami) (1.3.1)\n", + "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib->pami) (0.12.1)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->pami) (4.55.2)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->pami) (1.4.7)\n", + "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->pami) (3.2.0)\n", + "Requirement already satisfied: tenacity>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from plotly->pami) (9.0.0)\n", + "Collecting JsonForm>=0.0.2 (from resource->pami)\n", + " Downloading JsonForm-0.0.2.tar.gz (2.4 kB)\n", + " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", + "Collecting JsonSir>=0.0.2 (from resource->pami)\n", + " Downloading JsonSir-0.0.2.tar.gz (2.2 kB)\n", + " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", + "Collecting python-easyconfig>=0.1.0 (from resource->pami)\n", + " Downloading Python_EasyConfig-0.1.7-py2.py3-none-any.whl.metadata (462 bytes)\n", + "Requirement already satisfied: sphinxcontrib-applehelp>=1.0.7 in /usr/local/lib/python3.10/dist-packages (from sphinx->pami) (2.0.0)\n", + "Requirement already satisfied: sphinxcontrib-devhelp>=1.0.6 in /usr/local/lib/python3.10/dist-packages (from sphinx->pami) (2.0.0)\n", + "Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.6 in /usr/local/lib/python3.10/dist-packages (from sphinx->pami) (2.1.0)\n", + "Requirement already satisfied: sphinxcontrib-jsmath>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from sphinx->pami) (1.0.1)\n", + "Requirement already satisfied: sphinxcontrib-qthelp>=1.0.6 in /usr/local/lib/python3.10/dist-packages (from sphinx->pami) (2.0.0)\n", + "Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.9 in /usr/local/lib/python3.10/dist-packages (from sphinx->pami) (2.0.0)\n", + "Requirement already satisfied: Jinja2>=3.1 in /usr/local/lib/python3.10/dist-packages (from sphinx->pami) (3.1.4)\n", + "Requirement already satisfied: Pygments>=2.17 in /usr/local/lib/python3.10/dist-packages (from sphinx->pami) (2.18.0)\n", + "Requirement already satisfied: docutils<0.22,>=0.20 in /usr/local/lib/python3.10/dist-packages (from sphinx->pami) (0.21.2)\n", + "Requirement already satisfied: snowballstemmer>=2.2 in /usr/local/lib/python3.10/dist-packages (from sphinx->pami) (2.2.0)\n", + "Requirement already satisfied: babel>=2.13 in /usr/local/lib/python3.10/dist-packages (from sphinx->pami) (2.16.0)\n", + "Requirement already satisfied: alabaster>=0.7.14 in /usr/local/lib/python3.10/dist-packages (from sphinx->pami) (1.0.0)\n", + "Requirement already satisfied: imagesize>=1.3 in /usr/local/lib/python3.10/dist-packages (from sphinx->pami) (1.4.1)\n", + "Requirement already satisfied: requests>=2.30.0 in /usr/local/lib/python3.10/dist-packages (from sphinx->pami) (2.32.3)\n", + "Requirement already satisfied: tomli>=2 in /usr/local/lib/python3.10/dist-packages (from sphinx->pami) (2.2.1)\n", + "Collecting sphinxcontrib-jquery<5,>=4 (from sphinx-rtd-theme->pami)\n", + " Downloading sphinxcontrib_jquery-4.1-py2.py3-none-any.whl.metadata (2.6 kB)\n", + "Requirement already satisfied: aiohappyeyeballs>=2.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4,>=3.7.4->discord.py->pami) (2.4.4)\n", + "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4,>=3.7.4->discord.py->pami) (1.3.1)\n", + "Requirement already satisfied: async-timeout<6.0,>=4.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4,>=3.7.4->discord.py->pami) (4.0.3)\n", + "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4,>=3.7.4->discord.py->pami) (24.2.0)\n", + "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4,>=3.7.4->discord.py->pami) (1.5.0)\n", + "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4,>=3.7.4->discord.py->pami) (6.1.0)\n", + "Requirement already satisfied: propcache>=0.2.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4,>=3.7.4->discord.py->pami) (0.2.1)\n", + "Requirement already satisfied: yarl<2.0,>=1.17.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4,>=3.7.4->discord.py->pami) (1.18.3)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from Jinja2>=3.1->sphinx->pami) (3.0.2)\n", + "Requirement already satisfied: jsonschema in /usr/local/lib/python3.10/dist-packages (from JsonForm>=0.0.2->resource->pami) (4.23.0)\n", + "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.2->pandas->pami) (1.17.0)\n", + "Requirement already satisfied: PyYAML in /usr/local/lib/python3.10/dist-packages (from python-easyconfig>=0.1.0->resource->pami) (6.0.2)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.30.0->sphinx->pami) (3.4.0)\n", + "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.30.0->sphinx->pami) (3.10)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.30.0->sphinx->pami) (2024.8.30)\n", + "Requirement already satisfied: typing-extensions>=4.1.0 in /usr/local/lib/python3.10/dist-packages (from multidict<7.0,>=4.5->aiohttp<4,>=3.7.4->discord.py->pami) (4.12.2)\n", + "Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /usr/local/lib/python3.10/dist-packages (from jsonschema->JsonForm>=0.0.2->resource->pami) (2024.10.1)\n", + "Requirement already satisfied: referencing>=0.28.4 in /usr/local/lib/python3.10/dist-packages (from jsonschema->JsonForm>=0.0.2->resource->pami) (0.35.1)\n", + "Requirement already satisfied: rpds-py>=0.7.1 in /usr/local/lib/python3.10/dist-packages (from jsonschema->JsonForm>=0.0.2->resource->pami) (0.22.3)\n", + "Downloading pami-2024.12.10.1-py3-none-any.whl (1.2 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.2/1.2 MB\u001b[0m \u001b[31m37.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hDownloading discord.py-2.4.0-py3-none-any.whl (1.1 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.1/1.1 MB\u001b[0m \u001b[31m45.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hDownloading fastparquet-2024.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.7/1.7 MB\u001b[0m \u001b[31m45.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hDownloading Resource-0.2.1-py2.py3-none-any.whl (25 kB)\n", + "Downloading sphinx_rtd_theme-3.0.2-py2.py3-none-any.whl (7.7 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.7/7.7 MB\u001b[0m \u001b[31m66.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hDownloading validators-0.34.0-py3-none-any.whl (43 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m43.5/43.5 kB\u001b[0m \u001b[31m3.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hDownloading cramjam-2.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.4/2.4 MB\u001b[0m \u001b[31m56.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hDownloading Python_EasyConfig-0.1.7-py2.py3-none-any.whl (5.4 kB)\n", + "Downloading sphinxcontrib_jquery-4.1-py2.py3-none-any.whl (121 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m121.1/121.1 kB\u001b[0m \u001b[31m9.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hBuilding wheels for collected packages: JsonForm, JsonSir\n", + " Building wheel for JsonForm (setup.py) ... \u001b[?25l\u001b[?25hdone\n", + " Created wheel for JsonForm: filename=JsonForm-0.0.2-py3-none-any.whl size=3311 sha256=01548204973612fbbcc02638add7e124330d6d3c56b29912208d8fec6251caf2\n", + " Stored in directory: /root/.cache/pip/wheels/b6/e5/87/11026246d3bd4ad67c0615682d2d6748bbd9a40ac0490882bd\n", + " Building wheel for JsonSir (setup.py) ... \u001b[?25l\u001b[?25hdone\n", + " Created wheel for JsonSir: filename=JsonSir-0.0.2-py3-none-any.whl size=4753 sha256=8b52458e6e5cbbb888fe7d260ef33077c0569e8ae5cf457844dd3d6d979c566f\n", + " Stored in directory: /root/.cache/pip/wheels/1d/4c/d3/4d9757425983b43eb709be1043d82cd03fb863ce5f56f117e6\n", + "Successfully built JsonForm JsonSir\n", + "Installing collected packages: JsonSir, validators, python-easyconfig, cramjam, sphinxcontrib-jquery, fastparquet, sphinx-rtd-theme, JsonForm, discord.py, resource, pami\n", + "Successfully installed JsonForm-0.0.2 JsonSir-0.0.2 cramjam-2.9.1 discord.py-2.4.0 fastparquet-2024.11.0 pami-2024.12.10.1 python-easyconfig-0.1.7 resource-0.2.1 sphinx-rtd-theme-3.0.2 sphinxcontrib-jquery-4.1 validators-0.34.0\n" + ] + } + ], + "source": [ + "!pip install --upgrade pami" + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Download the dataset" + ], + "metadata": { + "id": "Z24ZOwbMWuLf" + } + }, + { + "cell_type": "code", + "source": [ + "!wget -nc https://u-aizu.ac.jp/~udayrage/datasets/temporalDatabases/Temporal_T10I4D100K.csv" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "cFZq1DwyWyFf", + "outputId": "84bb00f1-a3df-44a2-ef5c-5b1ffec6afa9" + }, + "execution_count": 3, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "--2024-12-13 14:11:38-- https://u-aizu.ac.jp/~udayrage/datasets/temporalDatabases/Temporal_T10I4D100K.csv\n", + "Resolving u-aizu.ac.jp (u-aizu.ac.jp)... 150.95.161.176, 150.31.244.160\n", + "Connecting to u-aizu.ac.jp (u-aizu.ac.jp)|150.95.161.176|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 4606762 (4.4M) [text/csv]\n", + "Saving to: ‘Temporal_T10I4D100K.csv’\n", + "\n", + "Temporal_T10I4D100K 100%[===================>] 4.39M 939KB/s in 6.5s \n", + "\n", + "2024-12-13 14:11:46 (691 KB/s) - ‘Temporal_T10I4D100K.csv’ saved [4606762/4606762]\n", + "\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Program 1: Finding Periodic-Frequent Patterns\n" + ], + "metadata": { + "id": "JoKZfd3fV8fs" + } + }, + { + "cell_type": "markdown", + "source": [ + "### Generic\n", + "\n", + "\n", + "```python\n", + "\n", + "from PAMI.periodicFrequentPattern.basic import PFPGrowthPlus as\n", + "alg\n", + "\n", + "# Import the algorithm\n", + "\n", + "obj = alg.PFPGrowthPlus(iFile='Temporal_T10I4D100K.csv',\n", + "minSup=100, maxPer='200', sep='\\t') # Initialize\n", + "obj.mine()\n", + "obj.save('periodicFrequentPatterns.txt')\n", + "\n", + "patternsDF = obj.getPatternsAsDataFrame()\n", + "print('Patterns: ' + str(len(patternsDF)))\n", + "print('Runtime: ' + str(obj.getRuntime()))\n", + "print('Memory (RSS): ' + str(obj.getMemoryRSS()))\n", + "print('Memory (USS): ' + str(obj.getMemoryUSS()))\n", + "```\n", + "\n" + ], + "metadata": { + "id": "a-6d0Mv-WUA5" + } + }, + { + "cell_type": "code", + "source": [ + "from PAMI.periodicFrequentPattern.basic import PFPGrowthPlus as alg\n", + "\n", + "# Import the algorithm\n", + "\n", + "obj = alg.PFPGrowthPlus(iFile='Temporal_T10I4D100K.csv',\n", + "minSup=100, maxPer='200', sep='\\t') # Initialize\n", + "obj.mine()\n", + "obj.save('periodicFrequentPatterns.txt')\n", + "\n", + "patternsDF = obj.getPatternsAsDataFrame()\n", + "print('Patterns: ' + str(len(patternsDF)))\n", + "print('Runtime: ' + str(obj.getRuntime()))\n", + "print('Memory (RSS): ' + str(obj.getMemoryRSS()))\n", + "print('Memory (USS): ' + str(obj.getMemoryUSS()))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "n1zsn-qcVuqk", + "outputId": "9f41c2e8-1baf-4926-c18c-204c21b9ebeb" + }, + "execution_count": 4, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "periodic-frequent patterns were generated successfully using PFPGrowth++ algorithm \n", + "Patterns: 18\n", + "Runtime: 1.4616427421569824\n", + "Memory (RSS): 272936960\n", + "Memory (USS): 249905152\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Program 2: Finding Closed Periodic-Frequent Patterns\n" + ], + "metadata": { + "id": "uyXmH0oAXcNP" + } + }, + { + "cell_type": "markdown", + "source": [ + "### Generic\n", + "\n", + "\n", + "```python\n", + "\n", + "from PAMI.periodicFrequentPattern.closed import CPFPMiner as alg\n", + "\n", + "obj = alg.CPFPMiner(iFile='Temporal_T10I4D100K.csv', minSup=500, maxPer=200, sep='\\t')\n", + "\n", + "obj.mine()\n", + "obj.save('closedPeriodicFrequentPatterns.txt')\n", + "\n", + "patternsDF = obj.getPatternsAsDataFrame()\n", + "print('Patterns: ' + str(len(patternsDF)))\n", + "print('Runtime: ' + str(obj.getRuntime()))\n", + "print('Memory (RSS): ' + str(obj.getMemoryRSS()))\n", + "print('Memory (USS): ' + str(obj.getMemoryUSS()))\n", + "```\n", + "\n" + ], + "metadata": { + "id": "y1LLAd_pXcUR" + } + }, + { + "cell_type": "code", + "source": [ + "from PAMI.periodicFrequentPattern.closed import CPFPMiner as alg\n", + "\n", + "obj = alg.CPFPMiner(iFile='Temporal_T10I4D100K.csv', minSup=500, maxPer=200, sep='\\t')\n", + "\n", + "obj.mine()\n", + "obj.save('closedPeriodicFrequentPatterns.txt')\n", + "\n", + "patternsDF = obj.getPatternsAsDataFrame()\n", + "print('Patterns: ' + str(len(patternsDF)))\n", + "print('Runtime: ' + str(obj.getRuntime()))\n", + "print('Memory (RSS): ' + str(obj.getMemoryRSS()))\n", + "print('Memory (USS): ' + str(obj.getMemoryUSS()))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "hrGdLhwSXIDp", + "outputId": "31139f5b-fe04-4a86-aa72-67059d58211e" + }, + "execution_count": 5, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Closed periodic frequent patterns were generated successfully using CPFPMiner algorithm \n", + "Patterns: 18\n", + "Runtime: 2.6784656047821045\n", + "Memory (RSS): 204775424\n", + "Memory (USS): 181501952\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Program 3: Finding Maximal Periodic-Frequent Patterns\n" + ], + "metadata": { + "id": "ks69FhOvX5J_" + } + }, + { + "cell_type": "markdown", + "source": [ + "### Generic\n", + "\n", + "\n", + "```python\n", + "\n", + "from PAMI.periodicFrequentPattern.maximal import MaxPFGrowth as alg\n", + "\n", + "obj = alg.MaxPFGrowth(iFile='Temporal_T10I4D100K.csv', minSup=500, maxPer=200, sep='\\t')\n", + "\n", + "obj.mine()\n", + "obj.save('maximalPeriodicFrequentPatterns.txt')\n", + "\n", + "patternsDF = obj.getPatternsAsDataFrame()\n", + "print('Patterns: ' + str(len(patternsDF)))\n", + "print('Runtime: ' + str(obj.getRuntime()))\n", + "print('Memory (RSS): ' + str(obj.getMemoryRSS()))\n", + "print('Memory (USS): ' + str(obj.getMemoryUSS()))\n", + "```\n", + "\n" + ], + "metadata": { + "id": "7QX1spcZX5Pt" + } + }, + { + "cell_type": "code", + "source": [ + "from PAMI.periodicFrequentPattern.maximal import MaxPFGrowth as alg\n", + "\n", + "obj = alg.MaxPFGrowth(iFile='Temporal_T10I4D100K.csv', minSup=500, maxPer=200, sep='\\t')\n", + "\n", + "obj.mine()\n", + "obj.save('maximalPeriodicFrequentPatterns.txt')\n", + "\n", + "patternsDF = obj.getPatternsAsDataFrame()\n", + "print('Patterns: ' + str(len(patternsDF)))\n", + "print('Runtime: ' + str(obj.getRuntime()))\n", + "print('Memory (RSS): ' + str(obj.getMemoryRSS()))\n", + "print('Memory (USS): ' + str(obj.getMemoryUSS()))\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "qP7NL-qlXmme", + "outputId": "efa1c0aa-f3ee-4983-9569-faf81caf475a" + }, + "execution_count": 7, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Maximal Periodic Frequent patterns were generated successfully using MAX-PFPGrowth algorithm \n", + "Patterns: 18\n", + "Runtime: 2.3206570148468018\n", + "Memory (RSS): 286330880\n", + "Memory (USS): 263106560\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Program 4: Finding Top-𝑘 Periodic-Frequent Patterns" + ], + "metadata": { + "id": "3uVwynN0YLWF" + } + }, + { + "cell_type": "markdown", + "source": [ + "### Generic\n", + "\n", + "\n", + "```python\n", + "\n", + "from PAMI.periodicFrequentPattern.topk.kPFPMiner import kPFPMiner as alg\n", + "\n", + "obj = alg.kPFPMiner(iFile='Temporal_T10I4D100K.csv', k=1000, sep='\\t')\n", + "\n", + "obj.mine()\n", + "\n", + "obj.save('topkPeriodicFrequentPatterns.txt')\n", + "\n", + "kPatternsDF = obj.getPatternsAsDataFrame()\n", + "print('#Patterns: ' + str(len(kPatternsDF)))\n", + "print('Runtime: ' + str(obj.getRuntime()))\n", + "print('Memory (RSS): ' + str(obj.getMemoryRSS()))\n", + "print('Memory (USS): ' + str(obj.getMemoryUSS()))\n", + "print('Memory (USS): ' + str(obj.getMemoryUSS()))\n", + "```\n", + "\n" + ], + "metadata": { + "id": "yh6IdyHoYLgw" + } + }, + { + "cell_type": "code", + "source": [ + "from PAMI.periodicFrequentPattern.topk.kPFPMiner import kPFPMiner as alg\n", + "\n", + "obj = alg.kPFPMiner(iFile='Temporal_T10I4D100K.csv', k=1000, sep='\\t')\n", + "\n", + "obj.mine()\n", + "\n", + "obj.save('topkPeriodicFrequentPatterns.txt')\n", + "\n", + "kPatternsDF = obj.getPatternsAsDataFrame()\n", + "print('#Patterns: ' + str(len(kPatternsDF)))\n", + "print('Runtime: ' + str(obj.getRuntime()))\n", + "print('Memory (RSS): ' + str(obj.getMemoryRSS()))\n", + "print('Memory (USS): ' + str(obj.getMemoryUSS()))\n", + "print('Memory (USS): ' + str(obj.getMemoryUSS()))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "jGE9bvlrYB_X", + "outputId": "03f731e0-36ed-43cd-bd42-48da4d94d58b" + }, + "execution_count": 17, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "kPFPMiner has successfully generated top-k frequent patterns\n", + "#Patterns: 1000\n", + "Runtime: 57.75672912597656\n", + "Memory (RSS): 391217152\n", + "Memory (USS): 368029696\n", + "Memory (USS): 368029696\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Program 5: Finding Periodic-Correlated Patterns" + ], + "metadata": { + "id": "0NfaANgwaNPW" + } + }, + { + "cell_type": "markdown", + "source": [ + "### Generic\n", + "\n", + "\n", + "```python\n", + "\n", + "from PAMI.periodicCorrelatedPattern.basic import EPCPGrowth as alg\n", + "\n", + "# Initialize the EPCPGrowth algorithm with the appropriate parameters\n", + "\n", + "obj = alg.EPCPGrowth(iFile='temporalDatabase.csv', minSup=500, minAllConf=0.7, maxPer=200, maxPerAllConf=1.5, sep='\\t')\n", + "\n", + "# Mine the periodic-correlated patterns\n", + "obj.mine()\n", + "\n", + "# Save the patterns to a file\n", + "obj.save('correlatedPeriodicFrequentPatterns.txt')\n", + "\n", + "# Retrieve the patterns as a DataFrame\n", + "correlatedPFPs = obj.getPatternsAsDataFrame()\n", + "\n", + "# Display summary information\n", + "print('#Patterns: ' + str(len(correlatedPFPs)))\n", + "print('Runtime: ' + str(obj.getRuntime()))\n", + "print('Memory (RSS): ' + str(obj.getMemoryRSS()))\n", + "print('Memory (USS): ' + str(obj.getMemoryUSS()))\n", + "```" + ], + "metadata": { + "id": "3pGrlp5taNVP" + } + }, + { + "cell_type": "code", + "source": [ + "from PAMI.periodicCorrelatedPattern.basic import EPCPGrowth as alg\n", + "\n", + "# Initialize the EPCPGrowth algorithm with the appropriate parameters\n", + "\n", + "obj = alg.EPCPGrowth(iFile='Temporal_T10I4D100K.csv', minSup=500, minAllConf=0.7, maxPer=200, maxPerAllConf=1.5, sep='\\t')\n", + "\n", + "# Mine the periodic-correlated patterns\n", + "obj.mine()\n", + "\n", + "# Save the patterns to a file\n", + "obj.save('correlatedPeriodicFrequentPatterns.txt')\n", + "\n", + "# Retrieve the patterns as a DataFrame\n", + "correlatedPFPs = obj.getPatternsAsDataFrame()\n", + "\n", + "# Display summary information\n", + "print('#Patterns: ' + str(len(correlatedPFPs)))\n", + "print('Runtime: ' + str(obj.getRuntime()))\n", + "print('Memory (RSS): ' + str(obj.getMemoryRSS()))\n", + "print('Memory (USS): ' + str(obj.getMemoryUSS()))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "HwYe9hGBYjD3", + "outputId": "07816d4f-9fd2-44c9-a983-767066e56798" + }, + "execution_count": 12, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Correlated Periodic-Frequent patterns were generated successfully using EPCPGrowth algorithm \n", + "#Patterns: 18\n", + "Runtime: 2.058685064315796\n", + "Memory (RSS): 286404608\n", + "Memory (USS): 263393280\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Program 6: Finding Partial Periodic-Frequent Patterns" + ], + "metadata": { + "id": "uHVOc7cxbJXm" + } + }, + { + "cell_type": "markdown", + "source": [ + "### Generic\n", + "\n", + "\n", + "```python\n", + "\n", + "from PAMI.partialPeriodicFrequentPattern.basic import GPFgrowth as alg\n", + "\n", + "# Initialize the GPFgrowth algorithm with the required parameters.\n", + "obj = alg.GPFgrowth(iFile='Temporal_T10I4D100K.csv', minSup=200, maxPer=500, minPR=0.5, sep='\\t')\n", + "\n", + "# Mine the partial periodic-frequent patterns\n", + "obj.mine()\n", + "\n", + "# Save the patterns to a file\n", + "obj.save('partialPeriodicFrequentPatterns.txt')\n", + "\n", + "# Retrieve the patterns as a DataFrame\n", + "PPFPs = obj.getPatternsAsDataFrame()\n", + "# Display summary information\n", + "print('#Patterns: ' + str(len(PPFPs)))\n", + "print('Runtime: ' + str(obj.getRuntime()))\n", + "print('Memory (RSS): ' + str(obj.getMemoryRSS()))\n", + "print('Memory (USS): ' + str(obj.getMemoryUSS()))\n", + "```" + ], + "metadata": { + "id": "Ngyi9TnlbJcz" + } + }, + { + "cell_type": "code", + "source": [ + "from PAMI.partialPeriodicFrequentPattern.basic import GPFgrowth as alg\n", + "\n", + "# Initialize the GPFgrowth algorithm with the required parameters.\n", + "obj = alg.GPFgrowth(iFile='Temporal_T10I4D100K.csv', minSup=200, maxPer=500, minPR=0.5, sep='\\t')\n", + "\n", + "# Mine the partial periodic-frequent patterns\n", + "obj.mine()\n", + "\n", + "# Save the patterns to a file\n", + "obj.save('partialPeriodicFrequentPatterns.txt')\n", + "\n", + "# Retrieve the patterns as a DataFrame\n", + "PPFPs = obj.getPatternsAsDataFrame()\n", + "# Display summary information\n", + "print('#Patterns: ' + str(len(PPFPs)))\n", + "print('Runtime: ' + str(obj.getRuntime()))\n", + "print('Memory (RSS): ' + str(obj.getMemoryRSS()))\n", + "print('Memory (USS): ' + str(obj.getMemoryUSS()))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Jip3BwIjbB50", + "outputId": "2d427954-9a99-4825-df6f-85d7b7e5b4af" + }, + "execution_count": 13, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "#Patterns: 13235\n", + "Runtime: 19.708019495010376\n", + "Memory (RSS): 670908416\n", + "Memory (USS): 647925760\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Program 7: Finding Partial Periodic Patterns" + ], + "metadata": { + "id": "_1chc8jOcMia" + } + }, + { + "cell_type": "markdown", + "source": [ + "### Generic\n", + "\n", + "\n", + "```python\n", + "\n", + "from PAMI.partialPeriodicPattern.basic import PPPGrowth as alg\n", + "\n", + "# Initialize the PPPGrowth algorithm with necessary parameters\n", + "obj = alg.PPPGrowth(iFile='Temporal_T10I4D100K.csv', minPS=100, period=200, sep='\\t')\n", + "\n", + "# Mine the partial periodic patterns\n", + "obj.mine()\n", + "\n", + "# Save the patterns to a file\n", + "obj.save('partialPeriodicPatterns.txt')\n", + "\n", + "# Retrieve the patterns as a DataFrame\n", + "PPFPs = obj.getPatternsAsDataFrame()\n", + "\n", + "# Display summary information\n", + "print('#Patterns: ' + str(len(PPFPs)))\n", + "print('Runtime: ' + str(obj.getRuntime()))\n", + "print('Memory (RSS): ' + str(obj.getMemoryRSS()))\n", + "print('Memory (USS): ' + str(obj.getMemoryUSS()))\n", + "```" + ], + "metadata": { + "id": "OOhzm2EZcMn0" + } + }, + { + "cell_type": "code", + "source": [ + "from PAMI.partialPeriodicPattern.basic import PPPGrowth as alg\n", + "\n", + "# Initialize the PPPGrowth algorithm with necessary parameters\n", + "obj = alg.PPPGrowth(iFile='Temporal_T10I4D100K.csv', minPS=100, period=200, sep='\\t')\n", + "\n", + "# Mine the partial periodic patterns\n", + "obj.mine()\n", + "\n", + "# Save the patterns to a file\n", + "obj.save('partialPeriodicPatterns.txt')\n", + "\n", + "# Retrieve the patterns as a DataFrame\n", + "PPFPs = obj.getPatternsAsDataFrame()\n", + "\n", + "# Display summary information\n", + "print('#Patterns: ' + str(len(PPFPs)))\n", + "print('Runtime: ' + str(obj.getRuntime()))\n", + "print('Memory (RSS): ' + str(obj.getMemoryRSS()))\n", + "print('Memory (USS): ' + str(obj.getMemoryUSS()))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Q7ETMK8JcF8e", + "outputId": "c2b1f1d3-74d5-42d1-96b2-3ae2a25c2e06" + }, + "execution_count": 14, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Partial Periodic Patterns were generated successfully using 3PGrowth algorithm \n", + "#Patterns: 7672\n", + "Runtime: 21.002820014953613\n", + "Memory (RSS): 668934144\n", + "Memory (USS): 645783552\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Program 8: Finding Recurring Patterns" + ], + "metadata": { + "id": "E7XNsSUPcvz2" + } + }, + { + "cell_type": "markdown", + "source": [ + "### Generic\n", + "\n", + "\n", + "```python\n", + "\n", + "from PAMI.recurringPattern.basic import RPGrowth as alg\n", + "\n", + "# Initialize the RPGrowth algorithm with appropriate parameters\n", + "obj = alg.RPGrowth(iFile='Temporal_T10I4D100K.csv', minPS=20, maxPer=100, minRec=1, sep='\\t') # Separator used in the data file\n", + "\n", + "# Mine the recurring patterns\n", + "obj.mine()\n", + "\n", + "# Save the patterns to a file\n", + "obj.save('recurringPatterns.txt')\n", + "\n", + "# Retrieve the patterns as a DataFrame\n", + "recurringPatterns = obj.getPatternsAsDataFrame()\n", + "\n", + "# Display summary information\n", + "print('#Patterns: ' + str(len(recurringPatterns)))\n", + "print('Runtime: ' + str(obj.getRuntime()))\n", + "print('Memory (RSS): ' + str(obj.getMemoryRSS()))\n", + "print('Memory (USS): ' + str(obj.getMemoryUSS()))\n", + "```" + ], + "metadata": { + "id": "Terz7Pgucv88" + } + }, + { + "cell_type": "code", + "source": [ + "from PAMI.recurringPattern.basic import RPGrowth as alg\n", + "\n", + "# Initialize the RPGrowth algorithm with appropriate parameters\n", + "obj = alg.RPGrowth(iFile='Temporal_T10I4D100K.csv', minPS=20, maxPer=100, minRec=1, sep='\\t') # Separator used in the data file\n", + "\n", + "# Mine the recurring patterns\n", + "obj.mine()\n", + "\n", + "# Save the patterns to a file\n", + "obj.save('recurringPatterns.txt')\n", + "\n", + "# Retrieve the patterns as a DataFrame\n", + "recurringPatterns = obj.getPatternsAsDataFrame()\n", + "\n", + "# Display summary information\n", + "print('#Patterns: ' + str(len(recurringPatterns)))\n", + "print('Runtime: ' + str(obj.getRuntime()))\n", + "print('Memory (RSS): ' + str(obj.getMemoryRSS()))\n", + "print('Memory (USS): ' + str(obj.getMemoryUSS()))\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "dLlkp7NrcrHX", + "outputId": "6bfb787a-b81a-4e81-a74b-71d0d68ffa3d" + }, + "execution_count": 15, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Recurring patterns were generated successfully using RPGrowth algorithm \n", + "#Patterns: 307\n", + "Runtime: 13.774266719818115\n", + "Memory (RSS): 521764864\n", + "Memory (USS): 498724864\n" + ] + } + ] + } + ] +} \ No newline at end of file