[3739ec]: / har70+.ipynb

Download this file

4322 lines (4321 with data), 249.1 kB

{
  "cells": [
    {
      "cell_type": "code",
      "execution_count": 9,
      "metadata": {
        "id": "h_hRu4BVQgO2"
      },
      "outputs": [],
      "source": [
        "import os\n",
        "import random\n",
        "import numpy as np\n",
        "import pandas as pd\n",
        "import matplotlib.pyplot as plt\n",
        "import cv2"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 10,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "iKJwVZf5QyET",
        "outputId": "ba472d0a-a5a9-4513-9534-9fe5d5652c82"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount(\"/content/drive\", force_remount=True).\n"
          ]
        }
      ],
      "source": [
        "from google.colab import drive\n",
        "drive.mount('/content/drive')"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 11,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "vtKso6kJRdTo",
        "outputId": "204dbc52-9d12-4e19-8f6e-738d4825cb29"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Archive:  /content/drive/MyDrive/har70.zip\n",
            "   creating: har70plus/\n",
            "  inflating: har70plus/515.csv       \n",
            "  inflating: har70plus/516.csv       \n",
            "  inflating: har70plus/512.csv       \n",
            "  inflating: har70plus/502.csv       \n",
            "  inflating: har70plus/518.csv       \n",
            "  inflating: har70plus/514.csv       \n",
            "  inflating: har70plus/511.csv       \n",
            "  inflating: har70plus/504.csv       \n",
            "  inflating: har70plus/517.csv       \n",
            "  inflating: har70plus/501.csv       \n",
            "  inflating: har70plus/509.csv       \n",
            "  inflating: har70plus/506.csv       \n",
            "  inflating: har70plus/503.csv       \n",
            "  inflating: har70plus/505.csv       \n",
            "  inflating: har70plus/513.csv       \n",
            "  inflating: har70plus/508.csv       \n",
            "  inflating: har70plus/510.csv       \n",
            "  inflating: har70plus/507.csv       \n"
          ]
        }
      ],
      "source": [
        "!unzip /content/drive/MyDrive/har70.zip"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "lBGl_UnM22H_"
      },
      "source": [
        "Data Preprocessing"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 12,
      "metadata": {
        "id": "Vi3K44r7R0zL"
      },
      "outputs": [],
      "source": [
        "df = pd.read_csv('/content/har70plus/501.csv')"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 13,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 206
        },
        "id": "kyA5mWYKSMnL",
        "outputId": "fc3abdf8-66a6-4bf1-e4e6-0be12fada808"
      },
      "outputs": [
        {
          "data": {
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "df"
            },
            "text/html": [
              "\n",
              "  <div id=\"df-0cc2bbe0-cc56-4a40-859b-f7ceb9c1365d\" class=\"colab-df-container\">\n",
              "    <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>timestamp</th>\n",
              "      <th>back_x</th>\n",
              "      <th>back_y</th>\n",
              "      <th>back_z</th>\n",
              "      <th>thigh_x</th>\n",
              "      <th>thigh_y</th>\n",
              "      <th>thigh_z</th>\n",
              "      <th>label</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>2021-03-24 14:42:03.839</td>\n",
              "      <td>-0.999023</td>\n",
              "      <td>-0.063477</td>\n",
              "      <td>0.140625</td>\n",
              "      <td>-0.980469</td>\n",
              "      <td>-0.112061</td>\n",
              "      <td>-0.048096</td>\n",
              "      <td>6</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>2021-03-24 14:42:03.859</td>\n",
              "      <td>-0.980225</td>\n",
              "      <td>-0.079346</td>\n",
              "      <td>0.140625</td>\n",
              "      <td>-0.961182</td>\n",
              "      <td>-0.121582</td>\n",
              "      <td>-0.051758</td>\n",
              "      <td>6</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>2021-03-24 14:42:03.880</td>\n",
              "      <td>-0.950195</td>\n",
              "      <td>-0.076416</td>\n",
              "      <td>0.140625</td>\n",
              "      <td>-0.949463</td>\n",
              "      <td>-0.080566</td>\n",
              "      <td>-0.067139</td>\n",
              "      <td>6</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>2021-03-24 14:42:03.900</td>\n",
              "      <td>-0.954834</td>\n",
              "      <td>-0.059082</td>\n",
              "      <td>0.140381</td>\n",
              "      <td>-0.957520</td>\n",
              "      <td>-0.046143</td>\n",
              "      <td>-0.050781</td>\n",
              "      <td>6</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>2021-03-24 14:42:03.920</td>\n",
              "      <td>-0.972412</td>\n",
              "      <td>-0.042969</td>\n",
              "      <td>0.142822</td>\n",
              "      <td>-0.977051</td>\n",
              "      <td>-0.023682</td>\n",
              "      <td>-0.026611</td>\n",
              "      <td>6</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-0cc2bbe0-cc56-4a40-859b-f7ceb9c1365d')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-0cc2bbe0-cc56-4a40-859b-f7ceb9c1365d button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-0cc2bbe0-cc56-4a40-859b-f7ceb9c1365d');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-b9b2fefd-22ec-405d-83db-f06a450928b5\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-b9b2fefd-22ec-405d-83db-f06a450928b5')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-b9b2fefd-22ec-405d-83db-f06a450928b5 button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "text/plain": [
              "                 timestamp    back_x    back_y    back_z   thigh_x   thigh_y  \\\n",
              "0  2021-03-24 14:42:03.839 -0.999023 -0.063477  0.140625 -0.980469 -0.112061   \n",
              "1  2021-03-24 14:42:03.859 -0.980225 -0.079346  0.140625 -0.961182 -0.121582   \n",
              "2  2021-03-24 14:42:03.880 -0.950195 -0.076416  0.140625 -0.949463 -0.080566   \n",
              "3  2021-03-24 14:42:03.900 -0.954834 -0.059082  0.140381 -0.957520 -0.046143   \n",
              "4  2021-03-24 14:42:03.920 -0.972412 -0.042969  0.142822 -0.977051 -0.023682   \n",
              "\n",
              "    thigh_z  label  \n",
              "0 -0.048096      6  \n",
              "1 -0.051758      6  \n",
              "2 -0.067139      6  \n",
              "3 -0.050781      6  \n",
              "4 -0.026611      6  "
            ]
          },
          "execution_count": 13,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "df.head()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 14,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "GyNMmcqESTzN",
        "outputId": "4ab1b1d0-fde3-4bf0-e04f-2996717adf68"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "(103860, 8)"
            ]
          },
          "execution_count": 14,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "df.shape"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 15,
      "metadata": {
        "id": "zcIaTRLESYSh"
      },
      "outputs": [],
      "source": [
        "df_1 = pd.read_csv('/content/har70plus/517.csv')"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 16,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 206
        },
        "id": "eu_rkQfKSe9y",
        "outputId": "6b680459-38fa-4a5d-f949-df51a55af322"
      },
      "outputs": [
        {
          "data": {
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "df_1"
            },
            "text/html": [
              "\n",
              "  <div id=\"df-a6a69041-7d23-4a61-bcaf-c5f571463299\" class=\"colab-df-container\">\n",
              "    <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>timestamp</th>\n",
              "      <th>back_x</th>\n",
              "      <th>back_y</th>\n",
              "      <th>back_z</th>\n",
              "      <th>thigh_x</th>\n",
              "      <th>thigh_y</th>\n",
              "      <th>thigh_z</th>\n",
              "      <th>label</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>2021-06-08 10:04:08.527</td>\n",
              "      <td>-0.984863</td>\n",
              "      <td>-0.089600</td>\n",
              "      <td>-0.308105</td>\n",
              "      <td>-0.944092</td>\n",
              "      <td>-0.124268</td>\n",
              "      <td>0.017578</td>\n",
              "      <td>6</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>2021-06-08 10:04:08.546</td>\n",
              "      <td>-0.985840</td>\n",
              "      <td>-0.075928</td>\n",
              "      <td>-0.309082</td>\n",
              "      <td>-0.995361</td>\n",
              "      <td>-0.098389</td>\n",
              "      <td>0.014160</td>\n",
              "      <td>6</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>2021-06-08 10:04:08.566</td>\n",
              "      <td>-0.972168</td>\n",
              "      <td>-0.059814</td>\n",
              "      <td>-0.292480</td>\n",
              "      <td>-1.005127</td>\n",
              "      <td>-0.079102</td>\n",
              "      <td>0.028809</td>\n",
              "      <td>6</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>2021-06-08 10:04:08.586</td>\n",
              "      <td>-0.955322</td>\n",
              "      <td>-0.057861</td>\n",
              "      <td>-0.305176</td>\n",
              "      <td>-0.925049</td>\n",
              "      <td>-0.075684</td>\n",
              "      <td>0.048096</td>\n",
              "      <td>6</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>2021-06-08 10:04:08.607</td>\n",
              "      <td>-0.954590</td>\n",
              "      <td>-0.058105</td>\n",
              "      <td>-0.310791</td>\n",
              "      <td>-0.935547</td>\n",
              "      <td>-0.123047</td>\n",
              "      <td>0.001709</td>\n",
              "      <td>6</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-a6a69041-7d23-4a61-bcaf-c5f571463299')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-a6a69041-7d23-4a61-bcaf-c5f571463299 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-a6a69041-7d23-4a61-bcaf-c5f571463299');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-3dd963f0-511d-451a-9119-2d20098371b9\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-3dd963f0-511d-451a-9119-2d20098371b9')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-3dd963f0-511d-451a-9119-2d20098371b9 button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "text/plain": [
              "                 timestamp    back_x    back_y    back_z   thigh_x   thigh_y  \\\n",
              "0  2021-06-08 10:04:08.527 -0.984863 -0.089600 -0.308105 -0.944092 -0.124268   \n",
              "1  2021-06-08 10:04:08.546 -0.985840 -0.075928 -0.309082 -0.995361 -0.098389   \n",
              "2  2021-06-08 10:04:08.566 -0.972168 -0.059814 -0.292480 -1.005127 -0.079102   \n",
              "3  2021-06-08 10:04:08.586 -0.955322 -0.057861 -0.305176 -0.925049 -0.075684   \n",
              "4  2021-06-08 10:04:08.607 -0.954590 -0.058105 -0.310791 -0.935547 -0.123047   \n",
              "\n",
              "    thigh_z  label  \n",
              "0  0.017578      6  \n",
              "1  0.014160      6  \n",
              "2  0.028809      6  \n",
              "3  0.048096      6  \n",
              "4  0.001709      6  "
            ]
          },
          "execution_count": 16,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "df_1.head()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 17,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 206
        },
        "id": "Y6EHejBzSiIg",
        "outputId": "faedc406-85dc-461e-e290-9e73d6e0d653"
      },
      "outputs": [
        {
          "data": {
            "application/vnd.google.colaboratory.intrinsic+json": {
              "repr_error": "0",
              "type": "dataframe"
            },
            "text/html": [
              "\n",
              "  <div id=\"df-63ca1299-520d-4075-b998-7121b060dc1f\" class=\"colab-df-container\">\n",
              "    <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>timestamp</th>\n",
              "      <th>back_x</th>\n",
              "      <th>back_y</th>\n",
              "      <th>back_z</th>\n",
              "      <th>thigh_x</th>\n",
              "      <th>thigh_y</th>\n",
              "      <th>thigh_z</th>\n",
              "      <th>label</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>147040</th>\n",
              "      <td>2021-06-08 10:54:18.006</td>\n",
              "      <td>-1.061035</td>\n",
              "      <td>-0.028564</td>\n",
              "      <td>-0.311768</td>\n",
              "      <td>-1.264404</td>\n",
              "      <td>-0.308838</td>\n",
              "      <td>0.161865</td>\n",
              "      <td>1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>147041</th>\n",
              "      <td>2021-06-08 10:54:18.027</td>\n",
              "      <td>-1.058105</td>\n",
              "      <td>0.030762</td>\n",
              "      <td>-0.292480</td>\n",
              "      <td>-0.917725</td>\n",
              "      <td>-0.214111</td>\n",
              "      <td>0.133545</td>\n",
              "      <td>1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>147042</th>\n",
              "      <td>2021-06-08 10:54:18.047</td>\n",
              "      <td>-1.111572</td>\n",
              "      <td>0.077637</td>\n",
              "      <td>-0.296387</td>\n",
              "      <td>-0.903809</td>\n",
              "      <td>-0.222656</td>\n",
              "      <td>-0.004639</td>\n",
              "      <td>1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>147043</th>\n",
              "      <td>2021-06-08 10:54:18.066</td>\n",
              "      <td>-1.157715</td>\n",
              "      <td>0.036133</td>\n",
              "      <td>-0.317139</td>\n",
              "      <td>-1.138672</td>\n",
              "      <td>-0.262451</td>\n",
              "      <td>-0.151855</td>\n",
              "      <td>1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>147044</th>\n",
              "      <td>2021-06-08 10:54:18.086</td>\n",
              "      <td>-1.147461</td>\n",
              "      <td>-0.062988</td>\n",
              "      <td>-0.326660</td>\n",
              "      <td>-1.223389</td>\n",
              "      <td>-0.165039</td>\n",
              "      <td>-0.124268</td>\n",
              "      <td>1</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-63ca1299-520d-4075-b998-7121b060dc1f')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-63ca1299-520d-4075-b998-7121b060dc1f button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-63ca1299-520d-4075-b998-7121b060dc1f');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-cd9b6046-2481-4675-a869-3bb835b2ce65\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-cd9b6046-2481-4675-a869-3bb835b2ce65')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-cd9b6046-2481-4675-a869-3bb835b2ce65 button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "text/plain": [
              "                      timestamp    back_x    back_y    back_z   thigh_x  \\\n",
              "147040  2021-06-08 10:54:18.006 -1.061035 -0.028564 -0.311768 -1.264404   \n",
              "147041  2021-06-08 10:54:18.027 -1.058105  0.030762 -0.292480 -0.917725   \n",
              "147042  2021-06-08 10:54:18.047 -1.111572  0.077637 -0.296387 -0.903809   \n",
              "147043  2021-06-08 10:54:18.066 -1.157715  0.036133 -0.317139 -1.138672   \n",
              "147044  2021-06-08 10:54:18.086 -1.147461 -0.062988 -0.326660 -1.223389   \n",
              "\n",
              "         thigh_y   thigh_z  label  \n",
              "147040 -0.308838  0.161865      1  \n",
              "147041 -0.214111  0.133545      1  \n",
              "147042 -0.222656 -0.004639      1  \n",
              "147043 -0.262451 -0.151855      1  \n",
              "147044 -0.165039 -0.124268      1  "
            ]
          },
          "execution_count": 17,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "df_1.tail()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 18,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "RTv2LqDCSoXL",
        "outputId": "50571731-61d9-42de-daf9-36b4298d34d6"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "(147045, 8)"
            ]
          },
          "execution_count": 18,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "df_1.shape"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 19,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 300
        },
        "id": "3I7ymSN2Syhf",
        "outputId": "e0ab7408-1e6e-4f37-80fc-12647bfeefbe"
      },
      "outputs": [
        {
          "data": {
            "application/vnd.google.colaboratory.intrinsic+json": {
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 8,\n  \"fields\": [\n    {\n      \"column\": \"back_x\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 36720.35312763863,\n        \"min\": -2.895264,\n        \"max\": 103860.0,\n        \"num_unique_values\": 8,\n        \"samples\": [\n          -0.8808829120643173,\n          -0.920898,\n          103860.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"back_y\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 36720.07596531585,\n        \"min\": -1.157471,\n        \"max\": 103860.0,\n        \"num_unique_values\": 8,\n        \"samples\": [\n          -0.06950591103408435,\n          -0.0625,\n          103860.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"back_z\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 36720.10475866899,\n        \"min\": -2.204834,\n        \"max\": 103860.0,\n        \"num_unique_values\": 8,\n        \"samples\": [\n          -0.0032009579530136376,\n          -0.136963,\n          103860.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"thigh_x\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 36720.51595591762,\n        \"min\": -7.942139,\n        \"max\": 103860.0,\n        \"num_unique_values\": 8,\n        \"samples\": [\n          -0.7943074149046793,\n          -0.9375,\n          103860.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"thigh_y\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 36720.08217251648,\n        \"min\": -3.60083,\n        \"max\": 103860.0,\n        \"num_unique_values\": 8,\n        \"samples\": [\n          -0.09559411720585403,\n          -0.080322,\n          103860.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"thigh_z\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 36720.21687120069,\n        \"min\": -4.193604,\n        \"max\": 103860.0,\n        \"num_unique_values\": 8,\n        \"samples\": [\n          -0.31835447059503175,\n          -0.131348,\n          103860.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"label\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 36718.8886521831,\n        \"min\": 1.0,\n        \"max\": 103860.0,\n        \"num_unique_values\": 6,\n        \"samples\": [\n          103860.0,\n          3.2370691315232043,\n          8.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}",
              "type": "dataframe"
            },
            "text/html": [
              "\n",
              "  <div id=\"df-a14ff6e4-d0a1-4312-88b7-31c80830dee6\" class=\"colab-df-container\">\n",
              "    <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>back_x</th>\n",
              "      <th>back_y</th>\n",
              "      <th>back_z</th>\n",
              "      <th>thigh_x</th>\n",
              "      <th>thigh_y</th>\n",
              "      <th>thigh_z</th>\n",
              "      <th>label</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>count</th>\n",
              "      <td>103860.000000</td>\n",
              "      <td>103860.000000</td>\n",
              "      <td>103860.000000</td>\n",
              "      <td>103860.000000</td>\n",
              "      <td>103860.000000</td>\n",
              "      <td>103860.000000</td>\n",
              "      <td>103860.000000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>mean</th>\n",
              "      <td>-0.880883</td>\n",
              "      <td>-0.069506</td>\n",
              "      <td>-0.003201</td>\n",
              "      <td>-0.794307</td>\n",
              "      <td>-0.095594</td>\n",
              "      <td>-0.318354</td>\n",
              "      <td>3.237069</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>std</th>\n",
              "      <td>0.340989</td>\n",
              "      <td>0.128599</td>\n",
              "      <td>0.417656</td>\n",
              "      <td>0.599406</td>\n",
              "      <td>0.210591</td>\n",
              "      <td>0.547369</td>\n",
              "      <td>2.860101</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>min</th>\n",
              "      <td>-2.895264</td>\n",
              "      <td>-1.157471</td>\n",
              "      <td>-2.204834</td>\n",
              "      <td>-7.942139</td>\n",
              "      <td>-3.600830</td>\n",
              "      <td>-4.193604</td>\n",
              "      <td>1.000000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>25%</th>\n",
              "      <td>-1.015625</td>\n",
              "      <td>-0.137939</td>\n",
              "      <td>-0.268066</td>\n",
              "      <td>-1.003174</td>\n",
              "      <td>-0.187256</td>\n",
              "      <td>-1.046875</td>\n",
              "      <td>1.000000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>50%</th>\n",
              "      <td>-0.920898</td>\n",
              "      <td>-0.062500</td>\n",
              "      <td>-0.136963</td>\n",
              "      <td>-0.937500</td>\n",
              "      <td>-0.080322</td>\n",
              "      <td>-0.131348</td>\n",
              "      <td>1.000000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>75%</th>\n",
              "      <td>-0.767517</td>\n",
              "      <td>-0.006836</td>\n",
              "      <td>0.234375</td>\n",
              "      <td>-0.203125</td>\n",
              "      <td>-0.015625</td>\n",
              "      <td>0.080078</td>\n",
              "      <td>6.000000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>max</th>\n",
              "      <td>0.239746</td>\n",
              "      <td>0.893555</td>\n",
              "      <td>0.979004</td>\n",
              "      <td>1.159424</td>\n",
              "      <td>3.234863</td>\n",
              "      <td>1.861572</td>\n",
              "      <td>8.000000</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-a14ff6e4-d0a1-4312-88b7-31c80830dee6')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-a14ff6e4-d0a1-4312-88b7-31c80830dee6 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-a14ff6e4-d0a1-4312-88b7-31c80830dee6');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-e04e41e8-d4d5-4b4e-952c-fdfaedab857b\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-e04e41e8-d4d5-4b4e-952c-fdfaedab857b')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-e04e41e8-d4d5-4b4e-952c-fdfaedab857b button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "text/plain": [
              "              back_x         back_y         back_z        thigh_x  \\\n",
              "count  103860.000000  103860.000000  103860.000000  103860.000000   \n",
              "mean       -0.880883      -0.069506      -0.003201      -0.794307   \n",
              "std         0.340989       0.128599       0.417656       0.599406   \n",
              "min        -2.895264      -1.157471      -2.204834      -7.942139   \n",
              "25%        -1.015625      -0.137939      -0.268066      -1.003174   \n",
              "50%        -0.920898      -0.062500      -0.136963      -0.937500   \n",
              "75%        -0.767517      -0.006836       0.234375      -0.203125   \n",
              "max         0.239746       0.893555       0.979004       1.159424   \n",
              "\n",
              "             thigh_y        thigh_z          label  \n",
              "count  103860.000000  103860.000000  103860.000000  \n",
              "mean       -0.095594      -0.318354       3.237069  \n",
              "std         0.210591       0.547369       2.860101  \n",
              "min        -3.600830      -4.193604       1.000000  \n",
              "25%        -0.187256      -1.046875       1.000000  \n",
              "50%        -0.080322      -0.131348       1.000000  \n",
              "75%        -0.015625       0.080078       6.000000  \n",
              "max         3.234863       1.861572       8.000000  "
            ]
          },
          "execution_count": 19,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "df.describe()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 20,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 423
        },
        "id": "08ETIQh0TCIG",
        "outputId": "b29317db-4c59-4126-d8df-6a28f308e34b"
      },
      "outputs": [
        {
          "data": {
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe"
            },
            "text/html": [
              "\n",
              "  <div id=\"df-bb3ef152-087b-4f18-b4f4-c676aed31f34\" class=\"colab-df-container\">\n",
              "    <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>timestamp</th>\n",
              "      <th>back_x</th>\n",
              "      <th>back_y</th>\n",
              "      <th>back_z</th>\n",
              "      <th>thigh_x</th>\n",
              "      <th>thigh_y</th>\n",
              "      <th>thigh_z</th>\n",
              "      <th>label</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>...</th>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>103855</th>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>103856</th>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>103857</th>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>103858</th>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>103859</th>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "<p>103860 rows × 8 columns</p>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-bb3ef152-087b-4f18-b4f4-c676aed31f34')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-bb3ef152-087b-4f18-b4f4-c676aed31f34 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-bb3ef152-087b-4f18-b4f4-c676aed31f34');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-82609ca4-1900-4e22-b5e8-1dea60081e85\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-82609ca4-1900-4e22-b5e8-1dea60081e85')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-82609ca4-1900-4e22-b5e8-1dea60081e85 button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "text/plain": [
              "        timestamp  back_x  back_y  back_z  thigh_x  thigh_y  thigh_z  label\n",
              "0           False   False   False   False    False    False    False  False\n",
              "1           False   False   False   False    False    False    False  False\n",
              "2           False   False   False   False    False    False    False  False\n",
              "3           False   False   False   False    False    False    False  False\n",
              "4           False   False   False   False    False    False    False  False\n",
              "...           ...     ...     ...     ...      ...      ...      ...    ...\n",
              "103855      False   False   False   False    False    False    False  False\n",
              "103856      False   False   False   False    False    False    False  False\n",
              "103857      False   False   False   False    False    False    False  False\n",
              "103858      False   False   False   False    False    False    False  False\n",
              "103859      False   False   False   False    False    False    False  False\n",
              "\n",
              "[103860 rows x 8 columns]"
            ]
          },
          "execution_count": 20,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "df.isnull()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "I0aNmZkw3Qax"
      },
      "source": [
        "Collecting all dataFrame"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 21,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Haf5mUY8aSba",
        "outputId": "a7162112-5a24-4bdb-e6ab-8db06ca431c1"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "511 (128063, 8)\n",
            "517 (147045, 8)\n",
            "502 (131367, 8)\n",
            "516 (138278, 8)\n",
            "513 (123599, 8)\n",
            "510 (122061, 8)\n",
            "505 (87006, 8)\n",
            "507 (120125, 8)\n",
            "508 (130494, 8)\n",
            "503 (116413, 8)\n",
            "504 (150758, 8)\n",
            "514 (101510, 8)\n",
            "509 (121763, 8)\n",
            "501 (103860, 8)\n",
            "515 (153517, 8)\n",
            "506 (122714, 8)\n",
            "512 (119310, 8)\n",
            "518 (141714, 8)\n"
          ]
        }
      ],
      "source": [
        "# Specify the path to the directory containing your CSV files in Google Drive\n",
        "data_dir = '/content/har70plus'\n",
        "\n",
        "# Collect paths of all CSV files in the specified directory\n",
        "lis_paths = []\n",
        "for dirname, _, filenames in os.walk(data_dir):\n",
        "    for filename in filenames:\n",
        "        if filename.endswith('.csv'):\n",
        "            lis_paths.append(os.path.join(dirname, filename))\n",
        "\n",
        "# Read CSV files into a dictionary\n",
        "old_act_dfs = {}\n",
        "for i, path in enumerate(lis_paths):\n",
        "    temp = pd.read_csv(path)\n",
        "    old_act_dfs[path.split('/')[-1].split('.')[0]] = temp\n",
        "    print(path.split('/')[-1].split('.')[0], temp.shape)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 22,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "M4VAgtbydH92",
        "outputId": "a84701ef-4cd7-4f52-fe25-9b93879af845"
      },
      "outputs": [
        {
          "data": {
            "application/vnd.google.colaboratory.intrinsic+json": {
              "repr_error": "0",
              "type": "dataframe"
            },
            "text/html": [
              "\n",
              "  <div id=\"df-5746809f-f4de-4512-bde3-807e101f6df6\" class=\"colab-df-container\">\n",
              "    <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>timestamp</th>\n",
              "      <th>back_x</th>\n",
              "      <th>back_y</th>\n",
              "      <th>back_z</th>\n",
              "      <th>thigh_x</th>\n",
              "      <th>thigh_y</th>\n",
              "      <th>thigh_z</th>\n",
              "      <th>label</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>43422</th>\n",
              "      <td>2021-06-11 10:39:17.958</td>\n",
              "      <td>-0.661377</td>\n",
              "      <td>-0.079346</td>\n",
              "      <td>0.726562</td>\n",
              "      <td>0.004395</td>\n",
              "      <td>0.000977</td>\n",
              "      <td>-0.999268</td>\n",
              "      <td>7</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>41473</th>\n",
              "      <td>2021-06-11 10:38:38.979</td>\n",
              "      <td>-0.676758</td>\n",
              "      <td>-0.063965</td>\n",
              "      <td>0.744385</td>\n",
              "      <td>0.004395</td>\n",
              "      <td>0.000977</td>\n",
              "      <td>-0.999268</td>\n",
              "      <td>7</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>131309</th>\n",
              "      <td>2021-06-11 11:09:27.259</td>\n",
              "      <td>-0.818848</td>\n",
              "      <td>0.386963</td>\n",
              "      <td>-0.437256</td>\n",
              "      <td>-2.290771</td>\n",
              "      <td>-0.662598</td>\n",
              "      <td>-0.659912</td>\n",
              "      <td>1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8824</th>\n",
              "      <td>2021-06-11 10:27:39.598</td>\n",
              "      <td>-0.630859</td>\n",
              "      <td>-0.189453</td>\n",
              "      <td>0.748291</td>\n",
              "      <td>-0.012207</td>\n",
              "      <td>0.078613</td>\n",
              "      <td>-0.981201</td>\n",
              "      <td>7</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-5746809f-f4de-4512-bde3-807e101f6df6')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-5746809f-f4de-4512-bde3-807e101f6df6 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-5746809f-f4de-4512-bde3-807e101f6df6');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-b4bc2770-1a6b-4afe-bb51-2682723cf90a\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-b4bc2770-1a6b-4afe-bb51-2682723cf90a')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-b4bc2770-1a6b-4afe-bb51-2682723cf90a button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "text/plain": [
              "                      timestamp    back_x    back_y    back_z   thigh_x  \\\n",
              "43422   2021-06-11 10:39:17.958 -0.661377 -0.079346  0.726562  0.004395   \n",
              "41473   2021-06-11 10:38:38.979 -0.676758 -0.063965  0.744385  0.004395   \n",
              "131309  2021-06-11 11:09:27.259 -0.818848  0.386963 -0.437256 -2.290771   \n",
              "8824    2021-06-11 10:27:39.598 -0.630859 -0.189453  0.748291 -0.012207   \n",
              "\n",
              "         thigh_y   thigh_z  label  \n",
              "43422   0.000977 -0.999268      7  \n",
              "41473   0.000977 -0.999268      7  \n",
              "131309 -0.662598 -0.659912      1  \n",
              "8824    0.078613 -0.981201      7  "
            ]
          },
          "execution_count": 22,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "df_keys = list(old_act_dfs.keys()) # getting list of all keys from dictionary\n",
        "old_act_dfs['518'].sample(4)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "3v-V1eW33dMj"
      },
      "source": [
        "Check all null values\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 23,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "VOiDKS2MdOJy",
        "outputId": "37ed5986-7182-448a-c5c3-50bf882cd55e"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "511 timestamp    0\n",
            "back_x       0\n",
            "back_y       0\n",
            "back_z       0\n",
            "thigh_x      0\n",
            "thigh_y      0\n",
            "thigh_z      0\n",
            "label        0\n",
            "dtype: int64\n",
            "517 timestamp    0\n",
            "back_x       0\n",
            "back_y       0\n",
            "back_z       0\n",
            "thigh_x      0\n",
            "thigh_y      0\n",
            "thigh_z      0\n",
            "label        0\n",
            "dtype: int64\n",
            "502 timestamp    0\n",
            "back_x       0\n",
            "back_y       0\n",
            "back_z       0\n",
            "thigh_x      0\n",
            "thigh_y      0\n",
            "thigh_z      0\n",
            "label        0\n",
            "dtype: int64\n",
            "516 timestamp    0\n",
            "back_x       0\n",
            "back_y       0\n",
            "back_z       0\n",
            "thigh_x      0\n",
            "thigh_y      0\n",
            "thigh_z      0\n",
            "label        0\n",
            "dtype: int64\n",
            "513 timestamp    0\n",
            "back_x       0\n",
            "back_y       0\n",
            "back_z       0\n",
            "thigh_x      0\n",
            "thigh_y      0\n",
            "thigh_z      0\n",
            "label        0\n",
            "dtype: int64\n",
            "510 timestamp    0\n",
            "back_x       0\n",
            "back_y       0\n",
            "back_z       0\n",
            "thigh_x      0\n",
            "thigh_y      0\n",
            "thigh_z      0\n",
            "label        0\n",
            "dtype: int64\n",
            "505 timestamp    0\n",
            "back_x       0\n",
            "back_y       0\n",
            "back_z       0\n",
            "thigh_x      0\n",
            "thigh_y      0\n",
            "thigh_z      0\n",
            "label        0\n",
            "dtype: int64\n",
            "507 timestamp    0\n",
            "back_x       0\n",
            "back_y       0\n",
            "back_z       0\n",
            "thigh_x      0\n",
            "thigh_y      0\n",
            "thigh_z      0\n",
            "label        0\n",
            "dtype: int64\n",
            "508 timestamp    0\n",
            "back_x       0\n",
            "back_y       0\n",
            "back_z       0\n",
            "thigh_x      0\n",
            "thigh_y      0\n",
            "thigh_z      0\n",
            "label        0\n",
            "dtype: int64\n",
            "503 timestamp    0\n",
            "back_x       0\n",
            "back_y       0\n",
            "back_z       0\n",
            "thigh_x      0\n",
            "thigh_y      0\n",
            "thigh_z      0\n",
            "label        0\n",
            "dtype: int64\n",
            "504 timestamp    0\n",
            "back_x       0\n",
            "back_y       0\n",
            "back_z       0\n",
            "thigh_x      0\n",
            "thigh_y      0\n",
            "thigh_z      0\n",
            "label        0\n",
            "dtype: int64\n",
            "514 timestamp    0\n",
            "back_x       0\n",
            "back_y       0\n",
            "back_z       0\n",
            "thigh_x      0\n",
            "thigh_y      0\n",
            "thigh_z      0\n",
            "label        0\n",
            "dtype: int64\n",
            "509 timestamp    0\n",
            "back_x       0\n",
            "back_y       0\n",
            "back_z       0\n",
            "thigh_x      0\n",
            "thigh_y      0\n",
            "thigh_z      0\n",
            "label        0\n",
            "dtype: int64\n",
            "501 timestamp    0\n",
            "back_x       0\n",
            "back_y       0\n",
            "back_z       0\n",
            "thigh_x      0\n",
            "thigh_y      0\n",
            "thigh_z      0\n",
            "label        0\n",
            "dtype: int64\n",
            "515 timestamp    0\n",
            "back_x       0\n",
            "back_y       0\n",
            "back_z       0\n",
            "thigh_x      0\n",
            "thigh_y      0\n",
            "thigh_z      0\n",
            "label        0\n",
            "dtype: int64\n",
            "506 timestamp    0\n",
            "back_x       0\n",
            "back_y       0\n",
            "back_z       0\n",
            "thigh_x      0\n",
            "thigh_y      0\n",
            "thigh_z      0\n",
            "label        0\n",
            "dtype: int64\n",
            "512 timestamp    0\n",
            "back_x       0\n",
            "back_y       0\n",
            "back_z       0\n",
            "thigh_x      0\n",
            "thigh_y      0\n",
            "thigh_z      0\n",
            "label        0\n",
            "dtype: int64\n",
            "518 timestamp    0\n",
            "back_x       0\n",
            "back_y       0\n",
            "back_z       0\n",
            "thigh_x      0\n",
            "thigh_y      0\n",
            "thigh_z      0\n",
            "label        0\n",
            "dtype: int64\n"
          ]
        }
      ],
      "source": [
        "for key,value in old_act_dfs.items():\n",
        "    print(key,value.isnull().sum())"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "tG4Bpr5WdgWF"
      },
      "source": [
        "No Null values are present the data is cleaned"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "y17GrSJUduFs"
      },
      "source": [
        "No need of timestamp"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 24,
      "metadata": {
        "id": "SiUBzHo6doDp"
      },
      "outputs": [],
      "source": [
        "for key,value in old_act_dfs.items():\n",
        "    old_act_dfs[key] = value.drop('timestamp',axis='columns')"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "HyJHB7cfd42B"
      },
      "source": [
        "Combining all dataset"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 25,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "D4UtIUlnd8Gi",
        "outputId": "2c8bfe0e-906d-4d8f-dd7d-bce979ac3ae0"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "back_x     0\n",
              "back_y     0\n",
              "back_z     0\n",
              "thigh_x    0\n",
              "thigh_y    0\n",
              "thigh_z    0\n",
              "label      0\n",
              "dtype: int64"
            ]
          },
          "execution_count": 25,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "df_final = old_act_dfs[df_keys[0]]\n",
        "for key in df_keys[1:]:\n",
        "    df_final = pd.concat([df_final,old_act_dfs[key]],axis=0)\n",
        "df_final.isnull().sum()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 26,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 206
        },
        "id": "j2OAuMhbd_E3",
        "outputId": "e9d98b87-1d7e-45c1-fd5c-b8e4ebe2a39e"
      },
      "outputs": [
        {
          "data": {
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "df_final"
            },
            "text/html": [
              "\n",
              "  <div id=\"df-f97a0841-60b0-4d53-a412-f03752812e0c\" class=\"colab-df-container\">\n",
              "    <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>back_x</th>\n",
              "      <th>back_y</th>\n",
              "      <th>back_z</th>\n",
              "      <th>thigh_x</th>\n",
              "      <th>thigh_y</th>\n",
              "      <th>thigh_z</th>\n",
              "      <th>label</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>-0.976807</td>\n",
              "      <td>0.051758</td>\n",
              "      <td>0.124023</td>\n",
              "      <td>-0.996582</td>\n",
              "      <td>0.016357</td>\n",
              "      <td>0.047607</td>\n",
              "      <td>6</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>-0.986328</td>\n",
              "      <td>0.044434</td>\n",
              "      <td>0.145996</td>\n",
              "      <td>-0.994141</td>\n",
              "      <td>-0.068359</td>\n",
              "      <td>0.105713</td>\n",
              "      <td>6</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>-0.983154</td>\n",
              "      <td>0.029541</td>\n",
              "      <td>0.170898</td>\n",
              "      <td>-0.994385</td>\n",
              "      <td>-0.109863</td>\n",
              "      <td>0.109375</td>\n",
              "      <td>6</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>-0.988770</td>\n",
              "      <td>0.036621</td>\n",
              "      <td>0.171143</td>\n",
              "      <td>-0.993408</td>\n",
              "      <td>-0.113037</td>\n",
              "      <td>0.125977</td>\n",
              "      <td>6</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>-1.001953</td>\n",
              "      <td>0.057373</td>\n",
              "      <td>0.189697</td>\n",
              "      <td>-1.010742</td>\n",
              "      <td>-0.098877</td>\n",
              "      <td>0.112549</td>\n",
              "      <td>6</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-f97a0841-60b0-4d53-a412-f03752812e0c')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-f97a0841-60b0-4d53-a412-f03752812e0c button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-f97a0841-60b0-4d53-a412-f03752812e0c');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-07ccf109-3623-4556-b7ba-630f1cf0495c\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-07ccf109-3623-4556-b7ba-630f1cf0495c')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-07ccf109-3623-4556-b7ba-630f1cf0495c button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "text/plain": [
              "     back_x    back_y    back_z   thigh_x   thigh_y   thigh_z  label\n",
              "0 -0.976807  0.051758  0.124023 -0.996582  0.016357  0.047607      6\n",
              "1 -0.986328  0.044434  0.145996 -0.994141 -0.068359  0.105713      6\n",
              "2 -0.983154  0.029541  0.170898 -0.994385 -0.109863  0.109375      6\n",
              "3 -0.988770  0.036621  0.171143 -0.993408 -0.113037  0.125977      6\n",
              "4 -1.001953  0.057373  0.189697 -1.010742 -0.098877  0.112549      6"
            ]
          },
          "execution_count": 26,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "df_final.head()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 27,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "zFrl4BIKeGq3",
        "outputId": "8510f98f-b99c-471a-d964-9c6f832ba0b6"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "(2259597, 7)"
            ]
          },
          "execution_count": 27,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "df_final.shape"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "XAOa1yxVeZeL"
      },
      "source": [
        "Remove duplicates values"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 28,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "OAGP9FsIecOq",
        "outputId": "036cb1b6-5b77-440c-89ae-490e3d12c52e"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Duplicate values in df ---->  62611\n"
          ]
        }
      ],
      "source": [
        "print(\"Duplicate values in df ----> \",df_final.duplicated().sum())\n",
        "df_final = df_final.drop_duplicates() # dropped duplicate values from dataset"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 29,
      "metadata": {
        "id": "C8hE7gyuefOP"
      },
      "outputs": [],
      "source": [
        "import matplotlib.pyplot as plt\n",
        "import plotly.graph_objects as go"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 30,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 560
        },
        "id": "vEhI-Kl-e8TC",
        "outputId": "1f1f75f3-e7d0-4c90-d388-0b03b968d7ad"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "sum of counts --->  2196986 shape of df_final --->  (2196986, 7)\n"
          ]
        },
        {
          "data": {
            "text/html": [
              "<html>\n",
              "<head><meta charset=\"utf-8\" /></head>\n",
              "<body>\n",
              "    <div>            <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script>                <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
              "        <script charset=\"utf-8\" src=\"https://cdn.plot.ly/plotly-2.24.1.min.js\"></script>                <div id=\"3eb99e81-d865-44ff-a1b4-5f56b01776b0\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div>            <script type=\"text/javascript\">                                    window.PLOTLYENV=window.PLOTLYENV || {};                                    if (document.getElementById(\"3eb99e81-d865-44ff-a1b4-5f56b01776b0\")) {                    Plotly.newPlot(                        \"3eb99e81-d865-44ff-a1b4-5f56b01776b0\",                        [{\"hoverinfo\":\"label+percent\",\"labels\":[\"walking\",\"shiuffling\",\"stairs (ascending)\",\"stairs (descending)\",\"standing\",\"sitting\",\"lying\"],\"textfont\":{\"size\":12},\"textinfo\":\"percent\",\"values\":[1079312,66057,4560,4978,416412,445163,180504],\"type\":\"pie\"}],                        {\"title\":{\"text\":\"each label density in percentage (%)\"},\"template\":{\"data\":{\"histogram2dcontour\":[{\"type\":\"histogram2dcontour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"choropleth\":[{\"type\":\"choropleth\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"histogram2d\":[{\"type\":\"histogram2d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmap\":[{\"type\":\"heatmap\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmapgl\":[{\"type\":\"heatmapgl\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"contourcarpet\":[{\"type\":\"contourcarpet\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"contour\":[{\"type\":\"contour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"surface\":[{\"type\":\"surface\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"mesh3d\":[{\"type\":\"mesh3d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"scatter\":[{\"fillpattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2},\"type\":\"scatter\"}],\"parcoords\":[{\"type\":\"parcoords\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolargl\":[{\"type\":\"scatterpolargl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"bar\":[{\"error_x\":{\"color\":\"#2a3f5f\"},\"error_y\":{\"color\":\"#2a3f5f\"},\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"scattergeo\":[{\"type\":\"scattergeo\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolar\":[{\"type\":\"scatterpolar\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"scattergl\":[{\"type\":\"scattergl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatter3d\":[{\"type\":\"scatter3d\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattermapbox\":[{\"type\":\"scattermapbox\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterternary\":[{\"type\":\"scatterternary\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattercarpet\":[{\"type\":\"scattercarpet\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"baxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"type\":\"carpet\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#EBF0F8\"},\"line\":{\"color\":\"white\"}},\"header\":{\"fill\":{\"color\":\"#C8D4E3\"},\"line\":{\"color\":\"white\"}},\"type\":\"table\"}],\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}]},\"layout\":{\"autotypenumbers\":\"strict\",\"colorway\":[\"#636efa\",\"#EF553B\",\"#00cc96\",\"#ab63fa\",\"#FFA15A\",\"#19d3f3\",\"#FF6692\",\"#B6E880\",\"#FF97FF\",\"#FECB52\"],\"font\":{\"color\":\"#2a3f5f\"},\"hovermode\":\"closest\",\"hoverlabel\":{\"align\":\"left\"},\"paper_bgcolor\":\"white\",\"plot_bgcolor\":\"#E5ECF6\",\"polar\":{\"bgcolor\":\"#E5ECF6\",\"angularaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"radialaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"ternary\":{\"bgcolor\":\"#E5ECF6\",\"aaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"caxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"sequential\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"sequentialminus\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"diverging\":[[0,\"#8e0152\"],[0.1,\"#c51b7d\"],[0.2,\"#de77ae\"],[0.3,\"#f1b6da\"],[0.4,\"#fde0ef\"],[0.5,\"#f7f7f7\"],[0.6,\"#e6f5d0\"],[0.7,\"#b8e186\"],[0.8,\"#7fbc41\"],[0.9,\"#4d9221\"],[1,\"#276419\"]]},\"xaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"yaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"yaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"zaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2}},\"shapedefaults\":{\"line\":{\"color\":\"#2a3f5f\"}},\"annotationdefaults\":{\"arrowcolor\":\"#2a3f5f\",\"arrowhead\":0,\"arrowwidth\":1},\"geo\":{\"bgcolor\":\"white\",\"landcolor\":\"#E5ECF6\",\"subunitcolor\":\"white\",\"showland\":true,\"showlakes\":true,\"lakecolor\":\"white\"},\"title\":{\"x\":0.05},\"mapbox\":{\"style\":\"light\"}}}},                        {\"responsive\": true}                    ).then(function(){\n",
              "                            \n",
              "var gd = document.getElementById('3eb99e81-d865-44ff-a1b4-5f56b01776b0');\n",
              "var x = new MutationObserver(function (mutations, observer) {{\n",
              "        var display = window.getComputedStyle(gd).display;\n",
              "        if (!display || display === 'none') {{\n",
              "            console.log([gd, 'removed!']);\n",
              "            Plotly.purge(gd);\n",
              "            observer.disconnect();\n",
              "        }}\n",
              "}});\n",
              "\n",
              "// Listen for the removal of the full notebook cells\n",
              "var notebookContainer = gd.closest('#notebook-container');\n",
              "if (notebookContainer) {{\n",
              "    x.observe(notebookContainer, {childList: true});\n",
              "}}\n",
              "\n",
              "// Listen for the clearing of the current output cell\n",
              "var outputEl = gd.closest('.output');\n",
              "if (outputEl) {{\n",
              "    x.observe(outputEl, {childList: true});\n",
              "}}\n",
              "\n",
              "                        })                };                            </script>        </div>\n",
              "</body>\n",
              "</html>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "labels_dic = {1:'walking',3:\"shiuffling\",4:\"stairs (ascending)\",5:\"stairs (descending)\",6:\"standing\",7:\"sitting\",8:\"lying\"}\n",
        "labels_key = list(labels_dic.keys()) # convert to list, to make it easy to present through graph\n",
        "labels_values = list(labels_dic.values()) # convert to list, to make it easy to present through graph\n",
        "counts = []\n",
        "\n",
        "for label,value in zip(labels_key,labels_values):\n",
        "    counts.append(len(df_final[df_final['label']==label]))\n",
        "\n",
        "print(\"sum of counts ---> \",sum(counts),\"shape of df_final ---> \",df_final.shape)\n",
        "\n",
        "# Creating the pie chart trace\n",
        "trace = go.Pie(labels=labels_values, values=counts, hoverinfo='label+percent',\n",
        "               textinfo='percent', textfont_size=12)\n",
        "\n",
        "# Creating the layout\n",
        "layout = go.Layout(title='each label density in percentage (%)')\n",
        "# Creating the figure\n",
        "fig = go.Figure(data=[trace], layout=layout)\n",
        "\n",
        "# Displaying the figure\n",
        "fig.show()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 31,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 542
        },
        "id": "2k9djhR_gSHa",
        "outputId": "b6fd765f-45a1-4ac4-caba-25c5ea7013f2"
      },
      "outputs": [
        {
          "data": {
            "text/html": [
              "<html>\n",
              "<head><meta charset=\"utf-8\" /></head>\n",
              "<body>\n",
              "    <div>            <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script>                <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
              "        <script charset=\"utf-8\" src=\"https://cdn.plot.ly/plotly-2.24.1.min.js\"></script>                <div id=\"bf2d1285-c084-49d0-b639-91d1774e7408\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div>            <script type=\"text/javascript\">                                    window.PLOTLYENV=window.PLOTLYENV || {};                                    if (document.getElementById(\"bf2d1285-c084-49d0-b639-91d1774e7408\")) {                    Plotly.newPlot(                        \"bf2d1285-c084-49d0-b639-91d1774e7408\",                        [{\"x\":[\"walking\",\"shiuffling\",\"stairs (ascending)\",\"stairs (descending)\",\"standing\",\"sitting\",\"lying\"],\"y\":[1079312,66057,4560,4978,416412,445163,180504],\"type\":\"bar\"}],                        {\"title\":{\"text\":\"Counts of all labels\"},\"template\":{\"data\":{\"histogram2dcontour\":[{\"type\":\"histogram2dcontour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"choropleth\":[{\"type\":\"choropleth\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"histogram2d\":[{\"type\":\"histogram2d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmap\":[{\"type\":\"heatmap\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmapgl\":[{\"type\":\"heatmapgl\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"contourcarpet\":[{\"type\":\"contourcarpet\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"contour\":[{\"type\":\"contour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"surface\":[{\"type\":\"surface\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"mesh3d\":[{\"type\":\"mesh3d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"scatter\":[{\"fillpattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2},\"type\":\"scatter\"}],\"parcoords\":[{\"type\":\"parcoords\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolargl\":[{\"type\":\"scatterpolargl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"bar\":[{\"error_x\":{\"color\":\"#2a3f5f\"},\"error_y\":{\"color\":\"#2a3f5f\"},\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"scattergeo\":[{\"type\":\"scattergeo\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolar\":[{\"type\":\"scatterpolar\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"scattergl\":[{\"type\":\"scattergl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatter3d\":[{\"type\":\"scatter3d\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattermapbox\":[{\"type\":\"scattermapbox\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterternary\":[{\"type\":\"scatterternary\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattercarpet\":[{\"type\":\"scattercarpet\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"baxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"type\":\"carpet\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#EBF0F8\"},\"line\":{\"color\":\"white\"}},\"header\":{\"fill\":{\"color\":\"#C8D4E3\"},\"line\":{\"color\":\"white\"}},\"type\":\"table\"}],\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}]},\"layout\":{\"autotypenumbers\":\"strict\",\"colorway\":[\"#636efa\",\"#EF553B\",\"#00cc96\",\"#ab63fa\",\"#FFA15A\",\"#19d3f3\",\"#FF6692\",\"#B6E880\",\"#FF97FF\",\"#FECB52\"],\"font\":{\"color\":\"#2a3f5f\"},\"hovermode\":\"closest\",\"hoverlabel\":{\"align\":\"left\"},\"paper_bgcolor\":\"white\",\"plot_bgcolor\":\"#E5ECF6\",\"polar\":{\"bgcolor\":\"#E5ECF6\",\"angularaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"radialaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"ternary\":{\"bgcolor\":\"#E5ECF6\",\"aaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"caxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"sequential\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"sequentialminus\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"diverging\":[[0,\"#8e0152\"],[0.1,\"#c51b7d\"],[0.2,\"#de77ae\"],[0.3,\"#f1b6da\"],[0.4,\"#fde0ef\"],[0.5,\"#f7f7f7\"],[0.6,\"#e6f5d0\"],[0.7,\"#b8e186\"],[0.8,\"#7fbc41\"],[0.9,\"#4d9221\"],[1,\"#276419\"]]},\"xaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"yaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"yaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"zaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2}},\"shapedefaults\":{\"line\":{\"color\":\"#2a3f5f\"}},\"annotationdefaults\":{\"arrowcolor\":\"#2a3f5f\",\"arrowhead\":0,\"arrowwidth\":1},\"geo\":{\"bgcolor\":\"white\",\"landcolor\":\"#E5ECF6\",\"subunitcolor\":\"white\",\"showland\":true,\"showlakes\":true,\"lakecolor\":\"white\"},\"title\":{\"x\":0.05},\"mapbox\":{\"style\":\"light\"}}}},                        {\"responsive\": true}                    ).then(function(){\n",
              "                            \n",
              "var gd = document.getElementById('bf2d1285-c084-49d0-b639-91d1774e7408');\n",
              "var x = new MutationObserver(function (mutations, observer) {{\n",
              "        var display = window.getComputedStyle(gd).display;\n",
              "        if (!display || display === 'none') {{\n",
              "            console.log([gd, 'removed!']);\n",
              "            Plotly.purge(gd);\n",
              "            observer.disconnect();\n",
              "        }}\n",
              "}});\n",
              "\n",
              "// Listen for the removal of the full notebook cells\n",
              "var notebookContainer = gd.closest('#notebook-container');\n",
              "if (notebookContainer) {{\n",
              "    x.observe(notebookContainer, {childList: true});\n",
              "}}\n",
              "\n",
              "// Listen for the clearing of the current output cell\n",
              "var outputEl = gd.closest('.output');\n",
              "if (outputEl) {{\n",
              "    x.observe(outputEl, {childList: true});\n",
              "}}\n",
              "\n",
              "                        })                };                            </script>        </div>\n",
              "</body>\n",
              "</html>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "trace = go.Bar(x=labels_values, y=counts)\n",
        "\n",
        "# Creating the layout\n",
        "layout = go.Layout(title='Counts of all labels')\n",
        "\n",
        "# Creating the figure\n",
        "fig = go.Figure(data=[trace], layout=layout)\n",
        "\n",
        "# Displaying the figure\n",
        "fig.show()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 32,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "1bIQTH3tgaF3",
        "outputId": "3e97e5f7-e98e-497c-ebff-f636615f240e"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "((1647739, 6), (549247, 6), (1647739,), (549247,))"
            ]
          },
          "execution_count": 32,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "from sklearn.model_selection import train_test_split\n",
        "import warnings\n",
        "warnings.filterwarnings('ignore')\n",
        "\n",
        "X_train, X_test, y_train, y_test = train_test_split(df_final.drop('label',axis='columns'),df_final['label'],stratify=df_final['label'])\n",
        "X_train.shape,X_test.shape,y_train.shape,y_test.shape"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 33,
      "metadata": {
        "id": "7dUdehwPggh9"
      },
      "outputs": [],
      "source": [
        "from sklearn.model_selection import cross_val_score\n",
        "from sklearn.ensemble import RandomForestClassifier,BaggingClassifier\n",
        "from sklearn.linear_model import LogisticRegression\n",
        "from sklearn.tree import DecisionTreeClassifier\n",
        "from sklearn.naive_bayes import MultinomialNB\n",
        "\n",
        "from sklearn.metrics import confusion_matrix,classification_report\n",
        "from seaborn import heatmap as hp"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 32,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "7Fm97yM7g7bm",
        "outputId": "2407f548-c935-4cd0-ad3b-e8c568f3d975"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "LogisticRegression()\n",
            "traning score ---->  0.7617875161054026\n",
            "testing score ---->  0.7613277814899307\n",
            "DecisionTreeClassifier()\n",
            "traning score ---->  1.0\n",
            "testing score ---->  0.8970153683133454\n",
            "RandomForestClassifier()\n",
            "traning score ---->  0.9999854345864242\n",
            "testing score ---->  0.9352932287295151\n"
          ]
        }
      ],
      "source": [
        "algos = [LogisticRegression(),DecisionTreeClassifier(),RandomForestClassifier()]\n",
        "models_trained = []\n",
        "for algo in algos:\n",
        "    print(str(algo))\n",
        "    temp = algo.fit(X_train,y_train)\n",
        "    models_trained.append(temp)\n",
        "    print(\"traning score ----> \",temp.score(X_train,y_train))\n",
        "    print(\"testing score ----> \",temp.score(X_test,y_test))"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 33,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 472
        },
        "id": "92U7jkLkloiU",
        "outputId": "c87643be-d949-4ab8-f7d7-c5c4db0b60f2"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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VFVVmYyMjLDjFRUVo64lIjJWtKZG5Aprb28nLi6O4eFhgsEg9913H88++yyrV68mMzMzbB3NkSNH6O3txeVyhV1jcHCQvr4+zp07R39/Pzk5OaFjEyZMYN68eaPegvqVz+cjJiaGBQsWXHbm3t5eLly4wB133BE2PjQ0RFZWFgDHjx8PywGQm5t72XOIiPxdKjUiV1heXh51dXXY7XaSkpKYMOG/f4axsbFh5w4MDDB37ly2b98+6jpTpkz5S/M7nc4//ZiBgQEA9uzZQ3Jyctgxh8Pxl3KIiESaSo3IFRYbG0tKSsplnZudnc0777zD1KlTueaaa373nMTERD755BNuu+02AC5evMihQ4fIzs7+3fMzMzMJBoN0d3ezaNGiUcd/vVM0MjISGsvIyMDhcPD111//4R2e9PR0du/eHTb28ccf//8fUkQkQrRQWOQfbMWKFVx33XUUFhZy4MABTp48SVdXF2vWrOGbb74BoLS0lOeff562tja++OILVq1adcnPmLnxxhvxer0UFxfT1tYWumZLSwsAHo8Hm81Ge3s733//PQMDA7hcLsrLyykrK2Pbtm309fVx+PBhXnnlFbZt2wbAI488wpdffsn69evx+/00NzfT1NQ01k+RiEiISo3IP9ikSZPYv38/brebJUuWkJ6eTklJCYODg6E7N48//jgrV67E6/WSm5uLy+Xi7rvvvuR16+rquOeee1i1ahVpaWk8/PDD/PzzzwAkJyezYcMGKisrmTZtGo899hgAGzdu5Omnn6a2tpb09HTy8/PZs2cPM2bMAMDtdtPa2kpbWxtz5syhvr6empqaMXx2RETC2cwfrSYUERERGUd0p0ZERESigkqNiIiIRAWVGhEREYkKKjUiIiISFVRqREREJCqo1IiIiEhUUKkRERGRqKBSIyIiIlFBpUZERESigkqNiIiIRAWVGhEREYkKKjUiIiISFf4DC6d579R6264AAAAASUVORK5CYII=",
            "text/plain": [
              "<Figure size 640x480 with 2 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "final_model = models_trained[-1]\n",
        "y_pred = final_model.predict(np.array(X_test)) # Random forest trained model prediction on test data\n",
        "cm = confusion_matrix(y_test,y_pred)\n",
        "\n",
        "hp(cm,annot=True,fmt=\"\",xticklabels=labels_key,yticklabels=labels_key)\n",
        "plt.title(\"Confusion matrix for elders activity monitoring\")\n",
        "plt.xlabel(\"Predicted\")\n",
        "plt.ylabel(\"True\")\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 34,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "0i8trLrBl2-A",
        "outputId": "780190b0-fd9e-4eeb-9013-4ee1b7bc68d4"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "              precision    recall  f1-score   support\n",
            "\n",
            "           1       0.92      0.97      0.94    269828\n",
            "           3       0.66      0.07      0.13     16514\n",
            "           4       0.85      0.10      0.18      1140\n",
            "           5       0.85      0.05      0.09      1245\n",
            "           6       0.89      0.90      0.90    104103\n",
            "           7       1.00      1.00      1.00    111291\n",
            "           8       1.00      1.00      1.00     45126\n",
            "\n",
            "    accuracy                           0.94    549247\n",
            "   macro avg       0.88      0.58      0.60    549247\n",
            "weighted avg       0.93      0.94      0.92    549247\n",
            "\n"
          ]
        }
      ],
      "source": [
        "cr = classification_report(y_test,y_pred)\n",
        "print(cr)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 35,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "216kvdL5l46W",
        "outputId": "2e6fcfcd-6bf8-4179-be24-dbcb6970320a"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "['elderly(human) activity monitoring system']"
            ]
          },
          "execution_count": 35,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "import joblib\n",
        "\n",
        "joblib.dump(final_model,\"elderly(human) activity monitoring system\")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 36,
      "metadata": {
        "id": "z4rbuFQAmYEp"
      },
      "outputs": [],
      "source": [
        "# how to predict activity on new data\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 37,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "P8vZTni3mf3u",
        "outputId": "4a383e60-7bc1-4355-ed7b-6c1d215d23bb"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "standing\n"
          ]
        }
      ],
      "source": [
        "# prompt: # how to predict activity on new data\n",
        "\n",
        "new_data = pd.read_csv('/content/drive/MyDrive/new.csv')\n",
        "new_data = new_data.drop('timestamp',axis='columns')\n",
        "prediction = final_model.predict(np.array(new_data))\n",
        "for i in prediction:\n",
        "  print(labels_dic[i])\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "iKmgZv4lNdLh"
      },
      "outputs": [],
      "source": [
        "# prompt: make prediction by the already saved model\n",
        "\n",
        "# Load the saved model\n",
        "loaded_model = joblib.load(\"/content/elderly(human) activity monitoring system\")\n",
        "\n",
        "# New data to predict on\n",
        "new_data = pd.read_csv(\"/content/drive/MyDrive/new.csv\")\n",
        "\n",
        "# Drop the timestamp column\n",
        "new_data = new_data.drop(\"timestamp\", axis=1)\n",
        "\n",
        "# Make predictions\n",
        "predictions = loaded_model.predict(np.array(new_data))\n",
        "\n",
        "# Print the predicted activities\n",
        "for prediction in predictions:\n",
        "  print(labels_dic[prediction])\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 28,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "9nAwq033JFoP",
        "outputId": "924b5727-cce4-4eb3-cfcf-9c9831cd101f"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Epoch 1/10\n",
            "51492/51492 [==============================] - 452s 9ms/step - loss: 0.3250 - accuracy: 0.8867\n",
            "Epoch 2/10\n",
            "51492/51492 [==============================] - 429s 8ms/step - loss: 0.2592 - accuracy: 0.9161\n",
            "Epoch 3/10\n",
            "51492/51492 [==============================] - 423s 8ms/step - loss: 0.2476 - accuracy: 0.9202\n",
            "Epoch 4/10\n",
            "51492/51492 [==============================] - 438s 9ms/step - loss: 0.2419 - accuracy: 0.9215\n",
            "Epoch 5/10\n",
            "51492/51492 [==============================] - 435s 8ms/step - loss: 0.2375 - accuracy: 0.9228\n",
            "Epoch 6/10\n",
            "51492/51492 [==============================] - 426s 8ms/step - loss: 0.2349 - accuracy: 0.9235\n",
            "Epoch 7/10\n",
            "51492/51492 [==============================] - 428s 8ms/step - loss: 0.2327 - accuracy: 0.9241\n",
            "Epoch 8/10\n",
            "51492/51492 [==============================] - 431s 8ms/step - loss: 0.2312 - accuracy: 0.9246\n",
            "Epoch 9/10\n",
            "51492/51492 [==============================] - 429s 8ms/step - loss: 0.2297 - accuracy: 0.9250\n",
            "Epoch 10/10\n",
            "51492/51492 [==============================] - 432s 8ms/step - loss: 0.2286 - accuracy: 0.9255\n"
          ]
        },
        {
          "data": {
            "text/plain": [
              "<keras.src.callbacks.History at 0x7e7dea93f8e0>"
            ]
          },
          "execution_count": 28,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "# prompt: run lstm on this dataset\n",
        "\n",
        "import tensorflow as tf\n",
        "from tensorflow.keras.models import Sequential\n",
        "from tensorflow.keras.layers import LSTM, Dense, Dropout\n",
        "from sklearn.preprocessing import LabelEncoder\n",
        "\n",
        "# Ensure labels start from 0 and are consecutive\n",
        "label_encoder = LabelEncoder()\n",
        "y_train_encoded = label_encoder.fit_transform(y_train)\n",
        "\n",
        "# Define the LSTM model\n",
        "model = Sequential()\n",
        "model.add(LSTM(128, return_sequences=True, input_shape=(X_train.shape[1], 1)))\n",
        "model.add(Dropout(0.2))\n",
        "model.add(LSTM(64, return_sequences=True))\n",
        "model.add(Dropout(0.2))\n",
        "model.add(LSTM(32))\n",
        "model.add(Dropout(0.2))\n",
        "model.add(Dense(32, activation='relu'))\n",
        "model.add(Dense(len(labels_key), activation='softmax'))\n",
        "\n",
        "# Compile the model\n",
        "model.compile(loss='sparse_categorical_crossentropy', optimizer='adam', metrics=['accuracy'])\n",
        "\n",
        "# Train the model using encoded labels\n",
        "model.fit(X_train, y_train_encoded, epochs=10, batch_size=32)\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 33,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Cs7GPq0Gx6Uc",
        "outputId": "b8ce2c26-d378-445c-fb1d-e7cbeebc00ab"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "17164/17164 [==============================] - 61s 4ms/step\n",
            "              precision    recall  f1-score   support\n",
            "\n",
            "           1       0.91      0.97      0.94    269828\n",
            "           3       0.59      0.01      0.01     16514\n",
            "           4       0.68      0.05      0.10      1140\n",
            "           5       0.41      0.01      0.01      1245\n",
            "           6       0.87      0.89      0.88    104103\n",
            "           7       1.00      1.00      1.00    111291\n",
            "           8       1.00      1.00      1.00     45126\n",
            "\n",
            "    accuracy                           0.93    549247\n",
            "   macro avg       0.78      0.56      0.56    549247\n",
            "weighted avg       0.92      0.93      0.91    549247\n",
            "\n"
          ]
        }
      ],
      "source": [
        "from sklearn.metrics import classification_report\n",
        "\n",
        "# Make predictions on the test set\n",
        "y_pred_encoded = model.predict(X_test)\n",
        "y_pred = y_pred_encoded.argmax(axis=1)\n",
        "\n",
        "# Decode the predicted and actual labels\n",
        "y_pred_decoded = label_encoder.inverse_transform(y_pred)\n",
        "y_test_decoded = label_encoder.inverse_transform(label_encoder.transform(y_test))\n",
        "\n",
        "# Print classification report\n",
        "print(classification_report(y_test_decoded, y_pred_decoded))\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 30,
      "metadata": {
        "id": "yCXN2pGQagwK"
      },
      "outputs": [],
      "source": [
        "# prompt: save the lstm model\n",
        "\n",
        "model.save(\"/content/drive/MyDrive/lstm_model.h5\")\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 34,
      "metadata": {
        "id": "w8lwGq-uzH6Z"
      },
      "outputs": [],
      "source": [
        "import tensorflow as tf\n",
        "from tensorflow.keras.models import Sequential\n",
        "from tensorflow.keras.layers import LSTM, Dense, Dropout\n",
        "from sklearn.preprocessing import LabelEncoder\n",
        "import pandas as pd\n",
        "import numpy as np"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 35,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "fT8n-6IEaqhh",
        "outputId": "27761993-1769-4ced-cc5f-c0cbe38cc44e"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "1/1 [==============================] - 2s 2s/step\n",
            "standing\n"
          ]
        }
      ],
      "source": [
        "# prompt: get prediction from above saved lstm model\n",
        "\n",
        "# Load the saved LSTM model\n",
        "loaded_model = tf.keras.models.load_model(\"/content/drive/MyDrive/lstm_model.h5\")\n",
        "\n",
        "# New data to predict on\n",
        "new_data = pd.read_csv(\"/content/drive/MyDrive/new.csv\")\n",
        "\n",
        "# Drop the timestamp column\n",
        "new_data = new_data.drop(\"timestamp\", axis=1)\n",
        "\n",
        "# Make predictions\n",
        "predictions = loaded_model.predict(np.array(new_data))\n",
        "\n",
        "# Print the predicted activities\n",
        "for prediction in predictions:\n",
        "  predicted_label = labels_key[np.argmax(prediction)]\n",
        "  print(labels_dic[predicted_label])\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 27,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "yVsZSI68SYt8",
        "outputId": "958babe4-a8c6-43ca-9e61-c30cdf3456d8"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "1.2.2\n"
          ]
        }
      ],
      "source": [
        "import sklearn\n",
        "print(sklearn.__version__)\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 36,
      "metadata": {
        "id": "K_rpRjmV0UwB"
      },
      "outputs": [],
      "source": [
        "!pip freeze > requirements.txt"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 37,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "u_svcdB80YzN",
        "outputId": "05e1547b-5eb3-4f2d-e7a5-59db8bde5d5e"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "absl-py==1.4.0\n",
            "aiohttp==3.9.5\n",
            "aiosignal==1.3.1\n",
            "alabaster==0.7.16\n",
            "albumentations==1.3.1\n",
            "altair==4.2.2\n",
            "annotated-types==0.7.0\n",
            "anyio==3.7.1\n",
            "argon2-cffi==23.1.0\n",
            "argon2-cffi-bindings==21.2.0\n",
            "array_record==0.5.1\n",
            "arviz==0.15.1\n",
            "astropy==5.3.4\n",
            "astunparse==1.6.3\n",
            "async-timeout==4.0.3\n",
            "atpublic==4.1.0\n",
            "attrs==23.2.0\n",
            "audioread==3.0.1\n",
            "autograd==1.6.2\n",
            "Babel==2.15.0\n",
            "backcall==0.2.0\n",
            "beautifulsoup4==4.12.3\n",
            "bidict==0.23.1\n",
            "bigframes==1.8.0\n",
            "bleach==6.1.0\n",
            "blinker==1.4\n",
            "blis==0.7.11\n",
            "blosc2==2.0.0\n",
            "bokeh==3.3.4\n",
            "bqplot==0.12.43\n",
            "branca==0.7.2\n",
            "build==1.2.1\n",
            "CacheControl==0.14.0\n",
            "cachetools==5.3.3\n",
            "catalogue==2.0.10\n",
            "certifi==2024.6.2\n",
            "cffi==1.16.0\n",
            "chardet==5.2.0\n",
            "charset-normalizer==3.3.2\n",
            "chex==0.1.86\n",
            "click==8.1.7\n",
            "click-plugins==1.1.1\n",
            "cligj==0.7.2\n",
            "cloudpathlib==0.18.1\n",
            "cloudpickle==2.2.1\n",
            "cmake==3.27.9\n",
            "cmdstanpy==1.2.4\n",
            "colorcet==3.1.0\n",
            "colorlover==0.3.0\n",
            "colour==0.1.5\n",
            "community==1.0.0b1\n",
            "confection==0.1.5\n",
            "cons==0.4.6\n",
            "contextlib2==21.6.0\n",
            "contourpy==1.2.1\n",
            "cryptography==42.0.8\n",
            "cuda-python==12.2.1\n",
            "cudf-cu12 @ https://pypi.nvidia.com/cudf-cu12/cudf_cu12-24.4.1-cp310-cp310-manylinux_2_28_x86_64.whl#sha256=57366e7ef09dc63e0b389aff20df6c37d91e2790065861ee31a4720149f5b694\n",
            "cufflinks==0.17.3\n",
            "cupy-cuda12x==12.2.0\n",
            "cvxopt==1.3.2\n",
            "cvxpy==1.3.4\n",
            "cycler==0.12.1\n",
            "cymem==2.0.8\n",
            "Cython==3.0.10\n",
            "dask==2023.8.1\n",
            "datascience==0.17.6\n",
            "db-dtypes==1.2.0\n",
            "dbus-python==1.2.18\n",
            "debugpy==1.6.6\n",
            "decorator==4.4.2\n",
            "defusedxml==0.7.1\n",
            "distributed==2023.8.1\n",
            "distro==1.7.0\n",
            "dlib==19.24.4\n",
            "dm-tree==0.1.8\n",
            "docstring_parser==0.16\n",
            "docutils==0.18.1\n",
            "dopamine_rl==4.0.9\n",
            "duckdb==0.10.3\n",
            "earthengine-api==0.1.407\n",
            "easydict==1.13\n",
            "ecos==2.0.14\n",
            "editdistance==0.6.2\n",
            "eerepr==0.0.4\n",
            "en-core-web-sm @ https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.7.1/en_core_web_sm-3.7.1-py3-none-any.whl#sha256=86cc141f63942d4b2c5fcee06630fd6f904788d2f0ab005cce45aadb8fb73889\n",
            "entrypoints==0.4\n",
            "et-xmlfile==1.1.0\n",
            "etils==1.7.0\n",
            "etuples==0.3.9\n",
            "exceptiongroup==1.2.1\n",
            "fastai==2.7.15\n",
            "fastcore==1.5.46\n",
            "fastdownload==0.0.7\n",
            "fastjsonschema==2.20.0\n",
            "fastprogress==1.0.3\n",
            "fastrlock==0.8.2\n",
            "filelock==3.15.1\n",
            "fiona==1.9.6\n",
            "firebase-admin==5.3.0\n",
            "Flask==2.2.5\n",
            "flatbuffers==24.3.25\n",
            "flax==0.8.4\n",
            "folium==0.14.0\n",
            "fonttools==4.53.0\n",
            "frozendict==2.4.4\n",
            "frozenlist==1.4.1\n",
            "fsspec==2023.6.0\n",
            "future==0.18.3\n",
            "gast==0.5.4\n",
            "gcsfs==2023.6.0\n",
            "GDAL==3.6.4\n",
            "gdown==5.1.0\n",
            "geemap==0.32.1\n",
            "gensim==4.3.2\n",
            "geocoder==1.38.1\n",
            "geographiclib==2.0\n",
            "geopandas==0.13.2\n",
            "geopy==2.3.0\n",
            "gin-config==0.5.0\n",
            "glob2==0.7\n",
            "google==2.0.3\n",
            "google-ai-generativelanguage==0.6.4\n",
            "google-api-core==2.11.1\n",
            "google-api-python-client==2.84.0\n",
            "google-auth==2.27.0\n",
            "google-auth-httplib2==0.1.1\n",
            "google-auth-oauthlib==1.2.0\n",
            "google-cloud-aiplatform==1.56.0\n",
            "google-cloud-bigquery==3.21.0\n",
            "google-cloud-bigquery-connection==1.12.1\n",
            "google-cloud-bigquery-storage==2.25.0\n",
            "google-cloud-core==2.3.3\n",
            "google-cloud-datastore==2.15.2\n",
            "google-cloud-firestore==2.11.1\n",
            "google-cloud-functions==1.13.3\n",
            "google-cloud-iam==2.15.0\n",
            "google-cloud-language==2.13.3\n",
            "google-cloud-resource-manager==1.12.3\n",
            "google-cloud-storage==2.8.0\n",
            "google-cloud-translate==3.11.3\n",
            "google-colab @ file:///colabtools/dist/google-colab-1.0.0.tar.gz#sha256=b065b56e03e174042256860688869a922c200f064b60c144ebaa786a3c20a574\n",
            "google-crc32c==1.5.0\n",
            "google-generativeai==0.5.4\n",
            "google-pasta==0.2.0\n",
            "google-resumable-media==2.7.1\n",
            "googleapis-common-protos==1.63.1\n",
            "googledrivedownloader==0.4\n",
            "graphviz==0.20.3\n",
            "greenlet==3.0.3\n",
            "grpc-google-iam-v1==0.13.0\n",
            "grpcio==1.64.1\n",
            "grpcio-status==1.48.2\n",
            "gspread==6.0.2\n",
            "gspread-dataframe==3.3.1\n",
            "gym==0.25.2\n",
            "gym-notices==0.0.8\n",
            "h5netcdf==1.3.0\n",
            "h5py==3.9.0\n",
            "holidays==0.51\n",
            "holoviews==1.17.1\n",
            "html5lib==1.1\n",
            "httpimport==1.3.1\n",
            "httplib2==0.22.0\n",
            "huggingface-hub==0.23.4\n",
            "humanize==4.7.0\n",
            "hyperopt==0.2.7\n",
            "ibis-framework==8.0.0\n",
            "idna==3.7\n",
            "imageio==2.31.6\n",
            "imageio-ffmpeg==0.5.1\n",
            "imagesize==1.4.1\n",
            "imbalanced-learn==0.10.1\n",
            "imgaug==0.4.0\n",
            "immutabledict==4.2.0\n",
            "importlib_metadata==7.1.0\n",
            "importlib_resources==6.4.0\n",
            "imutils==0.5.4\n",
            "inflect==7.0.0\n",
            "iniconfig==2.0.0\n",
            "intel-openmp==2023.2.4\n",
            "ipyevents==2.0.2\n",
            "ipyfilechooser==0.6.0\n",
            "ipykernel==5.5.6\n",
            "ipyleaflet==0.18.2\n",
            "ipython==7.34.0\n",
            "ipython-genutils==0.2.0\n",
            "ipython-sql==0.5.0\n",
            "ipytree==0.2.2\n",
            "ipywidgets==7.7.1\n",
            "itsdangerous==2.2.0\n",
            "jax==0.4.26\n",
            "jaxlib @ https://storage.googleapis.com/jax-releases/cuda12/jaxlib-0.4.26+cuda12.cudnn89-cp310-cp310-manylinux2014_x86_64.whl#sha256=813cf1fe3e7ca4dbf5327d6e7b4fc8521e92d8bba073ee645ae0d5d036a25750\n",
            "jeepney==0.7.1\n",
            "jellyfish==1.0.4\n",
            "jieba==0.42.1\n",
            "Jinja2==3.1.4\n",
            "joblib==1.4.2\n",
            "jsonpickle==3.2.1\n",
            "jsonschema==4.19.2\n",
            "jsonschema-specifications==2023.12.1\n",
            "jupyter-client==6.1.12\n",
            "jupyter-console==6.1.0\n",
            "jupyter-server==1.24.0\n",
            "jupyter_core==5.7.2\n",
            "jupyterlab_pygments==0.3.0\n",
            "jupyterlab_widgets==3.0.11\n",
            "kaggle==1.6.14\n",
            "kagglehub==0.2.5\n",
            "keras==2.15.0\n",
            "keyring==23.5.0\n",
            "kiwisolver==1.4.5\n",
            "langcodes==3.4.0\n",
            "language_data==1.2.0\n",
            "launchpadlib==1.10.16\n",
            "lazr.restfulclient==0.14.4\n",
            "lazr.uri==1.0.6\n",
            "lazy_loader==0.4\n",
            "libclang==18.1.1\n",
            "librosa==0.10.2.post1\n",
            "lightgbm==4.1.0\n",
            "linkify-it-py==2.0.3\n",
            "llvmlite==0.41.1\n",
            "locket==1.0.0\n",
            "logical-unification==0.4.6\n",
            "lxml==4.9.4\n",
            "malloy==2023.1067\n",
            "marisa-trie==1.2.0\n",
            "Markdown==3.6\n",
            "markdown-it-py==3.0.0\n",
            "MarkupSafe==2.1.5\n",
            "matplotlib==3.7.1\n",
            "matplotlib-inline==0.1.7\n",
            "matplotlib-venn==0.11.10\n",
            "mdit-py-plugins==0.4.1\n",
            "mdurl==0.1.2\n",
            "miniKanren==1.0.3\n",
            "missingno==0.5.2\n",
            "mistune==0.8.4\n",
            "mizani==0.9.3\n",
            "mkl==2023.2.0\n",
            "ml-dtypes==0.2.0\n",
            "mlxtend==0.22.0\n",
            "more-itertools==10.1.0\n",
            "moviepy==1.0.3\n",
            "mpmath==1.3.0\n",
            "msgpack==1.0.8\n",
            "multidict==6.0.5\n",
            "multipledispatch==1.0.0\n",
            "multitasking==0.0.11\n",
            "murmurhash==1.0.10\n",
            "music21==9.1.0\n",
            "natsort==8.4.0\n",
            "nbclassic==1.1.0\n",
            "nbclient==0.10.0\n",
            "nbconvert==6.5.4\n",
            "nbformat==5.10.4\n",
            "nest-asyncio==1.6.0\n",
            "networkx==3.3\n",
            "nibabel==4.0.2\n",
            "nltk==3.8.1\n",
            "notebook==6.5.5\n",
            "notebook_shim==0.2.4\n",
            "numba==0.58.1\n",
            "numexpr==2.10.0\n",
            "numpy==1.25.2\n",
            "nvtx==0.2.10\n",
            "oauth2client==4.1.3\n",
            "oauthlib==3.2.2\n",
            "opencv-contrib-python==4.8.0.76\n",
            "opencv-python==4.8.0.76\n",
            "opencv-python-headless==4.10.0.84\n",
            "openpyxl==3.1.4\n",
            "opt-einsum==3.3.0\n",
            "optax==0.2.2\n",
            "orbax-checkpoint==0.4.4\n",
            "osqp==0.6.2.post8\n",
            "packaging==24.1\n",
            "pandas==2.0.3\n",
            "pandas-datareader==0.10.0\n",
            "pandas-gbq==0.19.2\n",
            "pandas-stubs==2.0.3.230814\n",
            "pandocfilters==1.5.1\n",
            "panel==1.3.8\n",
            "param==2.1.0\n",
            "parso==0.8.4\n",
            "parsy==2.1\n",
            "partd==1.4.2\n",
            "pathlib==1.0.1\n",
            "patsy==0.5.6\n",
            "peewee==3.17.5\n",
            "pexpect==4.9.0\n",
            "pickleshare==0.7.5\n",
            "Pillow==9.4.0\n",
            "pip-tools==6.13.0\n",
            "platformdirs==4.2.2\n",
            "plotly==5.15.0\n",
            "plotnine==0.12.4\n",
            "pluggy==1.5.0\n",
            "polars==0.20.2\n",
            "pooch==1.8.2\n",
            "portpicker==1.5.2\n",
            "prefetch-generator==1.0.3\n",
            "preshed==3.0.9\n",
            "prettytable==3.10.0\n",
            "proglog==0.1.10\n",
            "progressbar2==4.2.0\n",
            "prometheus_client==0.20.0\n",
            "promise==2.3\n",
            "prompt_toolkit==3.0.47\n",
            "prophet==1.1.5\n",
            "proto-plus==1.23.0\n",
            "protobuf==3.20.3\n",
            "psutil==5.9.5\n",
            "psycopg2==2.9.9\n",
            "ptyprocess==0.7.0\n",
            "py-cpuinfo==9.0.0\n",
            "py4j==0.10.9.7\n",
            "pyarrow==14.0.2\n",
            "pyarrow-hotfix==0.6\n",
            "pyasn1==0.6.0\n",
            "pyasn1_modules==0.4.0\n",
            "pycocotools==2.0.8\n",
            "pycparser==2.22\n",
            "pydantic==2.7.4\n",
            "pydantic_core==2.18.4\n",
            "pydata-google-auth==1.8.2\n",
            "pydot==1.4.2\n",
            "pydot-ng==2.0.0\n",
            "pydotplus==2.0.2\n",
            "PyDrive==1.3.1\n",
            "PyDrive2==1.6.3\n",
            "pyerfa==2.0.1.4\n",
            "pygame==2.5.2\n",
            "Pygments==2.16.1\n",
            "PyGObject==3.42.1\n",
            "PyJWT==2.3.0\n",
            "pymc==5.10.4\n",
            "pymystem3==0.2.0\n",
            "pynvjitlink-cu12==0.2.4\n",
            "PyOpenGL==3.1.7\n",
            "pyOpenSSL==24.1.0\n",
            "pyparsing==3.1.2\n",
            "pyperclip==1.8.2\n",
            "pyproj==3.6.1\n",
            "pyproject_hooks==1.1.0\n",
            "pyshp==2.3.1\n",
            "PySocks==1.7.1\n",
            "pytensor==2.18.6\n",
            "pytest==7.4.4\n",
            "python-apt @ file:///backend-container/containers/python_apt-0.0.0-cp310-cp310-linux_x86_64.whl#sha256=b209c7165d6061963abe611492f8c91c3bcef4b7a6600f966bab58900c63fefa\n",
            "python-box==7.2.0\n",
            "python-dateutil==2.8.2\n",
            "python-louvain==0.16\n",
            "python-slugify==8.0.4\n",
            "python-utils==3.8.2\n",
            "pytz==2023.4\n",
            "pyviz_comms==3.0.2\n",
            "PyWavelets==1.6.0\n",
            "PyYAML==6.0.1\n",
            "pyzmq==24.0.1\n",
            "qdldl==0.1.7.post3\n",
            "qudida==0.0.4\n",
            "ratelim==0.1.6\n",
            "referencing==0.35.1\n",
            "regex==2024.5.15\n",
            "requests==2.31.0\n",
            "requests-oauthlib==1.3.1\n",
            "requirements-parser==0.9.0\n",
            "rich==13.7.1\n",
            "rmm-cu12==24.4.0\n",
            "rpds-py==0.18.1\n",
            "rpy2==3.4.2\n",
            "rsa==4.9\n",
            "safetensors==0.4.3\n",
            "scikit-image==0.19.3\n",
            "scikit-learn==1.2.2\n",
            "scipy==1.11.4\n",
            "scooby==0.10.0\n",
            "scs==3.2.4.post2\n",
            "seaborn==0.13.1\n",
            "SecretStorage==3.3.1\n",
            "Send2Trash==1.8.3\n",
            "sentencepiece==0.1.99\n",
            "shapely==2.0.4\n",
            "shellingham==1.5.4\n",
            "simple_parsing==0.1.5\n",
            "six==1.16.0\n",
            "sklearn-pandas==2.2.0\n",
            "smart-open==7.0.4\n",
            "sniffio==1.3.1\n",
            "snowballstemmer==2.2.0\n",
            "sortedcontainers==2.4.0\n",
            "soundfile==0.12.1\n",
            "soupsieve==2.5\n",
            "soxr==0.3.7\n",
            "spacy==3.7.5\n",
            "spacy-legacy==3.0.12\n",
            "spacy-loggers==1.0.5\n",
            "Sphinx==5.0.2\n",
            "sphinxcontrib-applehelp==1.0.8\n",
            "sphinxcontrib-devhelp==1.0.6\n",
            "sphinxcontrib-htmlhelp==2.0.5\n",
            "sphinxcontrib-jsmath==1.0.1\n",
            "sphinxcontrib-qthelp==1.0.7\n",
            "sphinxcontrib-serializinghtml==1.1.10\n",
            "SQLAlchemy==2.0.30\n",
            "sqlglot==20.11.0\n",
            "sqlparse==0.5.0\n",
            "srsly==2.4.8\n",
            "stanio==0.5.0\n",
            "statsmodels==0.14.2\n",
            "StrEnum==0.4.15\n",
            "sympy==1.12.1\n",
            "tables==3.8.0\n",
            "tabulate==0.9.0\n",
            "tbb==2021.12.0\n",
            "tblib==3.0.0\n",
            "tenacity==8.4.1\n",
            "tensorboard==2.15.2\n",
            "tensorboard-data-server==0.7.2\n",
            "tensorflow @ https://storage.googleapis.com/colab-tf-builds-public-09h6ksrfwbb9g9xv/tensorflow-2.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=a2ec79931350b378c1ef300ca836b52a55751acb71a433582508a07f0de57c42\n",
            "tensorflow-datasets==4.9.6\n",
            "tensorflow-estimator==2.15.0\n",
            "tensorflow-gcs-config==2.15.0\n",
            "tensorflow-hub==0.16.1\n",
            "tensorflow-io-gcs-filesystem==0.37.0\n",
            "tensorflow-metadata==1.15.0\n",
            "tensorflow-probability==0.23.0\n",
            "tensorstore==0.1.45\n",
            "termcolor==2.4.0\n",
            "terminado==0.18.1\n",
            "text-unidecode==1.3\n",
            "textblob==0.17.1\n",
            "tf-slim==1.1.0\n",
            "tf_keras==2.15.1\n",
            "thinc==8.2.4\n",
            "threadpoolctl==3.5.0\n",
            "tifffile==2024.5.22\n",
            "tinycss2==1.3.0\n",
            "tokenizers==0.19.1\n",
            "toml==0.10.2\n",
            "tomli==2.0.1\n",
            "toolz==0.12.1\n",
            "torch @ https://download.pytorch.org/whl/cu121/torch-2.3.0%2Bcu121-cp310-cp310-linux_x86_64.whl#sha256=0a12aa9aa6bc442dff8823ac8b48d991fd0771562eaa38593f9c8196d65f7007\n",
            "torchaudio @ https://download.pytorch.org/whl/cu121/torchaudio-2.3.0%2Bcu121-cp310-cp310-linux_x86_64.whl#sha256=38b49393f8c322dcaa29d19e5acbf5a0b1978cf1b719445ab670f1fb486e3aa6\n",
            "torchsummary==1.5.1\n",
            "torchtext==0.18.0\n",
            "torchvision @ https://download.pytorch.org/whl/cu121/torchvision-0.18.0%2Bcu121-cp310-cp310-linux_x86_64.whl#sha256=13e1b48dc5ce41ccb8100ab3dd26fdf31d8f1e904ecf2865ac524493013d0df5\n",
            "tornado==6.3.3\n",
            "tqdm==4.66.4\n",
            "traitlets==5.7.1\n",
            "traittypes==0.2.1\n",
            "transformers==4.41.2\n",
            "triton==2.3.0\n",
            "tweepy==4.14.0\n",
            "typer==0.12.3\n",
            "types-pytz==2024.1.0.20240417\n",
            "types-setuptools==70.0.0.20240524\n",
            "typing_extensions==4.12.2\n",
            "tzdata==2024.1\n",
            "tzlocal==5.2\n",
            "uc-micro-py==1.0.3\n",
            "uritemplate==4.1.1\n",
            "urllib3==2.0.7\n",
            "vega-datasets==0.9.0\n",
            "wadllib==1.3.6\n",
            "wasabi==1.1.3\n",
            "wcwidth==0.2.13\n",
            "weasel==0.4.1\n",
            "webcolors==24.6.0\n",
            "webencodings==0.5.1\n",
            "websocket-client==1.8.0\n",
            "Werkzeug==3.0.3\n",
            "widgetsnbextension==3.6.6\n",
            "wordcloud==1.9.3\n",
            "wrapt==1.14.1\n",
            "xarray==2023.7.0\n",
            "xarray-einstats==0.7.0\n",
            "xgboost==2.0.3\n",
            "xlrd==2.0.1\n",
            "xyzservices==2024.6.0\n",
            "yarl==1.9.4\n",
            "yellowbrick==1.5\n",
            "yfinance==0.2.40\n",
            "zict==3.0.0\n",
            "zipp==3.19.2\n"
          ]
        }
      ],
      "source": [
        "# Verify the contents of requirements.txt\n",
        "!cat requirements.txt"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 39,
      "metadata": {
        "id": "4hPlzOpy01SA"
      },
      "outputs": [],
      "source": [
        "!mv requirements.txt /content/drive/MyDrive"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 7,
      "metadata": {},
      "outputs": [],
      "source": [
        "labels_dic = {1:'walking',3:\"shiuffling\",4:\"stairs (ascending)\",5:\"stairs (descending)\",6:\"standing\",7:\"sitting\",8:\"lying\"}\n",
        "labels_key = list(labels_dic.keys()) # convert to list, to make it easy to present through graph"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 8,
      "metadata": {},
      "outputs": [],
      "source": [
        "import tensorflow as tf\n",
        "from tensorflow.keras.models import Sequential\n",
        "from tensorflow.keras.layers import LSTM, Dense, Dropout\n",
        "from tensorflow.keras.initializers import Orthogonal\n",
        "from sklearn.preprocessing import LabelEncoder\n",
        "import pandas as pd\n",
        "import numpy as np"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 14,
      "metadata": {},
      "outputs": [
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "C:\\Users\\Perfect computers\\AppData\\Roaming\\Python\\Python312\\site-packages\\keras\\src\\layers\\rnn\\rnn.py:204: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.\n",
            "  super().__init__(**kwargs)\n",
            "WARNING:absl:Compiled the loaded model, but the compiled metrics have yet to be built. `model.compile_metrics` will be empty until you train or evaluate the model.\n",
            "WARNING:absl:Error in loading the saved optimizer state. As a result, your model is starting with a freshly initialized optimizer.\n"
          ]
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 415ms/step\n",
            "sitting\n"
          ]
        }
      ],
      "source": [
        "import tensorflow as tf\n",
        "from tensorflow.keras.models import load_model\n",
        "from tensorflow.keras.layers import LSTM\n",
        "from tensorflow.keras.initializers import Orthogonal\n",
        "from sklearn.preprocessing import LabelEncoder\n",
        "import pandas as pd\n",
        "import numpy as np\n",
        "\n",
        "# Define a custom LSTM class to handle the 'time_major' argument\n",
        "class CustomLSTM(LSTM):\n",
        "    def __init__(self, units, **kwargs):\n",
        "        if 'time_major' in kwargs:\n",
        "            kwargs.pop('time_major')\n",
        "        super().__init__(units, **kwargs)\n",
        "\n",
        "# Register the custom objects\n",
        "custom_objects = {'Orthogonal': Orthogonal, 'LSTM': CustomLSTM}\n",
        "\n",
        "# Load the saved LSTM model with custom objects\n",
        "loaded_model = load_model(\n",
        "    \"D:/Semester 7/Human_activity_recognition_system/models/lstm_model.h5\",\n",
        "    custom_objects=custom_objects\n",
        ")\n",
        "\n",
        "# New data to predict on\n",
        "new_data = pd.read_csv(\"D:/Semester 7/Human_activity_recognition_system/test_data/new.csv\")\n",
        "\n",
        "# Drop the timestamp column\n",
        "new_data = new_data.drop(\"timestamp\", axis=1)\n",
        "\n",
        "# Convert the new data to a numpy array\n",
        "new_data_array = np.array(new_data)\n",
        "\n",
        "# Make predictions\n",
        "predictions = loaded_model.predict(new_data_array)\n",
        "\n",
        "\n",
        "\n",
        "# Print the predicted activities\n",
        "for prediction in predictions:\n",
        "    predicted_label = labels_key[np.argmax(prediction)]\n",
        "    print(labels_dic[predicted_label])\n"
      ]
    }
  ],
  "metadata": {
    "accelerator": "GPU",
    "colab": {
      "gpuType": "T4",
      "provenance": []
    },
    "kernelspec": {
      "display_name": "Python 3",
      "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": 0
}