{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Basic Usage of interpreTS Library\n", "\n", "This notebook demonstrates how to use the interpreTS library for feature extraction from time series data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Step 1: Import Libraries\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "from interpreTS.core.feature_extractor import FeatureExtractor, Features" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "interpreTS version: 0.5.0\n" ] } ], "source": [ "import interpreTS\n", "print(f\"interpreTS version: {interpreTS.__version__}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Step 2: Prepare Sample Time Series Data" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Sample data:\n", " timestamp value id\n", "0 2023-01-01 0.496714 1\n", "1 2023-01-02 -0.138264 1\n", "2 2023-01-03 0.647689 1\n", "3 2023-01-04 1.523030 1\n", "4 2023-01-05 -0.234153 1\n" ] } ], "source": [ "# Create a sample time series DataFrame\n", "np.random.seed(42) # For reproducibility\n", "data = pd.DataFrame({\n", " \"timestamp\": pd.date_range(start=\"2023-01-01\", periods=100, freq=\"D\"),\n", " \"value\": np.random.randn(100),\n", " \"id\": np.repeat([1, 2], 50) # Two different time series (IDs 1 and 2)\n", "})\n", "\n", "# Display the first few rows of the data\n", "print(\"Sample data:\")\n", "print(data.head())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Step 3: Initialize FeatureExtractor\n", "\n", "The FeatureExtractor class is the central component of the library. You can specify features to extract, the time window size, and other parameters." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Initialize the FeatureExtractor\n", "extractor = FeatureExtractor(\n", " features=[\n", " Features.MEAN,\n", " Features.VARIANCE,\n", " Features.HETEROGENEITY,\n", " Features.SPIKENESS\n", " ], # Specify features to extract\n", " window_size=10, # Rolling window size of 10 samples\n", " stride=5, # Step size of 5 samples\n", " id_column=\"id\", # Group by 'id' column\n", " feature_column=\"value\" # Extract features from the 'value' column\n", ")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Step 4: Extract Features\n", "\n", "Use the extract_features method to calculate features for the specified rolling windows." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Extracted features:\n", " mean_value variance_value heterogeneity_value spikeness_value\n", "0 0.448061 0.470467 1.613638 0.412307\n", "1 -0.213979 1.032079 5.004545 -0.131802\n", "2 -0.790658 0.513464 0.955311 0.015516\n", "3 -0.424293 0.698953 2.077002 1.013266\n", "4 -0.221844 0.596187 3.668792 0.630831\n" ] } ], "source": [ "# Extract features\n", "features = extractor.extract_features(data)\n", "\n", "# Display the extracted features\n", "print(\"Extracted features:\")\n", "print(features.head())\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Step 5: Visualize Extracted Features\n", "\n", "Visualize the extracted features to understand the time series' behavior better." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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bkZr3759WLx4Mb744gt069YNvXr1wocffogff/wRSUlJVX7d+vXr8cgjj6Br166IiYnBCy+8oLJhW7Zsser4SX8euLopnhjQgmWDREREROS4Ga0NGzaoAKlLly5l1/Xv3x/Ozs7YtGkTRo4cWenX9ejRAz/99BOGDRumvv7nn39GXl4err766iofKz8/X11MMjIy1EfJoslFS6bH13ocVDnOj35xbvSN86NvnB/94tzoG+fHPuemNl9jE4GWrLUKCQmpcJ2rqyuCgoLU56oigdXNN9+M4OBgdXtvb2/MmTMHzZo1q/JrXn/9dUydOvWi65cuXaq+Xg+kfJL0i/OjX5wbfeP86BvnR784N/rG+bGvucnJybGNQGvChAl44403Llk2WFcvvviiWqP1559/qjVac+fOVWu01qxZg7Zt21b6NRMnTsSTTz5ZIaMVFRWFgQMHqkYcWpIIWp4QAwYMgJubm6ZjoYtxfvSLc6NvnB994/zoF+dG3zg/9jk3pmo33QdaTz31FO68885qbyNrq6RrYGpqaoXri4qKVCdC+VxlDh06hI8++gi7d+9G69at1XXt27dXQdbHH3+MadOmVfp1Hh4e6nIhmQS9vEj0NBa6GOdHvzg3+sb50TfOj35xbvSN82Nfc1Ob22saaDVo0EBdLqV79+4qMyVNLDp37qyuW7FiBUpKSlRzjOrSerKOqzwXFxf1dURERERERA7ddbBVq1YYPHgwxo8fj82bN2PdunV4+OGHMWbMGERERKjbJCYmIjY2Vn1eyLGsxbr//vvVdZLheuedd1SacMSIERp/R0REREREZM9sItASM2fOVMFTv379MHToUNXi/fPPP69Qa5mQkFCWyZK03qJFi1TG7LrrrkO7du3w7bff4ptvvlFfT0REREREZCk20XVQSIfB6jYnbty4MQwGQ4Xrmjdvjt9++80KoyMiIiIiIrLBjBYREREREZGtYKBFRERERERkZgy0iIiIiIiIzIyBFhERERERkZkx0CIiIiIiIjIzBlpERERERERmxkCLiIiIiIjIzBhoERERERERmRkDLSIiIiIiIjNjoEVERERERGRmrua+Q3tjMBjUx4yMDK2HgsLCQuTk5KixuLm5aT0cugDnR784N/rG+dE3zo9+cW70jfNjn3NjiglMMUJ1GGhdQmZmpvoYFRWl9VCIiIiIiEgnMUJA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cKSmpqpjCZ6ioqLKgizRvXv3CrffsWMHDh48qDJa5eXl5eHQoUNl/58xYwZatGgBZ2dn7Nmzh0EWEZEDYaBFREQOx83NrcL/JQCSksGaysrKQufOnTFz5syLPtegQYMKAVl2drYKtJKTk1VAR0REjoGBFhERUTmtWrVSjS7KB0YbN26scJtOnTrhp59+QkhICPz9/Su9n3PnzqmSxeeff17d17hx47B161bVEIOIiOwfm2EQERGV079/f1Xud8cdd6iMlKzlkmCpPAma6tevrzoNyuePHDmCVatWqW6G0vhCSPMLKUF84YUX8O6776p1YU8//bRG3xUREVkbAy0iIqJypMxPml7k5uaqJhn33nsvXn311Qq3kdbtq1evRnR0tOpQKFmwe+65R63RkgzXt99+i0WLFuG7776Dq6ur6nAoDTSmT5+OP/74Q7PvjYiIrIddB4mIiIiIiMyMGS0iIiIiIiIzY6BFRERERERkZgy0iIiIiIiIzIyBFhERERERkZkx0CIiIiIiIjIzBlpERERERERmxkCLiIiIiIjIzBhoERERERERmRkDLSIiIiIiIjNjoEVERERERGRmDLSIiIiIiIhgXv8PeoEH2MdVj8cAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "# Plot one of the extracted features over time\n", "plt.figure(figsize=(10, 6))\n", "plt.plot(features.index, features['mean_value'], label=\"Mean (value)\")\n", "plt.title(\"Extracted Mean Feature Over Time\")\n", "plt.xlabel(\"Index\")\n", "plt.ylabel(\"Mean Value\")\n", "plt.legend()\n", "plt.grid()\n", "plt.show()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Step 6: Add a Custom Feature\n", "\n", "You can also add a custom feature to the library." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Custom feature 'RANGE' added successfully.\n", "Extracted features with custom feature:\n", " mean_value variance_value heterogeneity_value spikeness_value\n", "0 0.448061 0.470467 1.613638 0.412307\n", "1 -0.213979 1.032079 5.004545 -0.131802\n", "2 -0.790658 0.513464 0.955311 0.015516\n", "3 -0.424293 0.698953 2.077002 1.013266\n", "4 -0.221844 0.596187 3.668792 0.630831\n" ] } ], "source": [ "# Define a custom feature function\n", "def calculate_range(data):\n", " return data.max() - data.min()\n", "\n", "# Register the custom feature\n", "extractor.add_custom_feature(\n", " name=\"RANGE\",\n", " function=calculate_range,\n", " metadata={\n", " \"level\": \"easy\",\n", " \"description\": \"Range of values in the window (max - min).\"\n", " }\n", ")\n", "\n", "# Extract features again, including the custom feature\n", "features_with_custom = extractor.extract_features(data)\n", "\n", "# Display the features with the custom feature\n", "print(\"Extracted features with custom feature:\")\n", "print(features_with_custom.head())\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Step 7: Use the Library with Time-Based Windows" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Extracted features with time-based windows:\n", " mean_value variance_value\n", "0 0.448061 0.470467\n", "1 -0.213979 1.032079\n", "2 -0.790658 0.513464\n", "3 -0.424293 0.698953\n", "4 -0.221844 0.596187\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\nisia\\AppData\\Local\\Temp\\ipykernel_28680\\2252922758.py:5: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n", " data.fillna(method='ffill', inplace=True)\n" ] } ], "source": [ "data['timestamp'] = pd.to_datetime(data['timestamp'])\n", "data.set_index('timestamp', inplace=True)\n", "data.sort_index(inplace=True)\n", "data = data.asfreq('1D')\n", "data.fillna(method='ffill', inplace=True)\n", "\n", "# Initialize the FeatureExtractor with time-based windows\n", "time_based_extractor = FeatureExtractor(\n", " features=[Features.MEAN, Features.VARIANCE],\n", " window_size=\"10d\",\n", " stride=\"5d\",\n", " id_column=\"id\",\n", " sort_column=\"timestamp\",\n", " feature_column=\"value\"\n", ")\n", "\n", "time_based_features = time_based_extractor.extract_features(data)\n", "\n", "print(\"Extracted features with time-based windows:\")\n", "print(time_based_features.head())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Step 8: Use Advanced Features (e.g., HETEROGENEITY)\n", "\n", "Heterogeneity measures the coefficient of variation, providing insights into variability." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Extracted heterogeneity features:\n", " heterogeneity_value\n", "0 5.604416\n", "1 1.615857\n", "2 3.639584\n", "3 3.564077\n", "4 8.506366\n" ] } ], "source": [ "# Initialize the FeatureExtractor for heterogeneity\n", "heterogeneity_extractor = FeatureExtractor(\n", " features=[Features.HETEROGENEITY],\n", " window_size=20,\n", " stride=10,\n", " id_column=\"id\",\n", " feature_column=\"value\"\n", ")\n", "\n", "# Extract heterogeneity\n", "heterogeneity_features = heterogeneity_extractor.extract_features(data)\n", "\n", "# Display the extracted heterogeneity feature\n", "print(\"Extracted heterogeneity features:\")\n", "print(heterogeneity_features.head())\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.2" } }, "nbformat": 4, "nbformat_minor": 2 }