diff --git a/.ipynb_checkpoints/DBSCAN_1-zmiany_df-Copy1-checkpoint.ipynb b/.ipynb_checkpoints/DBSCAN_1-zmiany_df-Copy1-checkpoint.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..c73e7893e86dd37c1a2996f67821d22991bfcc2a --- /dev/null +++ b/.ipynb_checkpoints/DBSCAN_1-zmiany_df-Copy1-checkpoint.ipynb @@ -0,0 +1,7725 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pyodbc\n", + "import pandas as pd\n", + "from sqlalchemy import create_engine\n", + "import urllib\n", + "import seaborn as sns\n", + "from matplotlib import pyplot as plt\n", + "import numpy as np\n", + "import random" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "params = urllib.parse.quote_plus(\"DRIVER={ODBC Driver 17 for SQL Server};\"\n", + " #\"SERVER=dbserver.mif.pg.gda.pl,1433;\"\n", + " \"SERVER=127.0.0.1,1433;\"\n", + " \"DATABASE=silkycoders;\"\n", + " \"UID=;\"\n", + " \"PWD=\")\n", + "\n", + "engine = create_engine(\"mssql+pyodbc:///?odbc_connect={}\".format(params))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "query = \"\"\"SELECT rfid.*, it.*, sub.*, cl.*, dep.*, br.*\n", + " FROM rfid.Logs rfid \n", + " JOIN rfid.EanEpc ean \n", + " ON rfid.EPC = ean.EPC \n", + " JOIN dw.Item it \n", + " ON ean.EAN = it.EAN \n", + " JOIN dw.Subclass sub \n", + " ON sub.SubclassID = it.SubclassID\n", + " JOIN dw.Class cl\n", + " ON sub.ClassID = cl.ClassID\n", + " JOIN dw.Department dep\n", + " ON dep.DepartmentID = cl.DepartmentID\n", + " JOIN dw.Brand br\n", + " ON dep.BrandID = br.BrandID\"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_sql_query(query, engine)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def prepare_timestamp(df : pd.DataFrame):\n", + " \n", + " dt = df.sort_values(by=\"TIMESTAMP\").reset_index(drop=True)\n", + " dt[\"HOUR\"] = dt.TIMESTAMP.astype('datetime64[ns]').dt.hour.astype(int)\n", + " dt[\"MIN\"] = dt.TIMESTAMP.astype('datetime64[ns]').dt.minute.astype(int)\n", + " dt[\"SEC\"] = dt.TIMESTAMP.astype('datetime64[ns]').dt.second.astype(int)\n", + " dt[\"MICROSEC\"] = dt.TIMESTAMP.astype('datetime64[ns]').dt.microsecond.astype(int)\n", + "\n", + " dt[\"MILISEC\"] = dt.MICROSEC/1000 + dt.SEC*1000 + dt.MIN*60000 + dt.HOUR*3600000\n", + " dt[\"TIME_MS\"] = dt.MILISEC - dt.MILISEC[0]\n", + " \n", + " dt['TIME_PER_MEASUREMENT_MS'] = 0\n", + " dt['NUMBER_OF_SIGNALS'] = 0\n", + " dt['LENGTH_OF_MEASUREMENT'] = 0\n", + " \n", + " for m in dt.MEASUREMENT.unique():\n", + " filtr = (dt.MEASUREMENT == m)\n", + " dt.loc[filtr,'TIME_PER_MEASUREMENT_MS'] = dt[filtr].MILISEC - dt[filtr].MILISEC.iloc[0]\n", + " dt.loc[filtr, \"NUMBER_OF_SIGNALS\"] = len(dt[filtr])\n", + " dt.loc[filtr, 'LENGTH_OF_MEASUREMENT'] = dt[filtr].TIME_PER_MEASUREMENT_MS.max()\n", + " \n", + " dt[\"TIME_KMS\"] = np.floor(dt.TIME_MS/1000) \n", + " dt = dt.merge(dt.groupby(['EPC','TIME_KMS'])[\"PROXIMITY\"].max().reset_index(name=\"MAX_PROXIMITY_KMS\"), how=\"left\",\n", + " on = ['EPC','TIME_KMS'])\n", + " dt = dt.merge(dt.groupby(['EPC','TIME_KMS'])[\"PROXIMITY\"].sum().reset_index(name=\"SUM_PROXIMITY_KMS\"), how=\"left\",\n", + " on = ['EPC','TIME_KMS'])\n", + " return dt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df = prepare_timestamp(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv('df.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "<class 'pandas.core.frame.DataFrame'>\n", + "RangeIndex: 502689 entries, 0 to 502688\n", + "Data columns (total 36 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 EPC 502689 non-null object \n", + " 1 PROXIMITY 502689 non-null float64\n", + " 2 TIMESTAMP 502689 non-null object \n", + " 3 MEASUREMENT 502689 non-null int64 \n", + " 4 ITEMID 502689 non-null int64 \n", + " 5 EAN 502689 non-null int64 \n", + " 6 StyleColorSize 502689 non-null object \n", + " 7 StyleColor 502689 non-null object \n", + " 8 Size 502689 non-null object \n", + " 9 SubclassID 502689 non-null int64 \n", + " 10 ItemSeason 502689 non-null object \n", + " 11 FashionLevel 369997 non-null object \n", + " 12 SubclassID.1 502689 non-null int64 \n", + " 13 SubclassName 502689 non-null object \n", + " 14 ClassID 502689 non-null int64 \n", + " 15 ClassID.1 502689 non-null int64 \n", + " 16 ClassName 502689 non-null object \n", + " 17 DepartmentID 502689 non-null int64 \n", + " 18 DepartmentID.1 502689 non-null int64 \n", + " 19 DepartmentName 502689 non-null object \n", + " 20 BrandID 502689 non-null int64 \n", + " 21 BrandID.1 502689 non-null int64 \n", + " 22 BrandName 502689 non-null object \n", + " 23 Active 502689 non-null bool \n", + " 24 HOUR 502689 non-null int64 \n", + " 25 MIN 502689 non-null int64 \n", + " 26 SEC 502689 non-null int64 \n", + " 27 MICROSEC 502689 non-null int64 \n", + " 28 MILISEC 502689 non-null float64\n", + " 29 TIME_MS 502689 non-null float64\n", + " 30 TIME_PER_MEASUREMENT_MS 502689 non-null float64\n", + " 31 NUMBER_OF_SIGNALS 502689 non-null int64 \n", + " 32 LENGTH_OF_MEASUREMENT 502689 non-null int64 \n", + " 33 TIME_KMS 502689 non-null float64\n", + " 34 MAX_PROXIMITY_KMS 502689 non-null float64\n", + " 35 SUM_PROXIMITY_KMS 502689 non-null float64\n", + "dtypes: bool(1), float64(7), int64(17), object(11)\n", + "memory usage: 134.7+ MB\n" + ] + } + ], + "source": [ + "df.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>PROXIMITY</th>\n", + " <th>MEASUREMENT</th>\n", + " <th>ITEMID</th>\n", + " <th>EAN</th>\n", + " <th>SubclassID</th>\n", + " <th>SubclassID.1</th>\n", + " <th>ClassID</th>\n", + " <th>ClassID.1</th>\n", + " <th>DepartmentID</th>\n", + " <th>DepartmentID.1</th>\n", + " <th>...</th>\n", + " <th>SEC</th>\n", + " <th>MICROSEC</th>\n", + " <th>MILISEC</th>\n", + " <th>TIME_MS</th>\n", + " <th>TIME_PER_MEASUREMENT_MS</th>\n", + " <th>NUMBER_OF_SIGNALS</th>\n", + " <th>LENGTH_OF_MEASUREMENT</th>\n", + " <th>TIME_KMS</th>\n", + " <th>MAX_PROXIMITY_KMS</th>\n", + " <th>SUM_PROXIMITY_KMS</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>count</th>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>5.026890e+05</td>\n", + " <td>5.026890e+05</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>...</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>5.026890e+05</td>\n", + " <td>5.026890e+05</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.00000</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>mean</th>\n", + " <td>-75.406017</td>\n", + " <td>23.412382</td>\n", + " <td>2.169862e+06</td>\n", + " <td>5.902835e+12</td>\n", + " <td>83.920704</td>\n", + " <td>83.920704</td>\n", + " <td>18.231477</td>\n", + " <td>18.231477</td>\n", + " <td>2.609574</td>\n", + " <td>2.609574</td>\n", + " <td>...</td>\n", + " <td>29.193547</td>\n", + " <td>499773.110213</td>\n", + " <td>3.721192e+07</td>\n", + " <td>2.018186e+06</td>\n", + " <td>100132.210719</td>\n", + " <td>15383.906986</td>\n", + " <td>199835.398777</td>\n", + " <td>2017.68607</td>\n", + " <td>-72.497318</td>\n", + " <td>-398.108291</td>\n", + " </tr>\n", + " <tr>\n", + " <th>std</th>\n", + " <td>5.698062</td>\n", + " <td>12.175284</td>\n", + " <td>7.798483e+04</td>\n", + " <td>7.380986e+07</td>\n", + " <td>142.489244</td>\n", + " <td>142.489244</td>\n", + " <td>8.844056</td>\n", + " <td>8.844056</td>\n", + " <td>0.937828</td>\n", + " <td>0.937828</td>\n", + " <td>...</td>\n", + " <td>17.223297</td>\n", + " <td>288469.414710</td>\n", + " <td>1.121487e+06</td>\n", + " <td>1.121487e+06</td>\n", + " <td>81859.831696</td>\n", + " <td>8217.121271</td>\n", + " <td>101049.072703</td>\n", + " <td>1121.48684</td>\n", + " <td>5.893956</td>\n", + " <td>262.167663</td>\n", + " </tr>\n", + " <tr>\n", + " <th>min</th>\n", + " <td>-110.000000</td>\n", + " <td>1.000000</td>\n", + " <td>2.028742e+06</td>\n", + " <td>5.902691e+12</td>\n", + " <td>10.000000</td>\n", + " <td>10.000000</td>\n", + " <td>10.000000</td>\n", + " <td>10.000000</td>\n", + " <td>2.000000</td>\n", + " <td>2.000000</td>\n", + " <td>...</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>3.519374e+07</td>\n", + " <td>0.000000e+00</td>\n", + " <td>0.000000</td>\n", + " <td>4597.000000</td>\n", + " <td>53538.000000</td>\n", + " <td>0.00000</td>\n", + " <td>-100.500000</td>\n", + " <td>-2629.400000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>25%</th>\n", + " <td>-79.900000</td>\n", + " <td>13.000000</td>\n", + " <td>2.113407e+06</td>\n", + " <td>5.902805e+12</td>\n", + " <td>11.000000</td>\n", + " <td>11.000000</td>\n", + " <td>10.000000</td>\n", + " <td>10.000000</td>\n", + " <td>2.000000</td>\n", + " <td>2.000000</td>\n", + " <td>...</td>\n", + " <td>14.000000</td>\n", + " <td>250000.000000</td>\n", + " <td>3.624898e+07</td>\n", + " <td>1.055248e+06</td>\n", + " <td>38108.000000</td>\n", + " <td>8533.000000</td>\n", + " <td>127122.000000</td>\n", + " <td>1055.00000</td>\n", + " <td>-76.400000</td>\n", + " <td>-515.900000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>50%</th>\n", + " <td>-75.700000</td>\n", + " <td>24.000000</td>\n", + " <td>2.155604e+06</td>\n", + " <td>5.902806e+12</td>\n", + " <td>82.000000</td>\n", + " <td>82.000000</td>\n", + " <td>16.000000</td>\n", + " <td>16.000000</td>\n", + " <td>2.000000</td>\n", + " <td>2.000000</td>\n", + " <td>...</td>\n", + " <td>29.000000</td>\n", + " <td>500000.000000</td>\n", + " <td>3.719645e+07</td>\n", + " <td>2.002711e+06</td>\n", + " <td>78477.000000</td>\n", + " <td>13321.000000</td>\n", + " <td>176026.000000</td>\n", + " <td>2002.00000</td>\n", + " <td>-72.900000</td>\n", + " <td>-342.900000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>75%</th>\n", + " <td>-71.900000</td>\n", + " <td>33.000000</td>\n", + " <td>2.226340e+06</td>\n", + " <td>5.902852e+12</td>\n", + " <td>82.000000</td>\n", + " <td>82.000000</td>\n", + " <td>25.000000</td>\n", + " <td>25.000000</td>\n", + " <td>3.000000</td>\n", + " <td>3.000000</td>\n", + " <td>...</td>\n", + " <td>44.000000</td>\n", + " <td>749000.000000</td>\n", + " <td>3.815973e+07</td>\n", + " <td>2.965991e+06</td>\n", + " <td>139431.000000</td>\n", + " <td>22217.000000</td>\n", + " <td>265127.000000</td>\n", + " <td>2965.00000</td>\n", + " <td>-68.400000</td>\n", + " <td>-225.700000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>max</th>\n", + " <td>-38.900000</td>\n", + " <td>43.000000</td>\n", + " <td>2.304122e+06</td>\n", + " <td>5.902975e+12</td>\n", + " <td>630.000000</td>\n", + " <td>630.000000</td>\n", + " <td>41.000000</td>\n", + " <td>41.000000</td>\n", + " <td>6.000000</td>\n", + " <td>6.000000</td>\n", + " <td>...</td>\n", + " <td>59.000000</td>\n", + " <td>999000.000000</td>\n", + " <td>3.912875e+07</td>\n", + " <td>3.935013e+06</td>\n", + " <td>435771.000000</td>\n", + " <td>35350.000000</td>\n", + " <td>435771.000000</td>\n", + " <td>3935.00000</td>\n", + " <td>-38.900000</td>\n", + " <td>-52.300000</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>8 rows Ă 24 columns</p>\n", + "</div>" + ], + "text/plain": [ + " PROXIMITY MEASUREMENT ITEMID EAN \\\n", + "count 502689.000000 502689.000000 5.026890e+05 5.026890e+05 \n", + "mean -75.406017 23.412382 2.169862e+06 5.902835e+12 \n", + "std 5.698062 12.175284 7.798483e+04 7.380986e+07 \n", + "min -110.000000 1.000000 2.028742e+06 5.902691e+12 \n", + "25% -79.900000 13.000000 2.113407e+06 5.902805e+12 \n", + "50% -75.700000 24.000000 2.155604e+06 5.902806e+12 \n", + "75% -71.900000 33.000000 2.226340e+06 5.902852e+12 \n", + "max -38.900000 43.000000 2.304122e+06 5.902975e+12 \n", + "\n", + " SubclassID SubclassID.1 ClassID ClassID.1 \\\n", + "count 502689.000000 502689.000000 502689.000000 502689.000000 \n", + "mean 83.920704 83.920704 18.231477 18.231477 \n", + "std 142.489244 142.489244 8.844056 8.844056 \n", + "min 10.000000 10.000000 10.000000 10.000000 \n", + "25% 11.000000 11.000000 10.000000 10.000000 \n", + "50% 82.000000 82.000000 16.000000 16.000000 \n", + "75% 82.000000 82.000000 25.000000 25.000000 \n", + "max 630.000000 630.000000 41.000000 41.000000 \n", + "\n", + " DepartmentID DepartmentID.1 ... SEC MICROSEC \\\n", + "count 502689.000000 502689.000000 ... 502689.000000 502689.000000 \n", + "mean 2.609574 2.609574 ... 29.193547 499773.110213 \n", + "std 0.937828 0.937828 ... 17.223297 288469.414710 \n", + "min 2.000000 2.000000 ... 0.000000 0.000000 \n", + "25% 2.000000 2.000000 ... 14.000000 250000.000000 \n", + "50% 2.000000 2.000000 ... 29.000000 500000.000000 \n", + "75% 3.000000 3.000000 ... 44.000000 749000.000000 \n", + "max 6.000000 6.000000 ... 59.000000 999000.000000 \n", + "\n", + " MILISEC TIME_MS TIME_PER_MEASUREMENT_MS NUMBER_OF_SIGNALS \\\n", + "count 5.026890e+05 5.026890e+05 502689.000000 502689.000000 \n", + "mean 3.721192e+07 2.018186e+06 100132.210719 15383.906986 \n", + "std 1.121487e+06 1.121487e+06 81859.831696 8217.121271 \n", + "min 3.519374e+07 0.000000e+00 0.000000 4597.000000 \n", + "25% 3.624898e+07 1.055248e+06 38108.000000 8533.000000 \n", + "50% 3.719645e+07 2.002711e+06 78477.000000 13321.000000 \n", + "75% 3.815973e+07 2.965991e+06 139431.000000 22217.000000 \n", + "max 3.912875e+07 3.935013e+06 435771.000000 35350.000000 \n", + "\n", + " LENGTH_OF_MEASUREMENT TIME_KMS MAX_PROXIMITY_KMS \\\n", + "count 502689.000000 502689.00000 502689.000000 \n", + "mean 199835.398777 2017.68607 -72.497318 \n", + "std 101049.072703 1121.48684 5.893956 \n", + "min 53538.000000 0.00000 -100.500000 \n", + "25% 127122.000000 1055.00000 -76.400000 \n", + "50% 176026.000000 2002.00000 -72.900000 \n", + "75% 265127.000000 2965.00000 -68.400000 \n", + "max 435771.000000 3935.00000 -38.900000 \n", + "\n", + " SUM_PROXIMITY_KMS \n", + "count 502689.000000 \n", + "mean -398.108291 \n", + "std 262.167663 \n", + "min -2629.400000 \n", + "25% -515.900000 \n", + "50% -342.900000 \n", + "75% -225.700000 \n", + "max -52.300000 \n", + "\n", + "[8 rows x 24 columns]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.boxplot(df['LENGTH_OF_MEASUREMENT']);" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "# Usuwamy najdĹuĹźsze pomiary\n", + "df.drop(df.loc[df['LENGTH_OF_MEASUREMENT'] > 200000].index, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>PROXIMITY</th>\n", + " <th>MEASUREMENT</th>\n", + " <th>ITEMID</th>\n", + " <th>EAN</th>\n", + " <th>SubclassID</th>\n", + " <th>SubclassID.1</th>\n", + " <th>ClassID</th>\n", + " <th>ClassID.1</th>\n", + " <th>DepartmentID</th>\n", + " <th>DepartmentID.1</th>\n", + " <th>...</th>\n", + " <th>SEC</th>\n", + " <th>MICROSEC</th>\n", + " <th>MILISEC</th>\n", + " <th>TIME_MS</th>\n", + " <th>TIME_PER_MEASUREMENT_MS</th>\n", + " <th>NUMBER_OF_SIGNALS</th>\n", + " <th>LENGTH_OF_MEASUREMENT</th>\n", + " <th>TIME_KMS</th>\n", + " <th>MAX_PROXIMITY_KMS</th>\n", + " <th>SUM_PROXIMITY_KMS</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>count</th>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>3.177620e+05</td>\n", + " <td>3.177620e+05</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>...</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>3.177620e+05</td>\n", + " <td>3.177620e+05</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>mean</th>\n", + " <td>-75.526452</td>\n", + " <td>22.776858</td>\n", + " <td>2.170711e+06</td>\n", + " <td>5.902836e+12</td>\n", + " <td>82.639686</td>\n", + " <td>82.639686</td>\n", + " <td>18.142610</td>\n", + " <td>18.142610</td>\n", + " <td>2.603486</td>\n", + " <td>2.603486</td>\n", + " <td>...</td>\n", + " <td>29.378906</td>\n", + " <td>499539.922961</td>\n", + " <td>3.717748e+07</td>\n", + " <td>1.983745e+06</td>\n", + " <td>66756.283605</td>\n", + " <td>10103.277673</td>\n", + " <td>133222.336198</td>\n", + " <td>1983.244840</td>\n", + " <td>-72.536124</td>\n", + " <td>-404.190290</td>\n", + " </tr>\n", + " <tr>\n", + " <th>std</th>\n", + " <td>5.583369</td>\n", + " <td>12.801744</td>\n", + " <td>7.820521e+04</td>\n", + " <td>7.406653e+07</td>\n", + " <td>141.056329</td>\n", + " <td>141.056329</td>\n", + " <td>8.830015</td>\n", + " <td>8.830015</td>\n", + " <td>0.932835</td>\n", + " <td>0.932835</td>\n", + " <td>...</td>\n", + " <td>17.290876</td>\n", + " <td>288325.166786</td>\n", + " <td>1.183041e+06</td>\n", + " <td>1.183041e+06</td>\n", + " <td>44987.211264</td>\n", + " <td>3113.779828</td>\n", + " <td>39296.957914</td>\n", + " <td>1183.041729</td>\n", + " <td>5.831107</td>\n", + " <td>267.914649</td>\n", + " </tr>\n", + " <tr>\n", + " <th>min</th>\n", + " <td>-110.000000</td>\n", + " <td>1.000000</td>\n", + " <td>2.028742e+06</td>\n", + " <td>5.902691e+12</td>\n", + " <td>10.000000</td>\n", + " <td>10.000000</td>\n", + " <td>10.000000</td>\n", + " <td>10.000000</td>\n", + " <td>2.000000</td>\n", + " <td>2.000000</td>\n", + " <td>...</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>3.519374e+07</td>\n", + " <td>0.000000e+00</td>\n", + " <td>0.000000</td>\n", + " <td>4597.000000</td>\n", + " <td>53538.000000</td>\n", + " <td>0.000000</td>\n", + " <td>-98.000000</td>\n", + " <td>-2629.400000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>25%</th>\n", + " <td>-79.900000</td>\n", + " <td>12.000000</td>\n", + " <td>2.113407e+06</td>\n", + " <td>5.902805e+12</td>\n", + " <td>11.000000</td>\n", + " <td>11.000000</td>\n", + " <td>10.000000</td>\n", + " <td>10.000000</td>\n", + " <td>2.000000</td>\n", + " <td>2.000000</td>\n", + " <td>...</td>\n", + " <td>14.000000</td>\n", + " <td>249000.000000</td>\n", + " <td>3.617897e+07</td>\n", + " <td>9.852318e+05</td>\n", + " <td>29587.000000</td>\n", + " <td>8027.000000</td>\n", + " <td>101041.000000</td>\n", + " <td>985.000000</td>\n", + " <td>-76.400000</td>\n", + " <td>-527.300000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>50%</th>\n", + " <td>-75.700000</td>\n", + " <td>24.000000</td>\n", + " <td>2.155605e+06</td>\n", + " <td>5.902806e+12</td>\n", + " <td>82.000000</td>\n", + " <td>82.000000</td>\n", + " <td>16.000000</td>\n", + " <td>16.000000</td>\n", + " <td>2.000000</td>\n", + " <td>2.000000</td>\n", + " <td>...</td>\n", + " <td>29.000000</td>\n", + " <td>500000.000000</td>\n", + " <td>3.714444e+07</td>\n", + " <td>1.950704e+06</td>\n", + " <td>59599.000000</td>\n", + " <td>9887.000000</td>\n", + " <td>138579.000000</td>\n", + " <td>1950.000000</td>\n", + " <td>-72.900000</td>\n", + " <td>-350.700000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>75%</th>\n", + " <td>-71.900000</td>\n", + " <td>34.000000</td>\n", + " <td>2.226340e+06</td>\n", + " <td>5.902852e+12</td>\n", + " <td>82.000000</td>\n", + " <td>82.000000</td>\n", + " <td>25.000000</td>\n", + " <td>25.000000</td>\n", + " <td>3.000000</td>\n", + " <td>3.000000</td>\n", + " <td>...</td>\n", + " <td>44.000000</td>\n", + " <td>748000.000000</td>\n", + " <td>3.834786e+07</td>\n", + " <td>3.154128e+06</td>\n", + " <td>97761.750000</td>\n", + " <td>12660.000000</td>\n", + " <td>168403.000000</td>\n", + " <td>3154.000000</td>\n", + " <td>-68.400000</td>\n", + " <td>-226.100000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>max</th>\n", + " <td>-41.000000</td>\n", + " <td>42.000000</td>\n", + " <td>2.304122e+06</td>\n", + " <td>5.902975e+12</td>\n", + " <td>630.000000</td>\n", + " <td>630.000000</td>\n", + " <td>41.000000</td>\n", + " <td>41.000000</td>\n", + " <td>6.000000</td>\n", + " <td>6.000000</td>\n", + " <td>...</td>\n", + " <td>59.000000</td>\n", + " <td>999000.000000</td>\n", + " <td>3.908956e+07</td>\n", + " <td>3.895821e+06</td>\n", + " <td>189705.000000</td>\n", + " <td>15444.000000</td>\n", + " <td>189705.000000</td>\n", + " <td>3895.000000</td>\n", + " <td>-41.000000</td>\n", + " <td>-52.300000</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>8 rows Ă 24 columns</p>\n", + "</div>" + ], + "text/plain": [ + " PROXIMITY MEASUREMENT ITEMID EAN \\\n", + "count 317762.000000 317762.000000 3.177620e+05 3.177620e+05 \n", + "mean -75.526452 22.776858 2.170711e+06 5.902836e+12 \n", + "std 5.583369 12.801744 7.820521e+04 7.406653e+07 \n", + "min -110.000000 1.000000 2.028742e+06 5.902691e+12 \n", + "25% -79.900000 12.000000 2.113407e+06 5.902805e+12 \n", + "50% -75.700000 24.000000 2.155605e+06 5.902806e+12 \n", + "75% -71.900000 34.000000 2.226340e+06 5.902852e+12 \n", + "max -41.000000 42.000000 2.304122e+06 5.902975e+12 \n", + "\n", + " SubclassID SubclassID.1 ClassID ClassID.1 \\\n", + "count 317762.000000 317762.000000 317762.000000 317762.000000 \n", + "mean 82.639686 82.639686 18.142610 18.142610 \n", + "std 141.056329 141.056329 8.830015 8.830015 \n", + "min 10.000000 10.000000 10.000000 10.000000 \n", + "25% 11.000000 11.000000 10.000000 10.000000 \n", + "50% 82.000000 82.000000 16.000000 16.000000 \n", + "75% 82.000000 82.000000 25.000000 25.000000 \n", + "max 630.000000 630.000000 41.000000 41.000000 \n", + "\n", + " DepartmentID DepartmentID.1 ... SEC MICROSEC \\\n", + "count 317762.000000 317762.000000 ... 317762.000000 317762.000000 \n", + "mean 2.603486 2.603486 ... 29.378906 499539.922961 \n", + "std 0.932835 0.932835 ... 17.290876 288325.166786 \n", + "min 2.000000 2.000000 ... 0.000000 0.000000 \n", + "25% 2.000000 2.000000 ... 14.000000 249000.000000 \n", + "50% 2.000000 2.000000 ... 29.000000 500000.000000 \n", + "75% 3.000000 3.000000 ... 44.000000 748000.000000 \n", + "max 6.000000 6.000000 ... 59.000000 999000.000000 \n", + "\n", + " MILISEC TIME_MS TIME_PER_MEASUREMENT_MS NUMBER_OF_SIGNALS \\\n", + "count 3.177620e+05 3.177620e+05 317762.000000 317762.000000 \n", + "mean 3.717748e+07 1.983745e+06 66756.283605 10103.277673 \n", + "std 1.183041e+06 1.183041e+06 44987.211264 3113.779828 \n", + "min 3.519374e+07 0.000000e+00 0.000000 4597.000000 \n", + "25% 3.617897e+07 9.852318e+05 29587.000000 8027.000000 \n", + "50% 3.714444e+07 1.950704e+06 59599.000000 9887.000000 \n", + "75% 3.834786e+07 3.154128e+06 97761.750000 12660.000000 \n", + "max 3.908956e+07 3.895821e+06 189705.000000 15444.000000 \n", + "\n", + " LENGTH_OF_MEASUREMENT TIME_KMS MAX_PROXIMITY_KMS \\\n", + "count 317762.000000 317762.000000 317762.000000 \n", + "mean 133222.336198 1983.244840 -72.536124 \n", + "std 39296.957914 1183.041729 5.831107 \n", + "min 53538.000000 0.000000 -98.000000 \n", + "25% 101041.000000 985.000000 -76.400000 \n", + "50% 138579.000000 1950.000000 -72.900000 \n", + "75% 168403.000000 3154.000000 -68.400000 \n", + "max 189705.000000 3895.000000 -41.000000 \n", + "\n", + " SUM_PROXIMITY_KMS \n", + "count 317762.000000 \n", + "mean -404.190290 \n", + "std 267.914649 \n", + "min -2629.400000 \n", + "25% -527.300000 \n", + "50% -350.700000 \n", + "75% -226.100000 \n", + "max -52.300000 \n", + "\n", + "[8 rows x 24 columns]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 1, 2, 3, 4, 5, 7, 6, 10, 11, 12, 13, 14, 16, 18, 17, 19, 20,\n", + " 21, 23, 24, 26, 27, 28, 29, 31, 32, 34, 35, 36, 38, 37, 40, 39, 41,\n", + " 42], dtype=int64)" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.MEASUREMENT.unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 , RK485-99X\n", + "2 , RK485-99X\n", + "3 , RK485-99X\n", + "4 , RK485-99X\n", + "5 , RK485-99X\n", + "7 , RK485-99X\n", + "6 , RK485-99X\n", + "10 , RK485-99X\n", + "11 , RK485-99X\n", + "12 , RK485-99X\n", + "13 , RK485-99X\n", + "14 , RK485-99X\n", + "16 , RK485-99X\n", + "18 , RK485-99X\n", + "17 , RK485-99X\n", + "19 , RK485-99X\n", + "20 , RK485-99X\n", + "21 , RK485-99X\n", + "23 , RK485-99X\n", + "24 , RK485-99X\n", + "26 , RK485-99X\n", + "27 , RK485-99X\n", + "28 , RK485-99X\n", + "29 , RK485-99X\n", + "31 , RK485-99X\n", + "32 , RK485-99X\n", + "34 , RK485-99X\n", + "35 , RK485-99X\n", + "36 , RK485-99X\n", + "38 , RK485-99X\n", + "37 , RK485-99X\n", + "40 , RK485-99X\n", + "39 , RK485-99X\n", + "41 , RK485-99X\n", + "42 , RK485-99X\n" + ] + } + ], + "source": [ + "for i in df.MEASUREMENT.unique():\n", + " zb = df[df['MEASUREMENT'] == i]\n", + " for j in zb.StyleColor.unique():\n", + " zbior = zb[zb['StyleColor'] == j]\n", + " if zbior.EPC.unique().size == 1:\n", + " print(i,', ', j)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# Zatem usuwamy caĹy ten Stylokolor\n", + "df.drop(df.loc[df['StyleColor'] == 'RK485-99X'].index, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# Sprawdzamy, czy mamy klipsy przypisane do wiÄcej niĹź 1 Itemu\n", + "for i in df.MEASUREMENT.unique():\n", + " zb = df[df['MEASUREMENT'] == i]\n", + " for j in zb.EPC.unique():\n", + " zbior = zb[zb['EPC'] == j]\n", + " if zbior.EAN.unique().size > 1:\n", + " print(i,', ', j)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>EPC</th>\n", + " <th>PROXIMITY</th>\n", + " <th>TIMESTAMP</th>\n", + " <th>MEASUREMENT</th>\n", + " <th>ITEMID</th>\n", + " <th>EAN</th>\n", + " <th>StyleColorSize</th>\n", + " <th>StyleColor</th>\n", + " <th>Size</th>\n", + " <th>SubclassID</th>\n", + " <th>...</th>\n", + " <th>SEC</th>\n", + " <th>MICROSEC</th>\n", + " <th>MILISEC</th>\n", + " <th>TIME_MS</th>\n", + " <th>TIME_PER_MEASUREMENT_MS</th>\n", + " <th>NUMBER_OF_SIGNALS</th>\n", + " <th>LENGTH_OF_MEASUREMENT</th>\n", + " <th>TIME_KMS</th>\n", + " <th>MAX_PROXIMITY_KMS</th>\n", + " <th>SUM_PROXIMITY_KMS</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " </tbody>\n", + "</table>\n", + "<p>0 rows Ă 36 columns</p>\n", + "</div>" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [EPC, PROXIMITY, TIMESTAMP, MEASUREMENT, ITEMID, EAN, StyleColorSize, StyleColor, Size, SubclassID, ItemSeason, FashionLevel, SubclassID.1, SubclassName, ClassID, ClassID.1, ClassName, DepartmentID, DepartmentID.1, DepartmentName, BrandID, BrandID.1, BrandName, Active, HOUR, MIN, SEC, MICROSEC, MILISEC, TIME_MS, TIME_PER_MEASUREMENT_MS, NUMBER_OF_SIGNALS, LENGTH_OF_MEASUREMENT, TIME_KMS, MAX_PROXIMITY_KMS, SUM_PROXIMITY_KMS]\n", + "Index: []\n", + "\n", + "[0 rows x 36 columns]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#do testow samego modelu\n", + "test_1 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & ((df.MEASUREMENT == 2) | (df.MEASUREMENT == 3) | (df.MEASUREMENT == 4) | (df.MEASUREMENT == 26) | (df.MEASUREMENT == 28) ) ]\n", + "\n", + "test1 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & ( (df.MEASUREMENT == 1) ) ]\n", + "test2 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & ( (df.MEASUREMENT == 2) ) ]\n", + "test3 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & ( (df.MEASUREMENT == 3) ) ]\n", + "test4 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & ( (df.MEASUREMENT == 4) ) ]\n", + "test5 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 5) ]\n", + "test6 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 6) ]\n", + "test9 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 9) ]\n", + "test12 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 12) ]\n", + "test22 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 22) ]\n", + "test24 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 24) ]\n", + "test25 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 25) ]\n", + "test21 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 21) ]\n", + "test29 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 29) ]\n", + "test28 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 28) ]\n", + "\n", + "test29" + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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kZqA91ORSKRH202bNo1PP/0UgIqKikS51+tl06ZNfRGaiIiIJJlqAEVERERSjBJAERERkRSjBFBEREQkxSgBFBEREUkxSgBFREREUowSQBEREZEUowRwgBo9ejRTp05lxowZlJeXA/Dhhx8ya9Yspk6dyimnnEJTU1Ni+3nz5jF27FjGjx/PCy+8AEBbWxsnn3wyEyZMYPLkyVx77bWJ7Tds2MDs2bM54IADmDZtGs8991xi3UMPPURZWRllZWU89NBDifKLLrqIkpKSxLMFly5dCkBjYyOnnHIK06dPZ/LkyTzwwANAbN7h2bNnM3HiRCZPnsydd96ZOFZdXR1z5syhrKyMOXPmUF9f3+nzb9iwgczMTH796193uTannnoqU6ZMSby/6qqrEjGNGzeOQYMG7enlFhERSS3W2pR9zZw50+7o008/7VKWDKNGjbI1NTWdysrLy+1rr71mrbX2vvvus9dff7211tply5bZadOmWb/fb9euXWtLS0ttOBy2ra2t9pVXXrHWWhsIBOwRRxxhn3vuOWuttZdeeqn93e9+l9h/1KhR1lpra2trbUlJia2trbV1dXW2pKTE1tXVWWutvfDCC+3jjz/eJdabbrrJXnPNNdZaa7du3Wpzc3NtIBCwmzZtskuWLLHWWtvU1GTLysrssmXLrLXW/vCHP7Tz5s2z1lo7b968xP7bnXHGGfass86yt956a6fyJ5980s6dO9dOnjy52+v2m9/8xl588cXdrhso91ZEROSLABbbXsqBVAO4lwL1tTQs/4i6jxbTsPwjAvW1fXaulStXctRRRwEwZ84cnnzySQCeeuopzjvvPLxeLyUlJYwdO5ZFixaRnp7O7NmzAfB4PBx44IFUVlYCYIxJ1CA2NjYybNgwAF544QXmzJlDXl4eubm5zJkzh3/961+7jMsYQ3NzM9ZaWlpayMvLw+VyUVRUxIEHHghAVlYWEydOpKqqKhHzhRdeCMCFF17IggULEsdbsGABpaWlXeYibmlp4f/+7/+4/vrrdxrL/PnzmTt37u4vpoiISApTArgXAvW1tFauJxoKAhANBWmtXN8rSaAxhuOPP56ZM2dyzz33ADBlyhSefvppAB5//HE2btwIQFVVFSNGjEjsW1xcnEi0tmtoaOCf//wnxx57LAA/+9nPeOSRRyguLuakk07irrvu6tGxrrvuOqZNm8ZVV11FIBAA4IorrmD58uUMGzaMqVOncuedd+JwdP6nVVFRwQcffMAhhxwCQHV1NUVFRQAUFRWxdetWAFpbW7nlllu48cYbu1yTG264gR/84Aekp6d3e83Wr1/PunXrOOaYY3Z+YUVEREQJ4N5o31IFNtq50EZj5Xvprbfe4v333+f555/n7rvv5vXXX+f+++/n7rvvZubMmTQ3N+PxeGKntLbL/saYxHI4HGbu3Ll897vfpbS0FIjVlF100UVUVlby3HPPccEFFxCNRnd5rHnz5rFixQree+896urquOWWW4BYreGMGTPYtGkTS5cu5YorrujUP7GlpYUzzzyTO+64g+zs7F1+7htvvJGrrrqKzMzMTuVLly5l9erVXeYy7ujRRx/lrLPOwul07vIcIiIiqU5zAe+F7TV/PS3fE9ubZAsLCzn99NNZtGgRV199NQsXLgTgs88+49lnnwVitXTbawMBKisrE/sDXHbZZZSVlXHllVcmyu67775E0+6sWbPw+/1s27aN4uJiXnvttU7HOvroowESNXZer5eLL744MUDjgQce4Nprr8UYw9ixYykpKWHFihUcfPDBhEIhzjzzTM4//3zOOOOMxHGHDBnC5s2bKSoqYvPmzRQWFgLw7rvv8sQTT3DNNdfQ0NCAw+HA5/PhdDpZsmQJo0ePJhwOs3XrVo4++uhOsT766KPcfffde3PZRUREUoJqAPeCw+3Zo/Keam1tpbm5ObG8cOFCpkyZkmgmjUaj/OIXv+Dyyy8HYqNiH330UQKBAOvWrWPVqlUcfPDBAFx//fU0NjZyxx13dDrHyJEjefnllwFYvnw5fr+fgoICTjjhBBYuXEh9fT319fUsXLiQE044AYDNmzcDsRrHBQsWJEbidjxWdXU1K1eupLS0FGstl1xyCRMnTuT73/9+p/OfeuqpiRHGDz30EKeddhoAb7zxBhUVFVRUVHDllVfyk5/8hCuuuIJvf/vbbNq0iYqKCt58803GjRvXKflbuXIl9fX1zJo1a6+uvYiISCpQDeBeSBs6nNbK9Z2bgY2DtKHD9+q41dXViabOcDjM1772NU488UTuvPPORA3XGWecwcUXXwzA5MmTOeecc5g0aRIul4u7774bp9NJZWUlN910ExMmTEgMxrjiiiv45je/yW233call17K7bffjjGGBx98EGMMeXl53HDD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\n", + "text/plain": [ + "<Figure size 720x576 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10,8))\n", + "sns.scatterplot(x=\"TIME_MS\", y=\"SUM_PROXIMITY_KMS\", hue='EAN', data=test6)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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VERERHpNSVuC2zumbe/PVVddxRNPPMEZZ5zR5bizzjqrWxcpwCWXXEIwGByocEVEROQjUvdogguFQr06bvbs2axbtw6AsrKyWLnX62XXrl39EZqIiIj0IbW0iYiIiCQAJW0iIiIiCUBJm4iIiEgCUNImIiIikgCUtImIiIgkACVtIiIiIglASVscFRUVMWvWLObOnUtpaSkAq1evZsGCBcyaNYtTTz2Vpqam2PFLly5l0qRJTJkyhZdeegmAtrY2TjnlFKZOncqMGTO46qqrYsfv2LGDhQsXcthhhzF79mxeeOGFWN2jjz5KSUkJJSUlPProo7Hyiy66iOLi4ti6b6tWrQKgsbGRU089lTlz5jBjxgwefvhhAHbu3MnChQuZNm0aM2bM4K677opdq66ujkWLFlFSUsKiRYuor6/vcv87duwgLS2Nn//8593em9NOO42ZM2fGni9ZsiQW0+TJkxkxYsTBvt0iIiKJzVo75H/mzZtn97Vu3bpuZQNt/Pjxtrq6uktZaWmpffXVV6211j744IP22muvtdZau3btWjt79mzr8/ns1q1b7YQJE2wwGLStra32H//4h7XWWr/fb48++mj7wgsvWGut/cpXvmLvu+++2Pnjx4+31lpbW1tri4uLbW1tra2rq7PFxcW2rq7OWmvthRdeaJ966qlusd500032yiuvtNZaW1VVZbOysqzf77e7du2yK1eutNZa29TUZEtKSuzatWuttdZ+//vft0uXLrXWWrt06dLY+XudeeaZ9rOf/ay97bbbupQ/88wz9rzzzrMzZszo8X27++677cUXX9xj3WD4exURETkUwArbQz6jlrZe8tfX0rD+XereXUHD+nfx19f2y+ts3LiRY489FoBFixbxzDPPAPDcc89x7rnn4vV6KS4uZtKkSSxfvpyUlBQWLlwIgMfj4fDDD6e8vBwAY0yspa6xsZGxY8cC8NJLL7Fo0SKys7PJyspi0aJF/O1vfztgXMYYmpubsdbS0tJCdnY2LpeLvLw8Dj/8cADS09OZNm0aFRUVsZgvvPBCAC688EKeffbZ2PWeffZZJkyY0G3f05aWFn7xi19w7bXX7jeWJ554gvPOO+/D30wREZEhRElbL/jra2kt30440AFAONBBa/n2Q07cjDGceOKJzJs3j/vvvx+AmTNn8vzzzwPw1FNPsXPnTgAqKioo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\n", + "text/plain": [ + "<Figure size 720x576 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10,8))\n", + "sns.scatterplot(x=\"TIME_MS\", y=\"SUM_PROXIMITY_KMS\", hue='EAN', data=test_1[test_1.MEASUREMENT == 3])\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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43a7+dOf/sR9992H1WoFIDMzk09/+tNRjlCAJG1CCCHEMc3j8QzrHn3iiSdG1HnhhReorKykurqa/Px8EhISohCpOBTpHhVCCCGOYQfrHv3sZz+L3W6nsLCQ++67j+7u7skNThwWSdqEEEKI49SeMW17pKamUldXh8vlwul0RjEyMRrpHhVCCCEEAA6HgxtuuIHbbrsNv98PQHNzM3/729+iHJkASdqEEEKIY9r+Y9q++c1vHrT+XXfdRXp6OuXl5cyePZtLL72U9PT0SYpWHIzSWkc7hglXVVWlV65cGe0whBBCHMSWLVuYNWtWtMMQYlKN9n2vlFqlta7av660tAkhhBBCxABJ2oQQQgghYoAkbUIIIYQQMUCSNiGEEEKIGCBJmxBCCCFEDJCkTQghhBAiBkjSJoQQQgBer5dFixYxd+5cKioq+P73vw9AV1cXS5cupaysjKVLlw5t9bR8+fKhtc/mzp3LM888M3SuM844gxkzZgwdb2trGzr25JNPUl5eTkVFBddcc81Q+Z133klFRQWzZs3itttuY/8luW699Vbi4+OHnv/sZz8bOv/s2bMxGo10dXUBUFhYSGVlJfPmzRu248EeP//5z1FK0dHRAcCuXbuw2+1D57vpppuG6q5atYrKykpKS0uHxfXOO++wYMECTCYTTz311FD9/c81b948/H4/vb29fPKTnxx6fx988MGh17z88svMmDGD0tJSfvrTnw6VH+i9B7j77rspLS1lxowZvPLKK0Pl+957ZWUlzz333KjH9n1fvvCFL1BUVMS8efOYOXMmP/zhD4eOaa35zne+w/Tp05k1axb33nsvAA899BDp6enD7nPz5s0A1NXVce655zJr1izKy8vZtWvXiH+DI6K1jsoXMA/4CFgLrAQW7XPsW0A1sA04b5/yhcCGwWP3MrjO3KG+Fi5cqIUQQkxtmzdvjur1w+GwdrlcWmut/X6/XrRokf7www/1HXfcoe+++26ttdZ33323vvPOO7XWWg8MDOhAIKC11rqpqUmnp6cPPT/99NP1ihUrRlxj+/btet68ebqrq0trrXVra6vWWuv3339fn3TSSToYDOpgMKiXLFmi33rrraHXrVixQn/uc5/TcXFxo8b+/PPP6zPPPHPoeUFBgW5vbx+1bl1dnT733HN1fn7+UJ3a2lpdUVExav0TTjhBf/DBBzocDuvzzz9fv/jii0OvWbdunf785z+v//GPfwzVP9C5fvKTnwy9d21tbTo5OVn7fD4dDAZ1cXGxrqmp0T6fT8+ZM0dv2rRJa60P+N5v2rRJz5kzR3u9Xr1z505dXFysg8HgiHvfunWrzs/PP+T7ct111w3dg8fj0UVFRXrnzp1aa60feOAB/fnPf16HQiGt9d5/swcffFDffPPNo75np59+un711Ve11lq7XC49MDAwaj2tR/++B1bqUfKZaLa03QP8UGs9D/je4HOUUuXA1UAFcD7wO6WUcfA1vwduBMoGv86f5JiFEEJMEc+uaeTkn75J0Tf/zck/fZNn1zQe1fmUUkMtWYFAgEAggFKK5557juuuuw6A6667jmeffRaIbPlkMkW28PZ6vSilDnmNP/3pT9x8880kJycDkJGRMXRtr9eL3+/H5/MRCATIzMwEIBQKcccdd3DPPfcc8LyPPfYYn/nMZ8Z0n7fffjv33HPPmOJtbm6mr6+PE088EaUU11577dD9FxYWMmfOHAyGsaUSSilcLhdaa/r7+0lJScFkMrF8+XJKS0spLi7GYrFw9dVXD7WOHei9f+6557j66quxWq0UFRVRWlrK8uXLR1yzr69v6L0eK6/XC0BcXBwAv//97/ne9743dJ97/s0OZPPmzQSDQZYuXQpAfHw8DofjsGI4kGgmbRpIGHycCDQNPr4EeFxr7dNa1xJpVVuklMoGErTWHw5moY8Al05yzEIIIaaAZ9c08q2nN9DY40EDjT0evvX0hqNO3EKhEPPmzSMjI4OlS5eyePFiWltbyc7OBiA7O3tYV+fHH39MRUUFlZWV/OEPfxhK4gC++MUvMm/ePH784x8PdSlu376d7du3c/LJJ7NkyRJefvllAE488UTOPPNMsrOzyc7O5rzzzhtaJf83v/kNF1988VAM+3O73bz88stcccUVQ2VKKc4991wWLlzI/fffP1T+/PPPk5uby9y5c0ecp7a2lvnz53P66afz7rvvAtDY2EheXt5Qnby8PBobD/0e19TUDHUZ3nzzzQDccsstbNmyhZycHCorK/n1r3+NwWCgsbGRadOmjXqNA733B3sNwJlnnsns2bM5/fTTueuuuw75vgDccccdzJs3j7y8PK6++uqh5KympoYnnniCqqoqLrjgAnbs2DH0mieeeGJY96jH42H79u0kJSVx+eWX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\n", + "text/plain": [ + "<Figure size 720x576 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10,8))\n", + "sns.scatterplot(x=\"TIME_MS\", y=\"SUM_PROXIMITY_KMS\", hue='EPC', data=test_1[test_1.MEASUREMENT == 4])\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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EVauXFnvWNciKSmJlStXIiLs2LGDW2+9FV9fX4YOHUpOTg75+flUVVWRmppKUlKStU9jsU9KSiI1NZXKykry8/PJyclhWCMDTZeUlJCfn0///v2bjMuVnE4nO3fuJCgoyPrNNm7cCEBGRgYDBgwA4OjRo1aL3759+6iqqqJHjx6ICI8++ighISH88Y9//EGxUqrda+zthPb20bdHVXt2TW/RHVwlstBH5Olbvv8s9HGl/0AHDx6U6OhoiYiIkLCwMHn22WdFROTMmTNy7733it1ul3vvvVe+++47ERFZuXKlhIaGSlRUlAwaNEjS0tJEROTSpUsyePBgiYiIkNDQUHniiSesNxtrampk7ty5EhISIuHh4fLBBx+IiOsNyt/85jcycOBACQkJkblz5zZaxivfHn3nnXfkoYceqpeWm5srkZGREhkZKaGhobJw4cJG86r7JuVHH30koaGhEhkZKYMGDZK1a9da2+3evVvCwsIkMDBQ5syZY70xuWvXLunXr594eXnJHXfcIaGhoSLS9NujNTU18rvf/U4CAwMlPDy83tu169evl7vuuksCAwPrlbep2IuILFy4UAIDA2XAgAHWG6215xUeHi5RUVESGhoqb7311lXjkpKSIv7+/hIVFSUhISHy+9//3jrPc+fOyS9+8QsJDw+X2NhYOXDggIiILF682Pr9Y2NjZevWrSIisnXrVgEkIiJCoqKiJCoqStavX9/obyCib4+q9o0m3h410sgzDu1NTEyM7Nmzp7WLodRPIisry3r4vkW+/tD1DNuFQlcL29gF1/U8m1Kt4Zqve6XaEGPMXhFpMFikvoigVEcTOVUraUop1QbpM21KKaWUUm2AVtqUUkoppdoArbQppZRSSrUBWmlTSimllGoDtNKmlFJKKdUGaKVNKXVdKioqGDZsGFFRUYSFhfH0008DcPbsWeLj47nrrruIj4/n3LlzAOzatcuaXzMqKoq0tDQrr7i4OIKDg631decr/fDDDwkNDSUsLIzp06db6fPnzycsLIyQkBCeeOKJBlM1Pf7449aE9uCadqk2//DwcDw8PDh79izgmsw9IiKC6OhoYmIavG3Piy++iDHGGgS4oKCAm2++2crvt7/9rbXt3r17iYiIwG631yvXli1bGDx4MJ6ennz00UfW9lfmFR0dTVVVFRcuXOCBBx6w4vvOO+9Y+6Sn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\n", + "text/plain": [ + "<Figure size 720x576 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10,8))\n", + "sns.scatterplot(x=\"TIME_MS\", y=\"SUM_PROXIMITY_KMS\", hue='EPC', data=test_1[test_1.MEASUREMENT == 26])\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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dKOxy1VEREREjoESOhEREZEUp4ROREREJMWNxoWFRURE0pq1lmiwGxuLgeOA2wM42HAY43bjzsjC7dXSPzJwSuhERERGkLWWcEc7WIsT6sadkQmxCF17duFEwgB4c/LInDAJtz+Q5GglVajLVUREZAQ54RBYB5wY4fY2sBBqakgkcwCR9lYine1JjFJSjRI6ERGREeTEYuBYbCyKLycPrCXW3dXnuFgwmIToJFUpoRMRERlBLrcHXC6M20uorQWMwZOVjePPpN6Vw44uD+3eHDwZmckOVVKIxtCJiIiMILffT1dnJ8HuMPtaI0wpiNAc8bB9VxPfvePH7NxRy5TKcm79+r9y+nuLkh2upAi10ImIiIyw1Ws2sG79NnbtqmPvviZqa/dx+xf+i507agHYuaOWL930DbZtqUluoJIylNCJiIiMIGst9fsbaGlqJTsni3AwHH/c3NrruOamVnbX1CYpSkk16nIVEREZQcYYMrMy8Hm9RCNRvD4vufm5uN1uYrFY4ji3201+YX7yApWUohY6ERGRETZ7zgwyszPo7g4SiUYpLMrn2k9c3uuY6z/9UWbPqUpShJJq1EInIiIywqbNqCAQ8HPgQAOxSJSsnCzOWnIGc4+fTcOBRsZPHMf8E+bgD/iTHaqkCCV0IiIiSTBxchkTJ5clOwxJE+pyFREREUlxSuhEREREUpwSOhEREZEUp4ROREREJMUpoRMRERFJcUroRERERFKcEjoRERGRFKeETkRERCTFKaETERERSXFK6ERERERSnBI6ERERkRSnhE5EREQkxSmhExEREUlxSuhEREREUpwSOhEREZEU50l2AKNNJBKhtraWYDCY7FBkCAUCAcrLy/F6vckORUREZMgpoTtMbW0tOTk5VFRUYIxJdjgyBKy1NDY2UltbS2VlZbLDERERGXJK6A4TDAaVzKUZYwxFRUXU19cnO5QxyVpLe1sHxkA0FsPlcgGGrMwMPF79ChIRGQr6bdoPJXPpR59pcmzfWsO+unp8Pg/dXSGikSi7avbwzG//RGFRHh+9bhknn3YCbrc72aGKiKQ0TYpIU263mwULFiRu//mf/5moq6+vx+v18t///d+9zqmoqOCyyy5LPH7ssce45pprRipkSTNtLe1s37KTpsYWOtu7Wf/mZta/tZnv3PEj1r2xkRf//DKfuuYW3lq7IdmhioikPCV0aSojI4O1a9cmbrfeemui7tFHH+XUU0/loYce6nPe6tWrWbdu3UiGKmmqrm4/dXsPkJ+fx/atO5lQPo6nn/hjr2Oi0RhrVr2RpAhFRNKHErox6KGHHuI73/kOtbW17Nmzp1fd5z//eb75zW8mKTJJJ263G7fLBVg8Hjc44A/4+xzn9/tGPjgRkTSjhC5NdXd39+py/b//+z8Adu/ezb59+zj55JNZtmxZovygZcuW8eqrr7J169ZkhC1pZMLE8UycXEZTQzNTqyqoqdnNB5Zd0OuY7Jwsqk9dkJwARUTSiCZFpKmDXa6He/jhh1m2bBkAl19+Oddddx2f/exnE/Vut5svfOELLF++nH/6p38aqXAlDWVmZTDzuOns2rEH47JUn7KAcDjM8rtv45W/vUbxuCLee85pzDxuerJDFRFJeUroxpiHHnqI/fv386tf/QqAvXv3smXLFqqqqhLHXHXVVSxfvpw5c+YkK0xJE+PLShlfVtqn/MIPLElCNCIi6UtdrmPIpk2b6OzsZM+ePdTU1FBTU8MXv/hFHn744V7Heb1ebr75Zu66667kBCoiIiLHRAldmjp8DN2tt97KQw89xKWXXtrruMsuu6zf2a7XXXcd0Wh0pMIVERGRQVCXa5qKxWIDOm7+/PmsX78egJqamkS53+9n7969wxGaiIiIDDG10ImIiIikOCV0IiIiIilOCZ2IiIhIilNCJyIiIpLilNCJiIiIpDgldCIiIiIpTgndKFVRUcG8efNYsGAB1dXVALz++ussWrSIefPmcdFFF9HW1pY4fvny5UyfPp2ZM2fy7LPPAtDV1cWFF17IrFmzmDNnDrfeemvi+F27drF48WJOOOEE5s+fz1NPPZWoe/DBB6mqqqKqqooHH3wwUX7NNddQWVmZWNvu4NZira2tXHTRRRx//PHMmTOHBx54AIjvG7t48WJmz57NnDlzuPvuuxPXampqYsmSJVRVVbFkyRKam5t7vf5du3aRnZ3Nt7/97T7vzcUXX8zcuXMTj2+++eZETDNmzCA/P/9Y324REZHUZq0ds7eFCxfaw61fv75PWTJMmTLF1tfX9yqrrq62zz//vLXW2vvuu8/edttt1lpr161bZ+fPn2+DwaDdvn27nTp1qo1Go7azs9P+6U9/stZaGwqF7BlnnGGfeuopa621119/vf3Rj36UOH/KlCnWWmsbGxttZWWlbWxstE1NTbaystI2NTVZa629+uqr7aOPPton1jvuuMPecsst1lprDxw4YAsKCmwoFLJ79+61a9assdZa29bWZquqquy6deustdZ+4QtfsMuXL7fWWrt8+fLE+QctXbrUfvCDH7Tf+ta3epU//vjj9oorrrBz5szp9337/ve/b6+99tp+60bLZysiIvJuAKvtO+Q0aqEbpFBzIy0b3qDpjdW0bHiDUHPjsD3Xpk2bOPPMMwFYsmQJjz/+OABPPPEEl19+OX6/n8rKSqZPn86qVavIzMxk8eLFAPh8Pk488URqa2sBMMYkWvhaW1uZMGECAM8++yxLliyhsLCQgoIClixZwjPPPHPEuIwxtLe3Y62lo6ODwsJCPB4PZWVlnHjiiQDk5OQwe/Zs9uzZk4j56quvBuDqq69mxYoVieutWLGCqVOn9tlLtqOjg+9+97vcdttt7xjLQw89xBVXXHH0N1NERCSNKKEbhFBzI521O3EiYQCcSJjO2p1DktQZYzj33HNZuHAh9957LwBz587lySefBODRRx9l9+7dAOzZs4dJkyYlzi0vL08kTge1tLTw29/+lnPOOQeAr33ta/zyl7+kvLycCy64gB/84AcDutaXv/xl5s+fz80330woFALgxhtvZMOGDUyYMIF58+Zx991343L1/q9VU1PDa6+9ximnnALA/v37KSsrA6CsrIwDBw4A0NnZyZ133sntt9/e5z35yle+wuc+9zkyMzP7fc927tzJjh07OPvss9/5jRUREUlDSugGoXvfHrBO70LrxMsH6a9//SuvvvoqTz/9NPfccw8vvPAC999/P/fccw8LFy6kvb0dn88Xf0pr+5xvjEncj0ajXHHFFXzmM59h6tSpQLwl65prrqG2tpannnqKq666Csdxjnit5cuXs3HjRl555RWampq48847gXir3oIFC9i7dy9r167lxhtv7DW+r6Ojg8suu4y77rqL3NzcI77u22+/nZtvvpns7Oxe5WvXrmXr1q199qI91MMPP8wHP/hB3G73EZ9DREQk3Wgv10E42DI30PJjcbALtLS0lEsvvZRVq1bx+c9/npUrVwKwefNmfv/73wPxVrSDrXUAtbW1ifMBbrjhBqqqqrjpppsSZffdd1+iK3XRokUEg0EaGhooLy/n+eef73Wts846CyDRoub3+7n22msTExYeeOABbr31VowxTJ8+ncrKSjZu3MjJJ59MJBLhsssu48orr2Tp0qWJ644bN466ujrKysqoq6ujtLQUgJdffpnHHnuMW265hZaWFlwuF4FAALfbzZo1a6ioqCAajXLgwAHOOuusXrE+/PDD3HPPPYN520VERFKSWugGweX1HVP5QHV2dtLe3p64v3LlSubOnZvolnQch2984xt84hOfAOKzPh9++GFCoRA7duxgy5YtnHzyyQDcdttttLa2ctddd/V6jsmTJ/Pcc88BsGHDBoLBICUlJZx33nmsXLmS5uZmmpubWblyJeeddx4AdXV1QLxFcMWKFYmZpodea//+/WzatImpU6direW6665j9uzZfPazn+31/BdffHFiBu2DDz7IJZdcAsCLL75ITU0NNTU13HTTTXzpS1/ixhtv5JOf/CR79+6lpqaGl156iRkzZvRK5jZt2kRzczOLFi0a1HsvIiKSitRCNwgZ4yfSWbuzd7ercZExfuKgrrt///5E12I0GuUjH/kI559/PnfffXeiBWrp0qVce+21AMyZM4dly5Zx3HHH4fF4uOeee3C73dTW1nLHHXcwa9asxOSEG2+8kY9//ON85zvf4frrr+d73/sexhh+9rOfYYyhsLCQr3zlK5x00kkAfPWrX6WwsBCAK6+8kvr6eqy1LFiwgJ/85CdAfGzbNddcw7x587DWcuedd1JcXMxLL73EL37xi8TyKwDf/OY3ueCCC7j11ltZtmwZ9913H5MnT+bRRx8d1Hv20EMPcfnll/fqahYRERkrTH9jpsaK6upqu3r16l5lGzZsYPbs2QO+Rqi5ke59e3AiYVxeHxnjJ+IvKBrqUGUIHOtnKyIiMpoYY9ZYa6v7q1ML3SD5C4qUwImIiEhSJW0MnTHmQ8aYdcYYxxhTfUj5EmPMGmPMmz3/nn1I3cKe8q3GmO+bnv41Y4zfGPN/PeUvG2MqkvCSRERERJIimZMi3gKWAi8cVt4AXGStnQdcDfzikLofAzcAVT2383vKrwOarbXTge8Bdw5j3CIiIiKjStK6XK21G4A+g9itta8d8nAdEDDG+IFCINda+/ee834OfAB4GrgE+FrPOY8BPzTGGDuWBwiKjAKR7k6cSJR4UzpYxxILdoMTw5OdgzcrB+PSZHsRkcEa7WPoLgNes9aGjDETgdpD6mqBg9NJJwK7Aay1UWNMK1BEvLWvF2PMDcRb+Zg8efIwhi4ytkW6Ooh1d2Pcbqwx2GiM7n212Gg0fkD9PrKnTMOXV5DcQEVE0sCw/mlsjPmjMeatfm6XDODcOcS7Tv/fwaJ+DrMDqOtdaO291tpqa211SUnJQF6GiLwLkY52cLlwYlGs4+CEQ28ncz269+3BOaxMRESO3bAmdNba91lr5/Zze+JI5xljyoHfAB+z1m7rKa4Fyg85rBzYe0jdpJ5zPUAe0DSUr2WkVVRUJNZvq66Ozxl5/fXXWbRoEfPmzeOiiy7qtb3W8uXLmT59OjNnzuTZZ58FoKuriwsvvJBZs2YxZ84cbr311sTxu3btYvHixZxwwgnMnz+fp556KlH34IMPUlVVRVVVVWLxX4BrrrmGyspKFixYwIIFC1i7di0Ara2tXHTRRRx//PHMmTOHBx54AIDdu3ezePFiZs+ezZw5c7j77rsT12pqamLJkiVUVVWxZMkSmpube73+Xbt2kZ2dndiNAuCss85i5syZiec/uNDyQY899hjGGA5fikaSwzrO239qWafvNnmA48RAIyNERAbPWpvUG/A8UH3I43zgdeCyfo59BTiV+NfE08AFPeWfAn7Sc/9y4JGBPPfChQvt4davX9+nLBmmTJli6+vre5VVV1fb559/3lpr7X333Wdvu+02a62169ats/Pnz7fBYNBu377dTp061UajUdvZ2Wn/9Kc/WWutDYVC9owzzrBPPfWUtdba66+/3v7oRz9KnD9lyhRrrbWNjY22srLSNjY22qamJltZWWmbmpqstdZeffXV9tFHH+0T6x133GFvueUWa621Bw4csAUFBTYUCtm9e/faNWvWWGutbWtrs1VVVXbdunXWWmu/8IUv2OXLl1trrV2+fHni/IOWLl1qP/jBD9pvfetbibL3vve99pVXXun3/Wpra7Pvec977CmnnPKOx4yWz3asCLU22+6G/ba7qd4GW5psV/0+2/j6K71uXfv3JjtMEZGUAay275DTJHPZkkuNMbXAIuD3xphne6puBKYDXzHGrO25lfbUfRL4H2ArsI14UgdwH1BkjNkKfBZ4uylqmO18eSO/+9J9PPKJu/jdl+5j58sbh+25Nm3axJlnngnAkiVLePzxxwF44oknuPzyy/H7/VRWVjJ9+nRWrVpFZmYmixcvBsDn83HiiSdSWxsfhmiMSbTwtba2JvZ+ffbZZ1myZAmFhYUUFBSwZMmSxJ6v78QYQ3t7O9ZaOjo6KCwsxOPxUFZWltihIicnh9mzZ7Nnz55EzFdffTUAV199NStWrEhcb8WKFUydOpU5c+YM+L35yle+wi233EIgEBjwOTK8PFnZuLx+jNsDGFz+AJnlFXgys3D5/GSML9cajiIiQyRpCZ219jfW2nJrrd9aO85ae15P+TestVnW2gWH3A701K228S7badbaG3uyVay1QWvth6y10621J1trt4/Ea9j58kZW/+qPdDXF913tampn9a/+OCRJnTGGc889l4ULF3LvvfcCMHfuXJ588kkAHn30UXbv3g3Anj17mDRpUuLc8vLyROJ0UEtLC7/97W8555xzAPja177GL3/5S8rLy7ngggv4wQ9+MKBrffnLX2b+/PncfPPNhEIhIL6d2IYNG5gwYQLz5s3j7rvvxnXYzMWamhpee+01TjnlFCC+vVlZWRkAZWVlie7Tzs5O7rzzTm6//fZ+35drr72WBQsW8B//8R8HW2157bXX2L17N+9///sH9ubKiHC5Pfhy8/Bm5eDOyMDl8+POyiarvJLcaTPJKB0/6H2PRUQkTusFDMKbT/yVWLj3gO5YOMqbT/x10Nf+61//yquvvsrTTz/NPffcwwsvvMD999/PPffcw8KFC2lvb8fni38ZHkxsDnXocjDRaJQrrriCz3zmM0ydOhWI7316zTXXUFtby1NPPcVVV12F4zhHvNby5cvZuHEjr7zyCk1NTdx5Z3y5v2effZYFCxawd+9e1q5dy4033thrfF9HRweXXXYZd911F7m5uUd83bfffjs333wz2dnZfep+9atf8eabb/Liiy/y4osv8otf/ALHcbj55pv5zne+c7S3VJLE5Xbj8fnx+gN4/QHcgYASORGRIaaEbhAOtswNtPxYHOwCLS0t5dJLL2XVqlXMmjWLlStXsmbNGq644gqmTZsGxFvRDrbWAdTW1ibOB7jhhhuoqqripptuSpTdd999LFu2DIBFixYRDAZpaGg44rXKysowxuD3+7n22mtZtWoVAA888ABLly7FGMP06dOprKxk48Z4K2UkEuGyyy7jyiuvZOnSpYnrjhs3jrq6OgDq6uooLY33qr/88svccsstVFRUcNddd/HNb36TH/7whwBMnBhfpSYnJ4ePfOQjrFq1ivb2dt56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X//6V1599VWefvpp7rnnHl544QXuv/9+7rnnHhYuXEh7ezs+nw+Id5sf7tDWkGg0yhVXXMFnPvMZpk6dCsBDDz3ENddcQ21tLU899RRXXXUVjuMc8VrLly9n48aNvPLKKzQ1NXHnnXcC8Va9BQsWsHfvXtauXcuNN97Ya3xfR0cHl112GXfddRe5ublHfN233347N998M9nZ2b3Ko9EotbW1nH766bz66qssWrSIz3/+8wN5K0VERNKeErpB2Lf3wDGVH4uDXaClpaVceumlrFq1ilmzZrFy5UrWrFnDFVdcwbRp04B4K9rB1jqA2traxPkAN9xwA1VVVdx0002Jsvvuu49ly5YBsGjRIoLBIA0NDUe8VllZGcYY/H4/1157LatWrQLggQceYOnSpRhjmD59OpWVlWzcuBGASCTCZZddxpVXXsnSpUsT1x03bhx1dXUA1NXVUVpaCsDLL7/MLbfcQkVFBXfddRff/OY3+eEPf0hRURGZmZlceumlAHzoQx/i1VdfHfT7LCIikg6U0A3C+Amlx1Q+UJ2dnbS3tyfur1y5krlz5ya6JR3H4Rvf+Aaf+MQnALj44ot5+OGHCYVC7Nixgy1btnDyyScDcNttt9Ha2spdd93V6zkmT57Mc889B8Q3rQ8Gg5SUlHDeeeexcuVKmpubaW5uZuXKlZx33nkAiQTMWsuKFSuYO3dun2vt37+fTZs2MXXqVKy1XHfddcyePZvPfvazvZ7/4osvTsygffDBB7nkkksAePHFF6mpqaGmpoabbrqJL33pS9x4440YY7jooot4/vnnAXjuuec47rjjBvU+i4iIpI13mi0xFm6DneX6u9+stCfNXGLnTT4zcTtp5hL7u9+sHPA1+rNt2zY7f/58O3/+fHvcccfZb3zjG9Zaa++66y5bVVVlq6qq7L/927/1mjX4jW98w06dOtXOmDEjMZN19+7dFrCzZs2yxx9/vD3++OPtT3/6U2ttfGbraaedZufPn2+PP/54++yzzyaudd9999lp06bZadOm2fvvvz9RvnjxYjt37lw7Z84ce+WVV9r29nZrrbV79uyxS5YsSdT94he/sNZa++KLL1rAzps3L/H8v//976211jY0NNizzz7bTp8+3Z599tm2sbGxz/tw++2395rlWlNTY9/znvfYefPm2bPPPtvu3LnTWmvtqlWr7MSJE21m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\n", + "text/plain": [ + "<Figure size 720x576 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10,8))\n", + "sns.scatterplot(x=\"TIME_MS\", y=\"SUM_PROXIMITY_KMS\", hue='EAN', data=test_1[test_1.MEASUREMENT == 28])\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "NastÄpnie tworzymy intuicyjny podziaĹ na zbiĂłr testowy i treningowy: pomiary przed godzinÄ 10.30 traktujemy jako zbiĂłr treningowy, natomiast te po godzinie 10.30 - jako zbiĂłr testowy." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "train = df[df.TIMESTAMP <= '2021-10-26T10:30:00.000']\n", + "train = train[['SUM_PROXIMITY_KMS','TIME_MS', 'EAN', 'MEASUREMENT','StyleColor', 'EPC']]\n", + "test = df[df.TIMESTAMP > '2021-10-26T10:30:00.000']\n", + "test = test[['SUM_PROXIMITY_KMS','TIME_MS', 'EAN', 'MEASUREMENT','StyleColor', 'EPC']]" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "\n", + "from sklearn.cluster import DBSCAN\n", + "from sklearn import metrics\n", + "from sklearn.datasets import make_blobs\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.preprocessing import normalize\n", + "from sklearn.neighbors import NearestNeighbors\n", + "import plotly.express as px\n", + "from kneed import KneeLocator" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "#zbiĂłr testowy dla kilku stylokolorĂłw\n", + "test0 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & ((df.StyleColor == 'RH797-81X') | (df.StyleColor == 'SL171-99X') \n", + " | (df.StyleColor == 'RH797-59X'))]\n", + "caly1 = test0[['SUM_PROXIMITY_KMS','TIME_MS', 'EAN', 'MEASUREMENT','StyleColor', 'EPC']]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "def c1(x, g, d, c):\n", + " outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", + " for j in x.StyleColor.unique():\n", + " DF = x[(x.StyleColor == j)]\n", + " measurements = DF.MEASUREMENT.unique()\n", + "\n", + " for i in measurements:\n", + " proba = DF[ DF.MEASUREMENT == i ]\n", + " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", + " minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)\n", + " neighbors = max(2,minimal_epc.astype(int))\n", + "\n", + " if minimal_epc > g:\n", + " minimal_epc = g\n", + " neighbors = g\n", + " \n", + " X_embedded = proba[['TIME_MS','SUM_PROXIMITY_KMS']]\n", + " nbrs = NearestNeighbors(n_neighbors=neighbors ).fit(X_embedded)\n", + " distances, indices = nbrs.kneighbors(X_embedded)\n", + " distance_desc = sorted(distances[:,neighbors-1], reverse=True)\n", + "\n", + " kneedle = KneeLocator(range(1,len(distance_desc)+1), #x values\n", + " distance_desc, # y values\n", + " S=1.0, #parameter suggested from paper\n", + " curve=\"convex\", #parameter from figure\n", + " direction=\"decreasing\") #parameter from figure\n", + "\n", + " eps = max(6000,kneedle.knee_y/d)\n", + "\n", + " db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='auto')\n", + " db.fit(X)\n", + " y_pred = db.fit_predict(X)\n", + " clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + " calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", + "\n", + " if db.labels_[db.labels_ == -1].size != 0 :\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > c*proba[proba['EPC'] == b].count()[0] :\n", + " outliery = outliery.append({'MEASUREMENT': i, 'EAN':proba[proba['EPC'] == b].EAN.iloc[0], \n", + " 'StyleColor':j}, ignore_index = True)\n", + "\n", + "\n", + " return(outliery)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "#zbiĂłr testowy dla kilku stylokolorĂłw \n", + "train1 = train[(train.StyleColor == 'RH267-85J') | (train.StyleColor == 'RJ369-87X') | (train.StyleColor =='RM119-93X') \n", + " | (train.StyleColor == 'RS483-99X') | (train.StyleColor == 'SB281-90M')]\n", + "\n", + "train2 = train[(train.StyleColor == 'RV167-MLC') | (train.StyleColor == 'RV462-87X') | (train.StyleColor =='QJ677-33X') \n", + " | (train.StyleColor == 'RH797-00X') | (train.StyleColor == 'RH267-55J')]\n", + "\n", + "train3 = train[(train.StyleColor == 'SL171-99X') | (train.StyleColor == 'SO133-09M') | (train.StyleColor =='RB254-00X') \n", + " | (train.StyleColor == 'SF078-MLC') | (train.StyleColor == 'QY337-00X')]\n", + "\n", + "train4 = train[(train.StyleColor == 'SP095-59X') | (train.StyleColor == 'RN633-00X') | (train.StyleColor =='RH267-59J') \n", + " | (train.StyleColor == 'RV167-87X')]\n", + "\n", + "train5 = train[(train.StyleColor == 'RJ365-09M') | (train.StyleColor == 'RH797-59X') | (train.StyleColor =='SP090-90X') \n", + " | (train.StyleColor == 'RH797-99X') | (train.StyleColor == 'RJ371-59M')]\n", + "\n", + "train6 = train[(train.StyleColor == 'RV462-99X') | (train.StyleColor == 'RH797-81X') | (train.StyleColor =='QZ555-20X') \n", + " | (train.StyleColor == 'RJ371-53M') | (train.StyleColor == 'RS054-99X')]" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "# Wybrane StyleColor\n", + "z1 = test[(test.StyleColor == 'RH267-85J') | (test.StyleColor == 'RJ369-87X') | (test.StyleColor =='RM119-93X') \n", + " | (test.StyleColor == 'RS483-99X') | (test.StyleColor == 'SB281-90M')]\n", + "\n", + "z2 = test[(test.StyleColor == 'RV167-MLC') | (test.StyleColor == 'RV462-87X') | (test.StyleColor =='QJ677-33X') \n", + " | (test.StyleColor == 'RH797-00X') | (test.StyleColor == 'RH267-55J')]\n", + "\n", + "z3 = test[(test.StyleColor == 'SL171-99X') | (test.StyleColor == 'SO133-09M') | (test.StyleColor =='RB254-00X') \n", + " | (test.StyleColor == 'SF078-MLC') | (test.StyleColor == 'QY337-00X')]\n", + "\n", + "z4 = test[(test.StyleColor == 'SP095-59X') | (test.StyleColor == 'RN633-00X') | (test.StyleColor =='RH267-59J') \n", + " | (test.StyleColor == 'RV167-87X') | (test.StyleColor == 'RK485-99X')]\n", + "\n", + "z5 = test[(test.StyleColor == 'RJ365-09M') | (test.StyleColor == 'RH797-59X') | (test.StyleColor =='SP090-90X') \n", + " | (test.StyleColor == 'RH797-99X') | (test.StyleColor == 'RJ371-59M')]\n", + "\n", + "z6 = test[(test.StyleColor == 'RV462-99X') | (test.StyleColor == 'RH797-81X') | (test.StyleColor =='QZ555-20X') \n", + " | (test.StyleColor == 'RJ371-53M') | (test.StyleColor == 'RS054-99X')]" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "u = train[(train.StyleColor == 'RV462-99X') | (train.StyleColor == 'RH797-81X') | (train.StyleColor =='SL171-99X')]\n", + "t = test[(test.StyleColor == 'RV462-99X') | (test.StyleColor == 'RH797-81X') | (test.StyleColor =='SL171-99X')]" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 21 5902805820447 RH797-81X\n", + "1 24 5902805820447 RH797-81X\n", + "2 26 5902805820447 RH797-81X\n", + "3 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(u)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 38 5902851414515 SL171-99X\n", + "1 29 5902805820447 RH797-81X\n", + "2 32 5902805820447 RH797-81X\n", + "3 34 5902805820447 RH797-81X" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(t)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [MEASUREMENT, EAN, StyleColor]\n", + "Index: []" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train1)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [MEASUREMENT, EAN, StyleColor]\n", + "Index: []" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train2)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>18</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>11</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>11</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 18 5902851852638 SO133-09M\n", + "1 11 5902690542745 QY337-00X\n", + "2 11 5902690542769 QY337-00X" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train3)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [MEASUREMENT, EAN, StyleColor]\n", + "Index: []" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train4)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [MEASUREMENT, EAN, StyleColor]\n", + "Index: []" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train5)" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 21 5902805820447 RH797-81X\n", + "1 24 5902805820447 RH797-81X\n", + "2 26 5902805820447 RH797-81X\n", + "3 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 74, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train6)" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 29 5902805820447 RH797-81X\n", + "1 32 5902805820447 RH797-81X\n", + "2 34 5902805820447 RH797-81X" + ] + }, + "execution_count": 75, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(z6)" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>11</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>11</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 11 5902690542745 QY337-00X\n", + "1 11 5902690542769 QY337-00X\n", + "2 21 5902805820447 RH797-81X\n", + "3 26 5902805820447 RH797-81X\n", + "4 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 68, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 29 5902805820447 RH797-81X\n", + "1 32 5902805820447 RH797-81X\n", + "2 34 5902805820447 RH797-81X" + ] + }, + "execution_count": 67, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>18</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>11</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>11</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 18 5902851852638 SO133-09M\n", + "1 11 5902690542745 QY337-00X\n", + "2 11 5902690542769 QY337-00X\n", + "3 21 5902805820447 RH797-81X\n", + "4 24 5902805820447 RH797-81X\n", + "5 26 5902805820447 RH797-81X\n", + "6 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 92, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train,70,6,0.5)" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>42</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>38</td>\n", + " <td>5902851445700</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>35</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>42</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>42</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>42</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>42</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>38</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>42</td>\n", + " <td>5902975236956</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>38</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>42</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 42 5902805533040 RH267-85J\n", + "1 38 5902851414515 SL171-99X\n", + "2 38 5902851445700 RS483-99X\n", + "3 35 5902690542769 QY337-00X\n", + "4 42 5902690542769 QY337-00X\n", + "5 42 5902690542745 QY337-00X\n", + "6 42 5902690542769 QY337-00X\n", + "7 29 5902805820447 RH797-81X\n", + "8 32 5902805820447 RH797-81X\n", + "9 34 5902805820447 RH797-81X\n", + "10 42 5902805820447 RH797-81X\n", + "11 38 5902975236994 SF078-MLC\n", + "12 42 5902975236956 SF078-MLC\n", + "13 38 5902851852614 SO133-09M\n", + "14 38 5902851852638 SO133-09M\n", + "15 38 5902851852638 SO133-09M\n", + "16 42 5902851852638 SO133-09M\n", + "17 42 5902851852614 SO133-09M\n", + "18 42 5902851852638 SO133-09M" + ] + }, + "execution_count": 95, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(test,70,6,0.4)" + ] + }, + { + "cell_type": "code", + "execution_count": 268, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>22</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>25</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>30</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 22 5902805820447 RH797-81X\n", + "1 25 5902805820447 RH797-81X\n", + "2 24 5902805820447 RH797-81X\n", + "3 26 5902805820447 RH797-81X\n", + "4 30 5902805820447 RH797-81X\n", + "5 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 268, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(caly1,0.7)" + ] + }, + { + "cell_type": "code", + "execution_count": 225, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>22</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>25</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>30</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 22 5902805820447 RH797-81X\n", + "1 21 5902805820447 RH797-81X\n", + "2 25 5902805820447 RH797-81X\n", + "3 24 5902805820447 RH797-81X\n", + "4 26 5902805820447 RH797-81X\n", + "5 30 5902805820447 RH797-81X\n", + "6 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 225, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(caly1, 0.5)" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": {}, + "outputs": [], + "source": [ + "outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", + "DF = df[(df.StyleColor == 'SL171-99X')]" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": {}, + "outputs": [], + "source": [ + "proba = DF[ DF.MEASUREMENT == 28 ]\n", + "X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", + "minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "303568480C287AC000B5BAD5 96\n", + "303568480C287A8000B5BA63 90\n", + "303568480C287A8000B5BADA 54\n", + "303568480C287A8000B5BABD 14\n", + "Name: EPC, dtype: int64" + ] + }, + "execution_count": 92, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "proba['EPC'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "7.0" + ] + }, + "execution_count": 93, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "minimal_epc" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "metadata": {}, + "outputs": [], + "source": [ + "eps = np.floor(proba['EPC'].value_counts().max()*20)" + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "metadata": {}, + "outputs": [], + "source": [ + "db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='auto')\n", + "db.fit(X)\n", + "y_pred = db.fit_predict(X)\n", + "clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + "calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": {}, + "outputs": [], + "source": [ + "if (db.labels_[db.labels_ == -1].size != 0) :\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > 0.6*proba[proba['EPC'] == b].count()[0] :\n", + " outliery = outliery.append({'MEASUREMENT': 24, 'EAN':proba[proba['EPC'] == b].EAN.iloc[0], \n", + " 'StyleColor':'QY337-00X'}, ignore_index = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "303568480C287AC000B5BAD5 7\n", + "303568480C287A8000B5BA63 5\n", + "303568480C287A8000B5BADA 4\n", + "Name: EPC, dtype: int64" + ] + }, + "execution_count": 102, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [MEASUREMENT, EAN, StyleColor]\n", + "Index: []" + ] + }, + "execution_count": 103, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "outliery" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [MEASUREMENT, EAN, StyleColor]\n", + "Index: []" + ] + }, + "execution_count": 84, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(z1)" + ] + }, + { + "cell_type": "code", + "execution_count": 183, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>38</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>42</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 38 5902851414515 SL171-99X\n", + "1 29 5902805820447 RH797-81X\n", + "2 32 5902805820447 RH797-81X\n", + "3 34 5902805820447 RH797-81X\n", + "4 38 5902851852614 SO133-09M\n", + "5 38 5902851852638 SO133-09M\n", + "6 42 5902851852638 SO133-09M\n", + "7 42 5902851852614 SO133-09M\n", + "8 42 5902851852638 SO133-09M" + ] + }, + "execution_count": 183, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 186, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>38</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>42</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 38 5902851414515 SL171-99X\n", + "1 29 5902805820447 RH797-81X\n", + "2 32 5902805820447 RH797-81X\n", + "3 34 5902805820447 RH797-81X\n", + "4 38 5902851852614 SO133-09M\n", + "5 38 5902851852638 SO133-09M\n", + "6 42 5902851852638 SO133-09M\n", + "7 42 5902851852614 SO133-09M\n", + "8 42 5902851852638 SO133-09M" + ] + }, + "execution_count": 186, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 277, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 24 5902805820447 RH797-81X\n", + "1 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 277, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# dla /5\n", + "c1(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 278, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 29 5902805820447 RH797-81X\n", + "1 32 5902805820447 RH797-81X\n", + "2 42 5902851852638 SO133-09M" + ] + }, + "execution_count": 278, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 280, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 24 5902805820447 RH797-81X\n", + "1 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 280, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# dla /6\n", + "c1(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 281, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 29 5902805820447 RH797-81X\n", + "1 32 5902805820447 RH797-81X\n", + "2 34 5902805820447 RH797-81X\n", + "3 42 5902851852638 SO133-09M" + ] + }, + "execution_count": 281, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 283, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>11</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>11</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 11 5902690542745 QY337-00X\n", + "1 11 5902690542769 QY337-00X\n", + "2 24 5902805820447 RH797-81X\n", + "3 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 283, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# eps min 5000 / 5\n", + "# \n", + "c1(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 284, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>42</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>38</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 38 5902851414515 SL171-99X\n", + "1 42 5902690542769 QY337-00X\n", + "2 29 5902805820447 RH797-81X\n", + "3 32 5902805820447 RH797-81X\n", + "4 34 5902805820447 RH797-81X\n", + "5 38 5902851852614 SO133-09M\n", + "6 38 5902851852638 SO133-09M\n", + "7 42 5902851852638 SO133-09M" + ] + }, + "execution_count": 284, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# c=0.6\n", + "c1(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 317, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>11</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>11</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 11 5902690542745 QY337-00X\n", + "1 11 5902690542769 QY337-00X\n", + "2 24 5902805820447 RH797-81X\n", + "3 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 317, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 318, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 38 5902851414515 SL171-99X\n", + "1 29 5902805820447 RH797-81X\n", + "2 32 5902805820447 RH797-81X\n", + "3 34 5902805820447 RH797-81X\n", + "4 42 5902851852638 SO133-09M" + ] + }, + "execution_count": 318, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": {}, + "outputs": [], + "source": [ + "def c2(x):\n", + " outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", + " for j in x.StyleColor.unique():\n", + " DF = x[(x.StyleColor == j)]\n", + " measurements = DF.MEASUREMENT.unique()\n", + "\n", + " for i in measurements:\n", + " proba = DF[ DF.MEASUREMENT == i ]\n", + " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", + " minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)\n", + " neighbors = max(20,minimal_epc.astype(int))\n", + " \n", + " if minimal_epc > 70:\n", + " minimal_epc = 70\n", + " neighbors = 70\n", + " \n", + " X_embedded = proba[['TIME_MS','SUM_PROXIMITY_KMS']]\n", + " nbrs = NearestNeighbors(n_neighbors=neighbors ).fit(X_embedded)\n", + " distances, indices = nbrs.kneighbors(X_embedded)\n", + " distance_desc = sorted(distances[:,neighbors-1], reverse=True)\n", + "\n", + " kneedle = KneeLocator(range(1,len(distance_desc)+1), #x values\n", + " distance_desc, # y values\n", + " S=1.0, #parameter suggested from paper\n", + " curve=\"convex\", #parameter from figure\n", + " direction=\"decreasing\") #parameter from figure\n", + "\n", + " eps = max(5000,kneedle.knee_y/5)\n", + "\n", + " db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='auto')\n", + " db.fit(X)\n", + " y_pred = db.fit_predict(X)\n", + " clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + " calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", + "\n", + " if db.labels_[db.labels_ == -1].size != 0 :\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > 0.3*proba[proba['EPC'] == b].count()[0] :\n", + " outliery = outliery.append({'MEASUREMENT': i, 'EAN':proba[proba['EPC'] == b].EAN.iloc[0], \n", + " 'StyleColor':j}, ignore_index = True)\n", + "\n", + "\n", + " return(outliery)" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>24</td>\n", + " <td>5902805820461</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>24</td>\n", + " <td>5902805820461</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>27</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 21 5902805820447 RH797-81X\n", + "1 24 5902805820447 RH797-81X\n", + "2 24 5902805820461 RH797-81X\n", + "3 24 5902805820447 RH797-81X\n", + "4 24 5902805820461 RH797-81X\n", + "5 26 5902805820447 RH797-81X\n", + "6 27 5902805820447 RH797-81X\n", + "7 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(train6)" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>42</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 29 5902805820447 RH797-81X\n", + "1 32 5902805820447 RH797-81X\n", + "2 34 5902805820447 RH797-81X\n", + "3 42 5902805820447 RH797-81X" + ] + }, + "execution_count": 71, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(z6)" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>18</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>11</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>11</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 18 5902851852638 SO133-09M\n", + "1 11 5902690542745 QY337-00X\n", + "2 11 5902690542769 QY337-00X\n", + "3 21 5902805820447 RH797-81X\n", + "4 24 5902805820447 RH797-81X\n", + "5 26 5902805820447 RH797-81X\n", + "6 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>42</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>42</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>38</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>42</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 38 5902851414515 SL171-99X\n", + "1 42 5902690542769 QY337-00X\n", + "2 42 5902690542745 QY337-00X\n", + "3 29 5902805820447 RH797-81X\n", + "4 32 5902805820447 RH797-81X\n", + "5 34 5902805820447 RH797-81X\n", + "6 38 5902851852614 SO133-09M\n", + "7 38 5902851852638 SO133-09M\n", + "8 38 5902851852638 SO133-09M\n", + "9 42 5902851852638 SO133-09M\n", + "10 42 5902851852614 SO133-09M\n", + "11 42 5902851852638 SO133-09M" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [], + "source": [ + "def c3(x):\n", + " outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", + " for j in x.StyleColor.unique():\n", + " DF = x[(x.StyleColor == j)]\n", + " measurements = DF.MEASUREMENT.unique()\n", + "\n", + " for i in measurements:\n", + " proba = DF[ DF.MEASUREMENT == i ]\n", + " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", + " minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)\n", + " neighbors = max(2,minimal_epc.astype(int))\n", + " \n", + " if minimal_epc > 70:\n", + " minimal_epc = 70\n", + " neighbors = 70\n", + " \n", + " X_embedded = proba[['TIME_MS','SUM_PROXIMITY_KMS']]\n", + " nbrs = NearestNeighbors(n_neighbors=neighbors ).fit(X_embedded)\n", + " distances, indices = nbrs.kneighbors(X_embedded)\n", + " distance_desc = sorted(distances[:,neighbors-1], reverse=True)\n", + "\n", + " kneedle = KneeLocator(range(1,len(distance_desc)+1), #x values\n", + " distance_desc, # y values\n", + " S=1.0, #parameter suggested from paper\n", + " curve=\"convex\", #parameter from figure\n", + " direction=\"decreasing\") #parameter from figure\n", + "\n", + " eps = max(5000,kneedle.knee_y/4)\n", + "\n", + " db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='kd_tree')\n", + " db.fit(X)\n", + " y_pred = db.fit_predict(X)\n", + " clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + " calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", + "\n", + " if db.labels_[db.labels_ == -1].size != 0 :\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > 0.5*proba[proba['EPC'] == b].count()[0] :\n", + " outliery = outliery.append({'MEASUREMENT': i, 'EAN':proba[proba['EPC'] == b].EAN.iloc[0], \n", + " 'StyleColor':j}, ignore_index = True)\n", + "\n", + "\n", + " return(outliery)" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>18</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>11</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>11</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 18 5902851852638 SO133-09M\n", + "1 11 5902690542745 QY337-00X\n", + "2 11 5902690542769 QY337-00X\n", + "3 21 5902805820447 RH797-81X\n", + "4 24 5902805820447 RH797-81X\n", + "5 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c3(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>42</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>42</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>42</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 38 5902851414515 SL171-99X\n", + "1 42 5902690542769 QY337-00X\n", + "2 42 5902690542745 QY337-00X\n", + "3 29 5902805820447 RH797-81X\n", + "4 32 5902805820447 RH797-81X\n", + "5 38 5902851852638 SO133-09M\n", + "6 42 5902851852638 SO133-09M\n", + "7 42 5902851852614 SO133-09M\n", + "8 42 5902851852638 SO133-09M" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c3(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [], + "source": [ + "def c4(x):\n", + " outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", + " for j in x.StyleColor.unique():\n", + " DF = x[(x.StyleColor == j)]\n", + " measurements = DF.MEASUREMENT.unique()\n", + "\n", + " for i in measurements:\n", + " proba = DF[ DF.MEASUREMENT == i ]\n", + " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", + " minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)\n", + " neighbors = max(2,minimal_epc.astype(int))\n", + " \n", + " if minimal_epc > 70:\n", + " minimal_epc = 70\n", + " neighbors = 70\n", + " \n", + " X_embedded = proba[['TIME_MS','SUM_PROXIMITY_KMS']]\n", + " nbrs = NearestNeighbors(n_neighbors=neighbors ).fit(X_embedded)\n", + " distances, indices = nbrs.kneighbors(X_embedded)\n", + " distance_desc = sorted(distances[:,neighbors-1], reverse=True)\n", + "\n", + " kneedle = KneeLocator(range(1,len(distance_desc)+1), #x values\n", + " distance_desc, # y values\n", + " S=1.0, #parameter suggested from paper\n", + " curve=\"convex\", #parameter from figure\n", + " direction=\"decreasing\") #parameter from figure\n", + "\n", + " eps = max(5000,kneedle.knee_y/2)\n", + "\n", + " db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='auto')\n", + " db.fit(X)\n", + " y_pred = db.fit_predict(X)\n", + " clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + " calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", + "\n", + " if (db.labels_[db.labels_ == -1].size != 0 ) & (db.labels_[db.labels_ == -1].size > minimal_epc ):\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts().sum()\n", + " b = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()[0] \n", + " if a - 2*b < 0:\n", + " outliery = outliery.append({'MEASUREMENT': i, 'EAN': proba[proba['EPC'] == calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts().index[0]].EAN.iloc[0], \"StyleColor\":j}, ignore_index = True)\n", + "\n", + " return(outliery)" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>6</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>24</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>4</td>\n", + " <td>5902851445731</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>7</td>\n", + " <td>5902851445700</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>11</td>\n", + " <td>5902851445731</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>28</td>\n", + " <td>5902805303681</td>\n", + " <td>RJ369-87X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>1</td>\n", + " <td>5902805431803</td>\n", + " <td>RM119-93X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>5</td>\n", + " <td>5902805431797</td>\n", + " <td>RM119-93X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>6</td>\n", + " <td>5902805431803</td>\n", + " <td>RM119-93X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>12</td>\n", + " <td>5902851535913</td>\n", + " <td>RV167-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>2</td>\n", + " <td>5902975217986</td>\n", + " <td>RV462-87X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>4</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>7</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>12</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>4</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>7</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>14</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>20</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>2</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>19</th>\n", + " <td>4</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>20</th>\n", + " <td>13</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>21</th>\n", + " <td>16</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>22</th>\n", + " <td>23</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>23</th>\n", + " <td>24</td>\n", + " <td>5902805219685</td>\n", + " <td>RN633-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>24</th>\n", + " <td>1</td>\n", + " <td>5902805533255</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>25</th>\n", + " <td>2</td>\n", + " <td>5902805533255</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>26</th>\n", + " <td>13</td>\n", + " <td>5902805533255</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>27</th>\n", + " <td>21</td>\n", + " <td>5902805533255</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>28</th>\n", + " <td>24</td>\n", + " <td>5902805533255</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>29</th>\n", + " <td>26</td>\n", + " <td>5902805444698</td>\n", + " <td>RJ365-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>30</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>31</th>\n", + " <td>23</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>32</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>33</th>\n", + " <td>3</td>\n", + " <td>5902805385823</td>\n", + " <td>RJ371-53M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 6 5902805533040 RH267-85J\n", + "1 24 5902805533040 RH267-85J\n", + "2 4 5902851445731 RS483-99X\n", + "3 7 5902851445700 RS483-99X\n", + "4 11 5902851445731 RS483-99X\n", + "5 28 5902805303681 RJ369-87X\n", + "6 1 5902805431803 RM119-93X\n", + "7 5 5902805431797 RM119-93X\n", + "8 6 5902805431803 RM119-93X\n", + "9 12 5902851535913 RV167-MLC\n", + "10 2 5902975217986 RV462-87X\n", + "11 4 5902851414508 SL171-99X\n", + "12 7 5902851414508 SL171-99X\n", + "13 12 5902851414508 SL171-99X\n", + "14 4 5902851852638 SO133-09M\n", + "15 7 5902851852638 SO133-09M\n", + "16 14 5902851852638 SO133-09M\n", + "17 20 5902851852638 SO133-09M\n", + "18 2 5902690542769 QY337-00X\n", + "19 4 5902690542745 QY337-00X\n", + "20 13 5902690542769 QY337-00X\n", + "21 16 5902690542745 QY337-00X\n", + "22 23 5902690542745 QY337-00X\n", + "23 24 5902805219685 RN633-00X\n", + "24 1 5902805533255 RH267-59J\n", + "25 2 5902805533255 RH267-59J\n", + "26 13 5902805533255 RH267-59J\n", + "27 21 5902805533255 RH267-59J\n", + "28 24 5902805533255 RH267-59J\n", + "29 26 5902805444698 RJ365-09M\n", + "30 21 5902805820447 RH797-81X\n", + "31 23 5902805820447 RH797-81X\n", + "32 28 5902805820447 RH797-81X\n", + "33 3 5902805385823 RJ371-53M" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c4(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>41</td>\n", + " <td>5902805532999</td>\n", + " <td>RH267-55J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>32</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>34</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>42</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>32</td>\n", + " <td>5902805431803</td>\n", + " <td>RM119-93X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>40</td>\n", + " <td>5902805431803</td>\n", + " <td>RM119-93X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>32</td>\n", + " <td>5902851445700</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>37</td>\n", + " <td>5902851445700</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>40</td>\n", + " <td>5902851445731</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>32</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>36</td>\n", + " <td>5902805820423</td>\n", + " <td>RH797-59X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>37</td>\n", + " <td>5902805303681</td>\n", + " <td>RJ369-87X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>32</td>\n", + " <td>5902805533255</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>38</td>\n", + " <td>5902805533255</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>40</td>\n", + " <td>5902805533255</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>29</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>36</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>19</th>\n", + " <td>41</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>20</th>\n", + " <td>39</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>21</th>\n", + " <td>32</td>\n", + " <td>5902805820546</td>\n", + " <td>RH797-00X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 41 5902805532999 RH267-55J\n", + "1 32 5902851414515 SL171-99X\n", + "2 34 5902851414515 SL171-99X\n", + "3 42 5902851414515 SL171-99X\n", + "4 32 5902805431803 RM119-93X\n", + "5 40 5902805431803 RM119-93X\n", + "6 32 5902851445700 RS483-99X\n", + "7 37 5902851445700 RS483-99X\n", + "8 40 5902851445731 RS483-99X\n", + "9 32 5902690542745 QY337-00X\n", + "10 36 5902805820423 RH797-59X\n", + "11 37 5902805303681 RJ369-87X\n", + "12 29 5902805820447 RH797-81X\n", + "13 32 5902805820447 RH797-81X\n", + "14 32 5902805533255 RH267-59J\n", + "15 38 5902805533255 RH267-59J\n", + "16 40 5902805533255 RH267-59J\n", + "17 29 5902975236994 SF078-MLC\n", + "18 36 5902975236994 SF078-MLC\n", + "19 41 5902975236994 SF078-MLC\n", + "20 39 5902851852638 SO133-09M\n", + "21 32 5902805820546 RH797-00X" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c4(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [], + "source": [ + "def c5(x):\n", + " outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", + " for j in x.StyleColor.unique():\n", + " DF = x[(x.StyleColor == j)]\n", + " measurements = DF.MEASUREMENT.unique()\n", + "\n", + " for i in measurements:\n", + " proba = DF[ DF.MEASUREMENT == i ]\n", + " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", + " minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)\n", + "\n", + " eps = np.floor(proba['EPC'].value_counts().max()*30)\n", + "\n", + " db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='kd_tree')\n", + " db.fit(X)\n", + " y_pred = db.fit_predict(X)\n", + " clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + " calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", + "\n", + " if db.labels_[db.labels_ == -1].size != 0 :\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > 0.5*proba[proba['EPC'] == b].count()[0] :\n", + " outliery = outliery.append({'MEASUREMENT': i, 'EAN':proba[proba['EPC'] == b].EAN.iloc[0], \n", + " 'StyleColor':j}, ignore_index = True)\n", + "\n", + "\n", + " return(outliery)" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>27</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 21 5902805820447 RH797-81X\n", + "1 24 5902805820447 RH797-81X\n", + "2 26 5902805820447 RH797-81X\n", + "3 27 5902805820447 RH797-81X\n", + "4 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 63, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c5(u)" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>35</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>38</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>42</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 35 5902851414515 SL171-99X\n", + "1 38 5902851414515 SL171-99X\n", + "2 38 5902851414508 SL171-99X\n", + "3 42 5902851414515 SL171-99X\n", + "4 29 5902805820447 RH797-81X\n", + "5 32 5902805820447 RH797-81X\n", + "6 34 5902805820447 RH797-81X" + ] + }, + "execution_count": 64, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c5(t)" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>13</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>13</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>26</td>\n", + " <td>5902851445700</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>16</td>\n", + " <td>5902851547602</td>\n", + " <td>SB281-90M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>6</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>6</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>7</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>11</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>11</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>11</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>12</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>13</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>13</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>18</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>17</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>24</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>4</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>4</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>12</td>\n", + " <td>5902975236956</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>19</th>\n", + " <td>23</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>20</th>\n", + " <td>28</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>21</th>\n", + " <td>11</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>22</th>\n", + " <td>11</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>23</th>\n", + " <td>19</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>24</th>\n", + " <td>19</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>25</th>\n", + " <td>1</td>\n", + " <td>5902805533255</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>26</th>\n", + " <td>5</td>\n", + " <td>5902805533255</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>27</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>28</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>29</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>30</th>\n", + " <td>27</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>31</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 13 5902805533040 RH267-85J\n", + "1 13 5902805533040 RH267-85J\n", + "2 26 5902851445700 RS483-99X\n", + "3 16 5902851547602 SB281-90M\n", + "4 6 5902851852638 SO133-09M\n", + "5 6 5902851852614 SO133-09M\n", + "6 7 5902851852638 SO133-09M\n", + "7 11 5902851852614 SO133-09M\n", + "8 11 5902851852638 SO133-09M\n", + "9 11 5902851852638 SO133-09M\n", + "10 12 5902851852638 SO133-09M\n", + "11 13 5902851852638 SO133-09M\n", + "12 13 5902851852614 SO133-09M\n", + "13 18 5902851852638 SO133-09M\n", + "14 17 5902851852638 SO133-09M\n", + "15 24 5902851852638 SO133-09M\n", + "16 4 5902975236994 SF078-MLC\n", + "17 4 5902975236994 SF078-MLC\n", + "18 12 5902975236956 SF078-MLC\n", + "19 23 5902975236994 SF078-MLC\n", + "20 28 5902975236994 SF078-MLC\n", + "21 11 5902690542745 QY337-00X\n", + "22 11 5902690542769 QY337-00X\n", + "23 19 5902690542745 QY337-00X\n", + "24 19 5902690542769 QY337-00X\n", + "25 1 5902805533255 RH267-59J\n", + "26 5 5902805533255 RH267-59J\n", + "27 21 5902805820447 RH797-81X\n", + "28 24 5902805820447 RH797-81X\n", + "29 26 5902805820447 RH797-81X\n", + "30 27 5902805820447 RH797-81X\n", + "31 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# bez if i 0,3\n", + "c5(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>35</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>38</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>42</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>28</td>\n", + " <td>5902851445731</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>29</td>\n", + " <td>5902851445731</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>34</td>\n", + " <td>5902851445731</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>35</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>35</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>42</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>42</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>32</td>\n", + " <td>5902805303681</td>\n", + " <td>RJ369-87X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>38</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>38</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>19</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>20</th>\n", + " <td>42</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>21</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 35 5902851414515 SL171-99X\n", + "1 38 5902851414515 SL171-99X\n", + "2 38 5902851414508 SL171-99X\n", + "3 42 5902851414515 SL171-99X\n", + "4 28 5902851445731 RS483-99X\n", + "5 29 5902851445731 RS483-99X\n", + "6 34 5902851445731 RS483-99X\n", + "7 35 5902690542745 QY337-00X\n", + "8 35 5902690542769 QY337-00X\n", + "9 42 5902690542769 QY337-00X\n", + "10 42 5902690542745 QY337-00X\n", + "11 32 5902805303681 RJ369-87X\n", + "12 29 5902805820447 RH797-81X\n", + "13 32 5902805820447 RH797-81X\n", + "14 34 5902805820447 RH797-81X\n", + "15 38 5902975236994 SF078-MLC\n", + "16 38 5902851852614 SO133-09M\n", + "17 38 5902851852638 SO133-09M\n", + "18 38 5902851852638 SO133-09M\n", + "19 42 5902851852638 SO133-09M\n", + "20 42 5902851852614 SO133-09M\n", + "21 42 5902851852638 SO133-09M" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c5(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 137, + "metadata": {}, + "outputs": [], + "source": [ + "outliery1 = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", + "j = 'RH797-81X' #'RH797-81X' # 'RH267-55J'\n", + "i = 24" + ] + }, + { + "cell_type": "code", + "execution_count": 138, + "metadata": {}, + "outputs": [], + "source": [ + "DF = train[(train.StyleColor == j)]\n", + "proba = DF[ DF.MEASUREMENT == i ]\n", + "X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", + "minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)" + ] + }, + { + "cell_type": "code", + "execution_count": 139, + "metadata": {}, + "outputs": [], + "source": [ + "eps = 6000\n", + "\n", + "db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='auto')\n", + "db.fit(X)\n", + "y_pred = db.fit_predict(X)\n", + "clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + "calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 140, + "metadata": {}, + "outputs": [], + "source": [ + "if db.labels_[db.labels_ == -1].size != 0 :\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > 0.5*proba[proba['EPC'] == b].count()[0] :\n", + " outliery1 = outliery1.append({'MEASUREMENT': i, 'EAN':proba[proba['EPC'] == b].EAN.iloc[0], \n", + " 'StyleColor':j}, ignore_index = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 141, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 24 5902805820447 RH797-81X" + ] + }, + "execution_count": 141, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "outliery1" + ] + }, + { + "cell_type": "code", + "execution_count": 150, + "metadata": {}, + "outputs": [], + "source": [ + "outliery2 = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", + "for i in train.MEASUREMENT.unique():\n", + " DF = train[(train.MEASUREMENT == i)]\n", + "\n", + " for k in DF.StyleColor.unique():\n", + " proba = DF[ DF.StyleColor == k]\n", + " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2) \n", + "\n", + " y_pred = db.fit_predict(X)\n", + " clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + " calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", + "\n", + " if db.labels_[db.labels_ == -1].size != 0 :\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > 0.9*proba[proba['EPC'] == b].count()[0] :\n", + " outliery2 = outliery2.append({'MEASUREMENT': i, 'EAN':proba[proba['EPC'] == b].EAN.iloc[0], \n", + " 'StyleColor':k}, ignore_index = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 151, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>3</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>3</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>3</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>4</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>4</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>...</th>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>171</th>\n", + " <td>28</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>172</th>\n", + " <td>28</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>173</th>\n", + " <td>28</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>174</th>\n", + " <td>28</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>175</th>\n", + " <td>28</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>176 rows Ă 3 columns</p>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 3 5902690542769 QY337-00X\n", + "1 3 5902690542745 QY337-00X\n", + "2 3 5902690542769 QY337-00X\n", + "3 4 5902805533040 RH267-85J\n", + "4 4 5902805533040 RH267-85J\n", + ".. ... ... ...\n", + "171 28 5902805533040 RH267-85J\n", + "172 28 5902805533040 RH267-85J\n", + "173 28 5902805533040 RH267-85J\n", + "174 28 5902805533040 RH267-85J\n", + "175 28 5902805533040 RH267-85J\n", + "\n", + "[176 rows x 3 columns]" + ] + }, + "execution_count": 151, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "outliery2" + ] + }, + { + "cell_type": "code", + "execution_count": 144, + "metadata": {}, + "outputs": [], + "source": [ + "DF = train[(train.StyleColor == 'RH797-81X')]\n", + "proba = DF[ DF.MEASUREMENT == 24 ]\n", + "X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", + "y_pred = db.fit_predict(X)\n", + "clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + "calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", + "y_pred = db.fit_predict(X)\n", + "\n", + "if db.labels_[db.labels_ == -1].size != 0 :\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > 0.5*proba[proba['EPC'] == b].count()[0] :\n", + " outliery1 = outliery1.append({'MEASUREMENT': i, 'EAN':proba[proba['EPC'] == b].EAN.iloc[0], \n", + " 'StyleColor':j}, ignore_index = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 145, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3035684754501F0000B5B614 83\n", + "3035684754501F4000B5B6E5 30\n", + "3035684754501F8000B5B6E6 28\n", + "3035684754501F0000B5B632 23\n", + "3035684754501F8000B5B6A5 20\n", + "Name: EPC, dtype: int64" + ] + }, + "execution_count": 145, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "outputs": [], + "source": [ + "def c6(x):\n", + " outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EPC', 'StyleColor'])\n", + " for j in x.StyleColor.unique():\n", + " DF = x[(x.StyleColor == j)]\n", + " measurements = DF.MEASUREMENT.unique()\n", + "\n", + " for i in measurements:\n", + " proba = DF[ DF.MEASUREMENT == i ]\n", + " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", + " minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)\n", + " neighbors = max(10,minimal_epc.astype(int))\n", + " \n", + " if minimal_epc > 70:\n", + " minimal_epc = 70\n", + " neighbors = 70\n", + " \n", + " X_embedded = proba[['TIME_MS','SUM_PROXIMITY_KMS']]\n", + " nbrs = NearestNeighbors(n_neighbors=neighbors ).fit(X_embedded)\n", + " distances, indices = nbrs.kneighbors(X_embedded)\n", + " distance_desc = sorted(distances[:,neighbors-1], reverse=True)\n", + "\n", + " kneedle = KneeLocator(range(1,len(distance_desc)+1), #x values\n", + " distance_desc, # y values\n", + " S=1.0, #parameter suggested from paper\n", + " curve=\"convex\", #parameter from figure\n", + " direction=\"decreasing\") #parameter from figure\n", + "\n", + " eps = max(2000,kneedle.knee_y/3)\n", + "\n", + " db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='auto')\n", + " db.fit(X)\n", + " y_pred = db.fit_predict(X)\n", + " clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + " calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", + "\n", + " if db.labels_[db.labels_ == -1].size != 0 :\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > 0.4*proba[proba['EPC'] == b].count()[0] :\n", + " outliery = outliery.append({'MEASUREMENT': i, 'EPC':proba[proba['EPC'] == b].EPC.iloc[0], \n", + " 'StyleColor':j}, ignore_index = True)\n", + "\n", + "\n", + " return(outliery)" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [], + "source": [ + "train7 = train[(train.StyleColor == 'SF078-MLC') | (train.StyleColor == 'RH797-81X') | (train.StyleColor == 'SL171-99X')]\n", + "test7 = test[(test.StyleColor == 'SF078-MLC') | (test.StyleColor == 'RH797-81X') | (test.StyleColor == 'SL171-99X')]" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EPC</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>27</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>28</td>\n", + " <td>30356849FC1724C000B59A42</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>21</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>24</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>27</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>28</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EPC StyleColor\n", + "0 27 303568480C287AC000B5BAD5 SL171-99X\n", + "1 28 30356849FC1724C000B59A42 SF078-MLC\n", + "2 21 3035684754501F0000B5B614 RH797-81X\n", + "3 24 3035684754501F0000B5B614 RH797-81X\n", + "4 27 3035684754501F0000B5B614 RH797-81X\n", + "5 28 3035684754501F0000B5B614 RH797-81X" + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c6(train7)" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EPC</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>32</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>35</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>38</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BA63</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BADA</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BABD</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>41</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>42</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>42</td>\n", + " <td>303568480C287A8000B5BABD</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>29</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>32</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EPC StyleColor\n", + "0 32 303568480C287AC000B5BAD5 SL171-99X\n", + "1 35 303568480C287AC000B5BAD5 SL171-99X\n", + "2 38 303568480C287AC000B5BAD5 SL171-99X\n", + "3 38 303568480C287A8000B5BA63 SL171-99X\n", + "4 38 303568480C287A8000B5BADA SL171-99X\n", + "5 38 303568480C287A8000B5BABD SL171-99X\n", + "6 41 303568480C287AC000B5BAD5 SL171-99X\n", + "7 42 303568480C287AC000B5BAD5 SL171-99X\n", + "8 42 303568480C287A8000B5BABD SL171-99X\n", + "9 29 3035684754501F0000B5B614 RH797-81X\n", + "10 32 3035684754501F0000B5B614 RH797-81X" + ] + }, + "execution_count": 79, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c6(test7)" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>23</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>24</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>24</td>\n", + " <td>5902805820461</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>24</td>\n", + " <td>5902805820461</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>27</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 23 5902975236994 SF078-MLC\n", + "1 24 5902975236994 SF078-MLC\n", + "2 21 5902805820447 RH797-81X\n", + "3 24 5902805820447 RH797-81X\n", + "4 24 5902805820461 RH797-81X\n", + "5 24 5902805820447 RH797-81X\n", + "6 24 5902805820461 RH797-81X\n", + "7 26 5902805820447 RH797-81X\n", + "8 27 5902805820447 RH797-81X\n", + "9 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(train7)" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>32</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>38</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>38</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>38</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>42</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>42</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>42</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>29</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>36</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>38</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>38</td>\n", + " <td>5902975236956</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>40</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>41</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>42</td>\n", + " <td>5902975236956</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 32 5902851414515 SL171-99X\n", + "1 38 5902851414515 SL171-99X\n", + "2 38 5902851414508 SL171-99X\n", + "3 38 5902851414508 SL171-99X\n", + "4 38 5902851414508 SL171-99X\n", + "5 42 5902851414515 SL171-99X\n", + "6 42 5902851414508 SL171-99X\n", + "7 29 5902805820447 RH797-81X\n", + "8 32 5902805820447 RH797-81X\n", + "9 34 5902805820447 RH797-81X\n", + "10 42 5902805820447 RH797-81X\n", + "11 29 5902975236994 SF078-MLC\n", + "12 36 5902975236994 SF078-MLC\n", + "13 38 5902975236994 SF078-MLC\n", + "14 38 5902975236956 SF078-MLC\n", + "15 40 5902975236994 SF078-MLC\n", + "16 41 5902975236994 SF078-MLC\n", + "17 42 5902975236956 SF078-MLC" + ] + }, + "execution_count": 82, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(test7)" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>4</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>4</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>12</td>\n", + " <td>5902975236956</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>23</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>28</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>27</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 4 5902975236994 SF078-MLC\n", + "1 4 5902975236994 SF078-MLC\n", + "2 12 5902975236956 SF078-MLC\n", + "3 23 5902975236994 SF078-MLC\n", + "4 28 5902975236994 SF078-MLC\n", + "5 21 5902805820447 RH797-81X\n", + "6 24 5902805820447 RH797-81X\n", + "7 26 5902805820447 RH797-81X\n", + "8 27 5902805820447 RH797-81X\n", + "9 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 85, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c5(train7)" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>35</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>38</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>42</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>38</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 35 5902851414515 SL171-99X\n", + "1 38 5902851414515 SL171-99X\n", + "2 38 5902851414508 SL171-99X\n", + "3 42 5902851414515 SL171-99X\n", + "4 29 5902805820447 RH797-81X\n", + "5 32 5902805820447 RH797-81X\n", + "6 34 5902805820447 RH797-81X\n", + "7 38 5902975236994 SF078-MLC" + ] + }, + "execution_count": 86, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c5(test7)" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EPC</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>12</td>\n", + " <td>303568480C2B874000B59A39</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>23</td>\n", + " <td>303568480C2B874000B59A39</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>28</td>\n", + " <td>303568480C2B868000B599B2</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>1</td>\n", + " <td>303568480C357A0000B59999</td>\n", + " <td>SB281-90M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>16</td>\n", + " <td>303568480C357A0000B59999</td>\n", + " <td>SB281-90M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>7</td>\n", + " <td>30356847541DA80000B5BA54</td>\n", + " <td>RJ369-87X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>17</td>\n", + " <td>303568480C3455C000B5B30A</td>\n", + " <td>RV167-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>17</td>\n", + " <td>30356847542CCD0000B59A80</td>\n", + " <td>QJ677-33X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>26</td>\n", + " <td>30356847542CCD8000B599FA</td>\n", + " <td>QJ677-33X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>26</td>\n", + " <td>30356847542CCD0000B59A26</td>\n", + " <td>QJ677-33X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>4</td>\n", + " <td>3035684754340CC000B594C3</td>\n", + " <td>RH267-55J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>18</td>\n", + " <td>3035684754340D0000B594EB</td>\n", + " <td>RH267-55J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>18</td>\n", + " <td>3035684754340CC000B594C6</td>\n", + " <td>RH267-55J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>27</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>7</td>\n", + " <td>303568480C5343C000B599F6</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>17</td>\n", + " <td>303568480C5343C000B599C8</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>17</td>\n", + " <td>303568480C53434000B599E1</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>24</td>\n", + " <td>303568480C53434000B599E1</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>24</td>\n", + " <td>30356847540FE2C000B59A68</td>\n", + " <td>RB254-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>19</th>\n", + " <td>28</td>\n", + " <td>30356849FC1724C000B59A42</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>20</th>\n", + " <td>11</td>\n", + " <td>303568458835008000B5BAD1</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>21</th>\n", + " <td>11</td>\n", + " <td>303568458835010000B5BA58</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>22</th>\n", + " <td>19</td>\n", + " <td>303568458835008000B5BAD1</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>23</th>\n", + " <td>19</td>\n", + " <td>303568458835010000B5BA58</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>24</th>\n", + " <td>7</td>\n", + " <td>303568475415740000B5A5CD</td>\n", + " <td>RN633-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>25</th>\n", + " <td>1</td>\n", + " <td>303568475434134000B5B6DF</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>26</th>\n", + " <td>2</td>\n", + " <td>30356847542B6D4000B5B656</td>\n", + " <td>RJ365-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>27</th>\n", + " <td>2</td>\n", + " <td>30356847542B6D0000B5B65A</td>\n", + " <td>RJ365-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>28</th>\n", + " <td>12</td>\n", + " <td>30356849FC1E348000B5B2D4</td>\n", + " <td>SP090-90X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>29</th>\n", + " <td>21</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>30</th>\n", + " <td>24</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>31</th>\n", + " <td>27</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>32</th>\n", + " <td>28</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EPC StyleColor\n", + "0 12 303568480C2B874000B59A39 RS483-99X\n", + "1 23 303568480C2B874000B59A39 RS483-99X\n", + "2 28 303568480C2B868000B599B2 RS483-99X\n", + "3 1 303568480C357A0000B59999 SB281-90M\n", + "4 16 303568480C357A0000B59999 SB281-90M\n", + "5 7 30356847541DA80000B5BA54 RJ369-87X\n", + "6 17 303568480C3455C000B5B30A RV167-MLC\n", + "7 17 30356847542CCD0000B59A80 QJ677-33X\n", + "8 26 30356847542CCD8000B599FA QJ677-33X\n", + "9 26 30356847542CCD0000B59A26 QJ677-33X\n", + "10 4 3035684754340CC000B594C3 RH267-55J\n", + "11 18 3035684754340D0000B594EB RH267-55J\n", + "12 18 3035684754340CC000B594C6 RH267-55J\n", + "13 27 303568480C287AC000B5BAD5 SL171-99X\n", + "14 7 303568480C5343C000B599F6 SO133-09M\n", + "15 17 303568480C5343C000B599C8 SO133-09M\n", + "16 17 303568480C53434000B599E1 SO133-09M\n", + "17 24 303568480C53434000B599E1 SO133-09M\n", + "18 24 30356847540FE2C000B59A68 RB254-00X\n", + "19 28 30356849FC1724C000B59A42 SF078-MLC\n", + "20 11 303568458835008000B5BAD1 QY337-00X\n", + "21 11 303568458835010000B5BA58 QY337-00X\n", + "22 19 303568458835008000B5BAD1 QY337-00X\n", + "23 19 303568458835010000B5BA58 QY337-00X\n", + "24 7 303568475415740000B5A5CD RN633-00X\n", + "25 1 303568475434134000B5B6DF RH267-59J\n", + "26 2 30356847542B6D4000B5B656 RJ365-09M\n", + "27 2 30356847542B6D0000B5B65A RJ365-09M\n", + "28 12 30356849FC1E348000B5B2D4 SP090-90X\n", + "29 21 3035684754501F0000B5B614 RH797-81X\n", + "30 24 3035684754501F0000B5B614 RH797-81X\n", + "31 27 3035684754501F0000B5B614 RH797-81X\n", + "32 28 3035684754501F0000B5B614 RH797-81X" + ] + }, + "execution_count": 83, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c6(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EPC</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>42</td>\n", + " <td>3035684754340E0000B594E8</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>32</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>35</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>38</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BA63</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BADA</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BABD</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>41</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>42</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>42</td>\n", + " <td>303568480C287A8000B5BABD</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>38</td>\n", + " <td>303568480C2B868000B599B2</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>38</td>\n", + " <td>303568480C34548000B5B2B5</td>\n", + " <td>RV167-87X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>42</td>\n", + " <td>303568458835010000B5BA58</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>42</td>\n", + " <td>303568458835008000B5BAD1</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>32</td>\n", + " <td>30356847541DA80000B5BA54</td>\n", + " <td>RJ369-87X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>29</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>32</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>29</td>\n", + " <td>303568475415744000B599FE</td>\n", + " <td>RN633-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>39</td>\n", + " <td>303568480C5343C000B599F6</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>19</th>\n", + " <td>42</td>\n", + " <td>303568480C5343C000B599F6</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>20</th>\n", + " <td>42</td>\n", + " <td>303568480C53434000B599E1</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>21</th>\n", + " <td>42</td>\n", + " <td>303568480C5343C000B599C8</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>22</th>\n", + " <td>35</td>\n", + " <td>303568475450218000B59781</td>\n", + " <td>RH797-00X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EPC StyleColor\n", + "0 42 3035684754340E0000B594E8 RH267-85J\n", + "1 32 303568480C287AC000B5BAD5 SL171-99X\n", + "2 35 303568480C287AC000B5BAD5 SL171-99X\n", + "3 38 303568480C287AC000B5BAD5 SL171-99X\n", + "4 38 303568480C287A8000B5BA63 SL171-99X\n", + "5 38 303568480C287A8000B5BADA SL171-99X\n", + "6 38 303568480C287A8000B5BABD SL171-99X\n", + "7 41 303568480C287AC000B5BAD5 SL171-99X\n", + "8 42 303568480C287AC000B5BAD5 SL171-99X\n", + "9 42 303568480C287A8000B5BABD SL171-99X\n", + "10 38 303568480C2B868000B599B2 RS483-99X\n", + "11 38 303568480C34548000B5B2B5 RV167-87X\n", + "12 42 303568458835010000B5BA58 QY337-00X\n", + "13 42 303568458835008000B5BAD1 QY337-00X\n", + "14 32 30356847541DA80000B5BA54 RJ369-87X\n", + "15 29 3035684754501F0000B5B614 RH797-81X\n", + "16 32 3035684754501F0000B5B614 RH797-81X\n", + "17 29 303568475415744000B599FE RN633-00X\n", + "18 39 303568480C5343C000B599F6 SO133-09M\n", + "19 42 303568480C5343C000B599F6 SO133-09M\n", + "20 42 303568480C53434000B599E1 SO133-09M\n", + "21 42 303568480C5343C000B599C8 SO133-09M\n", + "22 35 303568475450218000B59781 RH797-00X" + ] + }, + "execution_count": 84, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c6(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": {}, + "outputs": [], + "source": [ + "def c7(x):\n", + " outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EPC', 'StyleColor'])\n", + " for j in x.StyleColor.unique():\n", + " DF = x[(x.StyleColor == j)]\n", + " measurements = DF.MEASUREMENT.unique()\n", + "\n", + " for i in measurements:\n", + " proba = DF[ DF.MEASUREMENT == i ]\n", + " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", + " minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)\n", + " neighbors = max(10,minimal_epc.astype(int))\n", + " \n", + " if minimal_epc > 70:\n", + " minimal_epc = 70\n", + " neighbors = 70\n", + " \n", + " X_embedded = proba[['TIME_MS','SUM_PROXIMITY_KMS']]\n", + " nbrs = NearestNeighbors(n_neighbors=neighbors ).fit(X_embedded)\n", + " distances, indices = nbrs.kneighbors(X_embedded)\n", + " distance_desc = sorted(distances[:,neighbors-1], reverse=True)\n", + "\n", + " kneedle = KneeLocator(range(1,len(distance_desc)+1), #x values\n", + " distance_desc, # y values\n", + " S=1.0, #parameter suggested from paper\n", + " curve=\"convex\", #parameter from figure\n", + " direction=\"decreasing\") #parameter from figure\n", + "\n", + " eps = max(4000,kneedle.knee_y/5)\n", + "\n", + " db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='auto')\n", + " db.fit(X)\n", + " y_pred = db.fit_predict(X)\n", + " clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + " calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", + "\n", + " if db.labels_[db.labels_ == -1].size != 0 :\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > 0.4*proba[proba['EPC'] == b].count()[0] :\n", + " outliery = outliery.append({'MEASUREMENT': i, 'EPC':proba[proba['EPC'] == b].EPC.iloc[0], \n", + " 'StyleColor':j}, ignore_index = True)\n", + "\n", + "\n", + " return(outliery)" + ] + }, + { + "cell_type": "code", + "execution_count": 113, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EPC</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>26</td>\n", + " <td>303568480C2B868000B599B2</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>16</td>\n", + " <td>303568480C357A0000B59999</td>\n", + " <td>SB281-90M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>4</td>\n", + " <td>30356847541DA7C000B5BADD</td>\n", + " <td>RJ369-87X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>26</td>\n", + " <td>30356847541DA80000B5BA54</td>\n", + " <td>RJ369-87X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>11</td>\n", + " <td>303568480C53434000B599E1</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>11</td>\n", + " <td>303568480C5343C000B599F6</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>11</td>\n", + " <td>303568480C5343C000B599C8</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>18</td>\n", + " <td>303568480C5343C000B599C8</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>18</td>\n", + " <td>303568480C5343C000B599F6</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>18</td>\n", + " <td>303568480C53434000B599E1</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>17</td>\n", + " <td>303568480C5343C000B599C8</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>17</td>\n", + " <td>303568480C53434000B599E1</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>24</td>\n", + " <td>303568480C5343C000B599F6</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>24</td>\n", + " <td>303568480C53434000B599E1</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>24</td>\n", + " <td>303568480C5343C000B599C8</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>24</td>\n", + " <td>30356847540FE2C000B59A68</td>\n", + " <td>RB254-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>23</td>\n", + " <td>30356849FC1724C000B59A42</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>11</td>\n", + " <td>303568458835008000B5BAD1</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>11</td>\n", + " <td>303568458835010000B5BA58</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>19</th>\n", + " <td>1</td>\n", + " <td>303568475434134000B5B6DF</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>20</th>\n", + " <td>21</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>21</th>\n", + " <td>24</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>22</th>\n", + " <td>26</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>23</th>\n", + " <td>27</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>24</th>\n", + " <td>28</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EPC StyleColor\n", + "0 26 303568480C2B868000B599B2 RS483-99X\n", + "1 16 303568480C357A0000B59999 SB281-90M\n", + "2 4 30356847541DA7C000B5BADD RJ369-87X\n", + "3 26 30356847541DA80000B5BA54 RJ369-87X\n", + "4 11 303568480C53434000B599E1 SO133-09M\n", + "5 11 303568480C5343C000B599F6 SO133-09M\n", + "6 11 303568480C5343C000B599C8 SO133-09M\n", + "7 18 303568480C5343C000B599C8 SO133-09M\n", + "8 18 303568480C5343C000B599F6 SO133-09M\n", + "9 18 303568480C53434000B599E1 SO133-09M\n", + "10 17 303568480C5343C000B599C8 SO133-09M\n", + "11 17 303568480C53434000B599E1 SO133-09M\n", + "12 24 303568480C5343C000B599F6 SO133-09M\n", + "13 24 303568480C53434000B599E1 SO133-09M\n", + "14 24 303568480C5343C000B599C8 SO133-09M\n", + "15 24 30356847540FE2C000B59A68 RB254-00X\n", + "16 23 30356849FC1724C000B59A42 SF078-MLC\n", + "17 11 303568458835008000B5BAD1 QY337-00X\n", + "18 11 303568458835010000B5BA58 QY337-00X\n", + "19 1 303568475434134000B5B6DF RH267-59J\n", + "20 21 3035684754501F0000B5B614 RH797-81X\n", + "21 24 3035684754501F0000B5B614 RH797-81X\n", + "22 26 3035684754501F0000B5B614 RH797-81X\n", + "23 27 3035684754501F0000B5B614 RH797-81X\n", + "24 28 3035684754501F0000B5B614 RH797-81X" + ] + }, + "execution_count": 113, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c7(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EPC</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>42</td>\n", + " <td>3035684754340E0000B594E8</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>32</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>38</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BA63</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BADA</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BABD</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>42</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>42</td>\n", + " <td>303568480C287A8000B5BABD</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>42</td>\n", + " <td>51356847542A2B0000B5B280</td>\n", + " <td>RM119-93X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>42</td>\n", + " <td>30356847542A2B0000B5B215</td>\n", + " <td>RM119-93X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>38</td>\n", + " <td>303568480C2B868000B599B2</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>34</td>\n", + " <td>303568458835008000B5BAD1</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>35</td>\n", + " <td>303568458835010000B5BA58</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>42</td>\n", + " <td>303568458835010000B5BA58</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>42</td>\n", + " <td>303568458835008000B5BAD1</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>42</td>\n", + " <td>303568458835010000B5BA61</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>42</td>\n", + " <td>30356847541DA80000B5BA54</td>\n", + " <td>RJ369-87X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>29</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>32</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>19</th>\n", + " <td>34</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>20</th>\n", + " <td>42</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>21</th>\n", + " <td>38</td>\n", + " <td>30356849FC1724C000B59A42</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>22</th>\n", + " <td>39</td>\n", + " <td>30356849FC1724C000B59A42</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>23</th>\n", + " <td>42</td>\n", + " <td>30356849FC1723C000B5B1A3</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>24</th>\n", + " <td>38</td>\n", + " <td>303568480C53434000B599E1</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>25</th>\n", + " <td>38</td>\n", + " <td>303568480C5343C000B599F6</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>26</th>\n", + " <td>38</td>\n", + " <td>303568480C5343C000B599C8</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>27</th>\n", + " <td>39</td>\n", + " <td>303568480C5343C000B599F6</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>28</th>\n", + " <td>42</td>\n", + " <td>303568480C5343C000B599F6</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>29</th>\n", + " <td>42</td>\n", + " <td>303568480C53434000B599E1</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>30</th>\n", + " <td>42</td>\n", + " <td>303568480C5343C000B599C8</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>31</th>\n", + " <td>38</td>\n", + " <td>303568480C357A0000B59A61</td>\n", + " <td>SB281-90M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EPC StyleColor\n", + "0 42 3035684754340E0000B594E8 RH267-85J\n", + "1 32 303568480C287AC000B5BAD5 SL171-99X\n", + "2 38 303568480C287AC000B5BAD5 SL171-99X\n", + "3 38 303568480C287A8000B5BA63 SL171-99X\n", + "4 38 303568480C287A8000B5BADA SL171-99X\n", + "5 38 303568480C287A8000B5BABD SL171-99X\n", + "6 42 303568480C287AC000B5BAD5 SL171-99X\n", + "7 42 303568480C287A8000B5BABD SL171-99X\n", + "8 42 51356847542A2B0000B5B280 RM119-93X\n", + "9 42 30356847542A2B0000B5B215 RM119-93X\n", + "10 38 303568480C2B868000B599B2 RS483-99X\n", + "11 34 303568458835008000B5BAD1 QY337-00X\n", + "12 35 303568458835010000B5BA58 QY337-00X\n", + "13 42 303568458835010000B5BA58 QY337-00X\n", + "14 42 303568458835008000B5BAD1 QY337-00X\n", + "15 42 303568458835010000B5BA61 QY337-00X\n", + "16 42 30356847541DA80000B5BA54 RJ369-87X\n", + "17 29 3035684754501F0000B5B614 RH797-81X\n", + "18 32 3035684754501F0000B5B614 RH797-81X\n", + "19 34 3035684754501F0000B5B614 RH797-81X\n", + "20 42 3035684754501F0000B5B614 RH797-81X\n", + "21 38 30356849FC1724C000B59A42 SF078-MLC\n", + "22 39 30356849FC1724C000B59A42 SF078-MLC\n", + "23 42 30356849FC1723C000B5B1A3 SF078-MLC\n", + "24 38 303568480C53434000B599E1 SO133-09M\n", + "25 38 303568480C5343C000B599F6 SO133-09M\n", + "26 38 303568480C5343C000B599C8 SO133-09M\n", + "27 39 303568480C5343C000B599F6 SO133-09M\n", + "28 42 303568480C5343C000B599F6 SO133-09M\n", + "29 42 303568480C53434000B599E1 SO133-09M\n", + "30 42 303568480C5343C000B599C8 SO133-09M\n", + "31 38 303568480C357A0000B59A61 SB281-90M" + ] + }, + "execution_count": 114, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c7(test)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/.ipynb_checkpoints/DBSCAN_1-zmiany_df-checkpoint.ipynb b/.ipynb_checkpoints/DBSCAN_1-zmiany_df-checkpoint.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..694c4ac49efedcbc045715864b0e6e838c605e6d --- /dev/null +++ b/.ipynb_checkpoints/DBSCAN_1-zmiany_df-checkpoint.ipynb @@ -0,0 +1,4533 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pyodbc\n", + "import pandas as pd\n", + "from sqlalchemy import create_engine\n", + "import urllib\n", + "import seaborn as sns\n", + "from matplotlib import pyplot as plt\n", + "import numpy as np\n", + "import random" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "params = urllib.parse.quote_plus(\"DRIVER={ODBC Driver 17 for SQL Server};\"\n", + " #\"SERVER=dbserver.mif.pg.gda.pl,1433;\"\n", + " \"SERVER=127.0.0.1,1433;\"\n", + " \"DATABASE=silkycoders;\"\n", + " \"UID=;\"\n", + " \"PWD=\")\n", + "\n", + "engine = create_engine(\"mssql+pyodbc:///?odbc_connect={}\".format(params))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "query = \"\"\"SELECT rfid.*, it.*, sub.*, cl.*, dep.*, br.*\n", + " FROM rfid.Logs rfid \n", + " JOIN rfid.EanEpc ean \n", + " ON rfid.EPC = ean.EPC \n", + " JOIN dw.Item it \n", + " ON ean.EAN = it.EAN \n", + " JOIN dw.Subclass sub \n", + " ON sub.SubclassID = it.SubclassID\n", + " JOIN dw.Class cl\n", + " ON sub.ClassID = cl.ClassID\n", + " JOIN dw.Department dep\n", + " ON dep.DepartmentID = cl.DepartmentID\n", + " JOIN dw.Brand br\n", + " ON dep.BrandID = br.BrandID\"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_sql_query(query, engine)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def prepare_timestamp(df : pd.DataFrame):\n", + " \n", + " dt = df.sort_values(by=\"TIMESTAMP\").reset_index(drop=True)\n", + " dt[\"HOUR\"] = dt.TIMESTAMP.astype('datetime64[ns]').dt.hour.astype(int)\n", + " dt[\"MIN\"] = dt.TIMESTAMP.astype('datetime64[ns]').dt.minute.astype(int)\n", + " dt[\"SEC\"] = dt.TIMESTAMP.astype('datetime64[ns]').dt.second.astype(int)\n", + " dt[\"MICROSEC\"] = dt.TIMESTAMP.astype('datetime64[ns]').dt.microsecond.astype(int)\n", + "\n", + " dt[\"MILISEC\"] = dt.MICROSEC/1000 + dt.SEC*1000 + dt.MIN*60000 + dt.HOUR*3600000\n", + " dt[\"TIME_MS\"] = dt.MILISEC - dt.MILISEC[0]\n", + " \n", + " dt['TIME_PER_MEASUREMENT_MS'] = 0\n", + " dt['NUMBER_OF_SIGNALS'] = 0\n", + " dt['LENGTH_OF_MEASUREMENT'] = 0\n", + " \n", + " for m in dt.MEASUREMENT.unique():\n", + " filtr = (dt.MEASUREMENT == m)\n", + " dt.loc[filtr,'TIME_PER_MEASUREMENT_MS'] = dt[filtr].MILISEC - dt[filtr].MILISEC.iloc[0]\n", + " dt.loc[filtr, \"NUMBER_OF_SIGNALS\"] = len(dt[filtr])\n", + " dt.loc[filtr, 'LENGTH_OF_MEASUREMENT'] = dt[filtr].TIME_PER_MEASUREMENT_MS.max()\n", + " \n", + " dt[\"TIME_KMS\"] = np.floor(dt.TIME_MS/1000) \n", + " dt = dt.merge(dt.groupby(['EPC','TIME_KMS'])[\"PROXIMITY\"].max().reset_index(name=\"MAX_PROXIMITY_KMS\"), how=\"left\",\n", + " on = ['EPC','TIME_KMS'])\n", + " dt = dt.merge(dt.groupby(['EPC','TIME_KMS'])[\"PROXIMITY\"].sum().reset_index(name=\"SUM_PROXIMITY_KMS\"), how=\"left\",\n", + " on = ['EPC','TIME_KMS'])\n", + " return dt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df = prepare_timestamp(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv('df.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "<class 'pandas.core.frame.DataFrame'>\n", + "RangeIndex: 502689 entries, 0 to 502688\n", + "Data columns (total 36 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 EPC 502689 non-null object \n", + " 1 PROXIMITY 502689 non-null float64\n", + " 2 TIMESTAMP 502689 non-null object \n", + " 3 MEASUREMENT 502689 non-null int64 \n", + " 4 ITEMID 502689 non-null int64 \n", + " 5 EAN 502689 non-null int64 \n", + " 6 StyleColorSize 502689 non-null object \n", + " 7 StyleColor 502689 non-null object \n", + " 8 Size 502689 non-null object \n", + " 9 SubclassID 502689 non-null int64 \n", + " 10 ItemSeason 502689 non-null object \n", + " 11 FashionLevel 369997 non-null object \n", + " 12 SubclassID.1 502689 non-null int64 \n", + " 13 SubclassName 502689 non-null object \n", + " 14 ClassID 502689 non-null int64 \n", + " 15 ClassID.1 502689 non-null int64 \n", + " 16 ClassName 502689 non-null object \n", + " 17 DepartmentID 502689 non-null int64 \n", + " 18 DepartmentID.1 502689 non-null int64 \n", + " 19 DepartmentName 502689 non-null object \n", + " 20 BrandID 502689 non-null int64 \n", + " 21 BrandID.1 502689 non-null int64 \n", + " 22 BrandName 502689 non-null object \n", + " 23 Active 502689 non-null bool \n", + " 24 HOUR 502689 non-null int64 \n", + " 25 MIN 502689 non-null int64 \n", + " 26 SEC 502689 non-null int64 \n", + " 27 MICROSEC 502689 non-null int64 \n", + " 28 MILISEC 502689 non-null float64\n", + " 29 TIME_MS 502689 non-null float64\n", + " 30 TIME_PER_MEASUREMENT_MS 502689 non-null float64\n", + " 31 NUMBER_OF_SIGNALS 502689 non-null int64 \n", + " 32 LENGTH_OF_MEASUREMENT 502689 non-null int64 \n", + " 33 TIME_KMS 502689 non-null float64\n", + " 34 MAX_PROXIMITY_KMS 502689 non-null float64\n", + " 35 SUM_PROXIMITY_KMS 502689 non-null float64\n", + "dtypes: bool(1), float64(7), int64(17), object(11)\n", + "memory usage: 134.7+ MB\n" + ] + } + ], + "source": [ + "df.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>PROXIMITY</th>\n", + " <th>MEASUREMENT</th>\n", + " <th>ITEMID</th>\n", + " <th>EAN</th>\n", + " <th>SubclassID</th>\n", + " <th>SubclassID.1</th>\n", + " <th>ClassID</th>\n", + " <th>ClassID.1</th>\n", + " <th>DepartmentID</th>\n", + " <th>DepartmentID.1</th>\n", + " <th>...</th>\n", + " <th>SEC</th>\n", + " <th>MICROSEC</th>\n", + " <th>MILISEC</th>\n", + " <th>TIME_MS</th>\n", + " <th>TIME_PER_MEASUREMENT_MS</th>\n", + " <th>NUMBER_OF_SIGNALS</th>\n", + " <th>LENGTH_OF_MEASUREMENT</th>\n", + " <th>TIME_KMS</th>\n", + " <th>MAX_PROXIMITY_KMS</th>\n", + " <th>SUM_PROXIMITY_KMS</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>count</th>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>5.026890e+05</td>\n", + " <td>5.026890e+05</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>...</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>5.026890e+05</td>\n", + " <td>5.026890e+05</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.00000</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>mean</th>\n", + " <td>-75.406017</td>\n", + " <td>23.412382</td>\n", + " <td>2.169862e+06</td>\n", + " <td>5.902835e+12</td>\n", + " <td>83.920704</td>\n", + " <td>83.920704</td>\n", + " <td>18.231477</td>\n", + " <td>18.231477</td>\n", + " <td>2.609574</td>\n", + " <td>2.609574</td>\n", + " <td>...</td>\n", + " <td>29.193547</td>\n", + " <td>499773.110213</td>\n", + " <td>3.721192e+07</td>\n", + " <td>2.018186e+06</td>\n", + " <td>100132.210719</td>\n", + " <td>15383.906986</td>\n", + " <td>199835.398777</td>\n", + " <td>2017.68607</td>\n", + " <td>-72.497318</td>\n", + " <td>-398.108291</td>\n", + " </tr>\n", + " <tr>\n", + " <th>std</th>\n", + " <td>5.698062</td>\n", + " <td>12.175284</td>\n", + " <td>7.798483e+04</td>\n", + " <td>7.380986e+07</td>\n", + " <td>142.489244</td>\n", + " <td>142.489244</td>\n", + " <td>8.844056</td>\n", + " <td>8.844056</td>\n", + " <td>0.937828</td>\n", + " <td>0.937828</td>\n", + " <td>...</td>\n", + " <td>17.223297</td>\n", + " <td>288469.414710</td>\n", + " <td>1.121487e+06</td>\n", + " <td>1.121487e+06</td>\n", + " <td>81859.831696</td>\n", + " <td>8217.121271</td>\n", + " <td>101049.072703</td>\n", + " <td>1121.48684</td>\n", + " <td>5.893956</td>\n", + " <td>262.167663</td>\n", + " </tr>\n", + " <tr>\n", + " <th>min</th>\n", + " <td>-110.000000</td>\n", + " <td>1.000000</td>\n", + " <td>2.028742e+06</td>\n", + " <td>5.902691e+12</td>\n", + " <td>10.000000</td>\n", + " <td>10.000000</td>\n", + " <td>10.000000</td>\n", + " <td>10.000000</td>\n", + " <td>2.000000</td>\n", + " <td>2.000000</td>\n", + " <td>...</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>3.519374e+07</td>\n", + " <td>0.000000e+00</td>\n", + " <td>0.000000</td>\n", + " <td>4597.000000</td>\n", + " <td>53538.000000</td>\n", + " <td>0.00000</td>\n", + " <td>-100.500000</td>\n", + " <td>-2629.400000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>25%</th>\n", + " <td>-79.900000</td>\n", + " <td>13.000000</td>\n", + " <td>2.113407e+06</td>\n", + " <td>5.902805e+12</td>\n", + " <td>11.000000</td>\n", + " <td>11.000000</td>\n", + " <td>10.000000</td>\n", + " <td>10.000000</td>\n", + " <td>2.000000</td>\n", + " <td>2.000000</td>\n", + " <td>...</td>\n", + " <td>14.000000</td>\n", + " <td>250000.000000</td>\n", + " <td>3.624898e+07</td>\n", + " <td>1.055248e+06</td>\n", + " <td>38108.000000</td>\n", + " <td>8533.000000</td>\n", + " <td>127122.000000</td>\n", + " <td>1055.00000</td>\n", + " <td>-76.400000</td>\n", + " <td>-515.900000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>50%</th>\n", + " <td>-75.700000</td>\n", + " <td>24.000000</td>\n", + " <td>2.155604e+06</td>\n", + " <td>5.902806e+12</td>\n", + " <td>82.000000</td>\n", + " <td>82.000000</td>\n", + " <td>16.000000</td>\n", + " <td>16.000000</td>\n", + " <td>2.000000</td>\n", + " <td>2.000000</td>\n", + " <td>...</td>\n", + " <td>29.000000</td>\n", + " <td>500000.000000</td>\n", + " <td>3.719645e+07</td>\n", + " <td>2.002711e+06</td>\n", + " <td>78477.000000</td>\n", + " <td>13321.000000</td>\n", + " <td>176026.000000</td>\n", + " <td>2002.00000</td>\n", + " <td>-72.900000</td>\n", + " <td>-342.900000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>75%</th>\n", + " <td>-71.900000</td>\n", + " <td>33.000000</td>\n", + " <td>2.226340e+06</td>\n", + " <td>5.902852e+12</td>\n", + " <td>82.000000</td>\n", + " <td>82.000000</td>\n", + " <td>25.000000</td>\n", + " <td>25.000000</td>\n", + " <td>3.000000</td>\n", + " <td>3.000000</td>\n", + " <td>...</td>\n", + " <td>44.000000</td>\n", + " <td>749000.000000</td>\n", + " <td>3.815973e+07</td>\n", + " <td>2.965991e+06</td>\n", + " <td>139431.000000</td>\n", + " <td>22217.000000</td>\n", + " <td>265127.000000</td>\n", + " <td>2965.00000</td>\n", + " <td>-68.400000</td>\n", + " <td>-225.700000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>max</th>\n", + " <td>-38.900000</td>\n", + " <td>43.000000</td>\n", + " <td>2.304122e+06</td>\n", + " <td>5.902975e+12</td>\n", + " <td>630.000000</td>\n", + " <td>630.000000</td>\n", + " <td>41.000000</td>\n", + " <td>41.000000</td>\n", + " <td>6.000000</td>\n", + " <td>6.000000</td>\n", + " <td>...</td>\n", + " <td>59.000000</td>\n", + " <td>999000.000000</td>\n", + " <td>3.912875e+07</td>\n", + " <td>3.935013e+06</td>\n", + " <td>435771.000000</td>\n", + " <td>35350.000000</td>\n", + " <td>435771.000000</td>\n", + " <td>3935.00000</td>\n", + " <td>-38.900000</td>\n", + " <td>-52.300000</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>8 rows Ă 24 columns</p>\n", + "</div>" + ], + "text/plain": [ + " PROXIMITY MEASUREMENT ITEMID EAN \\\n", + "count 502689.000000 502689.000000 5.026890e+05 5.026890e+05 \n", + "mean -75.406017 23.412382 2.169862e+06 5.902835e+12 \n", + "std 5.698062 12.175284 7.798483e+04 7.380986e+07 \n", + "min -110.000000 1.000000 2.028742e+06 5.902691e+12 \n", + "25% -79.900000 13.000000 2.113407e+06 5.902805e+12 \n", + "50% -75.700000 24.000000 2.155604e+06 5.902806e+12 \n", + "75% -71.900000 33.000000 2.226340e+06 5.902852e+12 \n", + "max -38.900000 43.000000 2.304122e+06 5.902975e+12 \n", + "\n", + " SubclassID SubclassID.1 ClassID ClassID.1 \\\n", + "count 502689.000000 502689.000000 502689.000000 502689.000000 \n", + "mean 83.920704 83.920704 18.231477 18.231477 \n", + "std 142.489244 142.489244 8.844056 8.844056 \n", + "min 10.000000 10.000000 10.000000 10.000000 \n", + "25% 11.000000 11.000000 10.000000 10.000000 \n", + "50% 82.000000 82.000000 16.000000 16.000000 \n", + "75% 82.000000 82.000000 25.000000 25.000000 \n", + "max 630.000000 630.000000 41.000000 41.000000 \n", + "\n", + " DepartmentID DepartmentID.1 ... SEC MICROSEC \\\n", + "count 502689.000000 502689.000000 ... 502689.000000 502689.000000 \n", + "mean 2.609574 2.609574 ... 29.193547 499773.110213 \n", + "std 0.937828 0.937828 ... 17.223297 288469.414710 \n", + "min 2.000000 2.000000 ... 0.000000 0.000000 \n", + "25% 2.000000 2.000000 ... 14.000000 250000.000000 \n", + "50% 2.000000 2.000000 ... 29.000000 500000.000000 \n", + "75% 3.000000 3.000000 ... 44.000000 749000.000000 \n", + "max 6.000000 6.000000 ... 59.000000 999000.000000 \n", + "\n", + " MILISEC TIME_MS TIME_PER_MEASUREMENT_MS NUMBER_OF_SIGNALS \\\n", + "count 5.026890e+05 5.026890e+05 502689.000000 502689.000000 \n", + "mean 3.721192e+07 2.018186e+06 100132.210719 15383.906986 \n", + "std 1.121487e+06 1.121487e+06 81859.831696 8217.121271 \n", + "min 3.519374e+07 0.000000e+00 0.000000 4597.000000 \n", + "25% 3.624898e+07 1.055248e+06 38108.000000 8533.000000 \n", + "50% 3.719645e+07 2.002711e+06 78477.000000 13321.000000 \n", + "75% 3.815973e+07 2.965991e+06 139431.000000 22217.000000 \n", + "max 3.912875e+07 3.935013e+06 435771.000000 35350.000000 \n", + "\n", + " LENGTH_OF_MEASUREMENT TIME_KMS MAX_PROXIMITY_KMS \\\n", + "count 502689.000000 502689.00000 502689.000000 \n", + "mean 199835.398777 2017.68607 -72.497318 \n", + "std 101049.072703 1121.48684 5.893956 \n", + "min 53538.000000 0.00000 -100.500000 \n", + "25% 127122.000000 1055.00000 -76.400000 \n", + "50% 176026.000000 2002.00000 -72.900000 \n", + "75% 265127.000000 2965.00000 -68.400000 \n", + "max 435771.000000 3935.00000 -38.900000 \n", + "\n", + " SUM_PROXIMITY_KMS \n", + "count 502689.000000 \n", + "mean -398.108291 \n", + "std 262.167663 \n", + "min -2629.400000 \n", + "25% -515.900000 \n", + "50% -342.900000 \n", + "75% -225.700000 \n", + "max -52.300000 \n", + "\n", + "[8 rows x 24 columns]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.boxplot(df['LENGTH_OF_MEASUREMENT']);" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "# Usuwamy najdĹuĹźsze pomiary\n", + "df.drop(df.loc[df['LENGTH_OF_MEASUREMENT'] > 200000].index, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>PROXIMITY</th>\n", + " <th>MEASUREMENT</th>\n", + " <th>ITEMID</th>\n", + " <th>EAN</th>\n", + " <th>SubclassID</th>\n", + " <th>SubclassID.1</th>\n", + " <th>ClassID</th>\n", + " <th>ClassID.1</th>\n", + " <th>DepartmentID</th>\n", + " <th>DepartmentID.1</th>\n", + " <th>...</th>\n", + " <th>SEC</th>\n", + " <th>MICROSEC</th>\n", + " <th>MILISEC</th>\n", + " <th>TIME_MS</th>\n", + " <th>TIME_PER_MEASUREMENT_MS</th>\n", + " <th>NUMBER_OF_SIGNALS</th>\n", + " <th>LENGTH_OF_MEASUREMENT</th>\n", + " <th>TIME_KMS</th>\n", + " <th>MAX_PROXIMITY_KMS</th>\n", + " <th>SUM_PROXIMITY_KMS</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>count</th>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>3.177620e+05</td>\n", + " <td>3.177620e+05</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>...</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>3.177620e+05</td>\n", + " <td>3.177620e+05</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>mean</th>\n", + " <td>-75.526452</td>\n", + " <td>22.776858</td>\n", + " <td>2.170711e+06</td>\n", + " <td>5.902836e+12</td>\n", + " <td>82.639686</td>\n", + " <td>82.639686</td>\n", + " <td>18.142610</td>\n", + " <td>18.142610</td>\n", + " <td>2.603486</td>\n", + " <td>2.603486</td>\n", + " <td>...</td>\n", + " <td>29.378906</td>\n", + " <td>499539.922961</td>\n", + " <td>3.717748e+07</td>\n", + " <td>1.983745e+06</td>\n", + " <td>66756.283605</td>\n", + " <td>10103.277673</td>\n", + " <td>133222.336198</td>\n", + " <td>1983.244840</td>\n", + " <td>-72.536124</td>\n", + " <td>-404.190290</td>\n", + " </tr>\n", + " <tr>\n", + " <th>std</th>\n", + " <td>5.583369</td>\n", + " <td>12.801744</td>\n", + " <td>7.820521e+04</td>\n", + " <td>7.406653e+07</td>\n", + " <td>141.056329</td>\n", + " <td>141.056329</td>\n", + " <td>8.830015</td>\n", + " <td>8.830015</td>\n", + " <td>0.932835</td>\n", + " <td>0.932835</td>\n", + " <td>...</td>\n", + " <td>17.290876</td>\n", + " <td>288325.166786</td>\n", + " <td>1.183041e+06</td>\n", + " <td>1.183041e+06</td>\n", + " <td>44987.211264</td>\n", + " <td>3113.779828</td>\n", + " <td>39296.957914</td>\n", + " <td>1183.041729</td>\n", + " <td>5.831107</td>\n", + " <td>267.914649</td>\n", + " </tr>\n", + " <tr>\n", + " <th>min</th>\n", + " <td>-110.000000</td>\n", + " <td>1.000000</td>\n", + " <td>2.028742e+06</td>\n", + " <td>5.902691e+12</td>\n", + " <td>10.000000</td>\n", + " <td>10.000000</td>\n", + " <td>10.000000</td>\n", + " <td>10.000000</td>\n", + " <td>2.000000</td>\n", + " <td>2.000000</td>\n", + " <td>...</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>3.519374e+07</td>\n", + " <td>0.000000e+00</td>\n", + " <td>0.000000</td>\n", + " <td>4597.000000</td>\n", + " <td>53538.000000</td>\n", + " <td>0.000000</td>\n", + " <td>-98.000000</td>\n", + " <td>-2629.400000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>25%</th>\n", + " <td>-79.900000</td>\n", + " <td>12.000000</td>\n", + " <td>2.113407e+06</td>\n", + " <td>5.902805e+12</td>\n", + " <td>11.000000</td>\n", + " <td>11.000000</td>\n", + " <td>10.000000</td>\n", + " <td>10.000000</td>\n", + " <td>2.000000</td>\n", + " <td>2.000000</td>\n", + " <td>...</td>\n", + " <td>14.000000</td>\n", + " <td>249000.000000</td>\n", + " <td>3.617897e+07</td>\n", + " <td>9.852318e+05</td>\n", + " <td>29587.000000</td>\n", + " <td>8027.000000</td>\n", + " <td>101041.000000</td>\n", + " <td>985.000000</td>\n", + " <td>-76.400000</td>\n", + " <td>-527.300000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>50%</th>\n", + " <td>-75.700000</td>\n", + " <td>24.000000</td>\n", + " <td>2.155605e+06</td>\n", + " <td>5.902806e+12</td>\n", + " <td>82.000000</td>\n", + " <td>82.000000</td>\n", + " <td>16.000000</td>\n", + " <td>16.000000</td>\n", + " <td>2.000000</td>\n", + " <td>2.000000</td>\n", + " <td>...</td>\n", + " <td>29.000000</td>\n", + " <td>500000.000000</td>\n", + " <td>3.714444e+07</td>\n", + " <td>1.950704e+06</td>\n", + " <td>59599.000000</td>\n", + " <td>9887.000000</td>\n", + " <td>138579.000000</td>\n", + " <td>1950.000000</td>\n", + " <td>-72.900000</td>\n", + " <td>-350.700000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>75%</th>\n", + " <td>-71.900000</td>\n", + " <td>34.000000</td>\n", + " <td>2.226340e+06</td>\n", + " <td>5.902852e+12</td>\n", + " <td>82.000000</td>\n", + " <td>82.000000</td>\n", + " <td>25.000000</td>\n", + " <td>25.000000</td>\n", + " <td>3.000000</td>\n", + " <td>3.000000</td>\n", + " <td>...</td>\n", + " <td>44.000000</td>\n", + " <td>748000.000000</td>\n", + " <td>3.834786e+07</td>\n", + " <td>3.154128e+06</td>\n", + " <td>97761.750000</td>\n", + " <td>12660.000000</td>\n", + " <td>168403.000000</td>\n", + " <td>3154.000000</td>\n", + " <td>-68.400000</td>\n", + " <td>-226.100000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>max</th>\n", + " <td>-41.000000</td>\n", + " <td>42.000000</td>\n", + " <td>2.304122e+06</td>\n", + " <td>5.902975e+12</td>\n", + " <td>630.000000</td>\n", + " <td>630.000000</td>\n", + " <td>41.000000</td>\n", + " <td>41.000000</td>\n", + " <td>6.000000</td>\n", + " <td>6.000000</td>\n", + " <td>...</td>\n", + " <td>59.000000</td>\n", + " <td>999000.000000</td>\n", + " <td>3.908956e+07</td>\n", + " <td>3.895821e+06</td>\n", + " <td>189705.000000</td>\n", + " <td>15444.000000</td>\n", + " <td>189705.000000</td>\n", + " <td>3895.000000</td>\n", + " <td>-41.000000</td>\n", + " <td>-52.300000</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>8 rows Ă 24 columns</p>\n", + "</div>" + ], + "text/plain": [ + " PROXIMITY MEASUREMENT ITEMID EAN \\\n", + "count 317762.000000 317762.000000 3.177620e+05 3.177620e+05 \n", + "mean -75.526452 22.776858 2.170711e+06 5.902836e+12 \n", + "std 5.583369 12.801744 7.820521e+04 7.406653e+07 \n", + "min -110.000000 1.000000 2.028742e+06 5.902691e+12 \n", + "25% -79.900000 12.000000 2.113407e+06 5.902805e+12 \n", + "50% -75.700000 24.000000 2.155605e+06 5.902806e+12 \n", + "75% -71.900000 34.000000 2.226340e+06 5.902852e+12 \n", + "max -41.000000 42.000000 2.304122e+06 5.902975e+12 \n", + "\n", + " SubclassID SubclassID.1 ClassID ClassID.1 \\\n", + "count 317762.000000 317762.000000 317762.000000 317762.000000 \n", + "mean 82.639686 82.639686 18.142610 18.142610 \n", + "std 141.056329 141.056329 8.830015 8.830015 \n", + "min 10.000000 10.000000 10.000000 10.000000 \n", + "25% 11.000000 11.000000 10.000000 10.000000 \n", + "50% 82.000000 82.000000 16.000000 16.000000 \n", + "75% 82.000000 82.000000 25.000000 25.000000 \n", + "max 630.000000 630.000000 41.000000 41.000000 \n", + "\n", + " DepartmentID DepartmentID.1 ... SEC MICROSEC \\\n", + "count 317762.000000 317762.000000 ... 317762.000000 317762.000000 \n", + "mean 2.603486 2.603486 ... 29.378906 499539.922961 \n", + "std 0.932835 0.932835 ... 17.290876 288325.166786 \n", + "min 2.000000 2.000000 ... 0.000000 0.000000 \n", + "25% 2.000000 2.000000 ... 14.000000 249000.000000 \n", + "50% 2.000000 2.000000 ... 29.000000 500000.000000 \n", + "75% 3.000000 3.000000 ... 44.000000 748000.000000 \n", + "max 6.000000 6.000000 ... 59.000000 999000.000000 \n", + "\n", + " MILISEC TIME_MS TIME_PER_MEASUREMENT_MS NUMBER_OF_SIGNALS \\\n", + "count 3.177620e+05 3.177620e+05 317762.000000 317762.000000 \n", + "mean 3.717748e+07 1.983745e+06 66756.283605 10103.277673 \n", + "std 1.183041e+06 1.183041e+06 44987.211264 3113.779828 \n", + "min 3.519374e+07 0.000000e+00 0.000000 4597.000000 \n", + "25% 3.617897e+07 9.852318e+05 29587.000000 8027.000000 \n", + "50% 3.714444e+07 1.950704e+06 59599.000000 9887.000000 \n", + "75% 3.834786e+07 3.154128e+06 97761.750000 12660.000000 \n", + "max 3.908956e+07 3.895821e+06 189705.000000 15444.000000 \n", + "\n", + " LENGTH_OF_MEASUREMENT TIME_KMS MAX_PROXIMITY_KMS \\\n", + "count 317762.000000 317762.000000 317762.000000 \n", + "mean 133222.336198 1983.244840 -72.536124 \n", + "std 39296.957914 1183.041729 5.831107 \n", + "min 53538.000000 0.000000 -98.000000 \n", + "25% 101041.000000 985.000000 -76.400000 \n", + "50% 138579.000000 1950.000000 -72.900000 \n", + "75% 168403.000000 3154.000000 -68.400000 \n", + "max 189705.000000 3895.000000 -41.000000 \n", + "\n", + " SUM_PROXIMITY_KMS \n", + "count 317762.000000 \n", + "mean -404.190290 \n", + "std 267.914649 \n", + "min -2629.400000 \n", + "25% -527.300000 \n", + "50% -350.700000 \n", + "75% -226.100000 \n", + "max -52.300000 \n", + "\n", + "[8 rows x 24 columns]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 1, 2, 3, 4, 5, 7, 6, 10, 11, 12, 13, 14, 16, 18, 17, 19, 20,\n", + " 21, 23, 24, 26, 27, 28, 29, 31, 32, 34, 35, 36, 38, 37, 40, 39, 41,\n", + " 42], dtype=int64)" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.MEASUREMENT.unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 , RK485-99X\n", + "2 , RK485-99X\n", + "3 , RK485-99X\n", + "4 , RK485-99X\n", + "5 , RK485-99X\n", + "7 , RK485-99X\n", + "6 , RK485-99X\n", + "10 , RK485-99X\n", + "11 , RK485-99X\n", + "12 , RK485-99X\n", + "13 , RK485-99X\n", + "14 , RK485-99X\n", + "16 , RK485-99X\n", + "18 , RK485-99X\n", + "17 , RK485-99X\n", + "19 , RK485-99X\n", + "20 , RK485-99X\n", + "21 , RK485-99X\n", + "23 , RK485-99X\n", + "24 , RK485-99X\n", + "26 , RK485-99X\n", + "27 , RK485-99X\n", + "28 , RK485-99X\n", + "29 , RK485-99X\n", + "31 , RK485-99X\n", + "32 , RK485-99X\n", + "34 , RK485-99X\n", + "35 , RK485-99X\n", + "36 , RK485-99X\n", + "38 , RK485-99X\n", + "37 , RK485-99X\n", + "40 , RK485-99X\n", + "39 , RK485-99X\n", + "41 , RK485-99X\n", + "42 , RK485-99X\n" + ] + } + ], + "source": [ + "for i in df.MEASUREMENT.unique():\n", + " zb = df[df['MEASUREMENT'] == i]\n", + " for j in zb.StyleColor.unique():\n", + " zbior = zb[zb['StyleColor'] == j]\n", + " if zbior.EPC.unique().size == 1:\n", + " print(i,', ', j)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# Zatem usuwamy caĹy ten Stylokolor\n", + "df.drop(df.loc[df['StyleColor'] == 'RK485-99X'].index, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# Sprawdzamy, czy mamy klipsy przypisane do wiÄcej niĹź 1 Itemu\n", + "for i in df.MEASUREMENT.unique():\n", + " zb = df[df['MEASUREMENT'] == i]\n", + " for j in zb.EPC.unique():\n", + " zbior = zb[zb['EPC'] == j]\n", + " if zbior.EAN.unique().size > 1:\n", + " print(i,', ', j)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>EPC</th>\n", + " <th>PROXIMITY</th>\n", + " <th>TIMESTAMP</th>\n", + " <th>MEASUREMENT</th>\n", + " <th>ITEMID</th>\n", + " <th>EAN</th>\n", + " <th>StyleColorSize</th>\n", + " <th>StyleColor</th>\n", + " <th>Size</th>\n", + " <th>SubclassID</th>\n", + " <th>...</th>\n", + " <th>SEC</th>\n", + " <th>MICROSEC</th>\n", + " <th>MILISEC</th>\n", + " <th>TIME_MS</th>\n", + " <th>TIME_PER_MEASUREMENT_MS</th>\n", + " <th>NUMBER_OF_SIGNALS</th>\n", + " <th>LENGTH_OF_MEASUREMENT</th>\n", + " <th>TIME_KMS</th>\n", + " <th>MAX_PROXIMITY_KMS</th>\n", + " <th>SUM_PROXIMITY_KMS</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " </tbody>\n", + "</table>\n", + "<p>0 rows Ă 36 columns</p>\n", + "</div>" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [EPC, PROXIMITY, TIMESTAMP, MEASUREMENT, ITEMID, EAN, StyleColorSize, StyleColor, Size, SubclassID, ItemSeason, FashionLevel, SubclassID.1, SubclassName, ClassID, ClassID.1, ClassName, DepartmentID, DepartmentID.1, DepartmentName, BrandID, BrandID.1, BrandName, Active, HOUR, MIN, SEC, MICROSEC, MILISEC, TIME_MS, TIME_PER_MEASUREMENT_MS, NUMBER_OF_SIGNALS, LENGTH_OF_MEASUREMENT, TIME_KMS, MAX_PROXIMITY_KMS, SUM_PROXIMITY_KMS]\n", + "Index: []\n", + "\n", + "[0 rows x 36 columns]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#do testow samego modelu\n", + "test_1 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & ((df.MEASUREMENT == 2) | (df.MEASUREMENT == 3) | (df.MEASUREMENT == 4) | (df.MEASUREMENT == 26) | (df.MEASUREMENT == 28) ) ]\n", + "\n", + "test1 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & ( (df.MEASUREMENT == 1) ) ]\n", + "test2 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & ( (df.MEASUREMENT == 2) ) ]\n", + "test3 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & ( (df.MEASUREMENT == 3) ) ]\n", + "test4 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & ( (df.MEASUREMENT == 4) ) ]\n", + "test5 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 5) ]\n", + "test6 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 6) ]\n", + "test9 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 9) ]\n", + "test12 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 12) ]\n", + "test22 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 22) ]\n", + "test24 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 24) ]\n", + "test25 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 25) ]\n", + "test21 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 21) ]\n", + "test29 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 29) ]\n", + "test28 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 28) ]\n", + "\n", + "test29" + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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kZqA91ORSKRH202bNo1PP/0UgIqKikS51+tl06ZNfRGaiIiIJJlqAEVERERSjBJAERERkRSjBFBEREQkxSgBFBEREUkxSgBFREREUowSQBEREZEUowRwgBo9ejRTp05lxowZlJeXA/Dhhx8ya9Yspk6dyimnnEJTU1Ni+3nz5jF27FjGjx/PCy+8AEBbWxsnn3wyEyZMYPLkyVx77bWJ7Tds2MDs2bM54IADmDZtGs8991xi3UMPPURZWRllZWU89NBDifKLLrqIkpKSxLMFly5dCkBjYyOnnHIK06dPZ/LkyTzwwANAbN7h2bNnM3HiRCZPnsydd96ZOFZdXR1z5syhrKyMOXPmUF9f3+nzb9iwgczMTH796193uTannnoqU6ZMSby/6qqrEjGNGzeOQYMG7enlFhERSS3W2pR9zZw50+7o008/7VKWDKNGjbI1NTWdysrLy+1rr71mrbX2vvvus9dff7211tply5bZadOmWb/fb9euXWtLS0ttOBy2ra2t9pVXXrHWWhsIBOwRRxxhn3vuOWuttZdeeqn93e9+l9h/1KhR1lpra2trbUlJia2trbV1dXW2pKTE1tXVWWutvfDCC+3jjz/eJdabbrrJXnPNNdZaa7du3Wpzc3NtIBCwmzZtskuWLLHWWtvU1GTLysrssmXLrLXW/vCHP7Tz5s2z1lo7b968xP7bnXHGGfass86yt956a6fyJ5980s6dO9dOnjy52+v2m9/8xl588cXdrhso91ZEROSLABbbXsqBVAO4lwL1tTQs/4i6jxbTsPwjAvW1fXaulStXctRRRwEwZ84cnnzySQCeeuopzjvvPLxeLyUlJYwdO5ZFixaRnp7O7NmzAfB4PBx44IFUVlYCYIxJ1CA2NjYybNgwAF544QXmzJlDXl4eubm5zJkzh3/961+7jMsYQ3NzM9ZaWlpayMvLw+VyUVRUxIEHHghAVlYWEydOpKqqKhHzhRdeCMCFF17IggULEsdbsGABpaWlXeYibmlp4f/+7/+4/vrrdxrL/PnzmTt37u4vpoiISApTArgXAvW1tFauJxoKAhANBWmtXN8rSaAxhuOPP56ZM2dyzz33ADBlyhSefvppAB5//HE2btwIQFVVFSNGjEjsW1xcnEi0tmtoaOCf//wnxx57LAA/+9nPeOSRRyguLuakk07irrvu6tGxrrvuOqZNm8ZVV11FIBAA4IorrmD58uUMGzaMqVOncuedd+JwdP6nVVFRwQcffMAhhxwCQHV1NUVFRQAUFRWxdetWAFpbW7nlllu48cYbu1yTG264gR/84Aekp6d3e83Wr1/PunXrOOaYY3Z+YUVEREQJ4N5o31IFNtq50EZj5Xvprbfe4v333+f555/n7rvv5vXXX+f+++/n7rvvZubMmTQ3N+PxeGKntLbL/saYxHI4HGbu3Ll897vfpbS0FIjVlF100UVUVlby3HPPccEFFxCNRnd5rHnz5rFixQree+896urquOWWW4BYreGMGTPYtGkTS5cu5YorrujUP7GlpYUzzzyTO+64g+zs7F1+7htvvJGrrrqKzMzMTuVLly5l9erVXeYy7ujRRx/lrLPOwul07vIcIiIiqU5zAe+F7TV/PS3fE9ubZAsLCzn99NNZtGgRV199NQsXLgTgs88+49lnnwVitXTbawMBKisrE/sDXHbZZZSVlXHllVcmyu67775E0+6sWbPw+/1s27aN4uJiXnvttU7HOvroowESNXZer5eLL744MUDjgQce4Nprr8UYw9ixYykpKWHFihUcfPDBhEIhzjzzTM4//3zOOOOMxHGHDBnC5s2bKSoqYvPmzRQWFgLw7rvv8sQTT3DNNdfQ0NCAw+HA5/PhdDpZsmQJo0ePJhwOs3XrVo4++uhOsT766KPcfffde3PZRUREUoJqAPeCw+3Zo/Keam1tpbm5ObG8cOFCpkyZkmgmjUaj/OIXv+Dyyy8HYqNiH330UQKBAOvWrWPVqlUcfPDBAFx//fU0NjZyxx13dDrHyJEjefnllwFYvnw5fr+fgoICTjjhBBYuXEh9fT319fUsXLiQE044AYDNmzcDsRrHBQsWJEbidjxWdXU1K1eupLS0FGstl1xyCRMnTuT73/9+p/OfeuqpiRHGDz30EKeddhoAb7zxBhUVFVRUVHDllVfyk5/8hCuuuIJvf/vbbNq0iYqKCt58803GjRvXKflbuXIl9fX1zJo1a6+uvYiISCpQDeBeSBs6nNbK9Z2bgY2DtKHD9+q41dXViabOcDjM1772NU488UTuvPPORA3XGWecwcUXXwzA5MmTOeecc5g0aRIul4u7774bp9NJZWUlN910ExMmTEgMxrjiiiv45je/yW233call17K7bffjjGGBx98EGMMeXl53HDD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\n", + "text/plain": [ + "<Figure size 720x576 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10,8))\n", + "sns.scatterplot(x=\"TIME_MS\", y=\"SUM_PROXIMITY_KMS\", hue='EAN', data=test6)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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VERERHpNSVuC2zumbe/PVVddxRNPPMEZZ5zR5bizzjqrWxcpwCWXXEIwGByocEVEROQjUvdogguFQr06bvbs2axbtw6AsrKyWLnX62XXrl39EZqIiIj0IbW0iYiIiCQAJW0iIiIiCUBJm4iIiEgCUNImIiIikgCUtImIiIgkACVtIiIiIglASVscFRUVMWvWLObOnUtpaSkAq1evZsGCBcyaNYtTTz2Vpqam2PFLly5l0qRJTJkyhZdeegmAtrY2TjnlFKZOncqMGTO46qqrYsfv2LGDhQsXcthhhzF79mxeeOGFWN2jjz5KSUkJJSUlPProo7Hyiy66iOLi4ti6b6tWrQKgsbGRU089lTlz5jBjxgwefvhhAHbu3MnChQuZNm0aM2bM4K677opdq66ujkWLFlFSUsKiRYuor6/vcv87duwgLS2Nn//8593em9NOO42ZM2fGni9ZsiQW0+TJkxkxYsTBvt0iIiKJzVo75H/mzZtn97Vu3bpuZQNt/Pjxtrq6uktZaWmpffXVV6211j744IP22muvtdZau3btWjt79mzr8/ns1q1b7YQJE2wwGLStra32H//4h7XWWr/fb48++mj7wgsvWGut/cpXvmLvu+++2Pnjx4+31lpbW1tri4uLbW1tra2rq7PFxcW2rq7OWmvthRdeaJ966qlusd500032yiuvtNZaW1VVZbOysqzf77e7du2yK1eutNZa29TUZEtKSuzatWuttdZ+//vft0uXLrXWWrt06dLY+XudeeaZ9rOf/ay97bbbupQ/88wz9rzzzrMzZszo8X27++677cUXX9xj3WD4exURETkUwArbQz6jlrZe8tfX0rD+XereXUHD+nfx19f2y+ts3LiRY489FoBFixbxzDPPAPDcc89x7rnn4vV6KS4uZtKkSSxfvpyUlBQWLlwIgMfj4fDDD6e8vBwAY0yspa6xsZGxY8cC8NJLL7Fo0SKys7PJyspi0aJF/O1vfztgXMYYmpubsdbS0tJCdnY2LpeLvLw8Dj/8cADS09OZNm0aFRUVsZgvvPBCAC688EKeffbZ2PWeffZZJkyY0G3f05aWFn7xi19w7bXX7jeWJ554gvPOO+/D30wREZEhRElbL/jra2kt30440AFAONBBa/n2Q07cjDGceOKJzJs3j/vvvx+AmTNn8vzzzwPw1FNPsXPnTgAqKioo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\n", + "text/plain": [ + "<Figure size 720x576 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10,8))\n", + "sns.scatterplot(x=\"TIME_MS\", y=\"SUM_PROXIMITY_KMS\", hue='EAN', data=test_1[test_1.MEASUREMENT == 3])\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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43a7+dOf/sR9992H1WoFIDMzk09/+tNRjlCAJG1CCCHEMc3j8QzrHn3iiSdG1HnhhReorKykurqa/Px8EhISohCpOBTpHhVCCCGOYQfrHv3sZz+L3W6nsLCQ++67j+7u7skNThwWSdqEEEKI49SeMW17pKamUldXh8vlwul0RjEyMRrpHhVCCCEEAA6HgxtuuIHbbrsNv98PQHNzM3/729+iHJkASdqEEEKIY9r+Y9q++c1vHrT+XXfdRXp6OuXl5cyePZtLL72U9PT0SYpWHIzSWkc7hglXVVWlV65cGe0whBBCHMSWLVuYNWtWtMMQYlKN9n2vlFqlta7av660tAkhhBBCxABJ2oQQQgghYoAkbUIIIYQQMUCSNiGEEEKIGCBJmxBCCCFEDJCkTQghhBAiBkjSJoQQQgBer5dFixYxd+5cKioq+P73vw9AV1cXS5cupaysjKVLlw5t9bR8+fKhtc/mzp3LM888M3SuM844gxkzZgwdb2trGzr25JNPUl5eTkVFBddcc81Q+Z133klFRQWzZs3itttuY/8luW699Vbi4+OHnv/sZz8bOv/s2bMxGo10dXUBUFhYSGVlJfPmzRu248EeP//5z1FK0dHRAcCuXbuw2+1D57vpppuG6q5atYrKykpKS0uHxfXOO++wYMECTCYTTz311FD9/c81b948/H4/vb29fPKTnxx6fx988MGh17z88svMmDGD0tJSfvrTnw6VH+i9B7j77rspLS1lxowZvPLKK0Pl+957ZWUlzz333KjH9n1fvvCFL1BUVMS8efOYOXMmP/zhD4eOaa35zne+w/Tp05k1axb33nsvAA899BDp6enD7nPz5s0A1NXVce655zJr1izKy8vZtWvXiH+DI6K1jsoXMA/4CFgLrAQW7XPsW0A1sA04b5/yhcCGwWP3MrjO3KG+Fi5cqIUQQkxtmzdvjur1w+GwdrlcWmut/X6/XrRokf7www/1HXfcoe+++26ttdZ33323vvPOO7XWWg8MDOhAIKC11rqpqUmnp6cPPT/99NP1ihUrRlxj+/btet68ebqrq0trrXVra6vWWuv3339fn3TSSToYDOpgMKiXLFmi33rrraHXrVixQn/uc5/TcXFxo8b+/PPP6zPPPHPoeUFBgW5vbx+1bl1dnT733HN1fn7+UJ3a2lpdUVExav0TTjhBf/DBBzocDuvzzz9fv/jii0OvWbdunf785z+v//GPfwzVP9C5fvKTnwy9d21tbTo5OVn7fD4dDAZ1cXGxrqmp0T6fT8+ZM0dv2rRJa60P+N5v2rRJz5kzR3u9Xr1z505dXFysg8HgiHvfunWrzs/PP+T7ct111w3dg8fj0UVFRXrnzp1aa60feOAB/fnPf16HQiGt9d5/swcffFDffPPNo75np59+un711Ve11lq7XC49MDAwaj2tR/++B1bqUfKZaLa03QP8UGs9D/je4HOUUuXA1UAFcD7wO6WUcfA1vwduBMoGv86f5JiFEEJMEc+uaeTkn75J0Tf/zck/fZNn1zQe1fmUUkMtWYFAgEAggFKK5557juuuuw6A6667jmeffRaIbPlkMkW28PZ6vSilDnmNP/3pT9x8880kJycDkJGRMXRtr9eL3+/H5/MRCATIzMwEIBQKcccdd3DPPfcc8LyPPfYYn/nMZ8Z0n7fffjv33HPPmOJtbm6mr6+PE088EaUU11577dD9FxYWMmfOHAyGsaUSSilcLhdaa/r7+0lJScFkMrF8+XJKS0spLi7GYrFw9dVXD7WOHei9f+6557j66quxWq0UFRVRWlrK8uXLR1yzr69v6L0eK6/XC0BcXBwAv//97/ne9743dJ97/s0OZPPmzQSDQZYuXQpAfHw8DofjsGI4kGgmbRpIGHycCDQNPr4EeFxr7dNa1xJpVVuklMoGErTWHw5moY8Al05yzEIIIaaAZ9c08q2nN9DY40EDjT0evvX0hqNO3EKhEPPmzSMjI4OlS5eyePFiWltbyc7OBiA7O3tYV+fHH39MRUUFlZWV/OEPfxhK4gC++MUvMm/ePH784x8PdSlu376d7du3c/LJJ7NkyRJefvllAE488UTOPPNMsrOzyc7O5rzzzhtaJf83v/kNF1988VAM+3O73bz88stcccUVQ2VKKc4991wWLlzI/fffP1T+/PPPk5uby9y5c0ecp7a2lvnz53P66afz7rvvAtDY2EheXt5Qnby8PBobD/0e19TUDHUZ3nzzzQDccsstbNmyhZycHCorK/n1r3+NwWCgsbGRadOmjXqNA733B3sNwJlnnsns2bM5/fTTueuuuw75vgDccccdzJs3j7y8PK6++uqh5KympoYnnniCqqoqLrjgAnbs2DH0mieeeGJY96jH42H79u0kJSVx+eWXM3/+fO644w5CodAh37OxMB26yoT5GvCKUurnRJLHkwbLc4l0m+7RMFgWGHy8f7kQQojjzM9e2YYnMPwXoScQ4mevbOPS+Uf+q8FoNLJ27Vp6enq47LLL2Lhx40HrL168mE2bNrFlyxauu+46LrjgAmw2G48++ii5ubm4XC6uuOIK/vrXv3LttdcSDAbZsWMHb7/9Ng0NDZx66qls3LiRjo4OtmzZQkND5Nfc0qVLeeeddygtLeUf//gHb7/99gFjeOGFFzj55JNJSUkZKnv//ffJycmhra2NpUuXMnPmTKqqqvjJT37Cq6++OuIc2dnZ1NXVkZqayqpVq7j00kvZtGnTiHF1wJha6EpKSli7du2wsldeeYV58+bx5ptvUlNTw9KlSzn11FOP6BqHes1bb71FWloaNTU1nH322ZxxxhnEx8eP+r6cdtppQGSM4JVXXkl/fz9nn302H3zwASeddBI+nw+bzcbKlSt5+umnuf7664eS2quuuorf/OY3w+IIBoO8++67rFmzhvz8fK666ioeeughbrjhhkO+b4cyoS1tSqnXlVIbR/m6BPgKcLvWehpwO/CXPS8b5VT6IOUHuvaNSqmVSqmV7e3tR3srQgghppCmHs9hlR+upKQkzjjjDF5++WUyMzNpbm4GIt2Fo3WPzZo1i7i4uKEkLzc3kjg6nU6uueaaoa67vLw8LrnkEsxmM0VFRcyYMYMdO3bwzDPPsGTJEuLj44mPj+eCCy7go48+Ys2aNVRXV1NaWkphYSFut5vS0tJh13788cdHdI3m5OQAka68yy67jOXLl1NTU0NtbS1z586lsLCQhoYGFixYQEtLC1arldTUVAAWLlxISUkJ27dvJy8vbyiRBGhoaBg69+F68MEHufzyy1FKUVpaSlFREVu3biUvL4/6+vpRr3Gg9/5gr9lXSUkJmZmZQxMERntf9hcfH88ZZ5zBe++9N3StPa2Yl112GevXrz/ofebl5TF//nyKi4sxmUxceumlrF69emxv0iFMaNKmtT5Haz17lK/ngOuApwer/gNYNPi4AZi2z2nyiHSdNgw+3r/8QNe+X2tdpbWuSk9PH69bEkIIMQXkJNkPq3ws2tvb6enpAcDj8fD6668zc+ZMLr74Yh5++GEAHn74YS655BIg0p0YDAYB2L17N9u2baOwsJBgMDg0KzMQCPCvf/2L2bNnA3DppZfy1ltvAdDR0cH27dspLi4mPz+fZcuWEQwGCQQCLFu2jFmzZnHRRRfR0tLCrl272LVrFw6Hg+rq6qGYe3t7WbZs2VBMAAMDA7hcrqHHr776KrNnz6ayspK2trahc+Xl5bF69WqysrJob28f6sLbuXMnO3bsoLi4mOzsbJxOJx999BFaax555JFh1zoc+fn5vPHGG0Ck23Pbtm0UFxdzwgknsGPHDmpra/H7/Tz++ONcfPHFAAd87y+++GIef/xxfD4ftbW17Nixg0WLFo24ZltbG7W1tRQUFBzwfdlfMBjk448/pqSkZOjf7M033wRg2bJlTJ8+/aD3ecIJJ9Dd3c2eBqM333yT8vLyw36/RjXa7ITJ+AK2AGcMPj4bWDX4uAJYB1iBImAnYBw8tgJYQqTV7SXgwrFcS2aPCiHE1Hc4s0efWd2gZ/7PS7rgG/8a+pr5Py/pZ1Y3HPH1161bp+fNm6crKyt1RUWF/uEPf6i11rqjo0OfddZZurS0VJ911lm6s7NTa631I488osvLy/XcuXP1/Pnz9TPPPKO11rq/v18vWLBAV1ZW6vLycn3bbbcNzWwMh8P69ttv17NmzdKzZ8/Wjz32mNZa62AwqG+88UY9c+ZMPWvWLH377bePGuP+s0cffPBBfdVVVw0rq6mp0XPmzNFz5szR5eXl+q677hr1XPvOpHzqqad0eXm5njNnjp4/f75+/vnnh+qtWLFCV1RU6OLiYn3zzTfrcDistdZ6+fLlOjc3VzscDp2SkqLLy8u11geePdrY2KiXLl2qZ8+erSsqKvRf//rXoWP//ve/dVlZmS4uLh4W74Hee621vuuuu3RxcbGePn360IzWPfc1e/ZsPXfuXF1eXq7/8pe/HPJ9ue6663RhYaGeO3eunjVrlr7llluG7rO7u1tfeOGFevbs2XrJkiV67dq1Q+99Wlqanjt37tDX+++/r7XW+tVXX9WVlZV69uzZ+rrrrtM+n2/UfwOtD2/2qNKj9AtPBqXUKcCviYyr8wJf1VqvGjz2HeB6IAh8TWv90mB5FfAQYCeStN2qx3ADVVVVeuXKlRNxG0IIIcbJli1bhgbfj8Wzaxr52SvbaOrxkJNk547zZhzVeDYhomG073ul1Cqt9YgF9qI2EUFr/R6RdddGO/YT4CejlK8ERrZlCiGEOO5cOj9XkjRxXJEdEYQQQgghYoAkbUIIIYQQMUCSNiGEEEKIGCBJmxBCCCFEDJCkTQghhBAiBkjSJoQQQhDZKHzRokXMnTuXiooKvv/97wPQ1dXF0qVLKSsrY+nSpXR3dwOwfPnyoT0n586dyzPPPDN0rjPOOIMZM2YMHd93v9Inn3yS8vJyKioquOaaa4bK77zzTioqKpg1axa33XbbiK2abr311qEN7SGy7dKe88+ePRuj0UhXVxcQ2cy9srKSefPmUVU1YuUIfv7zn6OUGloEeNeuXdjt9qHz3XTTTUN1V61aRWVlJaWlpcPieuedd1iwYAEmk4mnnnpqqP7+55o3bx5+vx+tNbfddhulpaXMmTNn2C4BL7/8MjNmzKC0tJSf/v/27j0qqitN/P73CAai2FFREakQKEq5Q6mIqJMI2qjEDkrrGGKiJJnpnrxt4rTzjq68k9WmMzFL26RXOhk7+ks6SWsmLUY7xlv/iJNW0XjDuyPBgFxiMCgab4hcquB5/6jiCHIRTacN8HzWqkXVrr332eepUjZ7n7P3kiVmemuxB1i8eDE2m43Q0FA+/fRTM73xuUdHR5ubz7cVlyeffJLg4GDsdjthYWG89NJL5nsiwgsvvMCQIUMIDw/nzTffBODkyZOMGjUKLy8vXnvttWYxrqurY+jQofzkJz9p9t4da2nxts720MV1lVLqh+92Ftf9PtTX10tFRYWIiNTW1kp8fLzs3btX5s+fL4sXLxYRkcWLF8uCBQtERKSyslIcDoeIiHzzzTfSv39/8/XYsWPlwIEDzY6Rn58vdrtdLl68KCIi586dExGR3bt3y+jRo8XpdIrT6ZSEhATZvn27We7AgQPyxBNPNFtct8HGjRslKSnJfN144dybnT59WiZMmCCBgYFmntYWxBURGTFihOzZs0fq6+tl0qRJ5kK2xcXFcuzYMZk1a5asXbvWzN9aXVu2bJFJkyZJfX297N27V+Lj40XEtbCw1WqVwsJCqampkZiYGMnNzRURaTX2ubm5EhMTI9XV1VJUVCRWq9VcwLjxuZ88eVICAwNvGZeMjAzzHKqqqiQ4OFiKiopEROS9996TWbNmSV1dnYjc+MzOnTsnOTk58h//8R/y6quvNqvzt7/9rTz22GMyefLkFuPa4HYW19WRNqWUUh3T8Y/g9Sj4dW/Xz+MffafqDMMwR7IcDgcOhwPDMNiwYQMZGRkAZGRk8MknnwDQo0cPPD1dy51WV1e3ayP1d955hzlz5tCnTx8Acy9NwzCorq6mtraWmpoaHA4Hfn5+gGvEZv78+SxdurTVelevXt1s/9HWzJs3j6VLl7arvWVlZVy9epVRo0ZhGAazZ882zz8oKIiYmBi6dWtfV2LDhg3Mnj0bwzBISEjg8uXLlJWVkZOTg81mw2q1cs8995Cenm6OjrUW+w0bNpCeno6XlxfBwcHYbLYW9xG9evWqGev2qq6uBqBnz54ALF++nIULF5rn2fCZDRgwgBEjRtC9e/dmdZSWlrJlyxb++Z//+baOfSvaaVNKKdXxHP8INs2FK18D4vq5ae537rjV1dVht9sZMGAAycnJjBw5knPnzuHv7w+Av79/k6nO/fv3ExkZSXR0NCtWrDA7cQBPPfUUdrudl19+2ZxSzM/PJz8/nzFjxpCQkEBWVhYAo0aNIikpCX9/f/z9/Zk4caK5Sv6yZctITU0123Cz69evk5WVZW5qDq5O4IQJExg+fDhvv/22mb5x40YCAgKIjY1tVk9xcTFDhw5l7Nix7Nq1C4AzZ85gsdzY9ttisXDmzJlbxrGwsNCcGp0zZ45Z1/3339havKGu1tKBVmPfVhmApKQkoqKiGDt2LIsWLbplXADmz5+P3W7HYrGQnp5uds4KCwtZs2YNcXFxpKSkUFBQcMvz/+Uvf8nSpUvb3aFtr7u2I4JSSil1x/76n+CoaprmqHKlx8y442o9PDw4evQoly9fJi0tjRMnTrSZf+TIkeTm5pKXl0dGRgYpKSl4e3vz4YcfEhAQQEVFBdOmTeODDz5g9uzZOJ1OCgoK2LFjB6WlpTz44IOcOHGCCxcukJeXR2lpKQDJycns3LkTm83G2rVr2bFjR6tt2LRpE2PGjKFv375m2u7duxk0aBDl5eUkJycTFhZGXFwcr7zyClu3bm1Wh7+/P6dPn8bX15dDhw4xdepUcnNzm11XB7RrhC4kJISjR482SWutrjs5xq3KbN++nX79+lFYWMj48eNJTEzEx8enxbg89NBDgOsawenTp3Pt2jXGjx/Pnj17GD16NDU1NXh7e3Pw4EE+/vhjnn76abNT25LNmzczYMAAhg8f3ubndid0pE0ppVTHc6X09tJvU+/evUlMTCQrKws/Pz/KysoA13RhwwhMY+Hh4fTs2dPs5AUEuLbX6tWrFzNnzjSn7iwWC1OmTKF79+4EBwcTGhpKQUEB69evJyEhAR8fH3x8fEhJSWHfvn0cOXKEU6dOYbPZCAoK4vr169hstibHzszMbDY1OmjQIMA1hZeWlkZOTg6FhYUUFxcTGxtLUFAQpaWlDBs2jLNnz+Ll5YWvry8Aw4cPJyQkhPz8fCwWi9mRBNe0X0Pdt8tisfD11183q6u1dKDV2LdVprGQkBD8/Pz44osvWo3LzXx8fEhMTOTzzz83j9UwipmWlsbx48fbPM/du3ezceNGgoKCSE9PZ9u2bTzxxBO3iE77aKdNKaVUx3Of5fbS2+H8+fNcvnwZgKqqKj777DPCwsJITU1l5cqVAKxcuZIpU6YArulEp9MJwFdffcWXX35JUFAQTqfTvCvT4XCwefNmoqJc22ZPnTqV7du3A3DhwgXy8/OxWq0EBgaSnZ2N0+nE4XCQnZ1NeHg4kydP5uzZs5SUlFBSUkKPHj04deqU2eYrV66QnZ1ttgmgsrKSiooK8/nWrVuJiooiOjqa8vJysy6LxcLhw4cZOHAg58+fp66uDoCioiIKCgqwWq34+/vTq1cv9u3bh4iwatWqJse6HampqaxatQoRYd++fdx33334+/szYsQICgoKKC4upra2lszMTFJTU80yLcU+NTWVzMxMampqKC4upqCggPj4+GbHLC8vp7i4mAceeKDVuNzM6XSyf/9+QkJCzM9s27ZtAGRnZzNkyJA2z3Px4sWUlpZSUlJCZmYm48aN47//+7/vKGY30+lRpZRSHc/4ha5r2BpPkXa/15V+h8rKysjIyKCuro76+npmzJjBT37yE0aNGsWMGTN49913CQwMZO3atQB8/vnnLFmyhO7du9OtWzfeeust+vXrR2VlJRMnTsThcFBXV8ePf/xjfvaznwEwceJEtm7dSkREBB4eHrz66qv4+voyffp0tm3bRnR0NIZhMGnSJB555JFbtnn9+vVMmDDBvGgeXNeBpaWlAa4OyMyZM5k0aVKb9ezcuZOFCxfi6emJh4cHK1asMKdbly9fzpNPPklVVRUpKSmkpKQAcODAAdLS0rh06RKbNm3ixRdfJDc3t9VjPPzww/zlL3/BZrPRo0cP3n//fQA8PT1ZtmwZEydOpK6ujqeffprIyEgAnn/++RZjHxkZyYwZM4iIiMDT05Pf//73eHh4mMdKSkrCw8MDh8PBkiVL8PPzo6ioqM24zJ8/n0WLFlFbW8v48eP56U9/arbh8ccf5/XXX8fHx4c//OEPAJw9e5a4uDiuXr1Kt27d+N3vfscXX3zBj370o1t9bHfMaGleuLOJi4uTgwcP3u1m3BVXv73O5fIqaqucePfsjqOmHg9PuMe7O9WVDiq+rcajezcGWu+jr3/PW1eolFLfk7y8PPPi+3Y5/pHrGrYrpa4RtvELv9P1bErdDS197w3DOCQizRbY05G2Tqyqooav8y7x9RcXCY7tx6Wz17lQWkHoSH8una1k15oCHDWu4fB7e3Vnyryh+A7yuUWtSin1AxEzQztpqkvRa9o6sW/PVHL9Si2+AT5UX3fy1f9+S2CEL1XXavjqxLdmhw2gqsJB0ZHzd7G1SimllGqLdto6sZoqJ/V1QjcPA0S4dqmae7w9kTrh2qWaZvmvnK9qoRallFJK/RBop60T6z2gB149PLlyvopunt0IjPTl0tlK7rm3O5aw5itEW+397kIrlVJKKdUeek1bJ+Yb4ENNlQPP7gb33OuJ9/0+fPtNJf0sPRlk641jfB15n5fRzdNgxMPBDBp8e1t9KKWUUurvRzttndwgWx/u69+Dqmu1eHp2o19gL+rq6unVrzs9+9xD6MiBePfszo98773bTVVKKaVUG3R6tAvoeZ8X/QJ60duvJ338etJvUC969fHGd1AvBgT+SDtsSimFa6Pw+Ph4YmNjiYyM5MUXXwTg4sWLJCcnM3jwYJKTk7l06RIAOTk55v6asbGxrF+/3qwrMTGR0NBQ8/3G+5V+9NFHREREEBkZycyZM830BQsWEBkZSXh4OHPnzm22VdNzzz1nbmgPrm2XGuqPiorCw8ODixcvAq7N3KOjo7Hb7cTFNVs5gtdeew3DMMxFgEtKSrj33nvN+p555hkz76FDh4iOjsZmszVp186dOxk2bBienp6sW7fOzH9zXXa7ndraWkSEuXPnYrPZiImJ4fDhw2aZrKwsQkNDsdlsLFmyxExvLfbgWsTWZrMRGhrKp59+aqY3Pvfo6Ghz8/m24vLkk08SHByM3W4nLCyMl156yXxPRHjhhRcYMmQI4eHhvPnmm4Br0/qYmBizroYdFL7++muSkpIIDw8nMjKSN954o1n875iIdPrH8OHDRSml1A/bF198cVePX19fLxUVFSIiUltbK/Hx8bJ3716ZP3++LF68WEREFi9eLAsWLBARkcrKSnE4HCIi8s0330j//v3N12PHjpUDBw40O0Z+fr7Y7Xa5ePGiiIicO3dORER2794to0ePFqfTKU6nUxISEmT79u1muQMHDsgTTzwhPXv2bLHtGzdulKSkJPP1Aw88IOfPn28x7+nTp2XChAkSGBho5ikuLpbIyMgW848YMUL27Nkj9fX1MmnSJPnLX/5iljl27JjMmjVL1q5da+Zvra4tW7bIpEmTpL6+Xvbu3Svx8fEiIuJ0OsVqtUphYaHU1NRITEyM5Obmioi0Gvvc3FyJiYmR6upqKSoqEqvVKk6ns9m5nzx5UgIDA28Zl4yMDPMcqqqqJDg4WIqKikRE5L333pNZs2ZJXV2diNz4zCoqKqS+vl5ERI4dOyahoaEi4vouHDp0SERErl69KoMHDzbPpyUtfe+Bg9JCf0ZH2pRSSnVIW4q2MGHdBGJWxjBh3QS2FG35TvUZhmGOZDkcDhwOB4ZhsGHDBjIyMgDIyMjgk08+AaBHjx54erquMqqurm7XRurvvPMOc+bMoU8f1zXEDXtpGoZBdXU1tbW11NTU4HA48PPzA6Curo758+ezdOnSVutdvXp1s/1HWzNv3jyWLl3arvaWlZVx9epVRo0ahWEYzJ492zz/oKAgYmJi6NatfV2JDRs2MHv2bAzDICEhgcuXL1NWVkZOTg42mw2r1co999xDenq6OTrWWuw3bNhAeno6Xl5eBAcHY7PZWtxH9OrVq2as26u6uhrA3GVi+fLlLFy40DzPhs/Mx8fHjGFlZaX53N/fn2HDhgGuvWfDw8M5c+bMbbWhNdppU0op1eFsKdrCr/f8mrLKMgShrLKMX+/59XfuuNXV1WG32xkwYADJycmMHDmSc+fO4e/vD7h+ITee6ty/fz+RkZFER0ezYsUKsxMH8NRTT2G323n55ZfNKcX8/Hzy8/MZM2YMCQkJZGVlATBq1CiSkpLw9/fH39+fiRMnmqvkL1u2jNTUVLMNN7t+/TpZWVnmpubg6gROmDCB4cOH8/bbb5vpGzduJCAggNjY2Gb1FBcXM3ToUMaOHcuuXbsAOHPmDBbLjf1cLRZLuzoghYWF5tTonDlzzLruv//+ZnW1lg60Gvu2yoBrG6uoqCjGjh3LokWLbhkXcG1jZbfbsVgspKenm52zwsJC1qxZQ1xcHCkpKRQUFJhl1q9fT1hYGJMnT+a9995rFoeSkhKOHDnCyJEjbxmz9tAbEZRSSnU4bxx+g+q66iZp1XXVvHH4DSZbJ99xvR4eHhw9epTLly+TlpbGiRMn2sw/cuRIcnNzycvLIyMjg5SUFLy9vfnwww8JCAigoqKCadOm8cEHHzB79mycTicFBQXs2LGD0tJSHnzwQU6cOMGFCxfIy8ujtLQUgOTkZHbu3InNZmPt2rXs2LGj1TZs2rSJMWPGmHuFAuzevZtBgwZRXl5OcnIyYWFhxMXF8corr7B169Zmdfj7+3P69Gl8fX05dOgQU6dOJTc3t9l1dUC7RuhCQkI4evRok7TW6rqTY9yqzPbt2+nXrx+FhYWMHz+exMREfHx8WozLQw89BLiuEZw+fTrXrl1j/Pjx7Nmzh9GjR1NTU4O3tzcHDx7k448/5umnnzY7tWlpaaSlpbFz505+9atf8dlnn5ltuHbtGtOmTeN3v/vd32w/Uh1pU0op1eGcrTx7W+m3q3fv3iQmJpKVlYWfnx9lZWWAa7qwYQSmsfDwcHr27Gl28gICAgDX9NjMmTPNqTuLxcKUKVPo3r07wcHBhIaGUlBQwPr160lISMDHxwcfHx9SUlLYt28fR44c4dSpU9hsNoKCgrh+/To2m63JsTMzM5tNjQ4aNAhwTeWlpaWRk5NDYWEhxcXFxMbGEhQURGlpKcOGDePs2bN4eXnh6+sLwPDhwwkJCSE/Px+LxWJ2JAFKS0vNum+XxWLh66+/blZXa+lAq7Fvq0xjISEh+Pn58cUXX7Qal5v5+PiQmJho3lhgsVjMUcy0tDSOHz/erMxDDz1EYWGheWOHw+Fg2rRpPP744+bG838L2mlTSinV4QzsOfC20tvj/PnzXL58GYCqqio+++wzwsLCSE1NZeXKlQCsXLmSKVOmAK7pRKfTCcBXX33Fl19+SVBQEE6ns8kv782bNxMVFQXA1KlT2b59OwAXLlwgPz8fq9VKYGAg2dnZOJ1OHA4H2dnZhIeHM3nyZM6ePUtJSQklJSX06NGDU6dOmW2+cuUK2dnZZpvAdX1VRUWF+Xzr1q1ERUURHR1NeXm5WZfFYuHw4cMMHDiQ8+fPU1fn2tqwqKiIgoICrFYr/v7+9OrVi3379iEirFq1qsmxbkdqaiqrVq1CRNi3bx/33Xcf/v7+jBgxgoKCAoqLi6mtrSUzM5PU1FSzTEuxT01NJTMzk5qaGoqLiykoKCA+Pr7ZMcvLyykuLuaBBx5oNS43czqd7N+/n5CQEPMz27ZtGwDZ2dkMGTIEgFOnTpkjfocPH6a2thZfX19EhH/6p38iPDycf/u3f7ujWLWqpbsTOttD7x5VSqkfvtu5e3Rz4WaJ+yBOov4YZT7iPoiTzYWb7/j4x44dE7vdLtHR0RIZGSkvvfSSiIhcuHBBxo0bJzabTcaNGyfffvutiIisWrVKIiIiJDY2VoYOHSrr168XEZFr167JsGHDJDo6WiIiImTu3LnmnY319fUyb948CQ8Pl6ioKFm9erWIuO6g/PnPfy5hYWESHh4u8+bNa7GNN989+v7778ujjz7aJK2wsFBiYmIkJiZGIiIiZNGiRS3W1fhOynXr1klERITExMTI0KFDZePGjWa+AwcOSGRkpFitVpkzZ455x2ROTo4EBARIjx49pG/fvhIRESEird89Wl9fL7/4xS/EarVKVFRUk7trt2zZIoMHDxar1dqkva3FXkRk0aJFYrVaZciQIeYdrQ3nFRUVJbGxsRIRESHvvvvuLeOSkZEhQUFBEhsbK+Hh4fLss8+a53np0iV5+OGHJSoqShISEuTo0aMiIrJkyRLz809ISJBdu3aJiMiuXbsEkOjoaImNjZXY2FjZsmVLi5+ByO3dPWpIC/PCnU1cXJwcPHjwbjdDKaVUG/Ly8syL79tjS9EW3jj8BmcrzzKw50D+ddi/fqfr2ZS6G1r63huGcUhEmi2wpzciKKWU6pAmWydrJ011KXpNm1JKKaVUB6CdNqWUUkqpDkA7bUoppZRSHYB22pRSSimlOgDttCmllFJKdQDaaVNKKaVwbRQeHx9PbGwskZGRvPjiiwBcvHiR5ORkBg8eTHJyMpcuXQIgJyfH3F8zNjaW9evXm3UlJiYSGhpqvt94v9KPPvqIiIgIIiMjmTlzppm+YMECIiMjCQ8PZ+7cuc22anruuefMDe3Bte1SQ/1RUVF4eHhw8eJFwLWZe3R0NHa7nbi4ZitH8Nprr2EYhrkIcElJCffee69Z3zPPPGPmPXToENHR0dhstibt2rlzJ8OGDcPT05N169aZ+W+uy263U1tby5UrV3jkkUfM+L7//vtmmaysLEJDQ7HZbCxZssRMby32AIsXL8ZmsxEaGsqnn35qpjc+9+joaHPz+bbi8uSTTxIcHIzdbicsLIyXXnrJfE9EeOGFFxgyZAjh4eG8+eabTWI5ZcoURo0a1STtj3/8I/379zfP/w9/+EOzz+COtLR4W2d76OK6Sin1w3c7i+t+H+rr66WiokJERGprayU+Pl727t0r8+fPl8WLF4uIyOLFi2XBggUiIlJZWSkOh0NERL755hvp37+/+Xrs2LFNFo9tkJ+fL3a7XS5evCgiIufOnRMRkd27d8vo0aPF6XSK0+mUhIQE2b59u1nuwIED8sQTTzRbXLfBxo0bJSkpyXzdeOHcm50+fVomTJgggYGBZp7WFsQVERkxYoTs2bNH6uvrZdKkSeZCtsXFxXLs2DGZNWuWrF271szfWl2vvPKKGbvy8nLp06eP1NTUiNPpFKvVKoWFhVJTUyMxMTGSm5srItJq7HNzcyUmJkaqq6ulqKhIrFaruYBx43M/efKkBAYG3jIuGRkZ5jlUVVVJcHCwFBUViYjIe++9J7NmzZK6ujoRufGZibgW3rVYLBIWFmbmF3EtejxnzpwW43mz21lcV0falFJKdUhXNm2iYNx48sIjKBg3niubNn2n+gzDMEeyHA4HDocDwzDYsGEDGRkZAGRkZPDJJ58A0KNHDzw9XcudVldXt2sj9XfeeYc5c+bQp08fAHMvTcMwqK6upra2lpqaGhwOB35+fgDU1dUxf/58li5d2mq9q1evbrb/aGvmzZvH0qVL29XesrIyrl69yqhRozAMg9mzZ5vnHxQURExMDN26ta8rYRgGFRUViAjXrl2jb9++eHp6kpOTg81mw2q1cs8995Cenm6OjrUW+w0bNpCeno6XlxfBwcHYbLYW9xG9evWqGev2qq6uBqBnz54ALF++nIULF5rn2Xjv2T//+c888sgjpKenk5mZeVvHuRPaaVNKKdXhXNm0ibJfLcT5zTcggvObbyj71cLv3HGrq6vDbrczYMAAkpOTGTlyJOfOncPf3x8Af3//JlOd+/fvJzIykujoaFasWGF24gCeeuop7HY7L7/8sjmlmJ+fT35+PmPGjCEhIYGsrCwARo0aRVJSEv7+/vj7+zNx4kRzlfxly5aRmppqtuFm169fJysry9zUHFwdpAkTJjB8+HDefvttM33jxo0EBAQQGxvbrJ7i4mKGDh3K2LFj2bVrFwBnzpzBYrGYeSwWC2fOnLllHAsLC82pwTlz5gDw7LPPkpeXx6BBg4iOjuaNN96gW7dunDlzhvvvv7/FY7QW+7bKACQlJREVFcXYsWNZtGjRLeMCMH/+fOx2OxaLhfT0dLNzVlhYyJo1a4iLiyMlJYWCggKzTENn+bHHHmP16tVN6vvzn/9MTEwM06dPb7K5/XehOyIopZTqcMpf/x3iHhFpINXVlL/+O+575JE7rtfDw4OjR49y+fJl0tLSOHHiRJv5R44cSW5uLnl5eWRkZJCSkoK3tzcffvghAQEBVFRUMG3aND744ANmz56N0+mkoKCAHTt2UFpayoMPPsiJEye4cOECeXl5lJaWApCcnMzOnTux2WysXbuWHTt2tNqGTZs2MWbMGPr27Wum7d69m0GDBlFeXk5ycjJhYWHExcXxyiuvsHXr1mZ1+Pv7c/r0aXx9fTl06BBTp04lNze32XV1QLtG6EJCQjh69GiTtE8//RS73c62bdsoLCwkOTmZBx988I6Ocasy27dvp1+/fhQWFjJ+/HgSExPx8fFpMS4PPfQQ4LpGcPr06Vy7do3x48ezZ88eRo8eTU1NDd7e3hw8eJCPP/6Yp59+ml27dnHu3DlOnTrFP/zDP2AYBp6enpw4cYKoqCgeeeQRHnvsMby8vFixYgUZGRnmpvPfhY60KaWU6nCcZWW3lX67evfuTWJiIllZWfj5+VHmrresrKzJ9FiD8PBwevbsaXbyAgICAOjVqxczZ840p+4sFgtTpkyhe/fuBAcHExoaSkFBAevXrychIQEfHx98fHxISUlh3759HDlyhFOnTmGz2QgKCuL69evYbLYmx87MzGw2NTpo0CDANZWXlpZGTk4OhYWFFBcXExsbS1BQEKWlpQwbNoyzZ8/i5eWFr68vAMOHDyckJIT8/HwsFovZkQQoLS01675d77//Pj/96U8xDAObzUZwcDAnT57EYrE0GYlqfIzWYt9WmcZCQkLw8/Pjiy++aDUuN/Px8SExMZHPP//cPFbDKGZaWhrHjx8HYM2aNVy6dIng4GCCgoIoKSkxp0h9fX3x8vIC4Gc/+xmHDh26o5jdTDttSimlOhzPVqYKW0tvj/Pnz3P58mUAqqqq+OyzzwgLCyM1NZWVK1cCsHLlSqZMmQK4phOdTicAX331FV9++SVBQUE4nU7zrkyHw8HmzZuJiooCYOrUqWzfvh2ACxcukJ+fj9VqJTAwkOzsbJxOJw6Hg+zsbMLDw5k8eTJnz56lpKSEkpISevTowalTp8w2X7lyhezsbLNNAJWVlVRUVJjPt27dSlRUFNHR0ZSXl5t1WSwWDh8+zMCBAzl//jx1dXUAFBUVUVBQgNVqxd/fn169erFv3z5EhFWrVjU51u0IDAzkr3/9K+Ca9vzyyy+xWq2MGDGCgoICiouLqa2tJTMzk9TUVIBWY5+amkpmZiY1NTUUFxdTUFBAfHx8s2OWl5dTXFzMAw880GpcbuZ0Otm/fz8hISHmZ9YwSpadnc2QIUMA19RoVlaWGc9Dhw6ZnbayRn88bNy4sdmG8HespbsTOttD7x5VSqkfvtu5e/Tyxo2SF2uXL0LDzEderF0ub9x4x8c/duyY2O12iY6OlsjISHnppZdEROTChQsybtw4sdlsMm7cOPn2229FRGTVqlUSEREhsbGxMnToUFm/fr2IiFy7dk2GDRsm0dHREhERIXPnzjXvbKyvr5d58+ZJeHi4REVFyerVq0VExOl0ys9//nMJCwuT8PBwmTdvXottvPnu0ffff18effTRJmmFhYUSExMjMTExEhERIYsWLWqxrsZ3Uq5bt04iIiIkJiZGhg4dKhsbxfHAgQMSGRkpVqtV5syZI/X19SIikpOTIwEBAdKjRw/p27evREREiEjrd4+eOXNGkpOTJSoqSiIjI+WDDz4w39uyZYsMHjxYrFZrk/a2FnsRkUWLFonVapUhQ4aYd7Q2nFdUVJTExsZKRESEvPvuu7eMS0ZGhgQFBUlsbKyEh4fLs88+a57npUuX5OGHH5aoqChJSEiQo0ePSnFxsQwaNMjM02Do0KGyb98+ef755814JiYmSl5eXoufgcjt3T1qSAvzwp1NXFycHDx48G43QymlVBvy8vJua0TiyqZNlL/+O5xlZXj6+zNg3i+/0/VsSt0NLX3vDcM4JCLNFtjTGxGUUkp1SPc98oh20lSXote0KaWUUkp1ADrS1tmVn4TLJVD+JdwXANcugCUOMKDyHHydA55eEPwgBP3D3W6tUkoppVqhI22d2ZVS+Go3bP43cFbB/50PP/KDbt3gylfw0SzY/TpkL4EP/xG+2nO3W6yUUkqpVminrTMrz4PKcrj+LThrXGlefaDOCcczod55I6/jOuRtvjvtVEoppdQtaaetM3NUQX0deHQHZzV43gue9wACNRXN81dd/Ls3USmllFLto522zqzfELi3r2uUrddAqCiD6ktgeEB4C4sjRtzZgolKKdUZVFdXEx8fT2xsLJGRkbz44osAXLx4keTkZAYPHkxycjKXLl0CICcnx9xfMzY2lvXr15t1JSYmEhoaar7feL/Sjz76iIiICCIjI5k5c6aZvmDBAiIjIwkPD2fu3LnNtmp67rnnzA3twbXtUkP9UVFReHh4cPGi64/voKAgoqOjsdvtxMU1WzmC1157DcMwzEWAS0pKuPfee836nnnmGTPvoUOHiI6OxmazNWnXzp07GTZsGJ6enqxbt87Mf3Nddrud2tpa8/0DBw7g4eHRpExWVhahoaHYbDaWLFliprcWe4DFixdjs9kIDQ3l008/NdMbn3t0dLS5+XxbcXnyyScJDg7GbrcTFhbGSy+9ZL4nIrzwwgsMGTKE8PBw3nzzTQD++Mc/0r9//ybn2bDzgoeHh5nWsFDw30RLi7d1tkeXXlz364MiR/4ksvafRPb/H5EN/ypSekTkq30ie5eL/D5BZMVDIsfXitRU3u3WKqW6sNtZXPf7UF9fLxUVFSIiUltbK/Hx8bJ3716ZP3++LF68WEREFi9eLAsWLBARkcrKSnE4HCIi8s0330j//v3N12PHjpUDBw40O0Z+fr7Y7Xa5ePGiiIicO3dORER2794to0ePFqfTKU6nUxISEmT79u1muQMHDsgTTzzRbHHdBhs3bpSkpCTzdeOFc292+vRpmTBhggQGBpp5WlsQV0RkxIgRsmfPHqmvr5dJkyaZC9kWFxfLsWPHZNasWbJ27Vozf1t1OZ1OSUpKkpSUFLOM0+kUq9UqhYWFUlNTIzExMZKbmysi0mrsc3NzJSYmRqqrq6WoqEisVqu5gHHjcz958qQEBgbeMi4ZGRlme6qqqiQ4OFiKiopEROS9996TWbNmSV1dnYjc+Mzef/99mTNnTovn2drn1JLbWVxX7x7t7CzDwS/CdXdo93vB/gTUO0AEfnQ/2H4MPfq6Hkop1YHk7z/L3g2FXLtYg09fL0ZNCWHIyIF3XJ9hGOZIlsPhwOFwYBgGGzZsMDdsz8jIIDExkd/85jf06NHDLFtdXd2ujdTfeecd5syZQ58+fQDMvTQNw6C6upra2lpEBIfDgZ+fHwB1dXXMnz+fP/3pT01G8xpbvXp1s/1HWzNv3jyWLl3aru2oysrKuHr1KqNGjQJg9uzZfPLJJ6SkpBAUFARAt27tn7T7r//6L6ZNm8aBAwfMtJycHGw2G1arFYD09HQ2bNhAREREq7HfsGED6enpeHl5ERwcjM1mIycnx2xng6tXr5qxbq/q6moAevbsCcDy5cv505/+ZJ5nS3vP/r3o9GhX0P1euM8CPXzhnh7gfR/c2xt6D4J+Nu2wKaU6nPz9Z9n+4UmuXXTdZHXtYg3bPzxJ/v6z36neuro67HY7AwYMIDk5mZEjR3Lu3Dn83Xua+vv7N5nq3L9/P5GRkURHR7NixQo8PW+MhTz11FPY7XZefvllc0oxPz+f/Px8xowZQ0JCAllZWQCMGjWKpKQk/P398ff3Z+LEieYq+cuWLSM1NdVsw82uX79OVlaWuak5uDqBEyZMYPjw4bz99ttm+saNGwkICCA2NrZZPcXFxQwdOpSxY8eya9cuAM6cOYPFYjHzWCwWzpw5c8s4FhYWmtODc+bMMetav359k6nXhvT777+/xWO0Fvu2ygAkJSURFRXF2LFjWbRo0S3jAjB//nzsdjsWi4X09HSzc1ZYWMiaNWuIi4sjJSWFgoICs8yaNWuaTI9WVVUBro5fXFwcCQkJfPLJJ7eMV3vpSJtSSqkOZ++GQpy19U3SnLX17N1Q+J1G2zw8PDh69CiXL18mLS2NEydOtJl/5MiR5ObmkpeXR0ZGBikpKXh7e/Phhx8SEBBARUUF06ZN44MPPmD27Nk4nU4KCgrYsWMHpaWlPPjgg5w4cYILFy6Ql5dHaWkpAMnJyezcuRObzcbatWvN0aaWbNq0iTFjxtC3740/wHfv3s2gQYMoLy8nOTmZsLAw4uLieOWVV9i6dWuzOvz9/Tl9+jS+vr4cOnSIqVOnkpub2+y6OqBdI4ohISEcPXq0Sdovf/lLfvOb3+Dh4dEk/U6Ocasy27dvp1+/fhQWFjJ+/HgSExPx8fFpMS4PPfQQ4LpGcPr06Vy7do3x48ezZ88eRo8eTU1NDd7e3hw8eJCPP/6Yp59+2uzUPvrooyxbtqxZW06fPs2gQYMoKipi3LhxREdHmxvQfxc60qaUUqrDaRhha2/67erduzeJiYlkZWXh5+dHWVkZ4JoubGl6LDw8nJ49e5qdvICAAAB69erFzJkzycnJAVwjQlOmTKF79+4EBwcTGhpKQUEB69evJyEhAR8fH3x8fEhJSWHfvn0cOXKEU6dOYbPZCAoK4vr169hstibHzszMbDY1OmjQIMA1lZeWlkZOTg6FhYUUFxcTGxtLUFAQpaWlDBs2jLNnz+Ll5YWvry8Aw4cPJyQkhPz8fCwWi9mRBCgtLTXrvl0HDx4kPT2doKAg1q1bxy9+8Qs++eQTLBYLX3/9dYvHaC32bZVpLCQkBD8/P/MGgZbicjMfHx8SExP5/PPPzWM1jGKmpaVx/PjxW55rw3GsViuJiYkcOXLklmXaQzttSimlOhyfvl63ld4e58+f5/LlywBUVVXx2WefERYWRmpqKitXrgRg5cqV5rVgxcXFOJ2u9S6/+uorvvzyS4KCgnA6neZdmQ6Hg82bNxMVFQXA1KlT2b59OwAXLlwgPz8fq9VKYGAg2dnZOJ1OHA4H2dnZhIeHM3nyZM6ePUtJSQklJSX06NGDU6dOmW2+cuUK2dnZTa5Pq6yspKKiwny+detWoqKiiI6Opry83KzLYrFw+PBhBg4cyPnz56mrqwOgqKiIgoICrFYr/v7+9OrVi3379iEirFq1ql3XwrWkuLjYPPb06dN56623mDp1KiNGjKCgoIDi4mJqa2vJzMw077hsLfapqalkZmZSU1NDcXExBQUFxMfHNztmeXk5xcXFPPDAA63G5WZOp5P9+/ebI2NTp05l27ZtAGRnZzNkyJA2z/PSpUvU1Lj+eLhw4QK7d+8mIiLiTkLWjE6PKqWU6nBGTQlh+4cnm0yRet7TjVFT7nwKqqysjIyMDOrq6qivr2fGjBn85Cc/YdSoUcyYMYN3332XwMBA1q5dC8Dnn3/OkiVL6N69O926deOtt96iX79+VFZWMnHiRBwOB3V1dfz4xz/mZz/7GQATJ05k69atRERE4OHhwauvvoqvry/Tp09n27ZtREdHYxgGkyZN4pFHHrllm9evX8+ECRPMi+bBdR1YWloa4OqAzJw5k0mTJrVZz86dO1m4cCGenp54eHiwYsUKc7p1+fLlPPnkk1RVVZGSkkJKSgrgWrojLS2NS5cusWnTJl588UVyc3NvO+6enp4sW7aMiRMnUldXx9NPP01kZCQAzz//fIuxj4yMZMaMGURERODp6cnvf//7JtOuSUlJeHh44HA4WLJkCX5+fhQVFbUZl/nz57No0SJqa2sZP348P/3pT802PP7447z++uv4+Pjwhz/8wSyzZs0ac0QO4K233gLgX/7lX+jWrRv19fU8//zzf7NOm9HSvHBnExcXJwcPHrzbzVBKKdWGvLw88+L79vhb3z2q1N3Q0vfeMIxDItJsgT0daVNKKdUhDRk5UDtpqkvRa9qUUkoppToA7bQppZRSSnUA2mlTSin1g9EVrrNWqsHtft+106aUUuoHwdvbm2+//VY7bqpLEBG+/fZbvL29211Gb0RQSin1g9CwkOv58+fvdlOU+rvw9vZusk3YrWinTSml1A9Cwy4BSqmW6fSoUkoppVQHoJ02pZRSSqkOQDttSimllFIdQJfYxsowjPPAV0A/4MJdbs4PkcalZRqXlmlcmtOYtEzj0jKNS8s0Ljc8ICL9b07sEp22BoZhHGxpL6+uTuPSMo1LyzQuzWlMWqZxaZnGpWUal1vT6VGllFJKqQ5AO21KKaWUUh1AV+u0vX23G/ADpXFpmcalZRqX5jQmLdO4tEzj0jKNyy10qWvalFJKKaU6qq420qaUUkop1SF1iE6bYRjehmHkGIZxzDCMXMMwXnKn9zUM438Mwyhw/+zTqMz/ZxjGKcMwvjQMY2Kj9OGGYfyv+703DcMw3OlehmGscafvNwwjqFGZDPcxCgzDyPg7nnqb2ojLP7pf1xuGEXdTmU4dlzZi8qphGCcNwzhuGMZ6wzB6NyrTqWMCbcblZXdMjhqGsdUwjEGNynTZuDR6/98NwxDDMPo1SuuycTEM49eGYZxxf1+OGobxcKMyXTYu7veec597rmEYSxuld+q4tPFdWdPoe1JiGMbRRmU6dUy+VyLyg38ABuDjft4d2A8kAEuB593pzwO/cT+PAI4BXkAwUAh4uN/LAUa56/y/QIo7/RfACvfzdGCN+3lfoMj9s4/7eZ+7HZNbxCUcCAV2AHGN8nf6uLQRkwmApzv9N/pdMePyo0Z55jY6ry4dF/fr+4FPca/xqHEhAfg18O8t5O/qcUkCPgO83O8N6CpxaevfUKM8vwUWdpWYfJ+PDjHSJi7X3C+7ux8CTAFWutNXAlPdz6cAmSJSIyLFwCkg3jAMf1y/pPaK6xNfdVOZhrrWAePdvfyJwP+IyEURuQT8DzDp+znT29NaXEQkT0S+bKFIp49LGzHZKiJOd/o+wOJ+3uljAm3G5WqjbD1x/buCLh4X9+vXgQWNXoPGpTVdPS7/D7BERGrc+crdeTp9XG71XXG3fQaw2p3U6WPyfeoQnTYAwzA83MOr5bg+pP2An4iUAbh/DnBnDwC+blS81J0W4H5+c3qTMu5f7lcA3zbq+kFoJS6t6RJxaUdMnsb1Vxx0kZhA63ExDOMVwzC+Bh4HFrqzd+m4GIaRCpwRkWM3Ze/ScXG/9azhmlJ/z7hxSUpXj8sQ4EH31F22YRgj3Nm7RFxu8X/ug8A5ESlwv+4SMfm+dJhOm4jUiYgd1whJvGEYUW1kN1qqoo30Oy1z12lcmmsrJoZhvAA4gQ8bklqqoo30Oy1z17UWFxF5QUTuxxWTZ93Zu3JcYoAXuNGBbawrxyUKWA6EAHagDNe0F2hcPHFNzyUA84GP3CNBXSIut/g99Bg3Rtmgi8Tk+9JhOm0NROQyrmu1JgHn3EOquH82DEmX4roepYEF+MadbmkhvUkZwzA8gfuAi23U9YNyU1xa06XicnNM3Bep/gR43D38Dl0sJtDmd+VPwDT3864clym4rrU5ZhhGCa72HjYMYyBdOy6TROSc+xd0PfAOEO/O1qXjgqvNH7unCnOAelz7aHapuLTwf64n8FNgTaNsXSomf3PyA7iw7lYPoD/Q2/38XmAXrl++r9L0RoSl7ueRNL3QsYgbFzoewPXXUMOFjg+70+fQ9ELHj+TGhY7FuP6K6uN+3vdux6StuDR6fwdNb0To9HFp47syCfgC6H9T/k4fk1vEZXCjPM8B6zQuN/4NudNLuHEjQpeOC+DfKM88XNcmaVzgGeA/3elDcE3ZGV0hLm39G8L1/272Tfk7fUy+13jf7Qa080sRAxwBjgMnuHEXii/wV6DA/bNvozIv4Lor5Uvcd6C40+PcdRQCy7ixwLA3sBbXRZE5gLVRmafd6aeAp+52PNoRlzRcf4HUAOeAT7tKXNqIySlc/5EedT9WdJWY3CIuf3a/Pg5sAgI0Ls3ylODutHX1uAAfAP/rTt9I005cV47LPcB/u9MOA+O6Slza+jcE/BF4poUynTom3+dDd0RQSimllOoAOtw1bUoppZRSXZF22pRSSimlOgDttCmllFJKdQDaaVNKKaWU6gC006aUUkop1QFop00ppZRSqgPQTptSqtMzDMPXMIyj7sdZwzDONHp93Z0nyDAMMQzj5Ubl+hmG4TAMY5n79a9vKnvUMIzerRwz0V3fPzVKG+pO+3f36wT3fpVHDcPIMwzj199nHJRSHZvn3W6AUkp930TkW1z7ZeLuGF0Tkdfcr681ylqEa4X7X7lf/yOQe1N1rzeUbYf/BR4F3nW/Tse1GnyDlcAMETlmGIYHENrOepVSXZCOtCml1A1VQJ5hGHHu148CH32H+k4D3oZh+Lk3EJ+Ea3ueBgNwbbyOuPb0/OI7HEsp1clpp00ppZrKBNINw7AAdTTfgHpeo6nR7e2obx2uEbvRuLY4qmn03uvAl4ZhrDcM418Mw/D+G7RfKdVJaadNKaWaygKSgceANS28/7qI2N2PpHbU9xGuTttjwOrGb4jIf+Lab3ErMNN9bKWUapF22pRSqhERqQUOAf8v8Oe/QX1nAQeujuBfW3i/UESWA+OBWMMwfL/rMZVSnZPeiKCUUs39FsgWkW9dl6J9ZwuBASJS17g+wzAmA38REQEG45qOvfy3OKBSqvPRTptSSt1ERHJpftdog3mGYTzR6PVUESm5RX17WnlrFvC6e9kRJ/C4iNTdbnuVUl2D4foDTymllFJK/ZDpNW1KKaWUUh2ATo8qpdR3YBjGROA3NyUXi0ja3WiPUqrz0ulRpZRSSqkOQKdHlVJKKaU6AO20KaWUUkp1ANppU0oppZTqALTTppRSSinVAWinTSmllFKqA/j/AbodQ4uWhaVuAAAAAElFTkSuQmCC\n", + "text/plain": [ + "<Figure size 720x576 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10,8))\n", + "sns.scatterplot(x=\"TIME_MS\", y=\"SUM_PROXIMITY_KMS\", hue='EPC', data=test_1[test_1.MEASUREMENT == 4])\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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EVauXFnvWNciKSmJlStXIiLs2LGDW2+9FV9fX4YOHUpOTg75+flUVVWRmppKUlKStU9jsU9KSiI1NZXKykry8/PJyclhWCMDTZeUlJCfn0///v2bjMuVnE4nO3fuJCgoyPrNNm7cCEBGRgYDBgwA4OjRo1aL3759+6iqqqJHjx6ICI8++ighISH88Y9//EGxUqrda+zthPb20bdHVXt2TW/RHVwlstBH5Olbvv8s9HGl/0AHDx6U6OhoiYiIkLCwMHn22WdFROTMmTNy7733it1ul3vvvVe+++47ERFZuXKlhIaGSlRUlAwaNEjS0tJEROTSpUsyePBgiYiIkNDQUHniiSesNxtrampk7ty5EhISIuHh4fLBBx+IiOsNyt/85jcycOBACQkJkblz5zZaxivfHn3nnXfkoYceqpeWm5srkZGREhkZKaGhobJw4cJG86r7JuVHH30koaGhEhkZKYMGDZK1a9da2+3evVvCwsIkMDBQ5syZY70xuWvXLunXr594eXnJHXfcIaGhoSLS9NujNTU18rvf/U4CAwMlPDy83tu169evl7vuuksCAwPrlbep2IuILFy4UAIDA2XAgAHWG6215xUeHi5RUVESGhoqb7311lXjkpKSIv7+/hIVFSUhISHy+9//3jrPc+fOyS9+8QsJDw+X2NhYOXDggIiILF682Pr9Y2NjZevWrSIisnXrVgEkIiJCoqKiJCoqStavX9/obyCib4+q9o0m3h410sgzDu1NTEyM7Nmzp7WLodRPIisry3r4vkW+/tD1DNuFQlcL29gF1/U8m1Kt4Zqve6XaEGPMXhFpMFikvoigVEcTOVUraUop1QbpM21KKaWUUm2AVtqUUkoppdoArbQppZRSSrUBWmlTSimllGoDtNKmlFJKKdUGaKVNKXVdKioqGDZsGFFRUYSFhfH0008DcPbsWeLj47nrrruIj4/n3LlzAOzatcuaXzMqKoq0tDQrr7i4OIKDg631decr/fDDDwkNDSUsLIzp06db6fPnzycsLIyQkBCeeOKJBlM1Pf7449aE9uCadqk2//DwcDw8PDh79izgmsw9IiKC6OhoYmIavG3Piy++iDHGGgS4oKCAm2++2crvt7/9rbXt3r17iYiIwG631yvXli1bGDx4MJ6ennz00UfW9lfmFR0dTVVVFRcuXOCBBx6w4vvOO+9Y+6Sn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\n", + "text/plain": [ + "<Figure size 720x576 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10,8))\n", + "sns.scatterplot(x=\"TIME_MS\", y=\"SUM_PROXIMITY_KMS\", hue='EPC', data=test_1[test_1.MEASUREMENT == 26])\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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dKOxy1VEREREjoESOhEREZEUp4ROREREJMWNxoWFRURE0pq1lmiwGxuLgeOA2wM42HAY43bjzsjC7dXSPzJwSuhERERGkLWWcEc7WIsT6sadkQmxCF17duFEwgB4c/LInDAJtz+Q5GglVajLVUREZAQ54RBYB5wY4fY2sBBqakgkcwCR9lYine1JjFJSjRI6ERGREeTEYuBYbCyKLycPrCXW3dXnuFgwmIToJFUpoRMRERlBLrcHXC6M20uorQWMwZOVjePPpN6Vw44uD+3eHDwZmckOVVKIxtCJiIiMILffT1dnJ8HuMPtaI0wpiNAc8bB9VxPfvePH7NxRy5TKcm79+r9y+nuLkh2upAi10ImIiIyw1Ws2sG79NnbtqmPvviZqa/dx+xf+i507agHYuaOWL930DbZtqUluoJIylNCJiIiMIGst9fsbaGlqJTsni3AwHH/c3NrruOamVnbX1CYpSkk16nIVEREZQcYYMrMy8Hm9RCNRvD4vufm5uN1uYrFY4ji3201+YX7yApWUohY6ERGRETZ7zgwyszPo7g4SiUYpLMrn2k9c3uuY6z/9UWbPqUpShJJq1EInIiIywqbNqCAQ8HPgQAOxSJSsnCzOWnIGc4+fTcOBRsZPHMf8E+bgD/iTHaqkCCV0IiIiSTBxchkTJ5clOwxJE+pyFREREUlxSuhEREREUpwSOhEREZEUp4ROREREJMUpoRMRERFJcUroRERERFKcEjoRERGRFKeETkRERCTFKaETERERSXFK6ERERERSnBI6ERERkRSnhE5EREQkxSmhExEREUlxSuhEREREUpwSOhEREZEU50l2AKNNJBKhtraWYDCY7FBkCAUCAcrLy/F6vckORUREZMgpoTtMbW0tOTk5VFRUYIxJdjgyBKy1NDY2UltbS2VlZbLDERERGXJK6A4TDAaVzKUZYwxFRUXU19cnO5QxyVpLe1sHxkA0FsPlcgGGrMwMPF79ChIRGQr6bdoPJXPpR59pcmzfWsO+unp8Pg/dXSGikSi7avbwzG//RGFRHh+9bhknn3YCbrc72aGKiKQ0TYpIU263mwULFiRu//mf/5moq6+vx+v18t///d+9zqmoqOCyyy5LPH7ssce45pprRipkSTNtLe1s37KTpsYWOtu7Wf/mZta/tZnv3PEj1r2xkRf//DKfuuYW3lq7IdmhioikPCV0aSojI4O1a9cmbrfeemui7tFHH+XUU0/loYce6nPe6tWrWbdu3UiGKmmqrm4/dXsPkJ+fx/atO5lQPo6nn/hjr2Oi0RhrVr2RpAhFRNKHErox6KGHHuI73/kOtbW17Nmzp1fd5z//eb75zW8mKTJJJ263G7fLBVg8Hjc44A/4+xzn9/tGPjgRkTSjhC5NdXd39+py/b//+z8Adu/ezb59+zj55JNZtmxZovygZcuW8eqrr7J169ZkhC1pZMLE8UycXEZTQzNTqyqoqdnNB5Zd0OuY7Jwsqk9dkJwARUTSiCZFpKmDXa6He/jhh1m2bBkAl19+Oddddx2f/exnE/Vut5svfOELLF++nH/6p38aqXAlDWVmZTDzuOns2rEH47JUn7KAcDjM8rtv45W/vUbxuCLee85pzDxuerJDFRFJeUroxpiHHnqI/fv386tf/QqAvXv3smXLFqqqqhLHXHXVVSxfvpw5c+YkK0xJE+PLShlfVtqn/MIPLElCNCIi6UtdrmPIpk2b6OzsZM+ePdTU1FBTU8MXv/hFHn744V7Heb1ebr75Zu66667kBCoiIiLHRAldmjp8DN2tt97KQw89xKWXXtrruMsuu6zf2a7XXXcd0Wh0pMIVERGRQVCXa5qKxWIDOm7+/PmsX78egJqamkS53+9n7969wxGaiIiIDDG10ImIiIikOCV0IiIiIilOCZ2IiIhIilNCJyIiIpLilNCJiIiIpDgldCIiIiIpTgndKFVRUcG8efNYsGAB1dXVALz++ussWrSIefPmcdFFF9HW1pY4fvny5UyfPp2ZM2fy7LPPAtDV1cWFF17IrFmzmDNnDrfeemvi+F27drF48WJOOOEE5s+fz1NPPZWoe/DBB6mqqqKqqooHH3wwUX7NNddQWVmZWNvu4NZira2tXHTRRRx//PHMmTOHBx54AIjvG7t48WJmz57NnDlzuPvuuxPXampqYsmSJVRVVbFkyRKam5t7vf5du3aRnZ3Nt7/97T7vzcUXX8zcuXMTj2+++eZETDNmzCA/P/9Y324REZHUZq0ds7eFCxfaw61fv75PWTJMmTLF1tfX9yqrrq62zz//vLXW2vvuu8/edttt1lpr161bZ+fPn2+DwaDdvn27nTp1qo1Go7azs9P+6U9/stZaGwqF7BlnnGGfeuopa621119/vf3Rj36UOH/KlCnWWmsbGxttZWWlbWxstE1NTbaystI2NTVZa629+uqr7aOPPton1jvuuMPecsst1lprDxw4YAsKCmwoFLJ79+61a9assdZa29bWZquqquy6deustdZ+4QtfsMuXL7fWWrt8+fLE+QctXbrUfvCDH7Tf+ta3epU//vjj9oorrrBz5szp9337/ve/b6+99tp+60bLZysiIvJuAKvtO+Q0aqEbpFBzIy0b3qDpjdW0bHiDUHPjsD3Xpk2bOPPMMwFYsmQJjz/+OABPPPEEl19+OX6/n8rKSqZPn86qVavIzMxk8eLFAPh8Pk488URqa2sBMMYkWvhaW1uZMGECAM8++yxLliyhsLCQgoIClixZwjPPPHPEuIwxtLe3Y62lo6ODwsJCPB4PZWVlnHjiiQDk5OQwe/Zs9uzZk4j56quvBuDqq69mxYoVieutWLGCqVOn9tlLtqOjg+9+97vcdttt7xjLQw89xBVXXHH0N1NERCSNKKEbhFBzI521O3EiYQCcSJjO2p1DktQZYzj33HNZuHAh9957LwBz587lySefBODRRx9l9+7dAOzZs4dJkyYlzi0vL08kTge1tLTw29/+lnPOOQeAr33ta/zyl7+kvLycCy64gB/84AcDutaXv/xl5s+fz80330woFALgxhtvZMOGDUyYMIF58+Zx991343L1/q9VU1PDa6+9ximnnALA/v37KSsrA6CsrIwDBw4A0NnZyZ133sntt9/e5z35yle+wuc+9zkyMzP7fc927tzJjh07OPvss9/5jRUREUlDSugGoXvfHrBO70LrxMsH6a9//SuvvvoqTz/9NPfccw8vvPAC999/P/fccw8LFy6kvb0dn88Xf0pr+5xvjEncj0ajXHHFFXzmM59h6tSpQLwl65prrqG2tpannnqKq666Csdxjnit5cuXs3HjRl555RWampq48847gXir3oIFC9i7dy9r167lxhtv7DW+r6Ojg8suu4y77rqL3NzcI77u22+/nZtvvpns7Oxe5WvXrmXr1q199qI91MMPP8wHP/hB3G73EZ9DREQk3Wgv10E42DI30PJjcbALtLS0lEsvvZRVq1bx+c9/npUrVwKwefNmfv/73wPxVrSDrXUAtbW1ifMBbrjhBqqqqrjpppsSZffdd1+iK3XRokUEg0EaGhooLy/n+eef73Wts846CyDRoub3+7n22msT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tba2JvZ+ffbZZ1myZAmFhYUUFBSwZMmSxJ6v78QYQ3t7O9ZaOjo6KCwsxOPxUFZWltihIicnh9mzZ7Nnz55EzFdffTUAV199NStWrEhcb8WKFUydOpU5c+YM+L35yle+wi233EIgEBjwOTK8PFnZuLx+jNsDGFz+AJnlFXgys3D5/GSML9cajiIiQyRpCZ219jfW2nJrrd9aO85ae15P+TestVnW2gWH3A701K228S7badbaG3uyVay1QWvth6y10621J1trt4/Ea9j58kZW/+qPdDXF913tampn9a/+OCRJnTGGc889l4ULF3LvvfcCMHfuXJ588kkAHn30UXbv3g3Anj17mDRpUuLc8vLyROJ0UEtLC7/97W8555xzAPja177GL3/5S8rLy7ngggv4wQ9+MKBrffnLX2b+/PncfPPNhEIhIL6d2IYNG5gwYQLz5s3j7rvvxnXYzMWamhpee+01TjnlFCC+vVlZWRkAZWVlie7Tzs5O7rzzTm6//fZ+35drr72WBQsW8B//8R8HW2157bXX2L17N+9///sH9ubKiHC5Pfhy8/Bm5eDOyMDl8+POyiarvJLcaTPJKB0/6H2PRUQkTusFDMKbT/yVWLj3gO5YOMqbT/x10Nf+61//yquvvsrTTz/NPffcwwsvvMD999/PPffcw8KFC2lvb8fni38ZHkxsDnXocjDRaJQrrriCz3zmM0ydOhWI7316zTXXUFtby1NPPcVVV12F4zhHvNby5cvZuHEjr7zyCk1NTdx5Z3y5v2effZYFCxawd+9e1q5dy4033thrfF9HRweXXXYZd911F7m5uUd83bfffjs333wz2dnZfep+9atf8eabb/Liiy/y4osv8otf/ALHcbj55pv5zne+c7S3VJLE5Xbj8fnx+gN4/QHcgYASORGRIaaEbhAOtswNtPxYHOwCLS0t5dJLL2XVqlXMmjWLlStXsmbNGq644gqmTZsGxFvRDrbWAdTW1ibOB7jhhhuoqqripptuSpTdd999LFu2DIBFixYRDAZpaGg44rXKysowxuD3+7n22mtZtWoVAA888ABLly7FGMP06dOprKxk48Z4K2UkEuGyyy7jyiuvZOnSpYnrjhs3jrq6OgDq6uooLY33qr/88svccsstVFRUcNddd/HNb36TH/7whwBMnBhfpSYnJ4ePfOQjrFq1ivb2dt56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X//6V1599VWefvpp7rnnHl544QXuv/9+7rnnHhYuXEh7ezs+nw+Id5sf7tDWkGg0yhVXXMFnPvMZpk6dCsBDDz3ENddcQ21tLU899RRXXXUVjuMc8VrLly9n48aNvPLKKzQ1NXHnnXcC8Va9BQsWsHfvXtauXcuNN97Ya3xfR0cHl112GXfddRe5ublHfN233347N998M9nZ2b3Ko9EotbW1nH766bz66qssWrSIz3/+8wN5K0VERNKeErpB2Lf3wDGVH4uDXaClpaVceumlrFq1ilmzZrFy5UrWrFnDFVdcwbRp04B4K9rB1jqA2traxPkAN9xwA1VVVdx0002Jsvvuu49ly5YBsGjRIoLBIA0NDUe8VllZGcYY/H4/1157LatWrQLggQceYOnSpRhjmD59OpWVlWzcuBGASCTCZZddxpVXXsnSpUsT1x03bhx1dXUA1NXVUVpaCsDLL7/MLbfcQkVFBXfddRff/OY3+eEPf0hRURGZmZlceumlAHzoQx/i1VdfHfT7LCIikg6U0A3C+Amlx1Q+UJ2dnbS3tyfur1y5krlz5ya6JR3H4Rvf+Aaf+MQnALj44ot5+OGHCYVC7Nixgy1btnDyyScDcNttt9Ha2spdd93V6zkmT57Mc889B8Q3rQ8Gg5SUlHDeeeexcuVKmpubaW5uZuXKlZx33nkAiQTMWsuKFSuYO3dun2vt37+fTZs2MXXqVKy1XHfddcyePZvPfvazvZ7/4osvTsygffDBB7nkkksAePHFF6mpqaGmpoabbrqJL33pS9x4440YY7jooot4/vnnAXjuuec47rjjBvU+i4iIpI13mi0xFm6DneX6u9+stCfNXGLnTT4zcTtp5hL7u9+sHPA1+rNt2zY7f/58O3/+fHvcccfZb3zjG9Zaa++66y5bVVVlq6qq7L/927/1mjX4jW98w06dOtXOmDEjMZN19+7dFrCzZs2yxx9/vD3++OPtT3/6U2ttfGbraaedZufPn2+PP/54++yzzyaudd9999lp06bZadOm2fvvvz9RvnjxYjt37lw7Z84ce+WVV9r29nZrrbV79uyxS5YsSdT94he/sNZa++KLL1rAzps3L/H8v//976211jY0NNizzz7bTp8+3Z599tm2sbGxz/tw++2395rlWlNTY9/znvfYefPm2bPPPtvu3LnTWmvtqlWr7MSJE21m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\n", + "text/plain": [ + "<Figure size 720x576 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10,8))\n", + "sns.scatterplot(x=\"TIME_MS\", y=\"SUM_PROXIMITY_KMS\", hue='EAN', data=test_1[test_1.MEASUREMENT == 28])\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "NastÄpnie tworzymy intuicyjny podziaĹ na zbiĂłr testowy i treningowy: pomiary przed godzinÄ 10.30 traktujemy jako zbiĂłr treningowy, natomiast te po godzinie 10.30 - jako zbiĂłr testowy." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "train = df[df.TIMESTAMP <= '2021-10-26T10:30:00.000']\n", + "train = train[['SUM_PROXIMITY_KMS','TIME_MS', 'EAN', 'MEASUREMENT','StyleColor', 'EPC']]\n", + "test = df[df.TIMESTAMP > '2021-10-26T10:30:00.000']\n", + "test = test[['SUM_PROXIMITY_KMS','TIME_MS', 'EAN', 'MEASUREMENT','StyleColor', 'EPC']]" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "\n", + "from sklearn.cluster import DBSCAN\n", + "from sklearn import metrics\n", + "from sklearn.datasets import make_blobs\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.preprocessing import normalize\n", + "from sklearn.neighbors import NearestNeighbors\n", + "import plotly.express as px\n", + "from kneed import KneeLocator" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "#zbiĂłr testowy dla kilku stylokolorĂłw\n", + "test0 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & ((df.StyleColor == 'RH797-81X') | (df.StyleColor == 'SL171-99X') \n", + " | (df.StyleColor == 'RH797-59X'))]\n", + "caly1 = test0[['SUM_PROXIMITY_KMS','TIME_MS', 'EAN', 'MEASUREMENT','StyleColor', 'EPC']]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "def c1(x, g, d, c):\n", + " outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", + " for j in x.StyleColor.unique():\n", + " DF = x[(x.StyleColor == j)]\n", + " measurements = DF.MEASUREMENT.unique()\n", + "\n", + " for i in measurements:\n", + " proba = DF[ DF.MEASUREMENT == i ]\n", + " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", + " minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)\n", + " neighbors = max(2,minimal_epc.astype(int))\n", + "\n", + " if minimal_epc > g:\n", + " minimal_epc = g\n", + " neighbors = g\n", + " \n", + " X_embedded = proba[['TIME_MS','SUM_PROXIMITY_KMS']]\n", + " nbrs = NearestNeighbors(n_neighbors=neighbors ).fit(X_embedded)\n", + " distances, indices = nbrs.kneighbors(X_embedded)\n", + " distance_desc = sorted(distances[:,neighbors-1], reverse=True)\n", + "\n", + " kneedle = KneeLocator(range(1,len(distance_desc)+1), #x values\n", + " distance_desc, # y values\n", + " S=1.0, #parameter suggested from paper\n", + " curve=\"convex\", #parameter from figure\n", + " direction=\"decreasing\") #parameter from figure\n", + "\n", + " eps = max(6000,kneedle.knee_y/d)\n", + "\n", + " db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='auto')\n", + " db.fit(X)\n", + " y_pred = db.fit_predict(X)\n", + " clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + " calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", + "\n", + " if db.labels_[db.labels_ == -1].size != 0 :\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > c*proba[proba['EPC'] == b].count()[0] :\n", + " outliery = outliery.append({'MEASUREMENT': i, 'EAN':proba[proba['EPC'] == b].EAN.iloc[0], \n", + " 'StyleColor':j}, ignore_index = True)\n", + "\n", + "\n", + " return(outliery)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "#zbiĂłr testowy dla kilku stylokolorĂłw \n", + "train1 = train[(train.StyleColor == 'RH267-85J') | (train.StyleColor == 'RJ369-87X') | (train.StyleColor =='RM119-93X') \n", + " | (train.StyleColor == 'RS483-99X') | (train.StyleColor == 'SB281-90M')]\n", + "\n", + "train2 = train[(train.StyleColor == 'RV167-MLC') | (train.StyleColor == 'RV462-87X') | (train.StyleColor =='QJ677-33X') \n", + " | (train.StyleColor == 'RH797-00X') | (train.StyleColor == 'RH267-55J')]\n", + "\n", + "train3 = train[(train.StyleColor == 'SL171-99X') | (train.StyleColor == 'SO133-09M') | (train.StyleColor =='RB254-00X') \n", + " | (train.StyleColor == 'SF078-MLC') | (train.StyleColor == 'QY337-00X')]\n", + "\n", + "train4 = train[(train.StyleColor == 'SP095-59X') | (train.StyleColor == 'RN633-00X') | (train.StyleColor =='RH267-59J') \n", + " | (train.StyleColor == 'RV167-87X')]\n", + "\n", + "train5 = train[(train.StyleColor == 'RJ365-09M') | (train.StyleColor == 'RH797-59X') | (train.StyleColor =='SP090-90X') \n", + " | (train.StyleColor == 'RH797-99X') | (train.StyleColor == 'RJ371-59M')]\n", + "\n", + "train6 = train[(train.StyleColor == 'RV462-99X') | (train.StyleColor == 'RH797-81X') | (train.StyleColor =='QZ555-20X') \n", + " | (train.StyleColor == 'RJ371-53M') | (train.StyleColor == 'RS054-99X')]" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "# Wybrane StyleColor\n", + "z1 = test[(test.StyleColor == 'RH267-85J') | (test.StyleColor == 'RJ369-87X') | (test.StyleColor =='RM119-93X') \n", + " | (test.StyleColor == 'RS483-99X') | (test.StyleColor == 'SB281-90M')]\n", + "\n", + "z2 = test[(test.StyleColor == 'RV167-MLC') | (test.StyleColor == 'RV462-87X') | (test.StyleColor =='QJ677-33X') \n", + " | (test.StyleColor == 'RH797-00X') | (test.StyleColor == 'RH267-55J')]\n", + "\n", + "z3 = test[(test.StyleColor == 'SL171-99X') | (test.StyleColor == 'SO133-09M') | (test.StyleColor =='RB254-00X') \n", + " | (test.StyleColor == 'SF078-MLC') | (test.StyleColor == 'QY337-00X')]\n", + "\n", + "z4 = test[(test.StyleColor == 'SP095-59X') | (test.StyleColor == 'RN633-00X') | (test.StyleColor =='RH267-59J') \n", + " | (test.StyleColor == 'RV167-87X') | (test.StyleColor == 'RK485-99X')]\n", + "\n", + "z5 = test[(test.StyleColor == 'RJ365-09M') | (test.StyleColor == 'RH797-59X') | (test.StyleColor =='SP090-90X') \n", + " | (test.StyleColor == 'RH797-99X') | (test.StyleColor == 'RJ371-59M')]\n", + "\n", + "z6 = test[(test.StyleColor == 'RV462-99X') | (test.StyleColor == 'RH797-81X') | (test.StyleColor =='QZ555-20X') \n", + " | (test.StyleColor == 'RJ371-53M') | (test.StyleColor == 'RS054-99X')]" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "u = train[(train.StyleColor == 'RV462-99X') | (train.StyleColor == 'RH797-81X') | (train.StyleColor =='SL171-99X')]\n", + "t = test[(test.StyleColor == 'RV462-99X') | (test.StyleColor == 'RH797-81X') | (test.StyleColor =='SL171-99X')]" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 21 5902805820447 RH797-81X\n", + "1 24 5902805820447 RH797-81X\n", + "2 26 5902805820447 RH797-81X\n", + "3 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(u)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 38 5902851414515 SL171-99X\n", + "1 29 5902805820447 RH797-81X\n", + "2 32 5902805820447 RH797-81X\n", + "3 34 5902805820447 RH797-81X" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(t)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [MEASUREMENT, EAN, StyleColor]\n", + "Index: []" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train1)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [MEASUREMENT, EAN, StyleColor]\n", + "Index: []" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train2)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>18</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>11</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>11</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 18 5902851852638 SO133-09M\n", + "1 11 5902690542745 QY337-00X\n", + "2 11 5902690542769 QY337-00X" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train3)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [MEASUREMENT, EAN, StyleColor]\n", + "Index: []" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train4)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [MEASUREMENT, EAN, StyleColor]\n", + "Index: []" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train5)" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 21 5902805820447 RH797-81X\n", + "1 24 5902805820447 RH797-81X\n", + "2 26 5902805820447 RH797-81X\n", + "3 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 74, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train6)" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 29 5902805820447 RH797-81X\n", + "1 32 5902805820447 RH797-81X\n", + "2 34 5902805820447 RH797-81X" + ] + }, + "execution_count": 75, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(z6)" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>11</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>11</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 11 5902690542745 QY337-00X\n", + "1 11 5902690542769 QY337-00X\n", + "2 21 5902805820447 RH797-81X\n", + "3 26 5902805820447 RH797-81X\n", + "4 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 68, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 29 5902805820447 RH797-81X\n", + "1 32 5902805820447 RH797-81X\n", + "2 34 5902805820447 RH797-81X" + ] + }, + "execution_count": 67, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>18</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>11</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>11</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 18 5902851852638 SO133-09M\n", + "1 11 5902690542745 QY337-00X\n", + "2 11 5902690542769 QY337-00X\n", + "3 21 5902805820447 RH797-81X\n", + "4 24 5902805820447 RH797-81X\n", + "5 26 5902805820447 RH797-81X\n", + "6 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 92, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train,70,6,0.5)" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>42</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>38</td>\n", + " <td>5902851445700</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>35</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>42</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>42</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>42</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>42</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>38</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>42</td>\n", + " <td>5902975236956</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>38</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>42</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 42 5902805533040 RH267-85J\n", + "1 38 5902851414515 SL171-99X\n", + "2 38 5902851445700 RS483-99X\n", + "3 35 5902690542769 QY337-00X\n", + "4 42 5902690542769 QY337-00X\n", + "5 42 5902690542745 QY337-00X\n", + "6 42 5902690542769 QY337-00X\n", + "7 29 5902805820447 RH797-81X\n", + "8 32 5902805820447 RH797-81X\n", + "9 34 5902805820447 RH797-81X\n", + "10 42 5902805820447 RH797-81X\n", + "11 38 5902975236994 SF078-MLC\n", + "12 42 5902975236956 SF078-MLC\n", + "13 38 5902851852614 SO133-09M\n", + "14 38 5902851852638 SO133-09M\n", + "15 38 5902851852638 SO133-09M\n", + "16 42 5902851852638 SO133-09M\n", + "17 42 5902851852614 SO133-09M\n", + "18 42 5902851852638 SO133-09M" + ] + }, + "execution_count": 95, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(test,70,6,0.4)" + ] + }, + { + "cell_type": "code", + "execution_count": 268, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>22</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>25</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>30</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 22 5902805820447 RH797-81X\n", + "1 25 5902805820447 RH797-81X\n", + "2 24 5902805820447 RH797-81X\n", + "3 26 5902805820447 RH797-81X\n", + "4 30 5902805820447 RH797-81X\n", + "5 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 268, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(caly1,0.7)" + ] + }, + { + "cell_type": "code", + "execution_count": 225, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>22</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>25</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>30</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 22 5902805820447 RH797-81X\n", + "1 21 5902805820447 RH797-81X\n", + "2 25 5902805820447 RH797-81X\n", + "3 24 5902805820447 RH797-81X\n", + "4 26 5902805820447 RH797-81X\n", + "5 30 5902805820447 RH797-81X\n", + "6 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 225, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(caly1, 0.5)" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [MEASUREMENT, EAN, StyleColor]\n", + "Index: []" + ] + }, + "execution_count": 84, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(z1)" + ] + }, + { + "cell_type": "code", + "execution_count": 183, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>38</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>42</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 38 5902851414515 SL171-99X\n", + "1 29 5902805820447 RH797-81X\n", + "2 32 5902805820447 RH797-81X\n", + "3 34 5902805820447 RH797-81X\n", + "4 38 5902851852614 SO133-09M\n", + "5 38 5902851852638 SO133-09M\n", + "6 42 5902851852638 SO133-09M\n", + "7 42 5902851852614 SO133-09M\n", + "8 42 5902851852638 SO133-09M" + ] + }, + "execution_count": 183, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 186, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>38</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>42</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 38 5902851414515 SL171-99X\n", + "1 29 5902805820447 RH797-81X\n", + "2 32 5902805820447 RH797-81X\n", + "3 34 5902805820447 RH797-81X\n", + "4 38 5902851852614 SO133-09M\n", + "5 38 5902851852638 SO133-09M\n", + "6 42 5902851852638 SO133-09M\n", + "7 42 5902851852614 SO133-09M\n", + "8 42 5902851852638 SO133-09M" + ] + }, + "execution_count": 186, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": {}, + "outputs": [], + "source": [ + "def c2(x):\n", + " outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", + " for j in x.StyleColor.unique():\n", + " DF = x[(x.StyleColor == j)]\n", + " measurements = DF.MEASUREMENT.unique()\n", + "\n", + " for i in measurements:\n", + " proba = DF[ DF.MEASUREMENT == i ]\n", + " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", + " minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)\n", + " neighbors = max(20,minimal_epc.astype(int))\n", + " \n", + " if minimal_epc > 70:\n", + " minimal_epc = 70\n", + " neighbors = 70\n", + " \n", + " X_embedded = proba[['TIME_MS','SUM_PROXIMITY_KMS']]\n", + " nbrs = NearestNeighbors(n_neighbors=neighbors ).fit(X_embedded)\n", + " distances, indices = nbrs.kneighbors(X_embedded)\n", + " distance_desc = sorted(distances[:,neighbors-1], reverse=True)\n", + "\n", + " kneedle = KneeLocator(range(1,len(distance_desc)+1), #x values\n", + " distance_desc, # y values\n", + " S=1.0, #parameter suggested from paper\n", + " curve=\"convex\", #parameter from figure\n", + " direction=\"decreasing\") #parameter from figure\n", + "\n", + " eps = max(5000,kneedle.knee_y/5)\n", + "\n", + " db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='auto')\n", + " db.fit(X)\n", + " y_pred = db.fit_predict(X)\n", + " clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + " calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", + "\n", + " if db.labels_[db.labels_ == -1].size != 0 :\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > 0.3*proba[proba['EPC'] == b].count()[0] :\n", + " outliery = outliery.append({'MEASUREMENT': i, 'EAN':proba[proba['EPC'] == b].EAN.iloc[0], \n", + " 'StyleColor':j}, ignore_index = True)\n", + "\n", + "\n", + " return(outliery)" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>24</td>\n", + " <td>5902805820461</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>24</td>\n", + " <td>5902805820461</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>27</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 21 5902805820447 RH797-81X\n", + "1 24 5902805820447 RH797-81X\n", + "2 24 5902805820461 RH797-81X\n", + "3 24 5902805820447 RH797-81X\n", + "4 24 5902805820461 RH797-81X\n", + "5 26 5902805820447 RH797-81X\n", + "6 27 5902805820447 RH797-81X\n", + "7 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(train6)" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>42</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 29 5902805820447 RH797-81X\n", + "1 32 5902805820447 RH797-81X\n", + "2 34 5902805820447 RH797-81X\n", + "3 42 5902805820447 RH797-81X" + ] + }, + "execution_count": 71, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(z6)" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>18</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>11</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>11</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 18 5902851852638 SO133-09M\n", + "1 11 5902690542745 QY337-00X\n", + "2 11 5902690542769 QY337-00X\n", + "3 21 5902805820447 RH797-81X\n", + "4 24 5902805820447 RH797-81X\n", + "5 26 5902805820447 RH797-81X\n", + "6 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>42</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>42</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>38</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>42</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 38 5902851414515 SL171-99X\n", + "1 42 5902690542769 QY337-00X\n", + "2 42 5902690542745 QY337-00X\n", + "3 29 5902805820447 RH797-81X\n", + "4 32 5902805820447 RH797-81X\n", + "5 34 5902805820447 RH797-81X\n", + "6 38 5902851852614 SO133-09M\n", + "7 38 5902851852638 SO133-09M\n", + "8 38 5902851852638 SO133-09M\n", + "9 42 5902851852638 SO133-09M\n", + "10 42 5902851852614 SO133-09M\n", + "11 42 5902851852638 SO133-09M" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "outputs": [], + "source": [ + "# najlepszy model\n", + "def c6(x):\n", + " outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EPC', 'StyleColor'])\n", + " for j in x.StyleColor.unique():\n", + " DF = x[(x.StyleColor == j)]\n", + " measurements = DF.MEASUREMENT.unique()\n", + "\n", + " for i in measurements:\n", + " proba = DF[ DF.MEASUREMENT == i ]\n", + " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", + " minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)\n", + " neighbors = max(10,minimal_epc.astype(int))\n", + " \n", + " if minimal_epc > 70:\n", + " minimal_epc = 70\n", + " neighbors = 70\n", + " \n", + " X_embedded = proba[['TIME_MS','SUM_PROXIMITY_KMS']]\n", + " nbrs = NearestNeighbors(n_neighbors=neighbors ).fit(X_embedded)\n", + " distances, indices = nbrs.kneighbors(X_embedded)\n", + " distance_desc = sorted(distances[:,neighbors-1], reverse=True)\n", + "\n", + " kneedle = KneeLocator(range(1,len(distance_desc)+1), #x values\n", + " distance_desc, # y values\n", + " S=1.0, #parameter suggested from paper\n", + " curve=\"convex\", #parameter from figure\n", + " direction=\"decreasing\") #parameter from figure\n", + "\n", + " eps = max(2000,kneedle.knee_y/3)\n", + "\n", + " db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='auto')\n", + " db.fit(X)\n", + " y_pred = db.fit_predict(X)\n", + " clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + " calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", + "\n", + " if db.labels_[db.labels_ == -1].size != 0 :\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > 0.4*proba[proba['EPC'] == b].count()[0] :\n", + " outliery = outliery.append({'MEASUREMENT': i, 'EPC':proba[proba['EPC'] == b].EPC.iloc[0], \n", + " 'StyleColor':j}, ignore_index = True)\n", + "\n", + "\n", + " return(outliery)" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [], + "source": [ + "train7 = train[(train.StyleColor == 'SF078-MLC') | (train.StyleColor == 'RH797-81X') | (train.StyleColor == 'SL171-99X')]\n", + "test7 = test[(test.StyleColor == 'SF078-MLC') | (test.StyleColor == 'RH797-81X') | (test.StyleColor == 'SL171-99X')]" + ] + }, + { + "cell_type": "code", + "execution_count": 123, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th></th>\n", + " <th>SUM_PROXIMITY_KMS</th>\n", + " <th>TIME_MS</th>\n", + " <th>EAN</th>\n", + " <th>MEASUREMENT</th>\n", + " </tr>\n", + " <tr>\n", + " <th>StyleColor</th>\n", + " <th>EPC</th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th rowspan=\"5\" valign=\"top\">RH797-81X</th>\n", + " <th>3035684754501F0000B5B614</th>\n", + " <td>1699</td>\n", + " <td>1699</td>\n", + " <td>1699</td>\n", + " <td>1699</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3035684754501F0000B5B632</th>\n", + " <td>1393</td>\n", + " <td>1393</td>\n", + " <td>1393</td>\n", + " <td>1393</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3035684754501F4000B5B6E5</th>\n", + " <td>1646</td>\n", + " <td>1646</td>\n", + " <td>1646</td>\n", + " <td>1646</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3035684754501F8000B5B6A5</th>\n", + " <td>1329</td>\n", + " <td>1329</td>\n", + " <td>1329</td>\n", + " <td>1329</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3035684754501F8000B5B6E6</th>\n", + " <td>1625</td>\n", + " <td>1625</td>\n", + " <td>1625</td>\n", + " <td>1625</td>\n", + " </tr>\n", + " <tr>\n", + " <th rowspan=\"4\" valign=\"top\">SF078-MLC</th>\n", + " <th>30356849FC1723C000B5B1A3</th>\n", + " <td>934</td>\n", + " <td>934</td>\n", + " <td>934</td>\n", + " <td>934</td>\n", + " </tr>\n", + " <tr>\n", + " <th>30356849FC17244000B59A90</th>\n", + " <td>1187</td>\n", + " <td>1187</td>\n", + " <td>1187</td>\n", + " <td>1187</td>\n", + " </tr>\n", + " <tr>\n", + " <th>30356849FC1724C000B599A7</th>\n", + " <td>1108</td>\n", + " <td>1108</td>\n", + " <td>1108</td>\n", + " <td>1108</td>\n", + " </tr>\n", + " <tr>\n", + " <th>30356849FC1724C000B59A42</th>\n", + " <td>1179</td>\n", + " <td>1179</td>\n", + " <td>1179</td>\n", + " <td>1179</td>\n", + " </tr>\n", + " <tr>\n", + " <th rowspan=\"4\" valign=\"top\">SL171-99X</th>\n", + " <th>303568480C287A8000B5BA63</th>\n", + " <td>2191</td>\n", + " <td>2191</td>\n", + " <td>2191</td>\n", + " <td>2191</td>\n", + " </tr>\n", + " <tr>\n", + " <th>303568480C287A8000B5BABD</th>\n", + " <td>785</td>\n", + " <td>785</td>\n", + " <td>785</td>\n", + " <td>785</td>\n", + " </tr>\n", + " <tr>\n", + " <th>303568480C287A8000B5BADA</th>\n", + " <td>1241</td>\n", + " <td>1241</td>\n", + " <td>1241</td>\n", + " <td>1241</td>\n", + " </tr>\n", + " <tr>\n", + " <th>303568480C287AC000B5BAD5</th>\n", + " <td>1152</td>\n", + " <td>1152</td>\n", + " <td>1152</td>\n", + " <td>1152</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " SUM_PROXIMITY_KMS TIME_MS EAN \\\n", + "StyleColor EPC \n", + "RH797-81X 3035684754501F0000B5B614 1699 1699 1699 \n", + " 3035684754501F0000B5B632 1393 1393 1393 \n", + " 3035684754501F4000B5B6E5 1646 1646 1646 \n", + " 3035684754501F8000B5B6A5 1329 1329 1329 \n", + " 3035684754501F8000B5B6E6 1625 1625 1625 \n", + "SF078-MLC 30356849FC1723C000B5B1A3 934 934 934 \n", + " 30356849FC17244000B59A90 1187 1187 1187 \n", + " 30356849FC1724C000B599A7 1108 1108 1108 \n", + " 30356849FC1724C000B59A42 1179 1179 1179 \n", + "SL171-99X 303568480C287A8000B5BA63 2191 2191 2191 \n", + " 303568480C287A8000B5BABD 785 785 785 \n", + " 303568480C287A8000B5BADA 1241 1241 1241 \n", + " 303568480C287AC000B5BAD5 1152 1152 1152 \n", + "\n", + " MEASUREMENT \n", + "StyleColor EPC \n", + "RH797-81X 3035684754501F0000B5B614 1699 \n", + " 3035684754501F0000B5B632 1393 \n", + " 3035684754501F4000B5B6E5 1646 \n", + " 3035684754501F8000B5B6A5 1329 \n", + " 3035684754501F8000B5B6E6 1625 \n", + "SF078-MLC 30356849FC1723C000B5B1A3 934 \n", + " 30356849FC17244000B59A90 1187 \n", + " 30356849FC1724C000B599A7 1108 \n", + " 30356849FC1724C000B59A42 1179 \n", + "SL171-99X 303568480C287A8000B5BA63 2191 \n", + " 303568480C287A8000B5BABD 785 \n", + " 303568480C287A8000B5BADA 1241 \n", + " 303568480C287AC000B5BAD5 1152 " + ] + }, + "execution_count": 123, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train7.groupby(['StyleColor','EPC']).count()" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EPC</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>27</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>28</td>\n", + " <td>30356849FC1724C000B59A42</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>21</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>24</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>27</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>28</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EPC StyleColor\n", + "0 27 303568480C287AC000B5BAD5 SL171-99X\n", + "1 28 30356849FC1724C000B59A42 SF078-MLC\n", + "2 21 3035684754501F0000B5B614 RH797-81X\n", + "3 24 3035684754501F0000B5B614 RH797-81X\n", + "4 27 3035684754501F0000B5B614 RH797-81X\n", + "5 28 3035684754501F0000B5B614 RH797-81X" + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c6(train7)" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EPC</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>32</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>35</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>38</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BA63</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BADA</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BABD</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>41</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>42</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>42</td>\n", + " <td>303568480C287A8000B5BABD</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>29</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>32</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EPC StyleColor\n", + "0 32 303568480C287AC000B5BAD5 SL171-99X\n", + "1 35 303568480C287AC000B5BAD5 SL171-99X\n", + "2 38 303568480C287AC000B5BAD5 SL171-99X\n", + "3 38 303568480C287A8000B5BA63 SL171-99X\n", + "4 38 303568480C287A8000B5BADA SL171-99X\n", + "5 38 303568480C287A8000B5BABD SL171-99X\n", + "6 41 303568480C287AC000B5BAD5 SL171-99X\n", + "7 42 303568480C287AC000B5BAD5 SL171-99X\n", + "8 42 303568480C287A8000B5BABD SL171-99X\n", + "9 29 3035684754501F0000B5B614 RH797-81X\n", + "10 32 3035684754501F0000B5B614 RH797-81X" + ] + }, + "execution_count": 79, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c6(test7)" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>23</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>24</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>24</td>\n", + " <td>5902805820461</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>24</td>\n", + " <td>5902805820461</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>27</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 23 5902975236994 SF078-MLC\n", + "1 24 5902975236994 SF078-MLC\n", + "2 21 5902805820447 RH797-81X\n", + "3 24 5902805820447 RH797-81X\n", + "4 24 5902805820461 RH797-81X\n", + "5 24 5902805820447 RH797-81X\n", + "6 24 5902805820461 RH797-81X\n", + "7 26 5902805820447 RH797-81X\n", + "8 27 5902805820447 RH797-81X\n", + "9 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(train7)" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>32</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>38</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>38</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>38</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>42</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>42</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>42</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>29</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>36</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>38</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>38</td>\n", + " <td>5902975236956</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>40</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>41</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>42</td>\n", + " <td>5902975236956</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 32 5902851414515 SL171-99X\n", + "1 38 5902851414515 SL171-99X\n", + "2 38 5902851414508 SL171-99X\n", + "3 38 5902851414508 SL171-99X\n", + "4 38 5902851414508 SL171-99X\n", + "5 42 5902851414515 SL171-99X\n", + "6 42 5902851414508 SL171-99X\n", + "7 29 5902805820447 RH797-81X\n", + "8 32 5902805820447 RH797-81X\n", + "9 34 5902805820447 RH797-81X\n", + "10 42 5902805820447 RH797-81X\n", + "11 29 5902975236994 SF078-MLC\n", + "12 36 5902975236994 SF078-MLC\n", + "13 38 5902975236994 SF078-MLC\n", + "14 38 5902975236956 SF078-MLC\n", + "15 40 5902975236994 SF078-MLC\n", + "16 41 5902975236994 SF078-MLC\n", + "17 42 5902975236956 SF078-MLC" + ] + }, + "execution_count": 82, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(test7)" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EPC</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>12</td>\n", + " <td>303568480C2B874000B59A39</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>23</td>\n", + " <td>303568480C2B874000B59A39</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>28</td>\n", + " <td>303568480C2B868000B599B2</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>1</td>\n", + " <td>303568480C357A0000B59999</td>\n", + " <td>SB281-90M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>16</td>\n", + " <td>303568480C357A0000B59999</td>\n", + " <td>SB281-90M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>7</td>\n", + " <td>30356847541DA80000B5BA54</td>\n", + " <td>RJ369-87X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>17</td>\n", + " <td>303568480C3455C000B5B30A</td>\n", + " <td>RV167-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>17</td>\n", + " <td>30356847542CCD0000B59A80</td>\n", + " <td>QJ677-33X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>26</td>\n", + " <td>30356847542CCD8000B599FA</td>\n", + " <td>QJ677-33X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>26</td>\n", + " <td>30356847542CCD0000B59A26</td>\n", + " <td>QJ677-33X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>4</td>\n", + " <td>3035684754340CC000B594C3</td>\n", + " <td>RH267-55J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>18</td>\n", + " <td>3035684754340D0000B594EB</td>\n", + " <td>RH267-55J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>18</td>\n", + " <td>3035684754340CC000B594C6</td>\n", + " <td>RH267-55J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>27</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>7</td>\n", + " <td>303568480C5343C000B599F6</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>17</td>\n", + " <td>303568480C5343C000B599C8</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>17</td>\n", + " <td>303568480C53434000B599E1</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>24</td>\n", + " <td>303568480C53434000B599E1</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>24</td>\n", + " <td>30356847540FE2C000B59A68</td>\n", + " <td>RB254-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>19</th>\n", + " <td>28</td>\n", + " <td>30356849FC1724C000B59A42</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>20</th>\n", + " <td>11</td>\n", + " <td>303568458835008000B5BAD1</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>21</th>\n", + " <td>11</td>\n", + " <td>303568458835010000B5BA58</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>22</th>\n", + " <td>19</td>\n", + " <td>303568458835008000B5BAD1</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>23</th>\n", + " <td>19</td>\n", + " <td>303568458835010000B5BA58</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>24</th>\n", + " <td>7</td>\n", + " <td>303568475415740000B5A5CD</td>\n", + " <td>RN633-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>25</th>\n", + " <td>1</td>\n", + " <td>303568475434134000B5B6DF</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>26</th>\n", + " <td>2</td>\n", + " <td>30356847542B6D4000B5B656</td>\n", + " <td>RJ365-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>27</th>\n", + " <td>2</td>\n", + " <td>30356847542B6D0000B5B65A</td>\n", + " <td>RJ365-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>28</th>\n", + " <td>12</td>\n", + " <td>30356849FC1E348000B5B2D4</td>\n", + " <td>SP090-90X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>29</th>\n", + " <td>21</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>30</th>\n", + " <td>24</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>31</th>\n", + " <td>27</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>32</th>\n", + " <td>28</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EPC StyleColor\n", + "0 12 303568480C2B874000B59A39 RS483-99X\n", + "1 23 303568480C2B874000B59A39 RS483-99X\n", + "2 28 303568480C2B868000B599B2 RS483-99X\n", + "3 1 303568480C357A0000B59999 SB281-90M\n", + "4 16 303568480C357A0000B59999 SB281-90M\n", + "5 7 30356847541DA80000B5BA54 RJ369-87X\n", + "6 17 303568480C3455C000B5B30A RV167-MLC\n", + "7 17 30356847542CCD0000B59A80 QJ677-33X\n", + "8 26 30356847542CCD8000B599FA QJ677-33X\n", + "9 26 30356847542CCD0000B59A26 QJ677-33X\n", + "10 4 3035684754340CC000B594C3 RH267-55J\n", + "11 18 3035684754340D0000B594EB RH267-55J\n", + "12 18 3035684754340CC000B594C6 RH267-55J\n", + "13 27 303568480C287AC000B5BAD5 SL171-99X\n", + "14 7 303568480C5343C000B599F6 SO133-09M\n", + "15 17 303568480C5343C000B599C8 SO133-09M\n", + "16 17 303568480C53434000B599E1 SO133-09M\n", + "17 24 303568480C53434000B599E1 SO133-09M\n", + "18 24 30356847540FE2C000B59A68 RB254-00X\n", + "19 28 30356849FC1724C000B59A42 SF078-MLC\n", + "20 11 303568458835008000B5BAD1 QY337-00X\n", + "21 11 303568458835010000B5BA58 QY337-00X\n", + "22 19 303568458835008000B5BAD1 QY337-00X\n", + "23 19 303568458835010000B5BA58 QY337-00X\n", + "24 7 303568475415740000B5A5CD RN633-00X\n", + "25 1 303568475434134000B5B6DF RH267-59J\n", + "26 2 30356847542B6D4000B5B656 RJ365-09M\n", + "27 2 30356847542B6D0000B5B65A RJ365-09M\n", + "28 12 30356849FC1E348000B5B2D4 SP090-90X\n", + "29 21 3035684754501F0000B5B614 RH797-81X\n", + "30 24 3035684754501F0000B5B614 RH797-81X\n", + "31 27 3035684754501F0000B5B614 RH797-81X\n", + "32 28 3035684754501F0000B5B614 RH797-81X" + ] + }, + "execution_count": 83, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c6(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EPC</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>42</td>\n", + " <td>3035684754340E0000B594E8</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>32</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>35</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>38</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BA63</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BADA</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BABD</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>41</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>42</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>42</td>\n", + " <td>303568480C287A8000B5BABD</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>38</td>\n", + " <td>303568480C2B868000B599B2</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>38</td>\n", + " <td>303568480C34548000B5B2B5</td>\n", + " <td>RV167-87X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>42</td>\n", + " <td>303568458835010000B5BA58</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>42</td>\n", + " <td>303568458835008000B5BAD1</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>32</td>\n", + " <td>30356847541DA80000B5BA54</td>\n", + " <td>RJ369-87X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>29</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>32</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>29</td>\n", + " <td>303568475415744000B599FE</td>\n", + " <td>RN633-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>39</td>\n", + " <td>303568480C5343C000B599F6</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>19</th>\n", + " <td>42</td>\n", + " <td>303568480C5343C000B599F6</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>20</th>\n", + " <td>42</td>\n", + " <td>303568480C53434000B599E1</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>21</th>\n", + " <td>42</td>\n", + " <td>303568480C5343C000B599C8</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>22</th>\n", + " <td>35</td>\n", + " <td>303568475450218000B59781</td>\n", + " <td>RH797-00X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EPC StyleColor\n", + "0 42 3035684754340E0000B594E8 RH267-85J\n", + "1 32 303568480C287AC000B5BAD5 SL171-99X\n", + "2 35 303568480C287AC000B5BAD5 SL171-99X\n", + "3 38 303568480C287AC000B5BAD5 SL171-99X\n", + "4 38 303568480C287A8000B5BA63 SL171-99X\n", + "5 38 303568480C287A8000B5BADA SL171-99X\n", + "6 38 303568480C287A8000B5BABD SL171-99X\n", + "7 41 303568480C287AC000B5BAD5 SL171-99X\n", + "8 42 303568480C287AC000B5BAD5 SL171-99X\n", + "9 42 303568480C287A8000B5BABD SL171-99X\n", + "10 38 303568480C2B868000B599B2 RS483-99X\n", + "11 38 303568480C34548000B5B2B5 RV167-87X\n", + "12 42 303568458835010000B5BA58 QY337-00X\n", + "13 42 303568458835008000B5BAD1 QY337-00X\n", + "14 32 30356847541DA80000B5BA54 RJ369-87X\n", + "15 29 3035684754501F0000B5B614 RH797-81X\n", + "16 32 3035684754501F0000B5B614 RH797-81X\n", + "17 29 303568475415744000B599FE RN633-00X\n", + "18 39 303568480C5343C000B599F6 SO133-09M\n", + "19 42 303568480C5343C000B599F6 SO133-09M\n", + "20 42 303568480C53434000B599E1 SO133-09M\n", + "21 42 303568480C5343C000B599C8 SO133-09M\n", + "22 35 303568475450218000B59781 RH797-00X" + ] + }, + "execution_count": 84, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c6(test)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/DBSCAN_1-zmiany_df-Copy1.ipynb b/DBSCAN_1-zmiany_df-Copy1.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..c73e7893e86dd37c1a2996f67821d22991bfcc2a --- /dev/null +++ b/DBSCAN_1-zmiany_df-Copy1.ipynb @@ -0,0 +1,7725 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pyodbc\n", + "import pandas as pd\n", + "from sqlalchemy import create_engine\n", + "import urllib\n", + "import seaborn as sns\n", + "from matplotlib import pyplot as plt\n", + "import numpy as np\n", + "import random" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "params = urllib.parse.quote_plus(\"DRIVER={ODBC Driver 17 for SQL Server};\"\n", + " #\"SERVER=dbserver.mif.pg.gda.pl,1433;\"\n", + " \"SERVER=127.0.0.1,1433;\"\n", + " \"DATABASE=silkycoders;\"\n", + " \"UID=;\"\n", + " \"PWD=\")\n", + "\n", + "engine = create_engine(\"mssql+pyodbc:///?odbc_connect={}\".format(params))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "query = \"\"\"SELECT rfid.*, it.*, sub.*, cl.*, dep.*, br.*\n", + " FROM rfid.Logs rfid \n", + " JOIN rfid.EanEpc ean \n", + " ON rfid.EPC = ean.EPC \n", + " JOIN dw.Item it \n", + " ON ean.EAN = it.EAN \n", + " JOIN dw.Subclass sub \n", + " ON sub.SubclassID = it.SubclassID\n", + " JOIN dw.Class cl\n", + " ON sub.ClassID = cl.ClassID\n", + " JOIN dw.Department dep\n", + " ON dep.DepartmentID = cl.DepartmentID\n", + " JOIN dw.Brand br\n", + " ON dep.BrandID = br.BrandID\"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_sql_query(query, engine)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def prepare_timestamp(df : pd.DataFrame):\n", + " \n", + " dt = df.sort_values(by=\"TIMESTAMP\").reset_index(drop=True)\n", + " dt[\"HOUR\"] = dt.TIMESTAMP.astype('datetime64[ns]').dt.hour.astype(int)\n", + " dt[\"MIN\"] = dt.TIMESTAMP.astype('datetime64[ns]').dt.minute.astype(int)\n", + " dt[\"SEC\"] = dt.TIMESTAMP.astype('datetime64[ns]').dt.second.astype(int)\n", + " dt[\"MICROSEC\"] = dt.TIMESTAMP.astype('datetime64[ns]').dt.microsecond.astype(int)\n", + "\n", + " dt[\"MILISEC\"] = dt.MICROSEC/1000 + dt.SEC*1000 + dt.MIN*60000 + dt.HOUR*3600000\n", + " dt[\"TIME_MS\"] = dt.MILISEC - dt.MILISEC[0]\n", + " \n", + " dt['TIME_PER_MEASUREMENT_MS'] = 0\n", + " dt['NUMBER_OF_SIGNALS'] = 0\n", + " dt['LENGTH_OF_MEASUREMENT'] = 0\n", + " \n", + " for m in dt.MEASUREMENT.unique():\n", + " filtr = (dt.MEASUREMENT == m)\n", + " dt.loc[filtr,'TIME_PER_MEASUREMENT_MS'] = dt[filtr].MILISEC - dt[filtr].MILISEC.iloc[0]\n", + " dt.loc[filtr, \"NUMBER_OF_SIGNALS\"] = len(dt[filtr])\n", + " dt.loc[filtr, 'LENGTH_OF_MEASUREMENT'] = dt[filtr].TIME_PER_MEASUREMENT_MS.max()\n", + " \n", + " dt[\"TIME_KMS\"] = np.floor(dt.TIME_MS/1000) \n", + " dt = dt.merge(dt.groupby(['EPC','TIME_KMS'])[\"PROXIMITY\"].max().reset_index(name=\"MAX_PROXIMITY_KMS\"), how=\"left\",\n", + " on = ['EPC','TIME_KMS'])\n", + " dt = dt.merge(dt.groupby(['EPC','TIME_KMS'])[\"PROXIMITY\"].sum().reset_index(name=\"SUM_PROXIMITY_KMS\"), how=\"left\",\n", + " on = ['EPC','TIME_KMS'])\n", + " return dt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df = prepare_timestamp(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv('df.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "<class 'pandas.core.frame.DataFrame'>\n", + "RangeIndex: 502689 entries, 0 to 502688\n", + "Data columns (total 36 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 EPC 502689 non-null object \n", + " 1 PROXIMITY 502689 non-null float64\n", + " 2 TIMESTAMP 502689 non-null object \n", + " 3 MEASUREMENT 502689 non-null int64 \n", + " 4 ITEMID 502689 non-null int64 \n", + " 5 EAN 502689 non-null int64 \n", + " 6 StyleColorSize 502689 non-null object \n", + " 7 StyleColor 502689 non-null object \n", + " 8 Size 502689 non-null object \n", + " 9 SubclassID 502689 non-null int64 \n", + " 10 ItemSeason 502689 non-null object \n", + " 11 FashionLevel 369997 non-null object \n", + " 12 SubclassID.1 502689 non-null int64 \n", + " 13 SubclassName 502689 non-null object \n", + " 14 ClassID 502689 non-null int64 \n", + " 15 ClassID.1 502689 non-null int64 \n", + " 16 ClassName 502689 non-null object \n", + " 17 DepartmentID 502689 non-null int64 \n", + " 18 DepartmentID.1 502689 non-null int64 \n", + " 19 DepartmentName 502689 non-null object \n", + " 20 BrandID 502689 non-null int64 \n", + " 21 BrandID.1 502689 non-null int64 \n", + " 22 BrandName 502689 non-null object \n", + " 23 Active 502689 non-null bool \n", + " 24 HOUR 502689 non-null int64 \n", + " 25 MIN 502689 non-null int64 \n", + " 26 SEC 502689 non-null int64 \n", + " 27 MICROSEC 502689 non-null int64 \n", + " 28 MILISEC 502689 non-null float64\n", + " 29 TIME_MS 502689 non-null float64\n", + " 30 TIME_PER_MEASUREMENT_MS 502689 non-null float64\n", + " 31 NUMBER_OF_SIGNALS 502689 non-null int64 \n", + " 32 LENGTH_OF_MEASUREMENT 502689 non-null int64 \n", + " 33 TIME_KMS 502689 non-null float64\n", + " 34 MAX_PROXIMITY_KMS 502689 non-null float64\n", + " 35 SUM_PROXIMITY_KMS 502689 non-null float64\n", + "dtypes: bool(1), float64(7), int64(17), object(11)\n", + "memory usage: 134.7+ MB\n" + ] + } + ], + "source": [ + "df.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>PROXIMITY</th>\n", + " <th>MEASUREMENT</th>\n", + " <th>ITEMID</th>\n", + " <th>EAN</th>\n", + " <th>SubclassID</th>\n", + " <th>SubclassID.1</th>\n", + " <th>ClassID</th>\n", + " <th>ClassID.1</th>\n", + " <th>DepartmentID</th>\n", + " <th>DepartmentID.1</th>\n", + " <th>...</th>\n", + " <th>SEC</th>\n", + " <th>MICROSEC</th>\n", + " <th>MILISEC</th>\n", + " <th>TIME_MS</th>\n", + " <th>TIME_PER_MEASUREMENT_MS</th>\n", + " <th>NUMBER_OF_SIGNALS</th>\n", + " <th>LENGTH_OF_MEASUREMENT</th>\n", + " <th>TIME_KMS</th>\n", + " <th>MAX_PROXIMITY_KMS</th>\n", + " <th>SUM_PROXIMITY_KMS</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>count</th>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>5.026890e+05</td>\n", + " <td>5.026890e+05</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>...</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>5.026890e+05</td>\n", + " <td>5.026890e+05</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.00000</td>\n", + " <td>502689.000000</td>\n", + " <td>502689.000000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>mean</th>\n", + " <td>-75.406017</td>\n", + " <td>23.412382</td>\n", + " <td>2.169862e+06</td>\n", + " <td>5.902835e+12</td>\n", + " <td>83.920704</td>\n", + " <td>83.920704</td>\n", + " <td>18.231477</td>\n", + " <td>18.231477</td>\n", + " <td>2.609574</td>\n", + " <td>2.609574</td>\n", + " <td>...</td>\n", + " <td>29.193547</td>\n", + " <td>499773.110213</td>\n", + " <td>3.721192e+07</td>\n", + " <td>2.018186e+06</td>\n", + " <td>100132.210719</td>\n", + " <td>15383.906986</td>\n", + " <td>199835.398777</td>\n", + " <td>2017.68607</td>\n", + " <td>-72.497318</td>\n", + " <td>-398.108291</td>\n", + " </tr>\n", + " <tr>\n", + " <th>std</th>\n", + " <td>5.698062</td>\n", + " <td>12.175284</td>\n", + " <td>7.798483e+04</td>\n", + " <td>7.380986e+07</td>\n", + " <td>142.489244</td>\n", + " <td>142.489244</td>\n", + " <td>8.844056</td>\n", + " <td>8.844056</td>\n", + " <td>0.937828</td>\n", + " <td>0.937828</td>\n", + " <td>...</td>\n", + " <td>17.223297</td>\n", + " <td>288469.414710</td>\n", + " <td>1.121487e+06</td>\n", + " <td>1.121487e+06</td>\n", + " <td>81859.831696</td>\n", + " <td>8217.121271</td>\n", + " <td>101049.072703</td>\n", + " <td>1121.48684</td>\n", + " <td>5.893956</td>\n", + " <td>262.167663</td>\n", + " </tr>\n", + " <tr>\n", + " <th>min</th>\n", + " <td>-110.000000</td>\n", + " <td>1.000000</td>\n", + " <td>2.028742e+06</td>\n", + " <td>5.902691e+12</td>\n", + " <td>10.000000</td>\n", + " <td>10.000000</td>\n", + " <td>10.000000</td>\n", + " <td>10.000000</td>\n", + " <td>2.000000</td>\n", + " <td>2.000000</td>\n", + " <td>...</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>3.519374e+07</td>\n", + " <td>0.000000e+00</td>\n", + " <td>0.000000</td>\n", + " <td>4597.000000</td>\n", + " <td>53538.000000</td>\n", + " <td>0.00000</td>\n", + " <td>-100.500000</td>\n", + " <td>-2629.400000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>25%</th>\n", + " <td>-79.900000</td>\n", + " <td>13.000000</td>\n", + " <td>2.113407e+06</td>\n", + " <td>5.902805e+12</td>\n", + " <td>11.000000</td>\n", + " <td>11.000000</td>\n", + " <td>10.000000</td>\n", + " <td>10.000000</td>\n", + " <td>2.000000</td>\n", + " <td>2.000000</td>\n", + " <td>...</td>\n", + " <td>14.000000</td>\n", + " <td>250000.000000</td>\n", + " <td>3.624898e+07</td>\n", + " <td>1.055248e+06</td>\n", + " <td>38108.000000</td>\n", + " <td>8533.000000</td>\n", + " <td>127122.000000</td>\n", + " <td>1055.00000</td>\n", + " <td>-76.400000</td>\n", + " <td>-515.900000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>50%</th>\n", + " <td>-75.700000</td>\n", + " <td>24.000000</td>\n", + " <td>2.155604e+06</td>\n", + " <td>5.902806e+12</td>\n", + " <td>82.000000</td>\n", + " <td>82.000000</td>\n", + " <td>16.000000</td>\n", + " <td>16.000000</td>\n", + " <td>2.000000</td>\n", + " <td>2.000000</td>\n", + " <td>...</td>\n", + " <td>29.000000</td>\n", + " <td>500000.000000</td>\n", + " <td>3.719645e+07</td>\n", + " <td>2.002711e+06</td>\n", + " <td>78477.000000</td>\n", + " <td>13321.000000</td>\n", + " <td>176026.000000</td>\n", + " <td>2002.00000</td>\n", + " <td>-72.900000</td>\n", + " <td>-342.900000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>75%</th>\n", + " <td>-71.900000</td>\n", + " <td>33.000000</td>\n", + " <td>2.226340e+06</td>\n", + " <td>5.902852e+12</td>\n", + " <td>82.000000</td>\n", + " <td>82.000000</td>\n", + " <td>25.000000</td>\n", + " <td>25.000000</td>\n", + " <td>3.000000</td>\n", + " <td>3.000000</td>\n", + " <td>...</td>\n", + " <td>44.000000</td>\n", + " <td>749000.000000</td>\n", + " <td>3.815973e+07</td>\n", + " <td>2.965991e+06</td>\n", + " <td>139431.000000</td>\n", + " <td>22217.000000</td>\n", + " <td>265127.000000</td>\n", + " <td>2965.00000</td>\n", + " <td>-68.400000</td>\n", + " <td>-225.700000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>max</th>\n", + " <td>-38.900000</td>\n", + " <td>43.000000</td>\n", + " <td>2.304122e+06</td>\n", + " <td>5.902975e+12</td>\n", + " <td>630.000000</td>\n", + " <td>630.000000</td>\n", + " <td>41.000000</td>\n", + " <td>41.000000</td>\n", + " <td>6.000000</td>\n", + " <td>6.000000</td>\n", + " <td>...</td>\n", + " <td>59.000000</td>\n", + " <td>999000.000000</td>\n", + " <td>3.912875e+07</td>\n", + " <td>3.935013e+06</td>\n", + " <td>435771.000000</td>\n", + " <td>35350.000000</td>\n", + " <td>435771.000000</td>\n", + " <td>3935.00000</td>\n", + " <td>-38.900000</td>\n", + " <td>-52.300000</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>8 rows Ă 24 columns</p>\n", + "</div>" + ], + "text/plain": [ + " PROXIMITY MEASUREMENT ITEMID EAN \\\n", + "count 502689.000000 502689.000000 5.026890e+05 5.026890e+05 \n", + "mean -75.406017 23.412382 2.169862e+06 5.902835e+12 \n", + "std 5.698062 12.175284 7.798483e+04 7.380986e+07 \n", + "min -110.000000 1.000000 2.028742e+06 5.902691e+12 \n", + "25% -79.900000 13.000000 2.113407e+06 5.902805e+12 \n", + "50% -75.700000 24.000000 2.155604e+06 5.902806e+12 \n", + "75% -71.900000 33.000000 2.226340e+06 5.902852e+12 \n", + "max -38.900000 43.000000 2.304122e+06 5.902975e+12 \n", + "\n", + " SubclassID SubclassID.1 ClassID ClassID.1 \\\n", + "count 502689.000000 502689.000000 502689.000000 502689.000000 \n", + "mean 83.920704 83.920704 18.231477 18.231477 \n", + "std 142.489244 142.489244 8.844056 8.844056 \n", + "min 10.000000 10.000000 10.000000 10.000000 \n", + "25% 11.000000 11.000000 10.000000 10.000000 \n", + "50% 82.000000 82.000000 16.000000 16.000000 \n", + "75% 82.000000 82.000000 25.000000 25.000000 \n", + "max 630.000000 630.000000 41.000000 41.000000 \n", + "\n", + " DepartmentID DepartmentID.1 ... SEC MICROSEC \\\n", + "count 502689.000000 502689.000000 ... 502689.000000 502689.000000 \n", + "mean 2.609574 2.609574 ... 29.193547 499773.110213 \n", + "std 0.937828 0.937828 ... 17.223297 288469.414710 \n", + "min 2.000000 2.000000 ... 0.000000 0.000000 \n", + "25% 2.000000 2.000000 ... 14.000000 250000.000000 \n", + "50% 2.000000 2.000000 ... 29.000000 500000.000000 \n", + "75% 3.000000 3.000000 ... 44.000000 749000.000000 \n", + "max 6.000000 6.000000 ... 59.000000 999000.000000 \n", + "\n", + " MILISEC TIME_MS TIME_PER_MEASUREMENT_MS NUMBER_OF_SIGNALS \\\n", + "count 5.026890e+05 5.026890e+05 502689.000000 502689.000000 \n", + "mean 3.721192e+07 2.018186e+06 100132.210719 15383.906986 \n", + "std 1.121487e+06 1.121487e+06 81859.831696 8217.121271 \n", + "min 3.519374e+07 0.000000e+00 0.000000 4597.000000 \n", + "25% 3.624898e+07 1.055248e+06 38108.000000 8533.000000 \n", + "50% 3.719645e+07 2.002711e+06 78477.000000 13321.000000 \n", + "75% 3.815973e+07 2.965991e+06 139431.000000 22217.000000 \n", + "max 3.912875e+07 3.935013e+06 435771.000000 35350.000000 \n", + "\n", + " LENGTH_OF_MEASUREMENT TIME_KMS MAX_PROXIMITY_KMS \\\n", + "count 502689.000000 502689.00000 502689.000000 \n", + "mean 199835.398777 2017.68607 -72.497318 \n", + "std 101049.072703 1121.48684 5.893956 \n", + "min 53538.000000 0.00000 -100.500000 \n", + "25% 127122.000000 1055.00000 -76.400000 \n", + "50% 176026.000000 2002.00000 -72.900000 \n", + "75% 265127.000000 2965.00000 -68.400000 \n", + "max 435771.000000 3935.00000 -38.900000 \n", + "\n", + " SUM_PROXIMITY_KMS \n", + "count 502689.000000 \n", + "mean -398.108291 \n", + "std 262.167663 \n", + "min -2629.400000 \n", + "25% -515.900000 \n", + "50% -342.900000 \n", + "75% -225.700000 \n", + "max -52.300000 \n", + "\n", + "[8 rows x 24 columns]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAD6CAYAAAC/KwBlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAXaklEQVR4nO3dYYyd1X3n8e+vONqibU1tGJDjIWsUnNVCpXXFlYOUN9lQ2VZa1UQCxSu1+IUlR4hIqbZSFfrGBLRSWCWlQiuQyIIwtBuwaCusKJR1oFW0EjGMUxowBHkkaHCw8FTjEvIGyea/L+6ZzZ3pcHxnjMdh8v1Ij+4z/+ecM899Yf/mec5z70lVIUnSB/m1C30CkqRfbgaFJKnLoJAkdRkUkqQug0KS1GVQSJK6xg6KJBcl+cck32k/35Hkp0lebNvnR9renmQ6yWtJto/Ur0vyUjt2b5K0+r9L8nirH06yaaTP7iTH2rb7Q3nXkqSxrVlC268ArwJrR2r3VNU3RhsluQbYBVwLfBz4XpJPVdUZ4H5gL/AD4LvADuApYA9wqqquTrILuBv4YpL1wD5gABRwJMnBqjr1QSd52WWX1aZNm5bwtiRJR44c+Zeqmljs2FhBkWQS+D3gvwP/7SzNdwKPVdV7wOtJpoGtSd4A1lbVc23MR4AbGQbFTuCO1v8J4H+2q43twKGqmm19DjEMl29/0C/ftGkTU1NT47wtSVKT5J8/6Ni4t57+AvhT4P0F9S8n+VGSh5Ksa7WNwJsjbY632sa2v7A+r09VnQbeAS7tjCVJWiFnDYokvw+crKojCw7dD3wS2AKcAL4512WRYapTX26f0XPcm2QqydTMzMwiXSRJyzXOFcVngD9ot44eAz6X5C+r6u2qOlNV7wPfAra29seBK0f6TwJvtfrkIvV5fZKsAS4BZjtjzVNVD1TVoKoGExOL3mKTJC3TWYOiqm6vqsmq2sRwkvrZqvrDJBtGmn0BeLntHwR2tSeZrgI2A89X1Qng3STXt/mHW4AnR/rMPdF0U/sdBTwNbEuyrt3a2tZqkqQVspSnnhb6H0m2MLwV9AbwJYCqOprkAPAKcBq4rT3xBHAr8DBwMcNJ7Kda/UHg0TbxPcswkKiq2SR3AS+0dnfOTWxLklZGVtvXjA8Gg/KpJ0lamiRHqmqw2DE/mS1J6jIoJEld5zJHIf1Ka99Ac96tttvD+ugxKKRlWs5/4En8j18fOd56kiR1GRSSpC6DQpLUZVBIkroMCklSl0EhSeoyKCRJXQaFJKnLoJAkdRkUkqQug0KS1GVQSJK6DApJUtfYQZHkoiT/mOQ77ef1SQ4lOdZe1420vT3JdJLXkmwfqV+X5KV27N62djZtfe3HW/1wkk0jfXa333EsyW4kSStqKVcUXwFeHfn5q8AzVbUZeKb9TJJrGK55fS2wA7gvyUWtz/3AXmBz23a0+h7gVFVdDdwD3N3GWg/sAz4NbAX2jQaSJOn8GysokkwCvwf8r5HyTmB/298P3DhSf6yq3quq14FpYGuSDcDaqnquhl/I/8iCPnNjPQHc0K42tgOHqmq2qk4Bh/hFuEiSVsC4VxR/Afwp8P5I7YqqOgHQXi9v9Y3AmyPtjrfaxra/sD6vT1WdBt4BLu2MJUlaIWcNiiS/D5ysqiNjjrnY+pDVqS+3z+g57k0ylWRqZmZmzNOUJI1jnCuKzwB/kOQN4DHgc0n+Eni73U6ivZ5s7Y8DV470nwTeavXJRerz+iRZA1wCzHbGmqeqHqiqQVUNJiYmxnhLkqRxnTUoqur2qpqsqk0MJ6mfrao/BA4Cc08h7QaebPsHgV3tSaarGE5aP99uT72b5Po2/3DLgj5zY93UfkcBTwPbkqxrk9jbWk2StELWnEPfrwMHkuwBfgLcDFBVR5McAF4BTgO3VdWZ1udW4GHgYuCptgE8CDyaZJrhlcSuNtZskruAF1q7O6tq9hzOWZK0RBn+4b56DAaDmpqautCnIS0qCavt35xWhyRHqmqw2DE/mS1J6jIoJEldBoUkqcugkCR1GRSSpC6DQpLUZVBIkroMCklSl0EhSeoyKCRJXQaFJKnLoJAkdRkUkqQug0KS1GVQSJK6DApJUpdBIUnqOmtQJPn1JM8n+ackR5N8rdXvSPLTJC+27fMjfW5PMp3ktSTbR+rXJXmpHbu3rZ1NW1/78VY/nGTTSJ/dSY61bTeSpBU1zprZ7wGfq6qfJ/kY8H+TzK11fU9VfWO0cZJrGK55fS3wceB7ST7V1s2+H9gL/AD4LrCD4brZe4BTVXV1kl3A3cAXk6wH9gEDoIAjSQ5W1alze9uSpHGd9Yqihn7efvxY23qL/u4EHquq96rqdWAa2JpkA7C2qp6r4aLBjwA3jvTZ3/afAG5oVxvbgUNVNdvC4RDDcJEkrZCx5iiSXJTkReAkw/+4D7dDX07yoyQPJVnXahuBN0e6H2+1jW1/YX1en6o6DbwDXNoZS5K0QsYKiqo6U1VbgEmGVwe/zfA20ieBLcAJ4JuteRYbolNfbp//L8neJFNJpmZmZjrvRJK0VEt66qmq/hX4B2BHVb3dAuR94FvA1tbsOHDlSLdJ4K1Wn1ykPq9PkjXAJcBsZ6yF5/VAVQ2qajAxMbGUtyRJOotxnnqaSPJbbf9i4HeBH7c5hzlfAF5u+weBXe1JpquAzcDzVXUCeDfJ9W3+4RbgyZE+c0803QQ82+Yxnga2JVnXbm1tazVJ0goZ56mnDcD+JBcxDJYDVfWdJI8m2cLwVtAbwJcAqupokgPAK8Bp4Lb2xBPArcDDwMUMn3aae3rqQeDRJNMMryR2tbFmk9wFvNDa3VlVs8t/u5KkpcrwD/fVYzAY1NTU1IU+DWlRSVht/+a0OiQ5UlWDxY75yWxJUpdBIUnqMigkSV0GhSSpy6CQJHUZFJKkLoNCktRlUEiSugwKSVKXQSFJ6jIoJEldBoUkqcugkCR1GRSSpC6DQpLUZVBIkroMCklS1zhrZv96kueT/FOSo0m+1urrkxxKcqy9rhvpc3uS6SSvJdk+Ur8uyUvt2L1t7Wza+tqPt/rhJJtG+uxuv+NYkt1IklbUOFcU7wGfq6r/DGwBdiS5Hvgq8ExVbQaeaT+T5BqGa15fC+wA7mvrbQPcD+wFNrdtR6vvAU5V1dXAPcDdbaz1wD7g08BWYN9oIEmSzr+zBkUN/bz9+LG2FbAT2N/q+4Eb2/5O4LGqeq+qXgemga1JNgBrq+q5Gi4a/MiCPnNjPQHc0K42tgOHqmq2qk4Bh/hFuEiSVsBYcxRJLkryInCS4X/ch4ErquoEQHu9vDXfCLw50v14q21s+wvr8/pU1WngHeDSzlgLz29vkqkkUzMzM+O8JUnSmMYKiqo6U1VbgEmGVwe/3WmexYbo1JfbZ/T8HqiqQVUNJiYmOqcmSVqqJT31VFX/CvwDw9s/b7fbSbTXk63ZceDKkW6TwFutPrlIfV6fJGuAS4DZzliSpBUyzlNPE0l+q+1fDPwu8GPgIDD3FNJu4Mm2fxDY1Z5kuorhpPXz7fbUu0mub/MPtyzoMzfWTcCzbR7jaWBbknVtEntbq0mSVsiaMdpsAPa3J5d+DThQVd9J8hxwIMke4CfAzQBVdTTJAeAV4DRwW1WdaWPdCjwMXAw81TaAB4FHk0wzvJLY1caaTXIX8EJrd2dVzZ7LG5YkLU2Gf7ivHoPBoKampi70aUiLSsJq+zen1SHJkaoaLHbMT2ZLkroMCklSl0EhSeoyKCRJXQaFJKnLoJAkdRkUkqQug0KS1GVQSJK6DApJUpdBIUnqMigkSV3jfHus9Cth/fr1nDp16rz/nuG37J8/69atY3bWL1nWh8egkJpTp06tim92Pd9BpF893nqSJHUZFJKkLoNCktQ1zprZVyb5+ySvJjma5CutfkeSnyZ5sW2fH+lze5LpJK8l2T5Svy7JS+3YvW3tbNr62o+3+uEkm0b67E5yrG27kSStqHEms08Df1JVP0zym8CRJIfasXuq6hujjZNcw3DN62uBjwPfS/Kptm72/cBe4AfAd4EdDNfN3gOcqqqrk+wC7ga+mGQ9sA8YANV+98GqOv+PpkiSgDGuKKrqRFX9sO2/C7wKbOx02Qk8VlXvVdXrwDSwNckGYG1VPVfDR0seAW4c6bO/7T8B3NCuNrYDh6pqtoXDIYbhIklaIUuao2i3hH4HONxKX07yoyQPJVnXahuBN0e6HW+1jW1/YX1en6o6DbwDXNoZa+F57U0ylWRqZmZmKW9JknQWYwdFkt8A/hr446r6GcPbSJ8EtgAngG/ONV2ke3Xqy+3zi0LVA1U1qKrBxMRE721IkpZorKBI8jGGIfFXVfU3AFX1dlWdqar3gW8BW1vz48CVI90ngbdafXKR+rw+SdYAlwCznbEkSStknKeeAjwIvFpVfz5S3zDS7AvAy23/ILCrPcl0FbAZeL6qTgDvJrm+jXkL8ORIn7knmm4Cnm3zGE8D25Ksa7e2trWaJGmFjPPU02eAPwJeSvJiq/0Z8F+TbGF4K+gN4EsAVXU0yQHgFYZPTN3WnngCuBV4GLiY4dNOT7X6g8CjSaYZXknsamPNJrkLeKG1u7Oq/BIbSVpBWQ3fbTNqMBjU1NTUhT4NfQQlWTXf9bQa3odWVpIjVTVY7JifzJYkdRkUkqQug0KS1GVQSJK6DApJUpdBIUnqMigkSV0GhSSpy6CQJHUZFJKkLoNCktRlUEiSugwKSVKXQSFJ6jIoJEldBoUkqWucpVCvTPL3SV5NcjTJV1p9fZJDSY6113UjfW5PMp3ktSTbR+rXJXmpHbu3LYlKWzb18VY/nGTTSJ/d7XccS7IbSdKKGueK4jTwJ1X1n4DrgduSXAN8FXimqjYDz7Sfacd2AdcCO4D7klzUxrof2MtwHe3N7TjAHuBUVV0N3APc3cZaD+wDPg1sBfaNBpIk6fw7a1BU1Ymq+mHbfxd4FdgI7AT2t2b7gRvb/k7gsap6r6peB6aBrUk2AGur6rkartP4yII+c2M9AdzQrja2A4eqaraqTgGH+EW4SJJWwJLmKNotod8BDgNXVNUJGIYJcHlrthF4c6Tb8Vbb2PYX1uf1qarTwDvApZ2xJEkrZOygSPIbwF8Df1xVP+s1XaRWnfpy+4ye294kU0mmZmZmOqcmSVqqsYIiyccYhsRfVdXftPLb7XYS7fVkqx8HrhzpPgm81eqTi9Tn9UmyBrgEmO2MNU9VPVBVg6oaTExMjPOWJEljGueppwAPAq9W1Z+PHDoIzD2FtBt4cqS+qz3JdBXDSevn2+2pd5Nc38a8ZUGfubFuAp5t8xhPA9uSrGuT2NtaTZK0QtaM0eYzwB8BLyV5sdX+DPg6cCDJHuAnwM0AVXU0yQHgFYZPTN1WVWdav1uBh4GLgafaBsMgejTJNMMriV1trNkkdwEvtHZ3VtXs8t6qJGk5MvzDffUYDAY1NTV1oU9DH0FJWA3/HlbL+9DKSnKkqgaLHfOT2ZKkLoNCktRlUEiSugwKSVKXQSFJ6jIoJEldBoUkqcugkCR1jfPJbOlXQu1bC3dccqFP45zVvrUX+hS0yhgUUpOv/WxVfKI5CXXHhT4LrSbeepIkdRkUkqQug0KS1GVQSJK6DApJUpdBIUnqMigkSV3jrJn9UJKTSV4eqd2R5KdJXmzb50eO3Z5kOslrSbaP1K9L8lI7dm9bN5u2tvbjrX44yaaRPruTHGvb3JrakqQVNM4VxcPAjkXq91TVlrZ9FyDJNQzXu7629bkvyUWt/f3AXmBz2+bG3AOcqqqrgXuAu9tY64F9wKeBrcC+JOuW/A4lSefkrEFRVd8HZsccbyfwWFW9V1WvA9PA1iQbgLVV9VwNP/r6CHDjSJ/9bf8J4IZ2tbEdOFRVs1V1CjjE4oElSTqPzmWO4stJftRuTc39pb8ReHOkzfFW29j2F9bn9amq08A7wKWdsSRJK2i5QXE/8ElgC3AC+GarZ5G21akvt888SfYmmUoyNTMz0zltSdJSLSsoqurtqjpTVe8D32I4hwDDv/qvHGk6CbzV6pOL1Of1SbIGuIThra4PGmux83mgqgZVNZiYmFjOW5IkfYBlBUWbc5jzBWDuiaiDwK72JNNVDCetn6+qE8C7Sa5v8w+3AE+O9Jl7oukm4Nk2j/E0sC3JunZra1urSZJW0Fm/ZjzJt4HPApclOc7wSaTPJtnC8FbQG8CXAKrqaJIDwCvAaeC2qjrThrqV4RNUFwNPtQ3gQeDRJNMMryR2tbFmk9wFvNDa3VlV406qS5I+JFkN378/ajAY1NTU1IU+DX0EJVk961GsgvehlZXkSFUNFjvmJ7MlSV0GhSSpy6CQJHUZFJKkLoNCktRlUEiSugwKSVLXWT9wJ/0qacukfKStW+e38evDZVBIzUp8SM0Pw+mjyFtPkqQug0KS1GVQSJK6DApJUpdBIUnqMigkSV0GhSSpy6CQJHWdNSiSPJTkZJKXR2rrkxxKcqy9rhs5dnuS6SSvJdk+Ur8uyUvt2L1t7Wza+tqPt/rhJJtG+uxuv+NYkrl1tSVJK2icK4qHgR0Lal8FnqmqzcAz7WeSXMNwzetrW5/7klzU+twP7AU2t21uzD3Aqaq6GrgHuLuNtZ7h+tyfBrYC+0YDSZK0Ms4aFFX1fWB2QXknsL/t7wduHKk/VlXvVdXrwDSwNckGYG1VPVfD7y94ZEGfubGeAG5oVxvbgUNVNVtVp4BD/NvAkiSdZ8udo7iiqk4AtNfLW30j8OZIu+OttrHtL6zP61NVp4F3gEs7Y0mSVtCHPZm92FdvVqe+3D7zf2myN8lUkqmZmZmxTlSSNJ7lBsXb7XYS7fVkqx8HrhxpNwm81eqTi9Tn9UmyBriE4a2uDxrr36iqB6pqUFWDiYmJZb4lSdJilhsUB4G5p5B2A0+O1He1J5muYjhp/Xy7PfVukuvb/MMtC/rMjXUT8Gybx3ga2JZkXZvE3tZqkqQVdNb1KJJ8G/gscFmS4wyfRPo6cCDJHuAnwM0AVXU0yQHgFeA0cFtVnWlD3crwCaqLgafaBvAg8GiSaYZXErvaWLNJ7gJeaO3urKqFk+qSpPMsq20RlcFgUFNTUxf6NKRFuXCRflklOVJVg8WO+clsSVKXQSFJ6jIoJEldBoUkqcugkCR1GRSSpC6DQpLUZVBIkroMCklSl0EhSeoyKCRJXQaFJKnLoJAkdRkUkqQug0KS1GVQSJK6DApJUtc5BUWSN5K8lOTFJFOttj7JoSTH2uu6kfa3J5lO8lqS7SP169o400nubetq09befrzVDyfZdC7nK0laug/jiuK/VNWWkSX0vgo8U1WbgWfazyS5huF62NcCO4D7klzU+twP7AU2t21Hq+8BTlXV1cA9wN0fwvlKkpbgfNx62gnsb/v7gRtH6o9V1XtV9TowDWxNsgFYW1XP1XAx4UcW9Jkb6wnghrmrDelCS7LkbTn9pAvtXIOigP+T5EiSva12RVWdAGivl7f6RuDNkb7HW21j219Yn9enqk4D7wCXnuM5Sx+KqlqRTbrQ1pxj/89U1VtJLgcOJflxp+1ifxpVp97rM3/gYUjtBfjEJz7RP2NJ0pKc0xVFVb3VXk8CfwtsBd5ut5Norydb8+PAlSPdJ4G3Wn1ykfq8PknWAJcAs4ucxwNVNaiqwcTExLm8JUnSAssOiiT/Pslvzu0D24CXgYPA7tZsN/Bk2z8I7GpPMl3FcNL6+XZ76t0k17f5h1sW9Jkb6ybg2fJaXJJW1LnceroC+Ns22bYG+N9V9XdJXgAOJNkD/AS4GaCqjiY5ALwCnAZuq6ozbaxbgYeBi4Gn2gbwIPBokmmGVxK7zuF8JUnLkNX2B/pgMKipqakLfRqS9JGS5MjIxxzm8ZPZkqQug0KS1GVQSJK6Vt0cRZIZ4J8v9HlIH+Ay4F8u9ElIi/gPVbXo5wtWXVBIv8ySTH3QhKH0y8pbT5KkLoNCktRlUEgr64ELfQLSUjlHIUnq8opCktRlUEgrIMlDSU4meflCn4u0VAaFtDIe5hdL/EofKQaFtAKq6vssspaK9FFgUEiSugwKSVKXQSFJ6jIoJEldBoW0ApJ8G3gO+I9JjrelgqWPBD+ZLUnq8opCktRlUEiSugwKSVKXQSFJ6jIoJEldBoUkqcugkCR1GRSSpK7/B9G71F0NbH01AAAAAElFTkSuQmCC\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.boxplot(df['LENGTH_OF_MEASUREMENT']);" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "# Usuwamy najdĹuĹźsze pomiary\n", + "df.drop(df.loc[df['LENGTH_OF_MEASUREMENT'] > 200000].index, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>PROXIMITY</th>\n", + " <th>MEASUREMENT</th>\n", + " <th>ITEMID</th>\n", + " <th>EAN</th>\n", + " <th>SubclassID</th>\n", + " <th>SubclassID.1</th>\n", + " <th>ClassID</th>\n", + " <th>ClassID.1</th>\n", + " <th>DepartmentID</th>\n", + " <th>DepartmentID.1</th>\n", + " <th>...</th>\n", + " <th>SEC</th>\n", + " <th>MICROSEC</th>\n", + " <th>MILISEC</th>\n", + " <th>TIME_MS</th>\n", + " <th>TIME_PER_MEASUREMENT_MS</th>\n", + " <th>NUMBER_OF_SIGNALS</th>\n", + " <th>LENGTH_OF_MEASUREMENT</th>\n", + " <th>TIME_KMS</th>\n", + " <th>MAX_PROXIMITY_KMS</th>\n", + " <th>SUM_PROXIMITY_KMS</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>count</th>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>3.177620e+05</td>\n", + " <td>3.177620e+05</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>...</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>3.177620e+05</td>\n", + " <td>3.177620e+05</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " <td>317762.000000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>mean</th>\n", + " <td>-75.526452</td>\n", + " <td>22.776858</td>\n", + " <td>2.170711e+06</td>\n", + " <td>5.902836e+12</td>\n", + " <td>82.639686</td>\n", + " <td>82.639686</td>\n", + " <td>18.142610</td>\n", + " <td>18.142610</td>\n", + " <td>2.603486</td>\n", + " <td>2.603486</td>\n", + " <td>...</td>\n", + " <td>29.378906</td>\n", + " <td>499539.922961</td>\n", + " <td>3.717748e+07</td>\n", + " <td>1.983745e+06</td>\n", + " <td>66756.283605</td>\n", + " <td>10103.277673</td>\n", + " <td>133222.336198</td>\n", + " <td>1983.244840</td>\n", + " <td>-72.536124</td>\n", + " <td>-404.190290</td>\n", + " </tr>\n", + " <tr>\n", + " <th>std</th>\n", + " <td>5.583369</td>\n", + " <td>12.801744</td>\n", + " <td>7.820521e+04</td>\n", + " <td>7.406653e+07</td>\n", + " <td>141.056329</td>\n", + " <td>141.056329</td>\n", + " <td>8.830015</td>\n", + " <td>8.830015</td>\n", + " <td>0.932835</td>\n", + " <td>0.932835</td>\n", + " <td>...</td>\n", + " <td>17.290876</td>\n", + " <td>288325.166786</td>\n", + " <td>1.183041e+06</td>\n", + " <td>1.183041e+06</td>\n", + " <td>44987.211264</td>\n", + " <td>3113.779828</td>\n", + " <td>39296.957914</td>\n", + " <td>1183.041729</td>\n", + " <td>5.831107</td>\n", + " <td>267.914649</td>\n", + " </tr>\n", + " <tr>\n", + " <th>min</th>\n", + " <td>-110.000000</td>\n", + " <td>1.000000</td>\n", + " <td>2.028742e+06</td>\n", + " <td>5.902691e+12</td>\n", + " <td>10.000000</td>\n", + " <td>10.000000</td>\n", + " <td>10.000000</td>\n", + " <td>10.000000</td>\n", + " <td>2.000000</td>\n", + " <td>2.000000</td>\n", + " <td>...</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>3.519374e+07</td>\n", + " <td>0.000000e+00</td>\n", + " <td>0.000000</td>\n", + " <td>4597.000000</td>\n", + " <td>53538.000000</td>\n", + " <td>0.000000</td>\n", + " <td>-98.000000</td>\n", + " <td>-2629.400000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>25%</th>\n", + " <td>-79.900000</td>\n", + " <td>12.000000</td>\n", + " <td>2.113407e+06</td>\n", + " <td>5.902805e+12</td>\n", + " <td>11.000000</td>\n", + " <td>11.000000</td>\n", + " <td>10.000000</td>\n", + " <td>10.000000</td>\n", + " <td>2.000000</td>\n", + " <td>2.000000</td>\n", + " <td>...</td>\n", + " <td>14.000000</td>\n", + " <td>249000.000000</td>\n", + " <td>3.617897e+07</td>\n", + " <td>9.852318e+05</td>\n", + " <td>29587.000000</td>\n", + " <td>8027.000000</td>\n", + " <td>101041.000000</td>\n", + " <td>985.000000</td>\n", + " <td>-76.400000</td>\n", + " <td>-527.300000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>50%</th>\n", + " <td>-75.700000</td>\n", + " <td>24.000000</td>\n", + " <td>2.155605e+06</td>\n", + " <td>5.902806e+12</td>\n", + " <td>82.000000</td>\n", + " <td>82.000000</td>\n", + " <td>16.000000</td>\n", + " <td>16.000000</td>\n", + " <td>2.000000</td>\n", + " <td>2.000000</td>\n", + " <td>...</td>\n", + " <td>29.000000</td>\n", + " <td>500000.000000</td>\n", + " <td>3.714444e+07</td>\n", + " <td>1.950704e+06</td>\n", + " <td>59599.000000</td>\n", + " <td>9887.000000</td>\n", + " <td>138579.000000</td>\n", + " <td>1950.000000</td>\n", + " <td>-72.900000</td>\n", + " <td>-350.700000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>75%</th>\n", + " <td>-71.900000</td>\n", + " <td>34.000000</td>\n", + " <td>2.226340e+06</td>\n", + " <td>5.902852e+12</td>\n", + " <td>82.000000</td>\n", + " <td>82.000000</td>\n", + " <td>25.000000</td>\n", + " <td>25.000000</td>\n", + " <td>3.000000</td>\n", + " <td>3.000000</td>\n", + " <td>...</td>\n", + " <td>44.000000</td>\n", + " <td>748000.000000</td>\n", + " <td>3.834786e+07</td>\n", + " <td>3.154128e+06</td>\n", + " <td>97761.750000</td>\n", + " <td>12660.000000</td>\n", + " <td>168403.000000</td>\n", + " <td>3154.000000</td>\n", + " <td>-68.400000</td>\n", + " <td>-226.100000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>max</th>\n", + " <td>-41.000000</td>\n", + " <td>42.000000</td>\n", + " <td>2.304122e+06</td>\n", + " <td>5.902975e+12</td>\n", + " <td>630.000000</td>\n", + " <td>630.000000</td>\n", + " <td>41.000000</td>\n", + " <td>41.000000</td>\n", + " <td>6.000000</td>\n", + " <td>6.000000</td>\n", + " <td>...</td>\n", + " <td>59.000000</td>\n", + " <td>999000.000000</td>\n", + " <td>3.908956e+07</td>\n", + " <td>3.895821e+06</td>\n", + " <td>189705.000000</td>\n", + " <td>15444.000000</td>\n", + " <td>189705.000000</td>\n", + " <td>3895.000000</td>\n", + " <td>-41.000000</td>\n", + " <td>-52.300000</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>8 rows Ă 24 columns</p>\n", + "</div>" + ], + "text/plain": [ + " PROXIMITY MEASUREMENT ITEMID EAN \\\n", + "count 317762.000000 317762.000000 3.177620e+05 3.177620e+05 \n", + "mean -75.526452 22.776858 2.170711e+06 5.902836e+12 \n", + "std 5.583369 12.801744 7.820521e+04 7.406653e+07 \n", + "min -110.000000 1.000000 2.028742e+06 5.902691e+12 \n", + "25% -79.900000 12.000000 2.113407e+06 5.902805e+12 \n", + "50% -75.700000 24.000000 2.155605e+06 5.902806e+12 \n", + "75% -71.900000 34.000000 2.226340e+06 5.902852e+12 \n", + "max -41.000000 42.000000 2.304122e+06 5.902975e+12 \n", + "\n", + " SubclassID SubclassID.1 ClassID ClassID.1 \\\n", + "count 317762.000000 317762.000000 317762.000000 317762.000000 \n", + "mean 82.639686 82.639686 18.142610 18.142610 \n", + "std 141.056329 141.056329 8.830015 8.830015 \n", + "min 10.000000 10.000000 10.000000 10.000000 \n", + "25% 11.000000 11.000000 10.000000 10.000000 \n", + "50% 82.000000 82.000000 16.000000 16.000000 \n", + "75% 82.000000 82.000000 25.000000 25.000000 \n", + "max 630.000000 630.000000 41.000000 41.000000 \n", + "\n", + " DepartmentID DepartmentID.1 ... SEC MICROSEC \\\n", + "count 317762.000000 317762.000000 ... 317762.000000 317762.000000 \n", + "mean 2.603486 2.603486 ... 29.378906 499539.922961 \n", + "std 0.932835 0.932835 ... 17.290876 288325.166786 \n", + "min 2.000000 2.000000 ... 0.000000 0.000000 \n", + "25% 2.000000 2.000000 ... 14.000000 249000.000000 \n", + "50% 2.000000 2.000000 ... 29.000000 500000.000000 \n", + "75% 3.000000 3.000000 ... 44.000000 748000.000000 \n", + "max 6.000000 6.000000 ... 59.000000 999000.000000 \n", + "\n", + " MILISEC TIME_MS TIME_PER_MEASUREMENT_MS NUMBER_OF_SIGNALS \\\n", + "count 3.177620e+05 3.177620e+05 317762.000000 317762.000000 \n", + "mean 3.717748e+07 1.983745e+06 66756.283605 10103.277673 \n", + "std 1.183041e+06 1.183041e+06 44987.211264 3113.779828 \n", + "min 3.519374e+07 0.000000e+00 0.000000 4597.000000 \n", + "25% 3.617897e+07 9.852318e+05 29587.000000 8027.000000 \n", + "50% 3.714444e+07 1.950704e+06 59599.000000 9887.000000 \n", + "75% 3.834786e+07 3.154128e+06 97761.750000 12660.000000 \n", + "max 3.908956e+07 3.895821e+06 189705.000000 15444.000000 \n", + "\n", + " LENGTH_OF_MEASUREMENT TIME_KMS MAX_PROXIMITY_KMS \\\n", + "count 317762.000000 317762.000000 317762.000000 \n", + "mean 133222.336198 1983.244840 -72.536124 \n", + "std 39296.957914 1183.041729 5.831107 \n", + "min 53538.000000 0.000000 -98.000000 \n", + "25% 101041.000000 985.000000 -76.400000 \n", + "50% 138579.000000 1950.000000 -72.900000 \n", + "75% 168403.000000 3154.000000 -68.400000 \n", + "max 189705.000000 3895.000000 -41.000000 \n", + "\n", + " SUM_PROXIMITY_KMS \n", + "count 317762.000000 \n", + "mean -404.190290 \n", + "std 267.914649 \n", + "min -2629.400000 \n", + "25% -527.300000 \n", + "50% -350.700000 \n", + "75% -226.100000 \n", + "max -52.300000 \n", + "\n", + "[8 rows x 24 columns]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 1, 2, 3, 4, 5, 7, 6, 10, 11, 12, 13, 14, 16, 18, 17, 19, 20,\n", + " 21, 23, 24, 26, 27, 28, 29, 31, 32, 34, 35, 36, 38, 37, 40, 39, 41,\n", + " 42], dtype=int64)" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.MEASUREMENT.unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 , RK485-99X\n", + "2 , RK485-99X\n", + "3 , RK485-99X\n", + "4 , RK485-99X\n", + "5 , RK485-99X\n", + "7 , RK485-99X\n", + "6 , RK485-99X\n", + "10 , RK485-99X\n", + "11 , RK485-99X\n", + "12 , RK485-99X\n", + "13 , RK485-99X\n", + "14 , RK485-99X\n", + "16 , RK485-99X\n", + "18 , RK485-99X\n", + "17 , RK485-99X\n", + "19 , RK485-99X\n", + "20 , RK485-99X\n", + "21 , RK485-99X\n", + "23 , RK485-99X\n", + "24 , RK485-99X\n", + "26 , RK485-99X\n", + "27 , RK485-99X\n", + "28 , RK485-99X\n", + "29 , RK485-99X\n", + "31 , RK485-99X\n", + "32 , RK485-99X\n", + "34 , RK485-99X\n", + "35 , RK485-99X\n", + "36 , RK485-99X\n", + "38 , RK485-99X\n", + "37 , RK485-99X\n", + "40 , RK485-99X\n", + "39 , RK485-99X\n", + "41 , RK485-99X\n", + "42 , RK485-99X\n" + ] + } + ], + "source": [ + "for i in df.MEASUREMENT.unique():\n", + " zb = df[df['MEASUREMENT'] == i]\n", + " for j in zb.StyleColor.unique():\n", + " zbior = zb[zb['StyleColor'] == j]\n", + " if zbior.EPC.unique().size == 1:\n", + " print(i,', ', j)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# Zatem usuwamy caĹy ten Stylokolor\n", + "df.drop(df.loc[df['StyleColor'] == 'RK485-99X'].index, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# Sprawdzamy, czy mamy klipsy przypisane do wiÄcej niĹź 1 Itemu\n", + "for i in df.MEASUREMENT.unique():\n", + " zb = df[df['MEASUREMENT'] == i]\n", + " for j in zb.EPC.unique():\n", + " zbior = zb[zb['EPC'] == j]\n", + " if zbior.EAN.unique().size > 1:\n", + " print(i,', ', j)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>EPC</th>\n", + " <th>PROXIMITY</th>\n", + " <th>TIMESTAMP</th>\n", + " <th>MEASUREMENT</th>\n", + " <th>ITEMID</th>\n", + " <th>EAN</th>\n", + " <th>StyleColorSize</th>\n", + " <th>StyleColor</th>\n", + " <th>Size</th>\n", + " <th>SubclassID</th>\n", + " <th>...</th>\n", + " <th>SEC</th>\n", + " <th>MICROSEC</th>\n", + " <th>MILISEC</th>\n", + " <th>TIME_MS</th>\n", + " <th>TIME_PER_MEASUREMENT_MS</th>\n", + " <th>NUMBER_OF_SIGNALS</th>\n", + " <th>LENGTH_OF_MEASUREMENT</th>\n", + " <th>TIME_KMS</th>\n", + " <th>MAX_PROXIMITY_KMS</th>\n", + " <th>SUM_PROXIMITY_KMS</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " </tbody>\n", + "</table>\n", + "<p>0 rows Ă 36 columns</p>\n", + "</div>" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [EPC, PROXIMITY, TIMESTAMP, MEASUREMENT, ITEMID, EAN, StyleColorSize, StyleColor, Size, SubclassID, ItemSeason, FashionLevel, SubclassID.1, SubclassName, ClassID, ClassID.1, ClassName, DepartmentID, DepartmentID.1, DepartmentName, BrandID, BrandID.1, BrandName, Active, HOUR, MIN, SEC, MICROSEC, MILISEC, TIME_MS, TIME_PER_MEASUREMENT_MS, NUMBER_OF_SIGNALS, LENGTH_OF_MEASUREMENT, TIME_KMS, MAX_PROXIMITY_KMS, SUM_PROXIMITY_KMS]\n", + "Index: []\n", + "\n", + "[0 rows x 36 columns]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#do testow samego modelu\n", + "test_1 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & ((df.MEASUREMENT == 2) | (df.MEASUREMENT == 3) | (df.MEASUREMENT == 4) | (df.MEASUREMENT == 26) | (df.MEASUREMENT == 28) ) ]\n", + "\n", + "test1 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & ( (df.MEASUREMENT == 1) ) ]\n", + "test2 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & ( (df.MEASUREMENT == 2) ) ]\n", + "test3 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & ( (df.MEASUREMENT == 3) ) ]\n", + "test4 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & ( (df.MEASUREMENT == 4) ) ]\n", + "test5 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 5) ]\n", + "test6 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 6) ]\n", + "test9 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 9) ]\n", + "test12 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 12) ]\n", + "test22 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 22) ]\n", + "test24 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 24) ]\n", + "test25 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 25) ]\n", + "test21 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 21) ]\n", + "test29 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 29) ]\n", + "test28 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & (df.MEASUREMENT == 28) ]\n", + "\n", + "test29" + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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kZqA91ORSKRH202bNo1PP/0UgIqKikS51+tl06ZNfRGaiIiIJJlqAEVERERSjBJAERERkRSjBFBEREQkxSgBFBEREUkxSgBFREREUowSQBEREZEUowRwgBo9ejRTp05lxowZlJeXA/Dhhx8ya9Yspk6dyimnnEJTU1Ni+3nz5jF27FjGjx/PCy+8AEBbWxsnn3wyEyZMYPLkyVx77bWJ7Tds2MDs2bM54IADmDZtGs8991xi3UMPPURZWRllZWU89NBDifKLLrqIkpKSxLMFly5dCkBjYyOnnHIK06dPZ/LkyTzwwANAbN7h2bNnM3HiRCZPnsydd96ZOFZdXR1z5syhrKyMOXPmUF9f3+nzb9iwgczMTH796193uTannnoqU6ZMSby/6qqrEjGNGzeOQYMG7enlFhERSS3W2pR9zZw50+7o008/7VKWDKNGjbI1NTWdysrLy+1rr71mrbX2vvvus9dff7211tply5bZadOmWb/fb9euXWtLS0ttOBy2ra2t9pVXXrHWWhsIBOwRRxxhn3vuOWuttZdeeqn93e9+l9h/1KhR1lpra2trbUlJia2trbV1dXW2pKTE1tXVWWutvfDCC+3jjz/eJdabbrrJXnPNNdZaa7du3Wpzc3NtIBCwmzZtskuWLLHWWtvU1GTLysrssmXLrLXW/vCHP7Tz5s2z1lo7b968xP7bnXHGGfass86yt956a6fyJ5980s6dO9dOnjy52+v2m9/8xl588cXdrhso91ZEROSLABbbXsqBVAO4lwL1tTQs/4i6jxbTsPwjAvW1fXaulStXctRRRwEwZ84cnnzySQCeeuopzjvvPLxeLyUlJYwdO5ZFixaRnp7O7NmzAfB4PBx44IFUVlYCYIxJ1CA2NjYybNgwAF544QXmzJlDXl4eubm5zJkzh3/961+7jMsYQ3NzM9ZaWlpayMvLw+VyUVRUxIEHHghAVlYWEydOpKqqKhHzhRdeCMCFF17IggULEsdbsGABpaWlXeYibmlp4f/+7/+4/vrrdxrL/PnzmTt37u4vpoiISApTArgXAvW1tFauJxoKAhANBWmtXN8rSaAxhuOPP56ZM2dyzz33ADBlyhSefvppAB5//HE2btwIQFVVFSNGjEjsW1xcnEi0tmtoaOCf//wnxx57LAA/+9nPeOSRRyguLuakk07irrvu6tGxrrvuOqZNm8ZVV11FIBAA4IorrmD58uUMGzaMqVOncuedd+JwdP6nVVFRwQcffMAhhxwCQHV1NUVFRQAUFRWxdetWAFpbW7nlllu48cYbu1yTG264gR/84Aekp6d3e83Wr1/PunXrOOaYY3Z+YUVEREQJ4N5o31IFNtq50EZj5Xvprbfe4v333+f555/n7rvv5vXXX+f+++/n7rvvZubMmTQ3N+PxeGKntLbL/saYxHI4HGbu3Ll897vfpbS0FIjVlF100UVUVlby3HPPccEFFxCNRnd5rHnz5rFixQree+896urquOWWW4BYreGMGTPYtGkTS5cu5YorrujUP7GlpYUzzzyTO+64g+zs7F1+7htvvJGrrrqKzMzMTuVLly5l9erVXeYy7ujRRx/lrLPOwul07vIcIiIiqU5zAe+F7TV/PS3fE9ubZAsLCzn99NNZtGgRV199NQsXLgTgs88+49lnnwVitXTbawMBKisrE/sDXHbZZZSVlXHllVcmyu67775E0+6sWbPw+/1s27aN4uJiXnvttU7HOvroowESNXZer5eLL744MUDjgQce4Nprr8UYw9ixYykpKWHFihUcfPDBhEIhzjzzTM4//3zOOOOMxHGHDBnC5s2bKSoqYvPmzRQWFgLw7rvv8sQTT3DNNdfQ0NCAw+HA5/PhdDpZsmQJo0ePJhwOs3XrVo4++uhOsT766KPcfffde3PZRUREUoJqAPeCw+3Zo/Keam1tpbm5ObG8cOFCpkyZkmgmjUaj/OIXv+Dyyy8HYqNiH330UQKBAOvWrWPVqlUcfPDBAFx//fU0NjZyxx13dDrHyJEjefnllwFYvnw5fr+fgoICTjjhBBYuXEh9fT319fUsXLiQE044AYDNmzcDsRrHBQsWJEbidjxWdXU1K1eupLS0FGstl1xyCRMnTuT73/9+p/OfeuqpiRHGDz30EKeddhoAb7zxBhUVFVRUVHDllVfyk5/8hCuuuIJvf/vbbNq0iYqKCt58803GjRvXKflbuXIl9fX1zJo1a6+uvYiISCpQDeBeSBs6nNbK9Z2bgY2DtKHD9+q41dXViabOcDjM1772NU488UTuvPPORA3XGWecwcUXXwzA5MmTOeecc5g0aRIul4u7774bp9NJZWUlN910ExMmTEgMxrjiiiv45je/yW233call17K7bffjjGGBx98EGMMeXl53HDD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\n", + "text/plain": [ + "<Figure size 720x576 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10,8))\n", + "sns.scatterplot(x=\"TIME_MS\", y=\"SUM_PROXIMITY_KMS\", hue='EAN', data=test6)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAm0AAAHhCAYAAAA8kYmAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAB2Y0lEQVR4nO3deXicVfn/8feZNXuaNE2bJmmTtum+QUOhCkjBUgQBAUEQERDFDZUqIsjmAhREZBNU+LKJ/EABBVSQgooiCqWFltKNbmmbtM2+JzOZ5fz+mOmQNGlJaZLJJJ/XdeXqzDnP88z9TNvJPWc11lpEREREZHBzxDsAEREREflwStpEREREEoCSNhEREZEEoKRNREREJAEoaRMRERFJAEraRERERBKAK94BDIScnBxbVFQU7zBEREREPtTKlStrrLWj9i0fFklbUVERK1asiHcYIiIiIh/KGLO9p3J1j4qIiIgkACVtIiIiIglASZuIiIhIAlDSJiIiIpIAlLSJiIiIJAAlbSIiIiIJQEmbiIiISAJQ0iYiIiKSAJS0iYiIiCQAJW0iIiIiCUBJm4iIiEgCUNImIiIikgCUtImIiIgkACVtIiIiIglASZuISIJqb2ylvbE13mGIyABxxTsAERE5OP6Wdna8tZF1LyzHGJhx6gIKDy/Bk5oU79BEpB8paRMRSTCV63fwzu9fjT1f+fjf8aYlU3DYpPgFJSL9TkmbiEgCsday9fX3SBmVSeq0sbT4fKR7k9i1ZquSNpEhTknbIQq0+2muasAYQ1ruCNxJnm7H7K7YQ+WeGrKyRzCuKB9jTBwiFZGhwBhD1oQxbHf5uP66WwkGQ6SkJnPTrT8AIkmdDQbA4cDh1Ee8yFCi/9GHoKWmkbef+Cd71pYBUDivhNlnHUtqdnrsmLfeeIdHfv0Ep3/mBFpqa/G3tVE8eQJut956EfloHGMz+cW3H8BaC0Bbazs/uf4OSj82hyQnhNpbsWGLOz0DV2o6DqczzhGLSF9Q5nAIyt/ZHEvYAHau3MToaeOYcPQsAKr2VPOXp//GVd+7gFTrB8CYdnyNjbhzRsYjZInqaPNRv7Oa1ppGUrLTySrMxZuWHO+wRHqlrrEplrDtlTkiA6/D0l65G096JsbpxFe9hyRr8WRmxSlSEelLSto+onA4TMWqzd3Kd6/dHkvaqqtqOeXTx8YSNgAbDBCqqySclamuizgJBYJs+scq1v7ljVhZyfGHMev0Bbi83bu3RQab3NyROBwOwuFwrOz8C8/ABsN4Mkbgq62CcBh3eiYhv49wKKTWNpEhQOu0fUQOh4PR08aRlJnK6I9NZfSx0xlRPJrcyQWxY0Zkj6AwP7fbuWFfGzYYGshwpZPmqgbW/fXNLmWb/vEOTXvq4xRR7wV97fgb6uhoaiDU4f/wE2TIsdZSMDKV62/8Dp7ol4z0jDSO+cSRYCy+6j0QTeYCzY2E/D5sp+RORBKXmnoOwZjDJrG6Yge33nYPLc2tLFp8LN/4zFGx+vyCMbTXOmmvaOxynjMlFePSt954CbT5u3UtQWRSyWAWbGuheesmbDiS8Ds8SaQXT8Lp7d3aXDYcjrS6BDpweLw4vUmaFJOAbDBIsKmOExcewczZd9PQ0MSo7EwyUpII+9u7HR9obiJlTBwCFUkwba1tbNm0ncaGJgrG5VE0YVy8Q+pGSdsh2LajnFtvvi/2fNnf/sWosaO44tpv4HQ6CQc6CDQ34s3OwV9XA4BxuUnOzVPX6CEK+Dtwulw4nN0bixvqGtm0cSttre0UTSxkfHEhvqZWmvbUs7Ommortu0jOTqe9rjl2jjc9hbRRIwbwDg6ODYdpr66MJGweL0HrwB0OEmhp7lXSZsNh/HU1tO3aES0xpI4rxpOZpcQtQdhwGKzFOBwk546lfU8FOTZATqYTV5KhpcNPMt3/Lh3eJIxDnSoyPFXs3M3WTWW43G4mTSlmVG7P48mbmlr4v18+xiO/eRKA5JRkfvnQUo5YcNhAhvuhlDkcgo3ruo9p++ufXuZLX/987B9GY3M7G7dXk5riJSM9hRFpmSSHggMd6pDRVt/MzhXvU/bGekYU5FBy/GFkjx8dq6+urOGnP7ydV1/5LwCpaSk88dS9bPvb25i8DH7wk18QCoW4+cYrGOnysqehHn8wSMHMSXjSB+9EBGvDhPx+KtoNf3jkedat3cynTvkEi05MYfzIUR96fsjv65SwAVhay8twJaf0uqVOPrpAIMiObeW0trSRP24MI3Oyezyuta6Z+h1VBFrbSc/LJqswF4fLSbC1hfaqPdhQgKTcMQSaGiLLekQFW5tpaofyukYmjk7B+n2RCocDkzmSUEekddnp8eJwHfhjPxwKU7+jiqbdtbiSPGSNzyVtZGafvRciH0WHv4O2tnYyR2T0+ovmxvWb+doF36e2ug6AWXOnces911Mwbmy3Y99ftzmWsAG0t7Xzox/cxmN/upfskYNnIo+StkMwanROt7LiSeNJTY388ne4Pbz879Xc+bMHYvUer4fHnvkl07K6nysHFg6F2LhsJZv+uQqAxooadr27jRN+8DkyxkR+Ca5euTaWsAH4/R1Uvl9O9fvl2NR82tsi3UdvvbuOd99ey/q1m4DI2ld33n8jC088emBvqpccThf1ITffuPQHNDY0AbBpw1Z27NzDtTd+Nza2aX/CnX7Bf1AYJhwM4vT2R8SyV0tzC0/+9lnu+8VDBIMhxhcX8PP7fsyU6V0Xwm2rb+GN/3uB2q27IwUGFnzlFMZMzaN56/tApEs/0NRIsL37fqMjR6Ty0+vv5qSTj+G4Y0sjrbOhMIUOaC3fjg2H8GRm4ckcgSs5NXZeONARmajgcuNwuajauJPXfvksNhx5vfQx2Rx72emk5ihxk/hYt2YjD973OOvWbOSkU0/gzHNPoXB8/gHPCQaD/L9H/hhL2ADWrFrP8v++02PSVl1V261s5/YKmhqaB1XSpjbzQzD7sOnMOXxG7LnX6+HyH1xKSmoKAFWVNTzywB+6nNPh7+D9DdsGNM6horWumc3/erdLWaDdT+OuyH+2ltomKraWd6lPS0vFV98CgKvT7LmROVmxhA0ig7uX3nAXdbWDdzLCth17YgnbXs8//RIV5Xs+9FyH2wP7fDs1ThcOt7tPY5Tu1r+3ibt/9gDB6OSj7dvK+cXNv6K1ta3LcfU7qz5I2AAsvPun/xBoaWZvwgaRVlN3WvcEKj0jjeuXfo+/L/svn1p0CZd86VoK8kbRVl5GqL2VsN+Hr2o3gebIciHWWgLNjTRtXk/T+2tp3rIRX0MTq//4WixhA2jeU0ft9sq+fVNEemlHWTmXnv89Xn7hX1Ts3MOD9z3Onbf8hvZ23wHP8/v8vLtybbfyjeu795AB5BfmdSubMWcq2TmDJ2EDtbQdkrz80dz+65/w/vrNtLW2M2FSEZOmFMfqXS4nScle2CcPcHv0tn8UDofB6XYS9HedCbd3XFvz7lpyR4zoUtfY0ERaXhaVwEhvMmPzR7OropJgqPvs3ZqqWnyDeDKCx9M9wXK7XV2S0f1xepNIGzeB1p1l2HAI43KRNm4CTo+a2fpbRfnubmVvvv42jfVNpEa/4EHPE2F8ja2wzzi1cEomHic4k1MItUcSP09WDk5vEiVTJnDPQ7dQXVlDRmYa1t/W7Zr++ho8I0ZiwyGayzZDdFJOyN9Oe20N7dEvOZ11tHSf4CAyELZu2k5TY3OXspdf+BffWPIlJk4u6nZ8465aKtdtJ+AP8MlPHcuWTWVd6o84qucxaiVTJ3Ddzd/jZz++B7+/g4JxY7nupu+RkZne4/HxouzhEOWOziG3h25SgOyRWXz7yq/ww8tv+qAsJ4vps6YMVHhDSkp2BjNOPYrVT78WK0sdlcmIgsiYrobyGlJaQ1z2rQv5vweexOfzc9jhM8geN5qk0xaw4aUVXP2tL7OttoqcsaO6rXN12tmfYtTowbvo8aSpE5g4uYgt75fFyr78zS+QP677N8R9GWPwZGbhTEomHAricLmVsA2Q3DHdxxzOnDuN9H1+GWTkZWMcpksrV+HhJbjT0vE7ndjoF40Ofwe2uQZPZhbu9EiLW6C5EV9bG6neJFLTUkhNi8x6a6/qnggahwvjdBDytcUStpiOFoo/NoONL6/sdAKx/2MiA82b1P1zyuv19Nj40bSnjlfveAZ/c+TLyoyPT+GExcfw95dew+V2ceGl53L4/Fk9vk5ychJnnfdpjlhwGC3NLeSNHc3IUT2PPY0nJW39bOGio/n1Yz/ntX++Qd7Y0XzsE0dQNKEw3mElJGMMRQtmkJ6bxZ5120kfncWYaeNJHZkBRGbX5ZUU0v56Ez+77ruEjGX0mFHkF+fjmlJE4bwSwsEwHxuZgXE5GJE9gtt+ei+7y/dw2mdP4sJLz8U9iLsLx+TlctcDN/G/11aw5f1tHHV0KYcdMQvHQcwMdHqT0GIzA2v6zMmcd9GZPPHIH4HIzgU/uP4y0tNTuxw3omAUx1x2Oqv+8G9aaxsZf+Q0pi4uxZ2SSvqEKQSaGwkHg/j8YdxAR2OnJnzjwGG7D852paVjOiV8AMm5Y3A4XT1OSLChIBOPmYENh9ny2hqSMlOY+9lPkDWu+3qTIgNh0pRi5hw+g9Vvf9DV+dVvX9jjuLT67ZWxhA2g6vWNnFl6FF/7zkV4kjwUjBt7wC0kHQ7HoP/9bHpar2qoKS0ttStWrIh3GNLPGnfV8saDL5I3swiH04HT62bsrGIyx+5/0kdDQyO+Nj8jR2VrP1jpN60tbWzbvJ3m5hYKiwoo6GH8zF7+Vh8hfwdJmak97mJQvr0CmutJCX8wpieUPpLsceNw9nB8sK2VQGszNhTClZqOOzUN43AQDgXxVe2JLMYblVpQhCdrJNZafA2tOD0ube8mcVexczdvv7WGsq07mHP4DOYcNoPMrIxux219/T1WPPZKlzJvWjInXvcFkjNTux0/mBljVlprS7uVK2mToaS1tpHGisjEhMyxOaTmdP+PLZLotm0uw9/SjCMcJik9nbQRI8j+CF054VCIUHsb4WAAp8eLMylZa7pJwqrfUcnff/YHwp12HJp9xtFMXdwt9xn0lLQpaRORISQYDNLhD5CSqpYwEYisAlCzZRcbl62ktbaJSZ+YTf7ciSRlJFYrG+w/aVN/kIhIAnK5XLg+ZKFckeHEGMOoSflkF40mHAzjTjrw+pWJKG7t4MaYs40xa40xYWNM6T51VxtjNhtjNhpjFncqn2eMWROtu9to/x0RERHpxOlyDcmEDeK7uO57wJnAvzsXGmOmA+cCM4CTgPuMMXtH1/4KuBQoif6cNGDRioiIiMRR3JI2a+16a+3GHqpOB5601vqttduAzcB8Y0wekGGt/Z+NDMT7LfCZgYtYREREJH4G4zShfGBnp+fl0bL86ON9y0VERESGvH4dxWqMeQUY00PVNdba5/Z3Wg9l9gDl+3vtS4l0pTJu3LgPiVRERERkcOvXpM1a+8mPcFo50HlJ4gJgV7S8oIfy/b32/cD9EFny4yPEISIiIjJoDMbu0eeBc40xXmNMMZEJB8uttbuBZmPMUdFZo18E9tdaJyIiIjKkxHPJjzOMMeXAAuCvxpiXAKy1a4E/AOuAvwHftNbuXd7468D/EZmcsAV4ccADFxEREYkD7YggIiIiMojsb0eEwdg9KiIiIiL7UNImIiIikgCUtImIiIgkACVtIiIiIglASZuIiIhIAlDSJiIiIpIA+nVHBIlobWllw7ot1NfWUzBuLFOmTyKyPrCIiIhI7yhp62e1tfU8+/sXuPf2BwkGQ6SkJnPzHddw/OJj4h2aiIiIJBB1j/azjes2c/fPHiAYjGzq0Nbazk+u/jk7ysrjHJmIDDWhQAcdjQ20lJfRumsnHS1NDIcF1EWGC7W09bPK3dXdPjTrahuorqxlXFFBnKISkaEo2NpC5Y5yduyuIxy2jMvPIX9CEe609HiHJiJ9QElbP8sbm4vD4SAcDsfKRo7KZnTeqDhGJSJDTbDDz84du/nhD+5kw7otABSMy+OOe69nyuzpcY5OJHGtW/M+776zln+89B/GjB3FmZ87hbmls+ISi7pH+9mU6ZP47g+/hsfrASA9I40f3fp9CsaNjXNkIjKU+H0d/Pd/q2MJG0D5jt288JdX4xeUSILbtnk7/3rldW6+7k7e+M8Knv3Di1x6/vfYsHZzXOJRS1s/y8oewdlfOJ05h8+kri4ye7RkyoR4hyUiQ0y7L8C7qzZ2K1+5fA3BQBCXWx/3Igdr965Knn/mpS5lPp+fd1asYeqMSQMej/4XD4Dk5CTmzJsR7zBEZAhLz0xjbulMlr3wapfyhScerYRN5CMymB6X6HI44rNsl7pHRUSGAK/XQ+lRc/n0GYtwOCIf7Z886VhOOEnLC4l8VHn5ozntsyd1KUtOSY7bmDYzHKaDl5aW2hUrVsQ7DJFeC4dCWGsxgHE4MA59v5Leqa9rYNuWHRhjmDx1IqlpKfEOSSShbVy3ifdWb+TVV14nL380p3xmEXMO79/eM2PMSmttabdyJW0ig0c4FCTQ1Eg40EG4w0+gpRlXcgpJuWNwJafGOzwRERkA+0vaNNBBZBAJtDTjr68FINjSBEBHNHnLmDQVpzcpnuGJiEgcqc9FZJCw1uKvqcKVkhpL2GJ1oSAhvy9OkYmIyGCgpE1kEHG4XGAt9DBbyRj9dxURGc7UPSoySBhj8I7MpbViO97sHPy11bE6Z3IqzqTkOEYng01zUwtbNpXR3NTCuKICxhdrWzyRoU5Jm8gg4kpNI7WwiLDPh7MgJfJncjKulHQcbne8w5M4CgUD2I4OcDiorGnk7y/+i3tvf4j2dh9Z2Zksves6PnbsEfEOU0T6kZI2kUHEGIM7JQ1S0ijbupOd2ytoaWqlubmFognjmDqzhIyMtI907WAwyLYtO6jaU01TYwvjxudTMnVCbIs1Gbw6WlroaKiho74W43SxcWcTdyz9DaFQCID6ukau+95Snvjzb8gdo32NRYYqJW0ig0goFOK91RtoamjiD48/T2pqCi8890qs/htLLuaSb5yP23PwrW6v/2s5a1at54F7HousAWcM19y4hDM+dwpurZg/KFlraamsxWn9dNTVAOD0eNhRVh5L2Paqrqqluqq235I2ay1BXweuJE+PK8SLSP/TJ7UMK8EOP2Gfj3CHH+N04kpOxZk0eJbRePeddfz2/t9TMH4sM2ZN4b47Hu5S/5u7f8sJJx1LydSD2792545drH9vEw//+gn2rs1oreWWH93N4fNnM2lycZ/dg/Sev9VHY0UN7Y0tBNo6SB89gqzxY/AkR1o/GytqCfl9uEKNsXNCfj9j80djjKHzOpsjsjLJyh7RL3HWbq+kfOX7VG3YSXbxGIoXTCe7aEy/vJaI7J+SNhk2woEOgi1NtFXsiMzQBBweL+nFJYNm/bOnfvc88z92OCveXEXxpPHd6kOhEK2tbQd93caGJgKBAIGOQJfyYCBIXU09KGkbcEF/B2X/XUv9zip2LP9go/dZn/k4UxYdjsPppLmyDm9GEk6csXobClJcmMuXL/sCD977OOFwGK/Xw/W3XMHYgr5PpFpqG1nzp/9QtWEnAPU7qtizdjufuPxM0nIy+/z1RPpKOBQi2N5KuKMDh8uFMzkFpzuxh4MoaZMhzVpLoLWZjoY63KnpdNTVxhI2ILbrwGBJ2lqaW6iva2TqjBIaG5rIys6kvu6DVpbC8fkUFOYd9HVHjx6F2+UiPSON5qaWWHlqWgp5+aP7JHY5OE176gn6A10SNoD3nv8fY2dPIHPsSNzJXspXbqFgznjcDic2HOkSzXGFOPOsxcxfcBgN9U2Mn1DA5KkT+yXOlsqGWMK2V2tNIw3l1UraZNAKh0IEmhpoLd8ONgyAKz2TtILxOBI4cdPCTzKkBVtbaC3bEhkPZC3hQEe3Y3oqi5fPnn8aWzZto7qylrS0VL6x5GJmzZ2Gy+VkwTGl3P7rn5CTO/Kgrztq9Eg+ftyRXHbFJYwclQ1Adk4Wt//qJxSOz+/r25BeCLT7seFwt3IbDhP0Rf5NZubn0FLdSEtdGw0NDoKuTILODBoaDJkZGRz58Xks/vRCpk4viW0S39eMw0APQ9gcTv36kMEr5PPhq94TS9gAgs2NBFpbDnDW4KeWNhnSgr62WOuEDYVwZ2R2Wf8MIstsDBalR84lFAxRUb6bmspa6motX/3OhYweM4rC8fmkpH70tdpmzZ1G3thcZh82A1+7j7GFeeSNze3D6OVgpOVkUrWxHE+Kl442f6w8dVQmqTkZACRnplL6hRNo3FVLqCNIU3Ur3rQUcqeMJ3XkwLRypedlU1g6hZ1vfdAimDV+NCMK9G9HBjEb6nEXGRsMxiGYvqOkTYYNX20VyWPyseEwHQ11GKeTlDH5kSU2BomU1GQWnng0Pp8fYyAYDJGcnNRnrSg5uSM/Ukud9L3UnEzy50wkNSeDza+upqG8mlElBcw9+xMkZaTGjkvJSiclKz1ucaZkpjHtpCPImZBH9eZdZI/PZcz08aRkDZ7/NyL7Mk4X7rQMAs2NXcodg2QozEdlOs8+GqpKS0vtihUr4h2GxEGgtZmWbZtjrW04HKQWTsDp8WCcTpweb3wDlGGvo82Pv6UNayMta+6kxB1vIzJYWGsJtDTjq6wg2NYKDgcpo/PxZudgnM4Pv0CcGWNWWmtL9y1XS5sMaa6UNNKKJuKvryMc8OMZkY0rOVnJmgwanhQvnhT9exTpS8YYPOkZODwebCAQ+ZKelJzwawwqaZMhzRiDOy0Dd1pGvEMREZEB5vImQYJ3iXam6T8iIiIiCUBJm4iIiEgCUNImIiIikgCUtImIiIgkACVtIiIiIglAs0cHQEdLOw0VNbQ3tZI6MoPsojH9tuWMiIiIDE1K2vpZW0Mz29/YwHvP/xcbtjg9Lo744omMK50c79BEREQkgai5p5817aplzXOvY8ORnSdCHUHeefKfNJRXf8iZIiIiIh9Q0tbP2upbYJ+dwvwt7bQ3tsYnIBEREUlIStr6WUp2RrdtM5IyUrTZsoiIiBwUJW39LLNgJHPPPhanO7JBrSfFy7zPH0/m2Jw4RyYiIiKJJG4TEYwxtwGnAh3AFuBia21DtO5q4BIgBHzbWvtStHwe8AiQDLwAfMdaa7tdfBBJTk+l6GPTGVGYi6+5LTJ7dPzoeIclIiIiCSaeLW0vAzOttbOB94GrAYwx04FzgRnAScB9xhhn9JxfAZcCJdGfkwY66I/CneRlVEk+hYeXKGETERGRjyRuSZu1dpm1Nhh9+gZQEH18OvCktdZvrd0GbAbmG2PygAxr7f+irWu/BT4z0HGLiIiIxMNgGdP2JeDF6ON8YGenuvJoWX708b7lIiIiIkNev45pM8a8Aozpoeoaa+1z0WOuAYLA43tP6+F4e4Dy/b32pUS6Uhk3btxBRC0iIiIy+PRr0mat/eSB6o0xFwKfBk7oNKGgHCjsdFgBsCtaXtBD+f5e+37gfoDS0tJBPVlBRERE5MPErXvUGHMS8APgNGttW6eq54FzjTFeY0wxkQkHy621u4FmY8xRJrLw2ReB5wY8cBEREZE4iOfeo78EvMDL0cVn37DWfs1au9YY8wdgHZFu029aa0PRc77OB0t+vMgH4+BEREREhrS4JW3W2kkHqLsJuKmH8hXAzP6MS0RERGQwimdLm4iIHKRwMECwvY1QexvB9jZcKWl4Mkbg9HrjHZqI9DMlbSIiCSTY2oq/voZAUwMAgcZ6OhrrSC+ahMPljm9wIgkq0NaKDXTQ0dyIDQbxZGbhzhiBw+n88JMHkJI2EZEEEQoECHX4YglbrLytlZDPhyNNSZvIwQr62gl3+GnbU0FtwEltQwuZDe0UjbckZQ2ufcKVtMmwFezwE/b7CPnaAYMrORV3Wlq8wxI5ALvf1SkH+TbMIoNWONCBv72ddbtb+cXS37Bp41ZSUpNZcvVXOe3MxSSnpsQ7xBglbTIshYMBQu1ttO7cBuFwpNA4SC8uwZ2WHtfY1q3ZyO5dldTXNvDff69g/IQCFi46mtmHTY9rXBJ/TrcHh8eDKzWNYGtLrNzh8eJKSopjZCKJK2wtFdVN/Oru37Jp41YA2lrbuenaO5k8dSKHHTE7zhF+QEmbDEuhjg4CTY0fJGwANoy/riauSdvGdZv5zT2PUTK5iPvveSxW/vxTf+NXv72NydMmxi02GRxcKakYxxgCSU0E21pwpaThzc7B4fbEOzSRhNTQ7KO+vpl3314bK0tK8nLOF07H7fGws6yc0Xm5eLzx/z+mpE2GJ2uxoUC34nCgA2st0bUDB9zby9/lU6cez49+8LMu5dVVtaxfu0lJm+D0eHF6vLhS07E2jMPpitu/V5GhIC0zHQwUjs9n5/YKiieNZ8lVl9LW5uPWH9/N5o3bOHrhkXz12xcyaXJxXGMdLBvGiwwspxN3Wma3Ym/WyLj+AgwEg2AgFAx1qwuHupfJ8OVwOnG63ErYRA5RWloqGSMyuPTbF+D1erjgkrOpq2vkpmvvYPXKtbS2tPHSn//Jj668jebG5rjGqqRNhiV3UjLO5BSSxxTgcHtwuN0k5xXiSu+eyA2kw+fP5p/L/sNZ553apTw9I40p0/e7HrWIiByCmbOnMufwmdzz0C1kjxzBnopKmptauhzz7jtrKS/fE6cII9Q9KsOWOzUNhzcJd3oGOBy4vPEfyD1j1hTO++KZVFfVkjsmh38s+w9FxQWcce4pTJ81JXbcti072LOrkpTUFCp3V2GMg6kzJlE4Pj+O0UtfCnYEaalpINjegSfFS9roLBwOfc8W6S9FEwopmlDI/15bQVJy998HHq+H5OT4LmKtpE2GNafLBa7B89/AGMPc0pmEw2GstZx/8WfxeLt2gS3/7zvc8P1bWPLDr3PnLb9h/XubABg9ZhT3PLSUqTNK4hW+9JHmqgYadlZR8e5Wdr71PsZhmLLocEqOP4yk9MGz/IDIUFQ4fiyNDU0sOKaU/722Ilb+tcsvivsX48Hz20pEYva2qDj3WY27rraBn1z9c0467QQ2rN0US9gAKvdU8+Rvn+W6m7/b7TxJHDZsqd9RRf32Sna8uSFaButffIvM/BzGlU75kCuIyKEoGDcWay2ZWRks/vTxNDY0MXFyEYeVzor7Z6uSNpEE0tLcwo6ycrJGjmDt6g3d6t99ey0+n5/UQbQYpBwcf0s7QX+A6k0V3ep2vbtNSZvIACgcnx/3VrWeKGkTGcQa6hvZVb6HutoGckfnMLZwDPPmz2HHtnImTek+9fz4k45RwpbgXElujMOQlptJXVnXQc8jCvpvS53m6gaad9fRVt9CSlYa2RPGkJSmf0sig4mSNpFBauuWMrZt3sEt199N5Z5qMjLTufrH3+EHP/oWP7n65xxx1GF85uxP8ec/LiMUCnHM8Qs47azF8Q5bDpHL4yZjTBY2FKJy/Q78ze0ApOZkMnb2hH55zeaaRspXvM+a5/4bKys5fi4zT/8Y7kGwoKiIRJjhsF9daWmpXbFixYcfKDJItLf7+N+/3+LGa39BTVVdrNztcfPIU3dTOC6fPbur8Ho91Nc34XQ6mDSlWK1sQ0jDrhp8Da201Tfj8roZWTSG1Jz+WZJmz7oyXv/VXwgFgl3Kj1vyWXKnFPTLa0r/qtxVRUtLK4VFBXg87niHExdtDc0E/QGMw4En2Ys3LTneIfWaMWaltbZ033K1tIkMQvW1DbS0tHZJ2AACHQF2lFUwa+50RmRHfoHHd31u6S8jxubA2P7rDu2so93fLWED8Le0DcjrS99pbWlj1dvv8fCv/h+bNmzlY8cewflfOpuZc6bGO7QBEwwEqN60i8aKGhp2VFGxagvJWWnMPecTjJk2DkcCT9TSoj8ig1BaeiopKcmk7jOmyBhD7uiB+UUuw0dyZjqpORldypxuF+mjs+IUkXxUG9Zu4qpv/ZTl/32H+rpG/vrsK9z647tprG+Md2gDpmFHNRteeov67VXseGsjoUCQlqoGXr/3eep3Vsc7vEOipE1kEMrITCd/3FiW/PDrXaaYf/U7FzJ1ptZhk741oiCHwz63kMyxIwFIGZnBUV85mcx8fUFINNvLymlsaOpStnrlWrZs3h6niAZec1UD2eNGU7Fqc5dyay1Nu2rjFFXfUPeoyCA1bUYJaWnJ/Pqx29izu4rReblMnzmZ9PS0eIcmQ4w7ycPYWcWkjkyno9VPUmYq6bkj4h2WfATJPazk7/a4eywfqjzJXvwt7SSPSKW1pmsC606J744Gh0pJm8ggVji+gMLxGgguAyNzgMbQSf8ZX1zIkR+fx5uvr4yVXXjp5yiZ2j8zjwej9LxszHvbmHjsbN79038gOt9yxLhcssblxje4Q6TZoyIiIkPImlXreX/DFvbsqmLS5GLmzZ9NTu7IeIc1oJp219Jc2UA4FMLX1EZSRgrZxWNIzc748JMHAc0eFRERGQZmzZ3GrLnT4h1GXGXkjSQjb+glqpqIICIiIpIAlLSJiIiIJAB1j4qIiMiwVlu2h442P76GFirX7yApM5WCwyeRM2FsvEPrQklbP/O3ttNS1YC/xUdKdhoj8kfFOyQZYjpaW7GBDrBhgu1thHztuDMy8WRk4fRo30gRkQNpqKiiqaKGjjY/q595LVa+9bU1LLzibLIKB8+MUyVt/ahhVw3Nu+pY9cy/aa9vwZ3i5fBzF1JYOhmHQz3TcuiCbW2Efa3YUAh/fS1hvy9S3tJEqK2V1PzxmATeskVEpL81VzZinA7K3ljfpTzoD1C1sXxQJW3KHPpRe0Mrq56OJGwAgTY/yx9ZlvArMsvgEQr4CYdCYG0sYduro6GOUIc/TpGJiCQGay1YCAdD3erCoe5l8aSkrZ8E/QE6Wtppb2jpUm7DYZqr6uMUlQw9Q3+dRRGR/pQ+KhMbDjNu/pQu5Q6ng9zJg2txc3WP9hOn24U72Ys72UugvWtrR/KI9DhFJUON0+PFBkPYUBCHN6lLa5snMwunJ7G3bBER6W+ZBaMIBcN4M1OZe/ax7Hx7E0npKUxaOJfs8WPiHV4XStr6iXEYkkakMvO0Bax66t/YcBiAGZ8+ihHahFkOUn1dAzt37CIYCLG7Yg+hUJiSqcVMmzEZay3hQAfJuWMJtrVEJyKMwJM5QuPZREQ+hMPhIGdCHuFwmODkfCYcPROn241xmHiH1o2Stn6UXZiL0+3kmG+eRntjK8lZ6eRMyMPldcc7NEkg1VW13Hv7g5zwqWO5/+7fsnrlWgBS01L45UO3MO/IObFjvVnZ8QpTRCShORwOPIN8xr2Stn6WOWYkmWOG3lYaMnDWv/c+sw+bzsa1m2MJG0BrSxv33fEw9zy4lJTU5DhGKCIy9ISDQYLtrVhrsYEAwdZmHB4vnowRuFJS4xKTJiKIDHK11XWkZaRRX9fYrW7zxq20trTFISoRkaGto7mRUEcH4fY22iq209FQh69qN83b3ifoa49LTEraRAa5ccUFbN+6k7H5o7vVLTzxaLJGZsYhKhGRoSvU4cd2+DEOg7+upkudDYUItrXGJS4lbSKD3LQZk8kemcWkKcVc8vXPk5QUmRG64JhSLrjkbFwujXIQEelr1lrARP/ctzI84PEAmB6DGWJKS0vtihUr4h2GyEdmraV8xy4CgQANdU0Yh2HKtImkpKbEOzQRkSHHWou/vjYynq3Dh6+68oNKY8iYOLVfx7UZY1Zaa0v3LddXdJEEYIyhcHx+vMMQERkWjDF40jII+tuxLjfJY1x0NDbgcLtJyhkdt4kIStpERERE9uHwePB4PNhwiHBqGt6RuRiHA2Pit36bkjaRQS7o92ODQWwoCIAzOQWnW2v9iYgMBONw4hwkMwCUtIkMUsEOH2GfD4wDf00lgebIkh+ulHRS8gtxJWs8m4jIcDJIckcR6Szoayfs9xMOBgm1tcQSNoBgWzMdjfVxjE5EROJBSZvIIBTytWODAZweL8H27ovnBpqbYvvZiojI8BC3pM0Y81NjzLvGmFXGmGXGmLGd6q42xmw2xmw0xizuVD7PGLMmWne3iedoQJF+ZENhLGDDYZxJSd3qXampGIe+c4mIDCfx/NS/zVo721o7F/gLcD2AMWY6cC4wAzgJuM8Y44ye8yvgUqAk+nPSQActMhAcHnckcQuHcKak4kz+YHq5w5uEJzMrjtGJiEg8xG0igrW2qdPTVGDvKr+nA09aa/3ANmPMZmC+MaYMyLDW/g/AGPNb4DPAiwMWtMgAcSalgIVgeyuu5BS8ObkYa7GA0+PBlRyfNYJERCR+4jp71BhzE/BFoBFYGC3OB97odFh5tCwQfbxvuciQ43S7cbgyMB4PhEI43W4MBuN04fR4DupaPp+f9rZ2nE4XGZlp/RSx9KXqyhp2VewhFAhTV9dAW1sbkyYXM2X6JJxO54df4CNoqG9k965KmhtbGZ03ivHFBf3yOiLy0fVr0maMeQUY00PVNdba56y11wDXGGOuBi4DbgB6GqdmD1C+v9e+lEhXKuPGjTvY0EXizhiDOyn5I5/f3NTClk3bqa2u5Zkn/kJtTR2fOedkPnnSsYwandOHkUpf2lFWwYvPvcLEyUX88+XX+fMzLwHgcrv4+b0/4vjFx/T5a76/fgu7d1Vy+02/omzLDkaPGcXVP72chYs+HteFREWkq35N2qy1n+zlof8P+CuRpK0cKOxUVwDsipYX9FC+v9e+H7gfInuP9j5qkaFhzar1tLW284Nv/4RARwCA9e/dRXubjy99/fNxjk72543XVjByVDZVlbWxhA0gGAhy47W/YMacqYweM6rPXq+luZW6mnpuuvYO9uyqAqByTzVXfesn/PZP9zJ1ekmfvZaIHJp4zh7t/ElwGrAh+vh54FxjjNcYU0xkwsFya+1uoNkYc1R01ugXgecGNGiRBOFr99Ha0sr7G7bEEra9Hn/oaWprtM7bYLVt6w7C4TCN9Y3d6mqq6mhqbO7T12tsaKK2tj6WsO3l8/nZsa18P2eJDB+hYJBgoIOg30c4FIprLPEc03aLMWYKEAa2A18DsNauNcb8AVgHBIFvWmv3vktfBx4BkolMQNAkBJEeOJwOrAW3u/t/8aTkpH4bFyWHbvbc6TS3tDA6bxTGGD5/8Vkcs/AojIGqyhpqqusYM3YU6enpffJ6SclJpGekkZTkxefzd6nLHqlZyjJ8hQIBgu2tGOMg0NxIoLkBpzeZpJxc3GkZcYkpnrNHzzpA3U3ATT2UrwBm9mdcIkOBx+Nh5KgskpK9jMjKpKFTq82l37qAEVnx+cCRyCSDhvpGqqvq8Ho9TJs1mZSUD8YuHvGxubzy4r/JGJnF3f93MzU1ddTW1PHTq2+PJVVfuORsvrHkItLSD31iycicLEZkZfCN717ML27+daz8oq+ey/RZUw75+iKJKtTWCsbir60i0NQAQNjvJ9jaTPqEKXHZStBYO/SHe5WWltoVK1bEOwyRAdXR0cGmjVtpqGti5Zurqa9t4Ojjj2LB0aWkpH70CQ7y0b3z1hoCwQAP3vs4/3ttBQ6Hg9PP/hRf/uYXKBwfW1+cQCDArvI9bN9aTltbG7+4+dfdui9/87ufs+CYI/okrlAoxKYNW6murGH3riry8kcza+40RmRl9sn1RRJNOBjEV1uFKzmFlrLN3epTCopIyu6/CV3GmJXW2tJ9y7VhvMgQ5fF4mDFrKgAf/8T8OEcje3ZVsaOsnPc3bOV/r0W+RIbDYf70+78y57DpXZI2t9vN+OJC3l7+LknJSd0SNoh0lfYVp9PJ1BklTJ2hSQciABiDMQ7AgDGwTwNXvHak0T44IiIDoHJPNbljRrH8v293q1v51rs9npNfmEc4bCmZMqFb3bjxWqZSpL84nE6cKSmEwyG8Obld6pzepLh0jYKSNhGRAZGVnUlTYzNTpk/qVjdl2sQez5k8bSJut5NvXnEJ+YV5ACQnJ3HNjd9l+uyp/RqvyHDnTknD6XLjTs8kpaAIT3YOyXkFpBYW4/R23xN6IKh7VERkABSOz2fLxm2c8plFLP/v27Euz+mzprDg6G5DVwAYkZXJwhOPpmzrTm6953qaGpsZlTuSydMmatFbkX5mHA7caZ1maffjGLbe0kQEEZEBEggE2bm9nOamVsp37MLr9TBlRgmF48Z++MkiMmxoIoKISJy53S4mTCoCYM7hM+IbjIgkHI1pExEREUkAStpEREREEoCSNhEREZEEoDFtIiIiIvvw+ztY++4G2tp8ELasfvs9amvqOfq4Izny4/NITRv4tdqUtImIJJCWmibCwRDWhnF53KSO1D6yIn3JhkOEAkHefXstG9ZtYezYXG66/k5qquoAePr//Zkbbvk+Z5336QGPTUmbiEgCaG9ooW5HFYTDNO6qZcu/38VamHriPMYfOQ1vmvaTFTlUgbY2wh0+/IEwa9/dSM6obLZu2RFL2Pa69xcP8olPfoycUdkDGp+SNhGRBFC/s4q6rbvxpCXz3vP/i5WveurfeFOTGX/UtDhGJ5L4woEAwZYmHG43wUAHwWAIjCEcCnc71tfuJxQMDXiMBz0RwRgz0hhzhjFmXn8EJCIi3fka20jOSqdy3fZudWXLN8QhIpGhJdThB2Ow4RBJTpg8pZiW5lYKi/Lxej1djj3/S58ld8zA75DwoS1txpi/AFdZa98zxuQBbwMrgInGmPuttXf2c4wiIsOew+2ko82PN7P74Oe0nMw4RCQytBiHg6AFt3FgMUwak4HH4yGE5eY7r+XZP7zAnt1VnPbZkzj5tE/GZSu53nSPFltr34s+vhh42Vr7RWNMOvA6cGd/BSciIhFpo0bQ0eJj7MxiKt7ZQtDXAYArycP4I7V5vMih8odg6/Y95I4eSUtzK+lYJmc7CSenY52jmX3j5SSnp5GRmf7hF+snvUnaAp0enwA8AGCtbTbGdO/oFRGRPpczIQ9jDB1tfhZ8+WSaq+txGAdZRaMZWTQm3uGJJLzKPVWsWrWBnJwsNq7fwozpEzjqyFl4sAQsPPf8Pzjt7FPiGmNvkradxphvAeXA4cDfAIwxyYC7H2MTEZFORhZ/kJzlURS/QESGIG9SEtOmTSA9Ix2HwzBrwmhC1bvYO93gxOPmkZTsjWuMvUnaLgF+AnwS+Jy1tiFafhTwcD/FJSIiIjJg8gvGkOFx4HI5yc5Mxd1Y2aU+KdCKJ877SH1o0matrQK+1kP5P4F/9kdQItKVDYcJ+X3YcBgbCmIBZ3IKLrfnQ88VEZHecbsMhIOkeZ349620FhuO76iw3sweff5A9dba0/ouHBHZVzgUxFdbjSsllY76WjrqawFwepNIKSzGnZIa5whFRIYGh9uDDYUwoSA4HNApSXN6k3B64vtFuTfdowuAncATwJvAwM9xFRnGQm1tOL1JhNraYgkbQMjvw1e9B1dhMcYR5zZ7EZEhIBgEBw6CIQ9Jo8fRUbeHsN+HMyWNpFFjcbjiO5S/N0nbGGARcB7weeCvwBPW2rX9GZiIRIQCfhxuD+FgR7e6YEszNhTEONRNKiJyKPwtPsrf2Yo3PQVfYytbX1vDzNMW4EpJx4WL5m3V2FAlmQU5ZIzOikuMvRnTFiIyY/RvxhgvkeTtVWPMT6y19/R3gCLDncPtwVrb4zc8V0oaxumMQ1QiIkNLS3U9ACF/B4F2P9NPOZK6HVXkluSz5X9r2BHdecSblszHv3YqOZPGDniMvepTMcZ4jTFnAr8DvgncDfyxPwMTkQhXcgrBtnacySm4Mz5Y+d643CTljsE4lLSJiBwqh9MJYYtxOEjKSKWj1Ud67ghaqhpjCRuAv6Wd1X96jUB7t6kK/a43ExEeBWYCLwI/7rQ7gogMAIfLTfKoXEJ+H0mjxuDNysFaizMpGVdScrzDExEZEtJyR1BbtgeHy4krxUtDWSUZY0fSVtvc7di6bXvoaPPjHuB123ozpu0CoBWYDHy7015bBrDW2ox+ik1EohxOJ44PmSXa2tLGxnWbaWlpobG+mf+99hbBUIgzzj6Zw+bPJikpvotCiogMZu4kD2NnFdO0px6Hy0FydjrBjiBJPez3O2pyAZ60pAGPsTdj2vbbhRod4yYig8Cad9ZRW1NPTXUtd916P8FgZB3vvz3/D37129v4+CfmxzlCEZHBLSUrnZSsyN6inpQkKlZtIbtoNCUL57L5X6uxYUtqTiazP/Nx3N6BnwDWm+7R66y1P+2hPAN4HjiuH+ISkQMItrcR9PsxbhcmFKYjGKK2toH3N2ylrrY+lrDt9dsHfs+RHzscl7s3jesiIjIiPwdvejIt1Q2MP3IqebOKCYfDZObnkJoVn03je/MJfowx5iZr7TV7C4wxY4CX0GQEkQEXaGmmtWI7yWPyCbe20L5nFyYtA2MAG8Za2+2ccNj2WC4iIvuXnJFKcsbgWcC8N0nbacDTxphfWGu/a4wpITIp4TZr7W/6NzyR4cff0kZrbTPhUIi2uhZcXhcjCnNJGZFGOBigvWoX7owRELa0V+4CLLa1iREjMiiZNons6jqcTieh0AetbRd8+WzcnvguCikiIoemN2PafMaYM4AnjTFPEtkh4XJr7Z/6PTqRYaa1ton68ipcXg9v/79/0FLVAMCYGUXMPftYUkYkE2pvw50+AhsMwN7WM2uZMCoFb5KH9IxUfnTr9/nXP/5HwB/gnAtO54ij5sbtnkREpG/0Zkzbd6MPlwNXAq8BxXvLrbW/6L/wRIaXxooavKnJbH3tvVjCBrBnbRnVcyZQ/LHpuFLTCXf4cKWmd9kbzxP0UZzqIPPwUpxuD6ef/ak43YWIiPSH3iyumx79SSKyqO47ncriMxJPZIhqb2rDWqgr29OtrmFnNQ6Xi6RRowm2tWItpIwpiC2uaxxOUguK4r43noiI9I/edI/+uDcXMsZcba1deughiQxfKSNSwVhyJo2lubK+S13W+NEAuFPTSR03kbDfh/F6SSuaSDgcxun24Eruvp6QiIgMDb3axqqXzu7Da4kMS5n5OQRa/YybP5URhaNi5YWlkxk1JT/23OX14snIxJ2SijstA2/GCCVsIiJDXF8u2mQ+/BAROZCUrHTcyV6aa+qZ94UTaG9oxeVxkz0uF0/qwK++LSIig0dfJm1aBEqkD7iTPGQXRLpCGR/fWEREZPDoy+5RtbSJiIiI9JPeLPlxlLX2jV5c66k+iEdE+oi1lpDfhw2FsaEgAI6kJFwebRksIpKIetM9+itjzHLgB9bahv0dZK29uc+iEpFDYkMh/E0NOFxu/DWVBJobAXClppE8phB36uDZlkVERHqnN92j84D1wHJjzAX9HI+I9IGgrx1jIdTeGkvYAIKtLQSa6w9wpoiIDFa9WactDNxpjFkG/M8Ycx+RSQcmUm0z+jlGEekkHOgg4PdB2GKDAQJNDRC2eEfm4E7LwDidhIMdODxuOhrrup0fbGkmHA7jcPTlkFYREelvvfrUNsZcAjwHXANkWGszrLXpfZGwGWOuMMZYY0xOp7KrjTGbjTEbjTGLO5XPM8asidbdbYzR5AcZVqy1+OpqMKEwYX87beVlBJoaCLQ00rJ9C4HWZgAcTjc2ZHGmdO8GdaakKmETEUlAH/rJbYz5L3ACcIy19pfW2j5b2sMYUwgsAnZ0KpsOnAvMAE4C7jPGOKPVvwIuBUqiPyf1VSwiiSDc0YEzKYlwh4+Qz9et3le1BxsO4/B4CLQ04k5Jw5n8QeLm9CbhycweyJBFRKSP9GYiwhPW2nv66fXvILIJ/XOdyk4HnrTW+oFtxpjNwHxjTBmRVr7/ARhjfgt8Bnixn2ITGXwMYKPjE3psZ44U2mAQf20V4WCA5LEF2EAQsDjcHtypaQMXr4iI9Jne9JFc3B8vbIw5Daiw1q7epyof2NnpeXm0LD/6eN9ykWHD4fYQCnTg9Cbh8CZ1y9ySckdjHA6My4Vxugg01tOyZSOtO7bQumMrGlEgIpK4+nJHhG6MMa8AY3qougb4IXBiT6f1UGYPUL6/176USFcq48aN+9BYRRKBMYakrJEE2ttxeJNILSgi0NyItRZv1kjcaekAOD1eUguLaNm+BaIjGpLH5OP0aissEZFE1ZukbbYxpqmH8g+dPWqt/WRP5caYWUAxsDr6zb8AeNsYM59IC1php8MLgF3R8oIeyvf32vcD9wOUlpZqiy0ZMhwuN950d+y5N2tkj8e50zPJKJlOuMOPw+XGmZSEcTh7PFaGn0B7GzYYJBwMEGpvI9zhw52RhSc9A4fbE+/wRKQHvUna1lhrD+vLF7XWrgFy9z6PjlcrtdbWGGOeB/6fMeYXwFgiEw6WW2tDxphmY8xRwJvAF4H+GmsnkvCMMbiSkiEpOd6hyCATDgYiy8W0NBNorCfc4Qcg0NRIOGc0yXn5GKMZxiKDTb92j34U1tq1xpg/AOuAIPBNa20oWv114BEgmcgEBE1CEBE5SCG/n7Dfj8PhiCVse/lqqvBk50QSfhEZVHqTtPX7nqLW2qJ9nt8E3NTDcSuAmf0dj4jIUGex9LyCk0aTiAxWvUna8owxd++v0lr77T6MR0RE+pnT48WGQgQDzRiXGxsMxOo82Tk4Pd44Rici+9ObpG1Fv0chIiIDxuF2Q8iDy6Tj8CYRbGsh7PPhHpGFJyMLox0zRAal3uw9+uhABCIiIgPHE52kEgqFcGdm4XA4tI6fyCD3oUlbdDbnfllrT+u7cEREZCA5nVoGRiRR9KZ7dAGRHQqeILLUhr6KiYiIiAyw3iRtY4hs6n4e8Hngr0T2I13bn4GJiIiIyAc+dLSptTZkrf2btfZC4ChgM/CqMeZb/R6diByUQHs7HS1NkZ/Gevz1tQTb2+IdloiI9IFeLa5rjPECpxBpbSsC7gb+2H9hicjBCrQ2E/b7sRiCrc101NdEKhwO0sZNxJORGd8ARUTkkPRmIsKjRBa0fRH4sbX2vX6PSkQOSjgUItzRQTgQwLhcHyRsAOEwbbu240qeFlnqQUREElJvWtouAFqBycC3O00J/9AN40VkYNhwCBsKY20YOi2Uule4o4NwKKikTUQkgfVmnTatsigyyDmcTozLiQk7cbi6/7d2JiXjcClhExFJZL3pHs0+UL21tq7vwhGRj8I4nBiPF4PFhi3Jo8fSXrUbrMXh8ZCSP77HZE5ERBJHbz7FVxLZQbin9dksMKFPIxKRj8STkkrI7SbU0YF1e0krSgMsTk8STq/2khQRSXS96R4tHohAROTQOd0enG5PvMMQEZF+8KHj1YwxZ+2n3GOMua7vQxIRERGRffVmksGlxpgXjTGxblBjzKeAd4GR/RaZiIiIiMT0pnt0sTHmPOBlY8z/I7Jm2yjgc9ba1f0doIiIiIj0ckcE4A/ADGAJ0AAcb619v7+CEhEREZGuejOm7WjgHSJdoYXAZcCfjTE/iW5vJSIiIiL9rDdj2u4Evmyt/bq1tt5a+yxwGOAF1D0qIiIiMgB60z0631obNsYUE+kitcB6a+0PjDGP9Gt0IiIiIgL0LmlLNcY8CJQCq4gssjvHGLMSuKQfYxMRERGRqN50j94DrAMmWWvPtNaeAUwE1gC/7M/gRERERCSiNy1tH7fWXtS5wFprgZ8YYzb1S1QiIiIi0kVvWtp62nNURERERAZQb5K2140x1xtjuiRv0S2s3uifsERERESks950j34LeBDYbIxZRWT26GFE1m77cv+FJiIiIiJ79WYbqybgbGPMRGA6ke7SH1hrt/R3cCIiIiIS0dttrIgmabFEzRgzBbjCWvuV/ghMRERERD7Qm22sZhtjlhlj3jPG3GiMGW2MeQb4O5GlQERERESkn/VmIsIDwP8DzgKqgbeBrUTWbbujH2MTERERkajedI96rbWPRB9vNMZcAVxlrQ31X1giIiIi0llvkrYkY8xhfLBeWwswe+8SINbat/srOJHhrGlPHa01TTi9btrrmti5YhOuJDdFR01j9LTxGIeWUBQRGU56k7TtAX6xn+cWOL6vgxIZ7vztfhp2VmPcTtobW1jx2CuxuvK3N3HMtz7D6Knj4hihiIgMtN4s+XHcAMQhIp20VDbga2oja1wu77+0sktdOBRmz9rtStpERIaZ3sweLTHGPBudPfqEMSZ/IAITGd4s1losdj+1IiIy3PRm9uhDwF+JzB59G7inXyMSEdJGZ5GcmYq/1Ufx0TO61BmHg7zp4+MUmYiIxEtvxrSlW2sfiD6+zRijiQci/cyb7GVE4Shaaxrxjs7iyIsXs2PF+7iTPRQdOY3cKYXxDlFERAbYR5k9mtz5uWaPivSPjDHZZIzJjjyZlM/4I6fFNyAREYmr3iRtu9HsUREREZG46s3s0YW9uZAxZpG19uVDD0lERERE9tWbiQi9dWsfXktEREREOunLpE3Ls4uIiIj0k75M2rR0lIiIiEg/6cuk7aAYY35kjKkwxqyK/pzcqe5qY8xmY8xGY8ziTuXzjDFronV3793/VERERGSo683s0d4q+wjn3GGt/XnnAmPMdOBcYAYwFnjFGDPZWhsCfgVcCrwBvACcBLx4KEGLDHXhUIjGXbW01jaRlJ5C5tgc3MmeeIclIiIH6UOTNmPMmQeqt9b+MfrnAY87CKcDT1pr/cA2Y8xmYL4xpgzIsNb+LxrXb4HPoKRN5IAqVm/ljQdewNrICIapJ85j2qeOVOImIpJgetPS9jSwKvoDXSccWOCPh/D6lxljvgisAL5nra0H8om0pO1VHi0LRB/vWy4i+9Fa28TK370SS9gANixbydg5k8iZmBfHyERE5GD1Jmk7C/gcMBt4DnjCWru5Nxc3xrwCjOmh6hoiXZ0/JZL4/RS4HfgSPc9CtQco399rX0qkK5Vx48b1JlyRIaejzUdHm79bub+lLQ7RiIjIoejN4rp/Av5kjEkl0nV5uzFmJHCNtfZfH3LuJ3sThDHmAeAv0aflQOeNFQuAXdHygh7K9/fa9wP3A5SWlmpmqwxLySPSSB+dRXNlfazMOByk5mTGMSoREfkoDmb2qA9oBJqAVCDpUF7YGNO5b+YM4L3o4+eBc40xXmNMMVACLLfW7gaajTFHRWeNfpFIy5+I7EdSegpHfukk0sdkAeBNS+ZjXz2FjLzsOEcmIiIHqzcTERYC5wHzgVeAu6y1K/rgtX9mjJlLpIuzDPgqgLV2rTHmD8A6IAh8MzpzFODrwCNAMpEJCJqEIPIhsseP5vjvnUN7YwvuFC+p2RnxDklERD4C03mAco8HGBMG3gX+QyTB6nKCtfbb/RZdHyktLbUrVvRFnikiIiLSv4wxK621pfuW92YiwpfQbgciIiIicdWbiQiPDEAcIiIiInIAvRnT9me6trRZoAb4p7X2d/0VmIiIiIh8oDfdoz/voSwb+IIxZqa19qo+jklERERE9tGb7tEe12IzxjwPrASUtImIiIj0s4NZp62LTstwiIiIiEg/682Ytp5W4cwisrjt2j6PSERERES66c2YtpV03fszDNQCrxJZ7FZERERE+llvkrbPATuj20hhjLmQyCbySb08X0REREQOUW/GtP0a8AMYY44FlgKPEtmH9P7+C01ERERE9upNS5nTWlsXffw54H5r7TPAM8aYVf0WmYh0EQqE6Gj3Ya3FhsJgLakjM+MdloiIDJBeJW3GGJe1NgicAFx6kOeLyCGw1lK7bTe+pja8aV4C7QE2/3M1rbVNFM4roWBeCSPyR8U7TBER6We9SbqeAP5ljKkB2oHXAIwxk4h0kYpIP2qsqKH6/QpScjII+UP874EXCHUEAVj3wnL8LT4O+9xxOJwfeQUfERFJAB/6KW+tvQn4HvAIcLS1du+WVg7gW/0XmogAtDe04EpyQ9jStKc+lrDtte2/a2mpaohPcCIiMmB61b1prX2jh7L3+z4cEdmXcRhCwTBhG8bh7v49y+VxYVxqZRMRGer0SS8yyKXmjMDlduH2eMkYM5LUnK6TD6afciTpo0bEJzgRERkwmkggMsil544gHA7TXt8MBo644JPUbttDe30zOSX55E4piHeIIiIyAJS0iSSAzDHZZI75YEe53CmFcYxGRETiQd2jIiIiIglASZuIiIhIAlDSJiIiIpIAlLSJiIiIJAAlbSIiIiIJQEmbiIiISAJQ0iYiIiKSAJS0iYiIiCQAJW0iIiIiCUBJm4iIiEgCUNImIiIikgC096hIggmFQmzbsoPW5lYaGpoJBgK0tLRSNGEck6dOJDklKd4hiohIP1DSJpJgXn91OV6vh5f/9i9SUpJ55DdPxuquuPabnHfRGbjd7jhGKCIi/UHdoyIJpLqyluX/Xcn2bTvJzh7BY//3VJf6O5b+mrItO+MUnYiI9CclbSIJpKWlhdwxuTQ0NBEKhwmFQl3qQ6EQDfWNcYpORET6k5I2kQQyKjeHHWXlFI7Lx+/zkzkiI1Y3eeoEHnrqbjr8fv7z6hs8+ds/8ednXmLr5rL4BSwiIn3GWGvjHUO/Ky0ttStWrIh3GCJ94v0NW6ncVcWe3VWEgiEefeD3VFfVcv/jt/PSn//BYUfM5trvLaXD3wFA0cRx3PGbnzKxpCi+gYuISK8YY1Zaa0v3LddEBJEEM3nqBPLG5lJf30hjQyM/++X1pKam8P6GrUyYXMz/e+SZWMIGULZlB++89a6SNhGRBKekTSQBpWekkZ6RBuPzAdhdsYeWllZSUpLZXVHZ7fjKPTUDHaKIiPQxjWkTGQJGjc4hb+xo1q95n4WLPt6tftbcaXGISkRE+pJa2kSGAJfLxdiCMRyxYA5gaGvz8cJzr5CRkcY3v3cJpUfOjXeIIiJyiDQRQWQI8fv8bC8rx2EcBAJB0tJSKCzKj3dYIiJyEDQRQWQY8CZ5mTx1YrzDEBGRfqAxbSIiIiIJQC1tIkNMKNCBje6UYIzB4fFijIlzVCIicqiUtIkMEaFAgGBbG9aGMIC/ppKQ348nMwtvTi6upOR4hygiIocgrt2jxphvGWM2GmPWGmN+1qn8amPM5mjd4k7l84wxa6J1dxs1H4gQ7PATaGsh0NKEDXZggNad2wi2tWJDQfx11bRX7sKGw/EOVUREDkHckjZjzELgdGC2tXYG8PNo+XTgXGAGcBJwnzHGGT3tV8ClQEn056SBjltkMOlobSbU2gxhIBQiFOgg3OGHfWaFBxrrCQc6er6IiIgkhHi2tH0duMVa6wew1lZFy08HnrTW+q2124DNwHxjTB6QYa39n42sU/Jb4DNxiFtkUAh2+An7/VgLYRvG2jDGGIyj+39r43SCGqZFRBJaPJO2ycAxxpg3jTH/MsYcES3PB3Z2Oq48WpYffbxvuciwZAMBwh0dOFzuSLeoceD0JuFwu3HuM34teXQ+To83TpGKiEhf6NeJCMaYV4AxPVRdE33tLOAo4AjgD8aYCUBPzQH2AOX7e+1LiXSlMm7cuIMLXCQBGIcD43RgwyGMw0l71R6SckZjPB6SxxQQ7vATDgZwpaTiSk2Ld7giInKI+jVps9Z+cn91xpivA3+MdnUuN8aEgRwiLWiFnQ4tAHZFywt6KN/fa98P3A+RHRE+6j2IDFau5BTCgQAhvw9ncjLe7BzaKrZHukEdTjwZI0jJy8fhcsc7VBER6QPx7B59FjgewBgzGfAANcDzwLnGGK8xppjIhIPl1trdQLMx5qjorNEvAs/FJXKRQcKVkoorOQUbtjhTUkkbP5GUvELSCsYrYRMRGWLiuU7bQ8BDxpj3gA7gwmir21pjzB+AdUAQ+Ka1NhQ95+vAI0Ay8GL0R2TYcrhcONLS4x2GiIgMAG0YL5LgmptbqKmsJRQK0REIEvB3MLZgDKNG58Q7NBER+Qi0YbzIEPT+hi20NLcS6AjQ2tLGb+5+lPXvbSK/MI9rfno5Hz/uSG1hJSIyRGjDeJEE1dzYTGtTGzVVdfh8fu5Y+mvWv7cJgIqdu/nu165n25YdcY5SRET6ipI2kQTV2NBMu88HBuprG9i+rbxLvc/nZ/vWnfs5W0REEo2SNpEE5fG6cXtchENhUtNSSE5O6nZMVvaIgQ9MRET6hZI2kQSVO2YU3iQvaRmppGemc/HXP9+l/nMXnE7J1Alxik5ERPqaJiKIJLBp00vYtnk7be0+jjx6HiVTJ1BTWcuYsbkcdsQsUtNS4h2iiIj0ESVtIgnM7XEzefqkeIchIiIDQN2jIiIiIglASZuIiIhIAlDSJiIiIpIANKZNRCRBbN64lcaGJhwOB+3tfmqq6xg1eiSz5kwlLT0t3uGJSD9T0iYikgDWrtnA7vJKrA3T2tLOzdfdic/nB+Ds80/j21d+hcwRGXGOUkT6k7pHRUQGOV+bj7bWdlavXEs4DPff81gsYQN46vHnWbfm/ThGKCIDQUmbiMgg19rahq/dhyfJg7WW8h27uh1Ttac6DpGJyEBS0iYiMshlZmWQmpqCr92Pw+lg+qwp3Y4ZV1wQh8hEZCApaRMRGeRcLhfJycl8/NgjsGHLVy77AkUTxwGQnJzENTcuYdrMyXGOUkT6m7HWxjuGfldaWmpXrFgR7zBERA5JTVUtVZW1hENBwtbS0txK7uhRTJxchDEm3uGJSB8xxqy01pbuW67ZoyIiCSIndyQ5uSPjHYaIxIm6R0VEREQSgJI2ERERkQSgpE1EREQkAShpExEREUkAStpEREREEoCSNhEREZEEoCU/RIaJ1rpmmnbX0tHqo2l3HUkZKYyeWkhGnpaQEBFJBEraRIaBjjYfleu2E2j3s/qPr0F0Te2kjBSOW/JZMvKy4xugiIh8KHWPigwDLdWNNO6qpeyN9bGEDcDX1EbN1u6bj4uIyOCjpE1kGAgHw2Ag0ObvVhdo74hDRCIicrCUtIkMAykj0/Gkeik4fFKXcmMMIyfkxSkqERE5GBrTJjIMpIxIY+zMCTRU1DB1cSk7V27Cm57MzFOPInt8brzDExGRXlDSJjJMZI3LJWNsNr6mNiZ+Yg6eFC/uJE+8wxIRkV5S0iYyjDhdLlKzM+IdhoiIfAQa0yYiIiKSAJS0iYiIiCQAJW0iIiIiCUBJm4iIiEgCUNImIiIikgCUtImIiIgkACVtIiIiIglASZuIiIhIAlDSJiIiIpIAlLSJiIiIJAAlbSIiIiIJQEmbiIiISAKIW9JmjPm9MWZV9KfMGLOqU93VxpjNxpiNxpjFncrnGWPWROvuNsaYuAQvIiIiMsBc8Xpha+3n9j42xtwONEYfTwfOBWYAY4FXjDGTrbUh4FfApcAbwAvAScCLAxy6iIiIyICLe/dotLXsHOCJaNHpwJPWWr+1dhuwGZhvjMkDMqy1/7PWWuC3wGfiEbOIiIjIQItbS1snxwCV1tpN0ef5RFrS9iqPlgWij/ctFxnWqnZVU1NTh8/vx+/z097mY2xhHhMnjcftccc7PBER6SP9mrQZY14BxvRQdY219rno4/P4oJUNoKdxavYA5ft77UuJdKUybty4XsUrkmi2bNpGTVUdjQ3N1FbX8cvbH6S5qQWn08l3rrqUz33hMySnJMU7TBER6QP9mrRZaz95oHpjjAs4E5jXqbgcKOz0vADYFS0v6KF8f699P3A/QGlp6X6TO5FEFQgEqKtpoLWllQ1rN/Hi86/Q3NQCQCgU4hc3/Yp582cza+70OEcqIiJ9Id5j2j4JbLDWdu72fB441xjjNcYUAyXAcmvtbqDZGHNUdBzcF4Hnul9SZHhobmqlvc1HRyCIcRgqdu7pdsyeXVVxiExERPpDvJO2c+naNYq1di3wB2Ad8Dfgm9GZowBfB/6PyOSELWjmqAxj6RlppKQk4XG7CYfCFIwb2+2YMWNHxyEyERHpD3GdiGCtvWg/5TcBN/VQvgKY2c9hiSQEt9tF9qgsQtYyY/YURueN4r5fPExDfSMul5MlP/w6JVOK4x2miIj0ERNZPWNoKy0ttStWrIh3GCL9orq6lprKWvw+Pz5fB752H2MLxlA8aTxu92CYIC4iIgfDGLPSWlu6b7k+0UUS3KhRIxk1amS8wxARkX4W7zFtIiIiItILw7alLRAIUF5ejs/ni3co0keSkpIoKCjA7R4eC8qGw2EC7X4iIxwsSWkp8Q5JRET60bBN2srLy0lPT6eoqAjtO5/4rLXU1tZSXl5OcfHQH3xfV15NoM0PYUvFqs3UbNnFqJICxh85lezxmjEqIjIUDdukzefzKWEbQowxjBw5kurq6niH0u8ad9fQ0dKGwbD66ddoKI/cc8POaqo3lXPMZaeTnJkW5yhFRKSvDesxbUrYhpbh8vcZ8ofoaPXja2qNJWx7NeysprGiNk6RiYhIfxrWSdtQ4HQ6mTt3buznlltuidVVV1fjdrv5zW9+0+WcoqIizjrrrNjzp59+mosuumigQpZDZLEYDMbR839fx37KRUQksQ3b7tGhIjk5mVWrVvVY99RTT3HUUUfxxBNP8NWvfrVL3YoVK1i7di0zZswYgCilL3mSvYTSAoRtmNHTxlO5fnusbsyMIjILcuIYnYiI9Bd9JR/CnnjiCW6//XbKy8upqKjoUnfFFVdw8803xykyORTpo7NIykrF6XQy7aRS5nz2GApLJzP3nE8w57PH4E1LjneIIiLSD9TSluDa29uZO3du7PnVV1/N5z73OXbu3MmePXuYP38+55xzDr///e/57ne/GzvunHPO4b777mPz5s1xiFoOVUZuNuRmA5A7pTDO0YiIyEBQS1uC29s9uvfnc5/7HABPPvkk55xzDgDnnnsuTzzxRJfznE4n3//+91m6dOmAxywiIiIHTy1tQ9QTTzxBZWUljz/+OAC7du1i06ZNlJSUxI654IILWLp0qca1iYiIJAC1tA1BGzdupLW1lYqKCsrKyigrK+Pqq6/mySef7HKc2+1myZIl3HnnnfEJVERERHpNSVuC2zumbe/PVVddxRNPPMEZZ5zR5bizzjqrWxcpwCWXXEIwGByocEVEROQjUvdogguFQr06bvbs2axbtw6AsrKyWLnX62XXrl39EZqIiIj0IbW0iYiIiCQAJW0iIiIiCUBJm4iIiEgCUNImIiIikgCUtImIiIgkACVtIiIiIglASVscFRUVMWvWLObOnUtpaSkAq1evZsGCBcyaNYtTTz2Vpqam2PFLly5l0qRJTJkyhZdeegmAtrY2TjnlFKZOncqMGTO46qqrYsfv2LGDhQsXcthhhzF79mxeeOGFWN2jjz5KSUkJJSUlPProo7Hyiy66iOLi4ti6b6tWrQKgsbGRU089lTlz5jBjxgwefvhhAHbu3MnChQuZNm0aM2bM4K677opdq66ujkWLFlFSUsKiRYuor6/vcv87duwgLS2Nn//8593em9NOO42ZM2fGni9ZsiQW0+TJkxkxYsTBvt0iIiKJzVo75H/mzZtn97Vu3bpuZQNt/Pjxtrq6uktZaWmpffXVV6211j744IP22muvtdZau3btWjt79mzr8/ns1q1b7YQJE2wwGLStra32H//4h7XWWr/fb48++mj7wgsvWGut/cpXvmLvu+++2Pnjx4+31lpbW1tri4uLbW1tra2rq7PFxcW2rq7OWmvthRdeaJ966qlusd500032yiuvtNZaW1VVZbOysqzf77e7du2yK1eutNZa29TUZEtKSuzatWuttdZ+//vft0uXLrXWWrt06dLY+XudeeaZ9rOf/ay97bbbupQ/88wz9rzzzrMzZszo8X27++677cUXX9xj3WD4exURETkUwArbQz6jlrZe8tfX0rD+XereXUHD+nfx19f2y+ts3LiRY489FoBFixbxzDPPAPDcc89x7rnn4vV6KS4uZtKkSSxfvpyUlBQWLlwIgMfj4fDDD6e8vBwAY0yspa6xsZGxY8cC8NJLL7Fo0SKys7PJyspi0aJF/O1vfztgXMYYmpubsdbS0tJCdnY2LpeLvLw8Dj/8cADS09OZNm0aFRUVsZgvvPBCAC688EKeffbZ2PWeffZZJkyY0G3f05aWFn7xi19w7bXX7jeWJ554gvPOO+/D30wREZEhRElbL/jra2kt30440AFAONBBa/n2Q07cjDGceOKJzJs3j/vvvx+AmTNn8vzzzwPw1FNPsXPnTgAqKioo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\n", + "text/plain": [ + "<Figure size 720x576 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10,8))\n", + "sns.scatterplot(x=\"TIME_MS\", y=\"SUM_PROXIMITY_KMS\", hue='EAN', data=test_1[test_1.MEASUREMENT == 3])\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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43a7+dOf/sR9992H1WoFIDMzk09/+tNRjlCAJG1CCCHEMc3j8QzrHn3iiSdG1HnhhReorKykurqa/Px8EhISohCpOBTpHhVCCCGOYQfrHv3sZz+L3W6nsLCQ++67j+7u7skNThwWSdqEEEKI49SeMW17pKamUldXh8vlwul0RjEyMRrpHhVCCCEEAA6HgxtuuIHbbrsNv98PQHNzM3/729+iHJkASdqEEEKIY9r+Y9q++c1vHrT+XXfdRXp6OuXl5cyePZtLL72U9PT0SYpWHIzSWkc7hglXVVWlV65cGe0whBBCHMSWLVuYNWtWtMMQYlKN9n2vlFqlta7av660tAkhhBBCxABJ2oQQQgghYoAkbUIIIYQQMUCSNiGEEEKIGCBJmxBCCCFEDJCkTQghhBAiBkjSJoQQQgBer5dFixYxd+5cKioq+P73vw9AV1cXS5cupaysjKVLlw5t9bR8+fKhtc/mzp3LM888M3SuM844gxkzZgwdb2trGzr25JNPUl5eTkVFBddcc81Q+Z133klFRQWzZs3itttuY/8luW699Vbi4+OHnv/sZz8bOv/s2bMxGo10dXUBUFhYSGVlJfPmzRu248EeP//5z1FK0dHRAcCuXbuw2+1D57vpppuG6q5atYrKykpKS0uHxfXOO++wYMECTCYTTz311FD9/c81b948/H4/vb29fPKTnxx6fx988MGh17z88svMmDGD0tJSfvrTnw6VH+i9B7j77rspLS1lxowZvPLKK0Pl+957ZWUlzz333KjH9n1fvvCFL1BUVMS8efOYOXMmP/zhD4eOaa35zne+w/Tp05k1axb33nsvAA899BDp6enD7nPz5s0A1NXVce655zJr1izKy8vZtWvXiH+DI6K1jsoXMA/4CFgLrAQW7XPsW0A1sA04b5/yhcCGwWP3MrjO3KG+Fi5cqIUQQkxtmzdvjur1w+GwdrlcWmut/X6/XrRokf7www/1HXfcoe+++26ttdZ33323vvPOO7XWWg8MDOhAIKC11rqpqUmnp6cPPT/99NP1ihUrRlxj+/btet68ebqrq0trrXVra6vWWuv3339fn3TSSToYDOpgMKiXLFmi33rrraHXrVixQn/uc5/TcXFxo8b+/PPP6zPPPHPoeUFBgW5vbx+1bl1dnT733HN1fn7+UJ3a2lpdUVExav0TTjhBf/DBBzocDuvzzz9fv/jii0OvWbdunf785z+v//GPfwzVP9C5fvKTnwy9d21tbTo5OVn7fD4dDAZ1cXGxrqmp0T6fT8+ZM0dv2rRJa60P+N5v2rRJz5kzR3u9Xr1z505dXFysg8HgiHvfunWrzs/PP+T7ct111w3dg8fj0UVFRXrnzp1aa60feOAB/fnPf16HQiGt9d5/swcffFDffPPNo75np59+un711Ve11lq7XC49MDAwaj2tR/++B1bqUfKZaLa03QP8UGs9D/je4HOUUuXA1UAFcD7wO6WUcfA1vwduBMoGv86f5JiFEEJMEc+uaeTkn75J0Tf/zck/fZNn1zQe1fmUUkMtWYFAgEAggFKK5557juuuuw6A6667jmeffRaIbPlkMkW28PZ6vSilDnmNP/3pT9x8880kJycDkJGRMXRtr9eL3+/H5/MRCATIzMwEIBQKcccdd3DPPfcc8LyPPfYYn/nMZ8Z0n7fffjv33HPPmOJtbm6mr6+PE088EaUU11577dD9FxYWMmfOHAyGsaUSSilcLhdaa/r7+0lJScFkMrF8+XJKS0spLi7GYrFw9dVXD7WOHei9f+6557j66quxWq0UFRVRWlrK8uXLR1yzr69v6L0eK6/XC0BcXBwAv//97/ne9743dJ97/s0OZPPmzQSDQZYuXQpAfHw8DofjsGI4kGgmbRpIGHycCDQNPr4EeFxr7dNa1xJpVVuklMoGErTWHw5moY8Al05yzEIIIaaAZ9c08q2nN9DY40EDjT0evvX0hqNO3EKhEPPmzSMjI4OlS5eyePFiWltbyc7OBiA7O3tYV+fHH39MRUUFlZWV/OEPfxhK4gC++MUvMm/ePH784x8PdSlu376d7du3c/LJJ7NkyRJefvllAE488UTOPPNMsrOzyc7O5rzzzhtaJf83v/kNF1988VAM+3O73bz88stcccUVQ2VKKc4991wWLlzI/fffP1T+/PPPk5uby9y5c0ecp7a2lvnz53P66afz7rvvAtDY2EheXt5Qnby8PBobD/0e19TUDHUZ3nzzzQDccsstbNmyhZycHCorK/n1r3+NwWCgsbGRadOmjXqNA733B3sNwJlnnsns2bM5/fTTueuuuw75vgDccccdzJs3j7y8PK6++uqh5KympoYnnniCqqoqLrjgAnbs2DH0mieeeGJY96jH42H79u0kJSVx+eWXM3/+fO644w5CodAh37OxMB26yoT5GvCKUurnRJLHkwbLc4l0m+7RMFgWGHy8f7kQQojjzM9e2YYnMPwXoScQ4mevbOPS+Uf+q8FoNLJ27Vp6enq47LLL2Lhx40HrL168mE2bNrFlyxauu+46LrjgAmw2G48++ii5ubm4XC6uuOIK/vrXv3LttdcSDAbZsWMHb7/9Ng0NDZx66qls3LiRjo4OtmzZQkND5Nfc0qVLeeeddygtLeUf//gHb7/99gFjeOGFFzj55JNJSUkZKnv//ffJycmhra2NpUuXMnPmTKqqqvjJT37Cq6++OuIc2dnZ1NXVkZqayqpVq7j00kvZtGnTiHF1wJha6EpKSli7du2wsldeeYV58+bx5ptvUlNTw9KlSzn11FOP6BqHes1bb71FWloaNTU1nH322ZxxxhnEx8eP+r6cdtppQGSM4JVXXkl/fz9nn302H3zwASeddBI+nw+bzcbKlSt5+umnuf7664eS2quuuorf/OY3w+IIBoO8++67rFmzhvz8fK666ioeeughbrjhhkO+b4cyoS1tSqnXlVIbR/m6BPgKcLvWehpwO/CXPS8b5VT6IOUHuvaNSqmVSqmV7e3tR3srQgghppCmHs9hlR+upKQkzjjjDF5++WUyMzNpbm4GIt2Fo3WPzZo1i7i4uKEkLzc3kjg6nU6uueaaoa67vLw8LrnkEsxmM0VFRcyYMYMdO3bwzDPPsGTJEuLj44mPj+eCCy7go48+Ys2aNVRXV1NaWkphYSFut5vS0tJh13788cdHdI3m5OQAka68yy67jOXLl1NTU0NtbS1z586lsLCQhoYGFixYQEtLC1arldTUVAAWLlxISUkJ27dvJy8vbyiRBGhoaBg69+F68MEHufzyy1FKUVpaSlFREVu3biUvL4/6+vpRr3Gg9/5gr9lXSUkJmZmZQxMERntf9hcfH88ZZ5zBe++9N3StPa2Yl112GevXrz/ofebl5TF//nyKi4sxmUxceumlrF69emxv0iFMaNKmtT5Haz17lK/ngOuApwer/gNYNPi4AZi2z2nyiHSdNgw+3r/8QNe+X2tdpbWuSk9PH69bEkIIMQXkJNkPq3ws2tvb6enpAcDj8fD6668zc+ZMLr74Yh5++GEAHn74YS655BIg0p0YDAYB2L17N9u2baOwsJBgMDg0KzMQCPCvf/2L2bNnA3DppZfy1ltvAdDR0cH27dspLi4mPz+fZcuWEQwGCQQCLFu2jFmzZnHRRRfR0tLCrl272LVrFw6Hg+rq6qGYe3t7WbZs2VBMAAMDA7hcrqHHr776KrNnz6ayspK2trahc+Xl5bF69WqysrJob28f6sLbuXMnO3bsoLi4mOzsbJxOJx999BFaax555JFh1zoc+fn5vPHGG0Ck23Pbtm0UFxdzwgknsGPHDmpra/H7/Tz++ONcfPHFAAd87y+++GIef/xxfD4ftbW17Nixg0WLFo24ZltbG7W1tRQUFBzwfdlfMBjk448/pqSkZOjf7M033wRg2bJlTJ8+/aD3ecIJJ9Dd3c2eBqM333yT8vLyw36/RjXa7ITJ+AK2AGcMPj4bWDX4uAJYB1iBImAnYBw8tgJYQqTV7SXgwrFcS2aPCiHE1Hc4s0efWd2gZ/7PS7rgG/8a+pr5Py/pZ1Y3HPH1161bp+fNm6crKyt1RUWF/uEPf6i11rqjo0OfddZZurS0VJ911lm6s7NTa631I488osvLy/XcuXP1/Pnz9TPPPKO11rq/v18vWLBAV1ZW6vLycn3bbbcNzWwMh8P69ttv17NmzdKzZ8/Wjz32mNZa62AwqG+88UY9c+ZMPWvWLH377bePGuP+s0cffPBBfdVVVw0rq6mp0XPmzNFz5szR5eXl+q677hr1XPvOpHzqqad0eXm5njNnjp4/f75+/vnnh+qtWLFCV1RU6OLiYn3zzTfrcDistdZ6+fLlOjc3VzscDp2SkqLLy8u11geePdrY2KiXLl2qZ8+erSsqKvRf//rXoWP//ve/dVlZmS4uLh4W74Hee621vuuuu3RxcbGePn360IzWPfc1e/ZsPXfuXF1eXq7/8pe/HPJ9ue6663RhYaGeO3eunjVrlr7llluG7rO7u1tfeOGFevbs2XrJkiV67dq1Q+99Wlqanjt37tDX+++/r7XW+tVXX9WVlZV69uzZ+rrrrtM+n2/UfwOtD2/2qNKj9AtPBqXUKcCviYyr8wJf1VqvGjz2HeB6IAh8TWv90mB5FfAQYCeStN2qx3ADVVVVeuXKlRNxG0IIIcbJli1bhgbfj8Wzaxr52SvbaOrxkJNk547zZhzVeDYhomG073ul1Cqt9YgF9qI2EUFr/R6RdddGO/YT4CejlK8ERrZlCiGEOO5cOj9XkjRxXJEdEYQQQgghYoAkbUIIIYQQMUCSNiGEEEKIGCBJmxBCCCFEDJCkTQghhBAiBkjSJoQQQhDZKHzRokXMnTuXiooKvv/97wPQ1dXF0qVLKSsrY+nSpXR3dwOwfPnyoT0n586dyzPPPDN0rjPOOIMZM2YMHd93v9Inn3yS8vJyKioquOaaa4bK77zzTioqKpg1axa33XbbiK2abr311qEN7SGy7dKe88+ePRuj0UhXVxcQ2cy9srKSefPmUVU1YuUIfv7zn6OUGloEeNeuXdjt9qHz3XTTTUN1V61aRWVlJaWlpcPieuedd1iwYAEmk4mnnnpqqP7+55o3bx5+vx+tNbfddhulpaXMmTNn2C4BL7/8MjNmzKC0tJSf/v/27j0qqitN/P73CAai2FFREakQKEq5Q6mIqJMI2qjEDkrrGGKiJJnpnrxt4rTzjq68k9WmMzFL26RXOhk7+ks6SWsmLUY7xlv/iJNW0XjDuyPBgFxiMCgab4hcquB5/6jiCHIRTacN8HzWqkXVrr332eepUjZ7n7P3kiVmemuxB1i8eDE2m43Q0FA+/fRTM73xuUdHR5ubz7cVlyeffJLg4GDsdjthYWG89NJL5nsiwgsvvMCQIUMIDw/nzTffBODkyZOMGjUKLy8vXnvttWYxrqurY+jQofzkJz9p9t4da2nxts720MV1lVLqh+92Ftf9PtTX10tFRYWIiNTW1kp8fLzs3btX5s+fL4sXLxYRkcWLF8uCBQtERKSyslIcDoeIiHzzzTfSv39/8/XYsWPlwIEDzY6Rn58vdrtdLl68KCIi586dExGR3bt3y+jRo8XpdIrT6ZSEhATZvn27We7AgQPyxBNPNFtct8HGjRslKSnJfN144dybnT59WiZMmCCBgYFmntYWxBURGTFihOzZs0fq6+tl0qRJ5kK2xcXFcuzYMZk1a5asXbvWzN9aXVu2bJFJkyZJfX297N27V+Lj40XEtbCw1WqVwsJCqampkZiYGMnNzRURaTX2ubm5EhMTI9XV1VJUVCRWq9VcwLjxuZ88eVICAwNvGZeMjAzzHKqqqiQ4OFiKiopEROS9996TWbNmSV1dnYjc+MzOnTsnOTk58h//8R/y6quvNqvzt7/9rTz22GMyefLkFuPa4HYW19WRNqWUUh3T8Y/g9Sj4dW/Xz+MffafqDMMwR7IcDgcOhwPDMNiwYQMZGRkAZGRk8MknnwDQo0cPPD1dy51WV1e3ayP1d955hzlz5tCnTx8Acy9NwzCorq6mtraWmpoaHA4Hfn5+gGvEZv78+SxdurTVelevXt1s/9HWzJs3j6VLl7arvWVlZVy9epVRo0ZhGAazZ882zz8oKIiYmBi6dWtfV2LDhg3Mnj0bwzBISEjg8uXLlJWVkZOTg81mw2q1cs8995Cenm6OjrUW+w0bNpCeno6XlxfBwcHYbLYW9xG9evWqGev2qq6uBqBnz54ALF++nIULF5rn2fCZDRgwgBEjRtC9e/dmdZSWlrJlyxb++Z//+baOfSvaaVNKKdXxHP8INs2FK18D4vq5ae537rjV1dVht9sZMGAAycnJjBw5knPnzuHv7w+Av79/k6nO/fv3ExkZSXR0NCtWrDA7cQBPPfUUdrudl19+2ZxSzM/PJz8/nzFjxpCQkEBWVhYAo0aNIikpCX9/f/z9/Zk4caK5Sv6yZctITU0123Cz69evk5WVZW5qDq5O4IQJExg+fDhvv/22mb5x40YCAgKIjY1tVk9xcTFDhw5l7Nix7Nq1C4AzZ85gsdzY9ttisXDmzJlbxrGwsNCcGp0zZ45Z1/3339havKGu1tKBVmPfVhmApKQkoqKiGDt2LIsWLbplXADmz5+P3W7HYrGQnp5uds4KCwtZs2YNcXFxpKSkUFBQcMvz/+Uvf8nSpUvb3aFtr7u2I4JSSil1x/76n+CoaprmqHKlx8y442o9PDw4evQoly9fJi0tjRMnTrSZf+TIkeTm5pKXl0dGRgYpKSl4e3vz4YcfEhAQQEVFBdOmTeODDz5g9uzZOJ1OCgoK2LFjB6WlpTz44IOcOHGCCxcukJeXR2lpKQDJycns3LkTm83G2rVr2bFjR6tt2LRpE2PGjKFv375m2u7duxk0aBDl5eUkJycTFhZGXFwcr7zyClu3bm1Wh7+/P6dPn8bX15dDhw4xdepUcnNzm11XB7RrhC4kJISjR482SWutrjs5xq3KbN++nX79+lFYWMj48eNJTEzEx8enxbg89NBDgOsawenTp3Pt2jXGjx/Pnj17GD16NDU1NXh7e3Pw4EE+/vhjnn76abNT25LNmzczYMAAhg8f3ubndid0pE0ppVTHc6X09tJvU+/evUlMTCQrKws/Pz/KysoA13RhwwhMY+Hh4fTs2dPs5AUEuLbX6tWrFzNnzjSn7iwWC1OmTKF79+4EBwcTGhpKQUEB69evJyEhAR8fH3x8fEhJSWHfvn0cOXKEU6dOYbPZCAoK4vr169hstibHzszMbDY1OmjQIMA1hZeWlkZOTg6FhYUUFxcTGxtLUFAQpaWlDBs2jLNnz+Ll5YWvry8Aw4cPJyQkhPz8fCwWi9mRBNe0X0Pdt8tisfD11183q6u1dKDV2LdVprGQkBD8/Pz44osvWo3LzXx8fEhMTOTzzz83j9UwipmWlsbx48fbPM/du3ezceNGgoKCSE9PZ9u2bTzxxBO3iE77aKdNKaVUx3Of5fbS2+H8+fNcvnwZgKqqKj777DPCwsJITU1l5cqVAKxcuZIpU6YArulEp9MJwFdffcWXX35JUFAQTqfTvCvT4XCwefNmoqJc22ZPnTqV7du3A3DhwgXy8/OxWq0EBgaSnZ2N0+nE4XCQnZ1NeHg4kydP5uzZs5SUlFBSUkKPHj04deqU2eYrV66QnZ1ttgmgsrKSiooK8/nWrVuJiooiOjqa8vJysy6LxcLhw4cZOHAg58+fp66uDoCioiIKCgqwWq34+/vTq1cv9u3bh4iwatWqJse6HampqaxatQoRYd++fdx33334+/szYsQICgoKKC4upra2lszMTFJTU80yLcU+NTWVzMxMampqKC4upqCggPj4+GbHLC8vp7i4mAceeKDVuNzM6XSyf/9+QkJCzM9s27ZtAGRnZzNkyJA2z3Px4sWUlpZSUlJCZmYm48aN47//+7/vKGY30+lRpZRSHc/4ha5r2BpPkXa/15V+h8rKysjIyKCuro76+npmzJjBT37yE0aNGsWMGTN49913CQwMZO3atQB8/vnnLFmyhO7du9OtWzfeeust+vXrR2VlJRMnTsThcFBXV8ePf/xjfvaznwEwceJEtm7dSkREBB4eHrz66qv4+voyffp0tm3bRnR0NIZhMGnSJB555JFbtnn9+vVMmDDBvGgeXNeBpaWlAa4OyMyZM5k0aVKb9ezcuZOFCxfi6emJh4cHK1asMKdbly9fzpNPPklVVRUpKSmkpKQAcODAAdLS0rh06RKbNm3ixRdfJDc3t9VjPPzww/zlL3/BZrPRo0cP3n//fQA8PT1ZtmwZEydOpK6ujqeffprIyEgAnn/++RZjHxkZyYwZM4iIiMDT05Pf//73eHh4mMdKSkrCw8MDh8PBkiVL8PPzo6ioqM24zJ8/n0WLFlFbW8v48eP56U9/arbh8ccf5/XXX8fHx4c//OEPAJw9e5a4uDiuXr1Kt27d+N3vfscXX3zBj370o1t9bHfMaGleuLOJi4uTgwcP3u1m3BVXv73O5fIqaqucePfsjqOmHg9PuMe7O9WVDiq+rcajezcGWu+jr3/PW1eolFLfk7y8PPPi+3Y5/pHrGrYrpa4RtvELv9P1bErdDS197w3DOCQizRbY05G2Tqyqooav8y7x9RcXCY7tx6Wz17lQWkHoSH8una1k15oCHDWu4fB7e3Vnyryh+A7yuUWtSin1AxEzQztpqkvRa9o6sW/PVHL9Si2+AT5UX3fy1f9+S2CEL1XXavjqxLdmhw2gqsJB0ZHzd7G1SimllGqLdto6sZoqJ/V1QjcPA0S4dqmae7w9kTrh2qWaZvmvnK9qoRallFJK/RBop60T6z2gB149PLlyvopunt0IjPTl0tlK7rm3O5aw5itEW+397kIrlVJKKdUeek1bJ+Yb4ENNlQPP7gb33OuJ9/0+fPtNJf0sPRlk641jfB15n5fRzdNgxMPBDBp8e1t9KKWUUurvRzttndwgWx/u69+Dqmu1eHp2o19gL+rq6unVrzs9+9xD6MiBePfszo98773bTVVKKaVUG3R6tAvoeZ8X/QJ60duvJ338etJvUC969fHGd1AvBgT+SDtsSimFa6Pw+Ph4YmNjiYyM5MUXXwTg4sWLJCcnM3jwYJKTk7l06RIAOTk55v6asbGxrF+/3qwrMTGR0NBQ8/3G+5V+9NFHREREEBkZycyZM830BQsWEBkZSXh4OHPnzm22VdNzzz1nbmgPrm2XGuqPiorCw8ODixcvAq7N3KOjo7Hb7cTFNVs5gtdeew3DMMxFgEtKSrj33nvN+p555hkz76FDh4iOjsZmszVp186dOxk2bBienp6sW7fOzH9zXXa7ndraWkSEuXPnYrPZiImJ4fDhw2aZrKwsQkNDsdlsLFmyxExvLfbgWsTWZrMRGhrKp59+aqY3Pvfo6Ghz8/m24vLkk08SHByM3W4nLCyMl156yXxPRHjhhRcYMmQI4eHhvPnmm4Br0/qYmBizroYdFL7++muSkpIIDw8nMjKSN954o1n875iIdPrH8OHDRSml1A/bF198cVePX19fLxUVFSIiUltbK/Hx8bJ3716ZP3++LF68WEREFi9eLAsWLBARkcrKSnE4HCIi8s0330j//v3N12PHjpUDBw40O0Z+fr7Y7Xa5ePGiiIicO3dORER2794to0ePFqfTKU6nUxISEmT79u1muQMHDsgTTzwhPXv2bLHtGzdulKSkJPP1Aw88IOfPn28x7+nTp2XChAkSGBho5ikuLpbIyMgW848YMUL27Nkj9fX1MmnSJPnLX/5iljl27JjMmjVL1q5da+Zvra4tW7bIpEmTpL6+Xvbu3Svx8fEiIuJ0OsVqtUphYaHU1NRITEyM5Obmioi0Gvvc3FyJiYmR6upqKSoqEqvVKk6ns9m5nzx5UgIDA28Zl4yMDPMcqqqqJDg4WIqKikRE5L333pNZs2ZJXV2diNz4zCoqKqS+vl5ERI4dOyahoaEi4vouHDp0SERErl69KoMHDzbPpyUtfe+Bg9JCf0ZH2pRSSnVIW4q2MGHdBGJWxjBh3QS2FG35TvUZhmGOZDkcDhwOB4ZhsGHDBjIyMgDIyMjgk08+AaBHjx54erquMqqurm7XRurvvPMOc+bMoU8f1zXEDXtpGoZBdXU1tbW11NTU4HA48PPzA6Curo758+ezdOnSVutdvXp1s/1HWzNv3jyWLl3arvaWlZVx9epVRo0ahWEYzJ492zz/oKAgYmJi6NatfV2JDRs2MHv2bAzDICEhgcuXL1NWVkZOTg42mw2r1co999xDenq6OTrWWuw3bNhAeno6Xl5eBAcHY7PZWtxH9OrVq2as26u6uhrA3GVi+fLlLFy40DzPhs/Mx8fHjGFlZaX53N/fn2HDhgGuvWfDw8M5c+bMbbWhNdppU0op1eFsKdrCr/f8mrLKMgShrLKMX+/59XfuuNXV1WG32xkwYADJycmMHDmSc+fO4e/vD7h+ITee6ty/fz+RkZFER0ezYsUKsxMH8NRTT2G323n55ZfNKcX8/Hzy8/MZM2YMCQkJZGVlATBq1CiSkpLw9/fH39+fiRMnmqvkL1u2jNTUVLMNN7t+/TpZWVnmpubg6gROmDCB4cOH8/bbb5vpGzduJCAggNjY2Gb1FBcXM3ToUMaOHcuuXbsAOHPmDBbLjf1cLRZLuzoghYWF5tTonDlzzLruv//+ZnW1lg60Gvu2yoBrG6uoqCjGjh3LokWLbhkXcG1jZbfbsVgspKenm52zwsJC1qxZQ1xcHCkpKRQUFJhl1q9fT1hYGJMnT+a9995rFoeSkhKOHDnCyJEjbxmz9tAbEZRSSnU4bxx+g+q66iZp1XXVvHH4DSZbJ99xvR4eHhw9epTLly+TlpbGiRMn2sw/cuRIcnNzycvLIyMjg5SUFLy9vfnwww8JCAigoqKCadOm8cEHHzB79mycTicFBQXs2LGD0tJSHnzwQU6cOMGFCxfIy8ujtLQUgOTkZHbu3InNZmPt2rXs2LGj1TZs2rSJMWPGmHuFAuzevZtBgwZRXl5OcnIyYWFhxMXF8corr7B169Zmdfj7+3P69Gl8fX05dOgQU6dOJTc3t9l1dUC7RuhCQkI4evRok7TW6rqTY9yqzPbt2+nXrx+FhYWMHz+exMREfHx8WozLQw89BLiuEZw+fTrXrl1j/Pjx7Nmzh9GjR1NTU4O3tzcHDx7k448/5umnnzY7tWlpaaSlpbFz505+9atf8dlnn5ltuHbtGtOmTeN3v/vd32w/Uh1pU0op1eGcrTx7W+m3q3fv3iQmJpKVlYWfnx9lZWWAa7qwYQSmsfDwcHr27Gl28gICAgDX9NjMmTPNqTuLxcKUKVPo3r07wcHBhIaGUlBQwPr160lISMDHxwcfHx9SUlLYt28fR44c4dSpU9hsNoKCgrh+/To2m63JsTMzM5tNjQ4aNAhwTeWlpaWRk5NDYWEhxcXFxMbGEhQURGlpKcOGDePs2bN4eXnh6+sLwPDhwwkJCSE/Px+LxWJ2JAFKS0vNum+XxWLh66+/blZXa+lAq7Fvq0xjISEh+Pn58cUXX7Qal5v5+PiQmJho3lhgsVjMUcy0tDSOHz/erMxDDz1EYWGheWOHw+Fg2rRpPP744+bG838L2mlTSinV4QzsOfC20tvj/PnzXL58GYCqqio+++wzwsLCSE1NZeXKlQCsXLmSKVOmAK7pRKfTCcBXX33Fl19+SVBQEE6ns8kv782bNxMVFQXA1KlT2b59OwAXLlwgPz8fq9VKYGAg2dnZOJ1OHA4H2dnZhIeHM3nyZM6ePUtJSQklJSX06NGDU6dOmW2+cuUK2dnZZpvAdX1VRUWF+Xzr1q1ERUURHR1NeXm5WZfFYuHw4cMMHDiQ8+fPU1fn2tqwqKiIgoICrFYr/v7+9OrVi3379iEirFq1qsmxbkdqaiqrVq1CRNi3bx/33Xcf/v7+jBgxgoKCAoqLi6mtrSUzM5PU1FSzTEuxT01NJTMzk5qaGoqLiykoKCA+Pr7ZMcvLyykuLuaBBx5oNS43czqd7N+/n5CQEPMz27ZtGwDZ2dkMGTIEgFOnTpkjfocPH6a2thZfX19EhH/6p38iPDycf/u3f7ujWLWqpbsTOttD7x5VSqkfvtu5e3Rz4WaJ+yBOov4YZT7iPoiTzYWb7/j4x44dE7vdLtHR0RIZGSkvvfSSiIhcuHBBxo0bJzabTcaNGyfffvutiIisWrVKIiIiJDY2VoYOHSrr168XEZFr167JsGHDJDo6WiIiImTu3LnmnY319fUyb948CQ8Pl6ioKFm9erWIuO6g/PnPfy5hYWESHh4u8+bNa7GNN989+v7778ujjz7aJK2wsFBiYmIkJiZGIiIiZNGiRS3W1fhOynXr1klERITExMTI0KFDZePGjWa+AwcOSGRkpFitVpkzZ455x2ROTo4EBARIjx49pG/fvhIRESEird89Wl9fL7/4xS/EarVKVFRUk7trt2zZIoMHDxar1dqkva3FXkRk0aJFYrVaZciQIeYdrQ3nFRUVJbGxsRIRESHvvvvuLeOSkZEhQUFBEhsbK+Hh4fLss8+a53np0iV5+OGHJSoqShISEuTo0aMiIrJkyRLz809ISJBdu3aJiMiuXbsEkOjoaImNjZXY2FjZsmVLi5+ByO3dPWpIC/PCnU1cXJwcPHjwbjdDKaVUG/Ly8syL79tjS9EW3jj8BmcrzzKw50D+ddi/fqfr2ZS6G1r63huGcUhEmi2wpzciKKWU6pAmWydrJ011KXpNm1JKKaVUB6CdNqWUUkqpDkA7bUoppZRSHYB22pRSSimlOgDttCmllFJKdQDaaVNKKaVwbRQeHx9PbGwskZGRvPjiiwBcvHiR5ORkBg8eTHJyMpcuXQIgJyfH3F8zNjaW9evXm3UlJiYSGhpqvt94v9KPPvqIiIgIIiMjmTlzppm+YMECIiMjCQ8PZ+7cuc22anruuefMDe3Bte1SQ/1RUVF4eHhw8eJFwLWZe3R0NHa7nbi4ZitH8Nprr2EYhrkIcElJCffee69Z3zPPPGPmPXToENHR0dhstibt2rlzJ8OGDcPT05N169aZ+W+uy263U1tby5UrV3jkkUfM+L7//vtmmaysLEJDQ7HZbCxZssRMby32AIsXL8ZmsxEaGsqnn35qpjc+9+joaHPz+bbi8uSTTxIcHIzdbicsLIyXXnrJfE9EeOGFFxgyZAjh4eG8+eabTWI5ZcoURo0a1STtj3/8I/379zfP/w9/+EOzz+COtLR4W2d76OK6Sin1w3c7i+t+H+rr66WiokJERGprayU+Pl727t0r8+fPl8WLF4uIyOLFi2XBggUiIlJZWSkOh0NERL755hvp37+/+Xrs2LFNFo9tkJ+fL3a7XS5evCgiIufOnRMRkd27d8vo0aPF6XSK0+mUhIQE2b59u1nuwIED8sQTTzRbXLfBxo0bJSkpyXzdeOHcm50+fVomTJgggYGBZp7WFsQVERkxYoTs2bNH6uvrZdKkSeZCtsXFxXLs2DGZNWuWrF271szfWl2vvPKKGbvy8nLp06eP1NTUiNPpFKvVKoWFhVJTUyMxMTGSm5srItJq7HNzcyUmJkaqq6ulqKhIrFaruYBx43M/efKkBAYG3jIuGRkZ5jlUVVVJcHCwFBUViYjIe++9J7NmzZK6ujoRufGZibgW3rVYLBIWFmbmF3EtejxnzpwW43mz21lcV0falFJKdUhXNm2iYNx48sIjKBg3niubNn2n+gzDMEeyHA4HDocDwzDYsGEDGRkZAGRkZPDJJ58A0KNHDzw9XcudVldXt2sj9XfeeYc5c+bQp08fAHMvTcMwqK6upra2lpqaGhwOB35+fgDU1dUxf/58li5d2mq9q1evbrb/aGvmzZvH0qVL29XesrIyrl69yqhRozAMg9mzZ5vnHxQURExMDN26ta8rYRgGFRUViAjXrl2jb9++eHp6kpOTg81mw2q1cs8995Cenm6OjrUW+w0bNpCeno6XlxfBwcHYbLYW9xG9evWqGev2qq6uBqBnz54ALF++nIULF5rn2Xjv2T//+c888sgjpKenk5mZeVvHuRPaaVNKKdXhXNm0ibJfLcT5zTcggvObbyj71cLv3HGrq6vDbrczYMAAkpOTGTlyJOfOncPf3x8Af3//JlOd+/fvJzIykujoaFasWGF24gCeeuop7HY7L7/8sjmlmJ+fT35+PmPGjCEhIYGsrCwARo0aRVJSEv7+/vj7+zNx4kRzlfxly5aRmppqtuFm169fJysry9zUHFwdpAkTJjB8+HDefvttM33jxo0EBAQQGxvbrJ7i4mKGDh3K2LFj2bVrFwBnzpzBYrGYeSwWC2fOnLllHAsLC82pwTlz5gDw7LPPkpeXx6BBg4iOjuaNN96gW7dunDlzhvvvv7/FY7QW+7bKACQlJREVFcXYsWNZtGjRLeMCMH/+fOx2OxaLhfT0dLNzVlhYyJo1a4iLiyMlJYWCggKzTENn+bHHHmP16tVN6vvzn/9MTEwM06dPb7K5/XehOyIopZTqcMpf/x3iHhFpINXVlL/+O+575JE7rtfDw4OjR49y+fJl0tLSOHHiRJv5R44cSW5uLnl5eWRkZJCSkoK3tzcffvghAQEBVFRUMG3aND744ANmz56N0+mkoKCAHTt2UFpayoMPPsiJEye4cOECeXl5lJaWApCcnMzOnTux2WysXbuWHTt2tNqGTZs2MWbMGPr27Wum7d69m0GDBlFeXk5ycjJhYWHExcXxyiuvsHXr1mZ1+Pv7c/r0aXx9fTl06BBTp04lNze32XV1QLtG6EJCQjh69GiTtE8//RS73c62bdsoLCwkOTmZBx988I6Ocasy27dvp1+/fhQWFjJ+/HgSExPx8fFpMS4PPfQQ4LpGcPr06Vy7do3x48ezZ88eRo8eTU1NDd7e3hw8eJCPP/6Yp59+ml27dnHu3DlOnTrFP/zDP2AYBp6enpw4cYKoqCgeeeQRHnvsMby8vFixYgUZGRnmpvPfhY60KaWU6nCcZWW3lX67evfuTWJiIllZWfj5+VHmrresrKzJ9FiD8PBwevbsaXbyAgICAOjVqxczZ840p+4sFgtTpkyhe/fuBAcHExoaSkFBAevXrychIQEfHx98fHxISUlh3759HDlyhFOnTmGz2QgKCuL69evYbLYmx87MzGw2NTpo0CDANZWXlpZGTk4OhYWFFBcXExsbS1BQEKWlpQwbNoyzZ8/i5eWFr68vAMOHDyckJIT8/HwsFovZkQQoLS01675d77//Pj/96U8xDAObzUZwcDAnT57EYrE0GYlqfIzWYt9WmcZCQkLw8/Pjiy++aDUuN/Px8SExMZHPP//cPFbDKGZaWhrHjx8HYM2aNVy6dIng4GCCgoIoKSkxp0h9fX3x8vIC4Gc/+xmHDh26o5jdTDttSimlOhzPVqYKW0tvj/Pnz3P58mUAqqqq+OyzzwgLCyM1NZWVK1cCsHLlSqZMmQK4phOdTicAX331FV9++SVBQUE4nU7zrkyHw8HmzZuJiooCYOrUqWzfvh2ACxcukJ+fj9VqJTAwkOzsbJxOJw6Hg+zsbMLDw5k8eTJnz56lpKSEkpISevTowalTp8w2X7lyhezsbLNNAJWVlVRUVJjPt27dSlRUFNHR0ZSXl5t1WSwWDh8+zMCBAzl//jx1dXUAFBUVUVBQgNVqxd/fn169erFv3z5EhFWrVjU51u0IDAzkr3/9K+Ca9vzyyy+xWq2MGDGCgoICiouLqa2tJTMzk9TUVIBWY5+amkpmZiY1NTUUFxdTUFBAfHx8s2OWl5dTXFzMAw880GpcbuZ0Otm/fz8hISHmZ9YwSpadnc2QIUMA19RoVlaWGc9Dhw6ZnbayRn88bNy4sdmG8HespbsTOttD7x5VSqkfvtu5e/Tyxo2SF2uXL0LDzEderF0ub9x4x8c/duyY2O12iY6OlsjISHnppZdEROTChQsybtw4sdlsMm7cOPn2229FRGTVqlUSEREhsbGxMnToUFm/fr2IiFy7dk2GDRsm0dHREhERIXPnzjXvbKyvr5d58+ZJeHi4REVFyerVq0VExOl0ys9//nMJCwuT8PBwmTdvXottvPnu0ffff18effTRJmmFhYUSExMjMTExEhERIYsWLWqxrsZ3Uq5bt04iIiIkJiZGhg4dKhsbxfHAgQMSGRkpVqtV5syZI/X19SIikpOTIwEBAdKjRw/p27evREREiEjrd4+eOXNGkpOTJSoqSiIjI+WDDz4w39uyZYsMHjxYrFZrk/a2FnsRkUWLFonVapUhQ4aYd7Q2nFdUVJTExsZKRESEvPvuu7eMS0ZGhgQFBUlsbKyEh4fLs88+a57npUuX5OGHH5aoqChJSEiQo0ePSnFxsQwaNMjM02Do0KGyb98+ef755814JiYmSl5eXoufgcjt3T1qSAvzwp1NXFycHDx48G43QymlVBvy8vJua0TiyqZNlL/+O5xlZXj6+zNg3i+/0/VsSt0NLX3vDcM4JCLNFtjTGxGUUkp1SPc98oh20lSXote0KaWUUkp1ADrS1tmVn4TLJVD+JdwXANcugCUOMKDyHHydA55eEPwgBP3D3W6tUkoppVqhI22d2ZVS+Go3bP43cFbB/50PP/KDbt3gylfw0SzY/TpkL4EP/xG+2nO3W6yUUkqpVminrTMrz4PKcrj+LThrXGlefaDOCcczod55I6/jOuRtvjvtVEoppdQtaaetM3NUQX0deHQHZzV43gue9wACNRXN81dd/Ls3USmllFLto522zqzfELi3r2uUrddAqCiD6ktgeEB4C4sjRtzZgolKKdUZVFdXEx8fT2xsLJGRkbz44osAXLx4keTkZAYPHkxycjKXLl0CICcnx9xfMzY2lvXr15t1JSYmEhoaar7feL/Sjz76iIiICCIjI5k5c6aZvmDBAiIjIwkPD2fu3LnNtmp67rnnzA3twbXtUkP9UVFReHh4cPGi64/voKAgoqOjsdvtxMU1WzmC1157DcMwzEWAS0pKuPfee836nnnmGTPvoUOHiI6OxmazNWnXzp07GTZsGJ6enqxbt87Mf3Nddrud2tpa8/0DBw7g4eHRpExWVhahoaHYbDaWLFliprcWe4DFixdjs9kIDQ3l008/NdMbn3t0dLS5+XxbcXnyyScJDg7GbrcTFhbGSy+9ZL4nIrzwwgsMGTKE8PBw3nzzTQD++Mc/0r9//ybn2bDzgoeHh5nWsFDw30RLi7d1tkeXXlz364MiR/4ksvafRPb/H5EN/ypSekTkq30ie5eL/D5BZMVDIsfXitRU3u3WKqW6sNtZXPf7UF9fLxUVFSIiUltbK/Hx8bJ3716ZP3++LF68WEREFi9eLAsWLBARkcrKSnE4HCIi8s0330j//v3N12PHjpUDBw40O0Z+fr7Y7Xa5ePGiiIicO3dORER2794to0ePFqfTKU6nUxISEmT79u1muQMHDsgTTzzRbHHdBhs3bpSkpCTzdeOFc292+vRpmTBhggQGBpp5WlsQV0RkxIgRsmfPHqmvr5dJkyaZC9kWFxfLsWPHZNasWbJ27Vozf1t1OZ1OSUpKkpSUFLOM0+kUq9UqhYWFUlNTIzExMZKbmysi0mrsc3NzJSYmRqqrq6WoqEisVqu5gHHjcz958qQEBgbeMi4ZGRlme6qqqiQ4OFiKiopEROS9996TWbNmSV1dnYjc+Mzef/99mTNnTovn2drn1JLbWVxX7x7t7CzDwS/CdXdo93vB/gTUO0AEfnQ/2H4MPfq6Hkop1YHk7z/L3g2FXLtYg09fL0ZNCWHIyIF3XJ9hGOZIlsPhwOFwYBgGGzZsMDdsz8jIIDExkd/85jf06NHDLFtdXd2ujdTfeecd5syZQ58+fQDMvTQNw6C6upra2lpEBIfDgZ+fHwB1dXXMnz+fP/3pT01G8xpbvXp1s/1HWzNv3jyWLl3aru2oysrKuHr1KqNGjQJg9uzZfPLJJ6SkpBAUFARAt27tn7T7r//6L6ZNm8aBAwfMtJycHGw2G1arFYD09HQ2bNhAREREq7HfsGED6enpeHl5ERwcjM1mIycnx2xng6tXr5qxbq/q6moAevbsCcDy5cv505/+ZJ5nS3vP/r3o9GhX0P1euM8CPXzhnh7gfR/c2xt6D4J+Nu2wKaU6nPz9Z9n+4UmuXXTdZHXtYg3bPzxJ/v6z36neuro67HY7AwYMIDk5mZEjR3Lu3Dn83Xua+vv7N5nq3L9/P5GRkURHR7NixQo8PW+MhTz11FPY7XZefvllc0oxPz+f/Px8xowZQ0JCAllZWQCMGjWKpKQk/P398ff3Z+LEieYq+cuWLSM1NdVsw82uX79OVlaWuak5uDqBEyZMYPjw4bz99ttm+saNGwkICCA2NrZZPcXFxQwdOpSxY8eya9cuAM6cOYPFYjHzWCwWzpw5c8s4FhYWmtODc+bMMetav359k6nXhvT777+/xWO0Fvu2ygAkJSURFRXF2LFjWbRo0S3jAjB//nzsdjsWi4X09HSzc1ZYWMiaNWuIi4sjJSWFgoICs8yaNWuaTI9WVVUBro5fXFwcCQkJfPLJJ7eMV3vpSJtSSqkOZ++GQpy19U3SnLX17N1Q+J1G2zw8PDh69CiXL18mLS2NEydOtJl/5MiR5ObmkpeXR0ZGBikpKXh7e/Phhx8SEBBARUUF06ZN44MPPmD27Nk4nU4KCgrYsWMHpaWlPPjgg5w4cYILFy6Ql5dHaWkpAMnJyezcuRObzcbatWvN0aaWbNq0iTFjxtC3740/wHfv3s2gQYMoLy8nOTmZsLAw4uLieOWVV9i6dWuzOvz9/Tl9+jS+vr4cOnSIqVOnkpub2+y6OqBdI4ohISEcPXq0Sdovf/lLfvOb3+Dh4dEk/U6Ocasy27dvp1+/fhQWFjJ+/HgSExPx8fFpMS4PPfQQ4LpGcPr06Vy7do3x48ezZ88eRo8eTU1NDd7e3hw8eJCPP/6Yp59+2uzUPvrooyxbtqxZW06fPs2gQYMoKipi3LhxREdHmxvQfxc60qaUUqrDaRhha2/67erduzeJiYlkZWXh5+dHWVkZ4JoubGl6LDw8nJ49e5qdvICAAAB69erFzJkzycnJAVwjQlOmTKF79+4EBwcTGhpKQUEB69evJyEhAR8fH3x8fEhJSWHfvn0cOXKEU6dOYbPZCAoK4vr169hstibHzszMbDY1OmjQIMA1lZeWlkZOTg6FhYUUFxcTGxtLUFAQpaWlDBs2jLNnz+Ll5YWvry8Aw4cPJyQkhPz8fCwWi9mRBCgtLTXrvl0HDx4kPT2doKAg1q1bxy9+8Qs++eQTLBYLX3/9dYvHaC32bZVpLCQkBD8/P/MGgZbicjMfHx8SExP5/PPPzWM1jGKmpaVx/PjxW55rw3GsViuJiYkcOXLklmXaQzttSimlOhyfvl63ld4e58+f5/LlywBUVVXx2WefERYWRmpqKitXrgRg5cqV5rVgxcXFOJ2u9S6/+uorvvzyS4KCgnA6neZdmQ6Hg82bNxMVFQXA1KlT2b59OwAXLlwgPz8fq9VKYGAg2dnZOJ1OHA4H2dnZhIeHM3nyZM6ePUtJSQklJSX06NGDU6dOmW2+cuUK2dnZTa5Pq6yspKKiwny+detWoqKiiI6Opry83KzLYrFw+PBhBg4cyPnz56mrqwOgqKiIgoICrFYr/v7+9OrVi3379iEirFq1ql3XwrWkuLjYPPb06dN56623mDp1KiNGjKCgoIDi4mJqa2vJzMw077hsLfapqalkZmZSU1NDcXExBQUFxMfHNztmeXk5xcXFPPDAA63G5WZOp5P9+/ebI2NTp05l27ZtAGRnZzNkyJA2z/PSpUvU1Lj+eLhw4QK7d+8mIiLiTkLWjE6PKqWU6nBGTQlh+4cnm0yRet7TjVFT7nwKqqysjIyMDOrq6qivr2fGjBn85Cc/YdSoUcyYMYN3332XwMBA1q5dC8Dnn3/OkiVL6N69O926deOtt96iX79+VFZWMnHiRBwOB3V1dfz4xz/mZz/7GQATJ05k69atRERE4OHhwauvvoqvry/Tp09n27ZtREdHYxgGkyZN4pFHHrllm9evX8+ECRPMi+bBdR1YWloa4OqAzJw5k0mTJrVZz86dO1m4cCGenp54eHiwYsUKc7p1+fLlPPnkk1RVVZGSkkJKSgrgWrojLS2NS5cusWnTJl588UVyc3NvO+6enp4sW7aMiRMnUldXx9NPP01kZCQAzz//fIuxj4yMZMaMGURERODp6cnvf//7JtOuSUlJeHh44HA4WLJkCX5+fhQVFbUZl/nz57No0SJqa2sZP348P/3pT802PP7447z++uv4+Pjwhz/8wSyzZs0ac0QO4K233gLgX/7lX+jWrRv19fU8//zzf7NOm9HSvHBnExcXJwcPHrzbzVBKKdWGvLw88+L79vhb3z2q1N3Q0vfeMIxDItJsgT0daVNKKdUhDRk5UDtpqkvRa9qUUkoppToA7bQppZRSSnUA2mlTSin1g9EVrrNWqsHtft+106aUUuoHwdvbm2+//VY7bqpLEBG+/fZbvL29211Gb0RQSin1g9CwkOv58+fvdlOU+rvw9vZusk3YrWinTSml1A9Cwy4BSqmW6fSoUkoppVQHoJ02pZRSSqkOQDttSimllFIdQJfYxsowjPPAV0A/4MJdbs4PkcalZRqXlmlcmtOYtEzj0jKNS8s0Ljc8ICL9b07sEp22BoZhHGxpL6+uTuPSMo1LyzQuzWlMWqZxaZnGpWUal1vT6VGllFJKqQ5AO21KKaWUUh1AV+u0vX23G/ADpXFpmcalZRqX5jQmLdO4tEzj0jKNyy10qWvalFJKKaU6qq420qaUUkop1SF1iE6bYRjehmHkGIZxzDCMXMMwXnKn9zUM438Mwyhw/+zTqMz/ZxjGKcMwvjQMY2Kj9OGGYfyv+703DcMw3OlehmGscafvNwwjqFGZDPcxCgzDyPg7nnqb2ojLP7pf1xuGEXdTmU4dlzZi8qphGCcNwzhuGMZ6wzB6NyrTqWMCbcblZXdMjhqGsdUwjEGNynTZuDR6/98NwxDDMPo1SuuycTEM49eGYZxxf1+OGobxcKMyXTYu7veec597rmEYSxuld+q4tPFdWdPoe1JiGMbRRmU6dUy+VyLyg38ABuDjft4d2A8kAEuB593pzwO/cT+PAI4BXkAwUAh4uN/LAUa56/y/QIo7/RfACvfzdGCN+3lfoMj9s4/7eZ+7HZNbxCUcCAV2AHGN8nf6uLQRkwmApzv9N/pdMePyo0Z55jY6ry4dF/fr+4FPca/xqHEhAfg18O8t5O/qcUkCPgO83O8N6CpxaevfUKM8vwUWdpWYfJ+PDjHSJi7X3C+7ux8CTAFWutNXAlPdz6cAmSJSIyLFwCkg3jAMf1y/pPaK6xNfdVOZhrrWAePdvfyJwP+IyEURuQT8DzDp+znT29NaXEQkT0S+bKFIp49LGzHZKiJOd/o+wOJ+3uljAm3G5WqjbD1x/buCLh4X9+vXgQWNXoPGpTVdPS7/D7BERGrc+crdeTp9XG71XXG3fQaw2p3U6WPyfeoQnTYAwzA83MOr5bg+pP2An4iUAbh/DnBnDwC+blS81J0W4H5+c3qTMu5f7lcA3zbq+kFoJS6t6RJxaUdMnsb1Vxx0kZhA63ExDOMVwzC+Bh4HFrqzd+m4GIaRCpwRkWM3Ze/ScXG/9azhmlJ/z7hxSUpXj8sQ4EH31F22YRgj3Nm7RFxu8X/ug8A5ESlwv+4SMfm+dJhOm4jUiYgd1whJvGEYUW1kN1qqoo30Oy1z12lcmmsrJoZhvAA4gQ8bklqqoo30Oy1z17UWFxF5QUTuxxWTZ93Zu3JcYoAXuNGBbawrxyUKWA6EAHagDNe0F2hcPHFNzyUA84GP3CNBXSIut/g99Bg3Rtmgi8Tk+9JhOm0NROQyrmu1JgHn3EOquH82DEmX4roepYEF+MadbmkhvUkZwzA8gfuAi23U9YNyU1xa06XicnNM3Bep/gR43D38Dl0sJtDmd+VPwDT3864clym4rrU5ZhhGCa72HjYMYyBdOy6TROSc+xd0PfAOEO/O1qXjgqvNH7unCnOAelz7aHapuLTwf64n8FNgTaNsXSomf3PyA7iw7lYPoD/Q2/38XmAXrl++r9L0RoSl7ueRNL3QsYgbFzoewPXXUMOFjg+70+fQ9ELHj+TGhY7FuP6K6uN+3vdux6StuDR6fwdNb0To9HFp47syCfgC6H9T/k4fk1vEZXCjPM8B6zQuN/4NudNLuHEjQpeOC+DfKM88XNcmaVzgGeA/3elDcE3ZGV0hLm39G8L1/272Tfk7fUy+13jf7Qa080sRAxwBjgMnuHEXii/wV6DA/bNvozIv4Lor5Uvcd6C40+PcdRQCy7ixwLA3sBbXRZE5gLVRmafd6aeAp+52PNoRlzRcf4HUAOeAT7tKXNqIySlc/5EedT9WdJWY3CIuf3a/Pg5sAgI0Ls3ylODutHX1uAAfAP/rTt9I005cV47LPcB/u9MOA+O6Slza+jcE/BF4poUynTom3+dDd0RQSimllOoAOtw1bUoppZRSXZF22pRSSimlOgDttCmllFJKdQDaaVNKKaWU6gC006aUUkop1QFop00ppZRSqgPQTptSqtMzDMPXMIyj7sdZwzDONHp93Z0nyDAMMQzj5Ubl+hmG4TAMY5n79a9vKnvUMIzerRwz0V3fPzVKG+pO+3f36wT3fpVHDcPIMwzj199nHJRSHZvn3W6AUkp930TkW1z7ZeLuGF0Tkdfcr681ylqEa4X7X7lf/yOQe1N1rzeUbYf/BR4F3nW/Tse1GnyDlcAMETlmGIYHENrOepVSXZCOtCml1A1VQJ5hGHHu148CH32H+k4D3oZh+Lk3EJ+Ea3ueBgNwbbyOuPb0/OI7HEsp1clpp00ppZrKBNINw7AAdTTfgHpeo6nR7e2obx2uEbvRuLY4qmn03uvAl4ZhrDcM418Mw/D+G7RfKdVJaadNKaWaygKSgceANS28/7qI2N2PpHbU9xGuTttjwOrGb4jIf+Lab3ErMNN9bKWUapF22pRSqhERqQUOAf8v8Oe/QX1nAQeujuBfW3i/UESWA+OBWMMwfL/rMZVSnZPeiKCUUs39FsgWkW9dl6J9ZwuBASJS17g+wzAmA38REQEG45qOvfy3OKBSqvPRTptSSt1ERHJpftdog3mGYTzR6PVUESm5RX17WnlrFvC6e9kRJ/C4iNTdbnuVUl2D4foDTymllFJK/ZDpNW1KKaWUUh2ATo8qpdR3YBjGROA3NyUXi0ja3WiPUqrz0ulRpZRSSqkOQKdHlVJKKaU6AO20KaWUUkp1ANppU0oppZTqALTTppRSSinVAWinTSmllFKqA/j/AbodQ4uWhaVuAAAAAElFTkSuQmCC\n", + "text/plain": [ + "<Figure size 720x576 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10,8))\n", + "sns.scatterplot(x=\"TIME_MS\", y=\"SUM_PROXIMITY_KMS\", hue='EPC', data=test_1[test_1.MEASUREMENT == 4])\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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EVauXFnvWNciKSmJlStXIiLs2LGDW2+9FV9fX4YOHUpOTg75+flUVVWRmppKUlKStU9jsU9KSiI1NZXKykry8/PJyclhWCMDTZeUlJCfn0///v2bjMuVnE4nO3fuJCgoyPrNNm7cCEBGRgYDBgwA4OjRo1aL3759+6iqqqJHjx6ICI8++ighISH88Y9//EGxUqrda+zthPb20bdHVXt2TW/RHVwlstBH5Olbvv8s9HGl/0AHDx6U6OhoiYiIkLCwMHn22WdFROTMmTNy7733it1ul3vvvVe+++47ERFZuXKlhIaGSlRUlAwaNEjS0tJEROTSpUsyePBgiYiIkNDQUHniiSesNxtrampk7ty5EhISIuHh4fLBBx+IiOsNyt/85jcycOBACQkJkblz5zZaxivfHn3nnXfkoYceqpeWm5srkZGREhkZKaGhobJw4cJG86r7JuVHH30koaGhEhkZKYMGDZK1a9da2+3evVvCwsIkMDBQ5syZY70xuWvXLunXr594eXnJHXfcIaGhoSLS9NujNTU18rvf/U4CAwMlPDy83tu169evl7vuuksCAwPrlbep2IuILFy4UAIDA2XAgAHWG6215xUeHi5RUVESGhoqb7311lXjkpKSIv7+/hIVFSUhISHy+9//3jrPc+fOyS9+8QsJDw+X2NhYOXDggIiILF682Pr9Y2NjZevWrSIisnXrVgEkIiJCoqKiJCoqStavX9/obyCib4+q9o0m3h410sgzDu1NTEyM7Nmzp7WLodRPIisry3r4vkW+/tD1DNuFQlcL29gF1/U8m1Kt4Zqve6XaEGPMXhFpMFikvoigVEcTOVUraUop1QbpM21KKaWUUm2AVtqUUkoppdoArbQppZRSSrUBWmlTSimllGoDtNKmlFJKKdUGaKVNKXVdKioqGDZsGFFRUYSFhfH0008DcPbsWeLj47nrrruIj4/n3LlzAOzatcuaXzMqKoq0tDQrr7i4OIKDg631decr/fDDDwkNDSUsLIzp06db6fPnzycsLIyQkBCeeOKJBlM1Pf7449aE9uCadqk2//DwcDw8PDh79izgmsw9IiKC6OhoYmIavG3Piy++iDHGGgS4oKCAm2++2crvt7/9rbXt3r17iYiIwG631yvXli1bGDx4MJ6ennz00UfW9lfmFR0dTVVVFRcuXOCBBx6w4vvOO+9Y+6SnpxMcHIzdbmfx4sVWelOxB1i0aBF2u53g4GA+//xzK73uuUdERFiTzzcXl1mzZhEQEEB0dDQDBw7k2WeftdaJCH/+858ZMGAAISEhvPLKKwC8++679OrVq9551s68cPz4ccaNG0dISAihoaEUFBQ0+A2U6tAaG7ytvX10cF3VnrX2IKM1NTVSWloqIiJVVVUybNgw+eqrr2TevHmyaNEiERFZtGiRzJ8/X0REysrKxOFwiIjIyZMnpVevXtb30aNH1xs8tlZ2drZER0fL2bNnRUTk1KlTIiKybds2GTlypDidTnE6nRIbGyubNm2y9tu9e7c88sgjDQbXrbV27VoZM2aM9b3uwLlXOn78uIwbN078/PysbZoaEFdEZOjQobJ9+3apqamR8ePHWwPZ5ufny8GDB2XGjBmyevVqa/um8nr++eet2JWUlMjtt98ulZWV4nQ6JTAwUHJzc6WyslIiIyMlMzNTRKTJ2GdmZkpkZKRUVFRIXl6eBAYGWgMY1z33I0eOiJ+f31XjkpKSYp1DeXm5BAQESF5enoiIvP322zJjxgyprq4Wke9/s3feeUfmzJnTaMxGjx4tGzZsEBGR0tJSKSsra3Q7kda/7pX6KdHE4Lra0qZUB7M+bz3jPhpH5IpIxn00jvV5668rP2OM1ZLlcDhwOBwYY1izZg0pKSkApKSk8MknnwDg5eWFp6driMiKiooWTaT+xhtvMGfOHG6//XYAay5NYwwVFRVUVVVRWVmJw+HAx8cHgOrqaubNm8eSJUuazPeDDz5oMP9oU+bOncuSJUtaVN6ioiIuXrzIiBEjMMYwc+ZM6/z9/f2JjIykU6eW3X6NMZSWliIiXLp0iTvuuANPT0927dqF3W4nMDCQm266iWnTplmtY03Ffs2aNUybNo0uXboQEBCA3W5vdB7RixcvWrFuqYqKCgC6desGwPLly1mwYIF1no3NPVvX4cOHcTqdxMfHA665TL28vK6pDEq1d1ppU6oDWZ+3nme2P0NRWRGCUFRWxDPbn7nuilt1dTXR0dH07t2b+Ph4hg8fzqlTp/D19QXA19e3Xlfnzp07CQsLIyIigtdee82qxAH8+te/Jjo6mueee87qUszOziY7O5tRo0YRGxtLeno6ACNGjGDMmDH4+vri6+tLQkKCNUr+0qVLSUpKsspwpcuXL5Oenm5Nag6uCtK4ceMYMmQIr7/+upW+du1a+vXrR1RUVIN88vPzGTRoEKNHj2br1q0AnDhxApvt+/lcbTYbJ06cuGocc3NzrS7DOXPmAPD73/+erKws+vbtS0REBC+//DKdOnXixIkT3HnnnY0eo6nYN7cPwJgxYwgPD2f06NEsXLjwqnEBmDdvHtHR0dhsNqZNm2ZVznJzc1m1ahUxMTEkJiaSk5Nj7bNq1ap63aPl5eVkZ2dz2223MXnyZAYNGsS8efOseV2VUi46I4JSHcjL+16morqiXlpFdQUv73uZCYETfnC+Hh4eHDhwgPPnz5OcnMyhQ4ea3X748OFkZmaSlZVFSkoKiYmJdO3alffff59+/fpRWlrKgw8+yHvvvcfMmTNxOp3k5OSwefNmCgsLufvuuzl06BBnzpwhKyuLwsJCAOLj49myZQt2u53Vq1ezefPmJsuwbt06Ro0axR133GGlbdu2jb59+1JSUkJ8fDwDBw4kJiaG559/ng0bNjTIw9fXl+PHj9OjRw/27t3LpEmTyMzMbPBcHdCiFrqgoCAOHDhQL+3zzz8nOjqajRs3kpubS3x8PHffffcPOsbV9tm0aRM9e/YkNzeXsWPHEhcXh7e3d6NxueeeewDXM4JTpkzh0qVLjB07lu3btzNy5EgqKyvp2rUre/bs4eOPP2b27NlWpfahhx5i6dKl9crhdDrZunUr+/fvx8/Pj4ceeoh3332XRx999KpxU6qj0JY2pTqQ4rLia0q/VrfddhtxcXGkp6fj4+NDUVER4OoubKx7LCQkhG7dulmVvH79+gHQvXt3pk+fbnXd2Ww2Jk6cSOfOnQkICCA4OJicnBzS0tKIjY3F29sbb29vEhMT2bFjB/v37+fo0aPY7Xb8/f25fPkydru93rFTU1MbdI327dsXcHXlJScns2vXLnJzc8nPzycqKgp/f38KCwsZPHgwxcXFdOnShR49egAwZMgQgoKCyM7OxmazWRVJgMLCQivva/XOO+8wefJkjDHY7XYCAgI4cuQINpuNb7/9ttFjNBX75vapKygoCB8fH+sFgcbiciVvb2/i4uL48ssvrWPVtmImJyfz9ddfN3ueNpuNQYMGERgYiKenJ5MmTWLfvn0tC1JH4KyCU0fgTC4c+wqOfAbFma1dKnWDaaVNqQ6kT7c+15TeEqdPn+b8+fMAlJeX88UXXzBw4ECSkpJYsWIFACtWrGDixImAqzvR6XQCcOzYMb755hv8/f1xOp3WW5kOh4NPP/2U8PBwACZNmsSmTZsAOHPmDNnZ2QQGBuLn50dGRgZOpxOHw0FGRgYhISFMmDCB4uJiCgoKKCgowMvLi6NHj1plvnDhAhkZGVaZAMrKyigtLbWWN2zYQHh4OBEREZSUlFh52Ww29u3bR58+fTh9+rTVhZeXl0dOTg6BgYH4+vrSvXt3duzYgYiwcuXKese6Fn5+fvzP//wP4Or2/OabbwgMDGTo0KHk5OSQn59PVVUVqampJCUlATQZ+6SkJFJTU6msrCQ/P5+cnByGDRvW4JglJSXk5+fTv3//JuNyJafTyc6dOwkKCrJ+s40bNwKQkZHBgAEDmj3PoUOHcu7cOU6fPg3Axo0bCQ0NveZ4tUuXv4PC3eCsgLxN8P4USP0V/NcUOPpFa5dO3UDaPapUB/KHwX/gme3P1Osi7erRlT8M/sMPzrOoqIiUlBSqq6upqalh6tSp3H///YwYMYKpU6fy1ltv4efnx+rVqwH48ssvWbx4MZ07d6ZTp04sW7aMnj17UlZWRkJCAg6Hg+rqau677z4ee+wxABISEtiwYQOhoaF4eHjwwgsv0KNHD6ZMmcLGjRuJiIjAGMP48eN54IEHrlrmtLQ0xo0bZz00D64KUXJyMuCqgEyfPp3x48c3m8+WLVtYsGABnp6eeHh48Nprr1ndrcuXL2fWrFmUl5eTmJhIYmIiALt37yY5OZlz586xbt06nn76aTIzm24x+ctf/sKsWbOIiIhARPjrX/9Kz549AddzewkJCVRXVzN79mzCwsIAeOqppxqNfVhYGFOnTiU0NBRPT09effVVPDw8rGONGTMGDw8PHA4HixcvxsfHh7y8vGbjMm/ePBYuXEhVVRVjx45l8uTJVhkefvhhXnrpJby9vXnzzTetfVatWmW1yAEsW7aMkSNH8uKLLzJ27Njat/6t37/DO3ccyi+Aoxz+ex5IjSv94kn49I/wyMfQ0958HqpdMI0949DexMTEyJ49e1q7GEr9JLKysqyH71tifd56Xt73MsVlxfTp1oc/DP7DdT3PplRruNbrvk0r3AOOCjh7FNY18h+smWsgMO6GF0v9dIwxe0WkwWCR2tKmVAczIXCCVtKUalMMVF2Gbj4NV3XrCd163fgiqVahz7QppZRSP2e39IPOXcC7D4yq09Lm2QXG/xV8wlqvbOqG0pY2pZRS6ufslj7geTOcy4OwX4L/v0DZGbjdH+4c3tqlUzeQVtqUUkqpnzuvW8FrkPtLRKsWRbUe7R5VSimllGoDtNKmlFJKKdUGaKVNKXVdKioqGDZsGFFRUYSFhfH0008DcPbsWeLj47nrrruIj4/n3LlzAOzatcuaczIqKoq0tDQrr7i4OIKDg631decr/fDDDwkNDSUsLIzp06db6fPnzycsLIyQkBCeeOKJBlM1Pf7449aE9uCadqk2//DwcDw8PDh79izgmsw9IiKC6OhoYmIavG3Piy++iDHGGgS4oKCAm2++2crvt7/9rbXt3r17iYiIwG631yvXli1bGDx4MJ6ennz00UfW9lfmFR0dTVVVlbV+9+7deHh41NsnPT2d4OBg7HY7ixcvttKbij3AokWLsNvtBAcH8/nnn1vpdc89IiLCmny+ubjMmjWLgIAAoqOjGThwIM8++6y1TkT485//zIABAwgJCeGVV14B4N1336VXr171zrN25gUPDw8rrXagYKVUHSLS7j9DhgwRpdqrw4cPt+rxa2pqpLS0VEREqqqqZNiwYfLVV1/JvHnzZNGiRSIismjRIpk/f76IiJSVlYnD4RARkZMnT0qvXr2s76NHj5bdu3c3OEZ2drZER0fL2bNnRUTk1KlTIiKybds2GTlypDidTnE6nRIbGyubNm2y9tu9e7c88sgj0q1bt0bLvnbtWhkzZoz1vX///nL69OlGtz1+/LiMGzdO/Pz8rG3y8/MlLCys0e2HDh0q27dvl5qaGhk/frx89tln1j4HDx6UGTNmyOrVq63tm8vL6XTKmDFjJDEx0drH6XRKYGCg5ObmSmVlpURGRkpmZqaISJOxz8zMlMjISKmoqJC8vDwJDAwUp9PZ4NyPHDkifn5+V41LSkqKVZ7y8nIJCAiQvLw8ERF5++23ZcaMGVJdXS0i3/9m77zzjsyZM6fR82zqd2pMa1/3Sv2UgD3SSH1GW9qU6mAurFtHzr1jyQoJJefesVxYt+668jPGWC1ZDocDh8OBMYY1a9aQkpICQEpKCp988gkAXl5eeHq63oGqqKho0UTqb7zxBnPmzOH2228HsObSNMZQUVFBVVUVlZWVOBwOfHxcY1lVV1czb948lixZ0mS+H3zwQYP5R5syd+5clixZ0qLyFhUVcfHiRUaMGIExhpkzZ1rn7+/vT2RkJJ06tfz2+49//IMHH3yw3vytu3btwm63ExgYyE033cS0adOs1rGmYr9mzRqmTZtGly5dCAgIwG63NzqP6MWLF61Yt1RFhWuWjdpZJpYvX86CBQus82xs7lml1LXRSptSHciFdeso+ssCnCdPggjOkycp+suC6664VVdXEx0dTe/evYmPj2f48OGcOnUKX19fAHx9fet1de7cuZOwsDAiIiJ47bXXrEocwK9//Wuio6N57rnnrC7F7OxssrOzGTVqFLGxsaSnpwMwYsQIxowZg6+vL76+viQkJFij5C9dupSkpCSrDFe6fPky6enp1qTm4KoEjhs3jiFDhvD6669b6WvXrqVfv35ERUU1yCc/P59BgwYxevRotm7dCsCJEyew2WzWNjabjRMnTlw1jrm5uVb34Jw5c6y80tLS6nW91qbfeeedjR6jqdg3tw+4prEKDw9n9OjRLFy48KpxAdc0VtHR0dhsNqZNm2ZVznJzc1m1ahUxMTEkJiaSk5Nj7bNq1ap63aPl5eWAq+IXExNDbGysVdFUSn1Ph/xQqgMpeenvSEVFvTSpqKDkpb9zawvm7GyKh4cHBw4c4Pz58yQnJ3Po0KFmtx8+fDiZmZlkZWWRkpJCYmIiXbt25f3336dfv36Ulpby4IMP8t577zFz5kycTic5OTls3ryZwsJC7r77bg4dOsSZM2fIysqisLAQgPj4eLZs2YLdbmf16tVs3ry5yTKsW7eOUaNGWXOFAmzbto2+fftSUlJCfHw8AwcOJCYmhueff54NGzY0yMPX15fjx4/To0cP9u7dy6RJk8jMzGzwXB3Qoha6oKAgDhw4UC/tySef5K9//Wu9OUKBH3SMq+2zadMmevbsSW5uLmPHjiUuLg5vb+9G43LPPfcArmcEp0yZwqVLlxg7dizbt29n5MiRVFZW0rVrV/bs2cPHH3/M7NmzrUrtQw89xNKlSxuU5fjx4/Tt25e8vDzuvfdeIiIirAnolVLa0qZUh+IsKrqm9Gt12223ERcXR3p6Oj4+PhS58y0qKmq0eywkJIRu3bpZlbx+/foB0L17d6ZPn2513dlsNiZOnEjnzp0JCAggODiYnJwc0tLSiI2NxdvbG29vbxITE9mxYwf79+/n6NGj2O12/P39uXz5MnZ7/Qm1U1NTG3SN9u3bF3B15SUnJ7Nr1y5yc3PJz88nKioKf39/CgsLGTx4MMXFxXTp0oUePXoAMGTIEIKCgsjOzsZms1kVSYDCwkIr72u1Z88epk2bhr+/Px999BG/+93v+OSTT7DZbHz77beNHqOp2De3T11BQUH4+PhYLwg0FpcreXt7ExcXZ00Eb7PZrFbM5ORkvv7666uea+1xAgMDiYuLY//+/VfdR6mORCttSnUgnk10FTaV3hKnT5/m/PnzAJSXl/PFF18wcOBAkpKSWLFiBQArVqxg4sSJgKs70el0AnDs2DG++eYb/P39cTqd1luZDoeDTz/9lPDwcAAmTZrEpk2bADhz5gzZ2dkEBgbi5+dHRkYGTqcTh8NBRkYGISEhTJgwgeLiYgoKCigoKMDLy4ujR49aZb5w4QIZGRlWmQDKysooLS21ljds2EB4eDgRERGUlJRYedlsNvbt20efPn04ffo01dXVAOTl5ZGTk0NgYCC+vr50796dHTt2ICKsXLmy3rGuRX5+vnXsKVOmsGzZMiZNmsTQoUPJyckhPz+fqqoqUlNTrTcum4p9UlISqampVFZWkp+fT05ODsOGDWtwzJKSEvLz8+nfv3+TcbmS0+lk586dVsvYpEmT2LhxIwAZGRkMGDCg2fM8d+4clZWVgOs33rZtG6GhoT8kZO3S+bJKDh7/joPHz/LZP4t4+Yts/nPHMQ6dON/aRVM3kHaPKtWB9J77JEV/WVCvi9R07UrvuU/+4DyLiopISUmhurqampoapk6dyv3338+IESOYOnUqb731Fn5+fqxevRqAL7/8ksWLF9O5c2c6derEsmXL6NmzJ2VlZSQkJOBwOKiurua+++7jscceAyAhIYENGzYQGhqKh4cHL7zwAj169GDKlCls3LiRiIgIjDGMHz+eB1rQzZuWlsa4ceOsh+bB9RxYcnIy4KqATJ8+nfHjxzebz5YtW1iwYAGenp54eHjw2muvWd2ty5cvZ9asWZSXl5OYmEhiYiLgGrojOTmZc+fOsW7dOp5++mkyMzOvOe6enp4sXbqUhIQEqqurmT17NmFhrjkon3rqqUZjHxYWxtSpUwkNDcXT05NXX321XrfrmDFj8PDwwOFwsHjxYnx8fMjLy2s2LvPmzWPhwoVUVVUxduxYJk+ebJXh4Ycf5qWXXsLb25s333zT2mfVqlVWixzAsmXLAPi3f/s3OnXqRE1NDU899ZRW2urYe+wcvW/pwt5j53lm3WEr3b+nF+/OGoZ/z27N7K3aC9PYMw7tTUxMjOzZs6e1i6HUTyIrK8t6+L4lLqxbR8lLf8dZVISnry+95z55Xc+zKdUarvW6b8uOnSmj4MwlPD068R8f/5PCc+X11v/tl1E8OMTWxN6qLTLG7BWRBoNFakubUh3MrQ88oJU0pdoQZ00NHp6dcFQL58qqGqy/XOVshVKp1qDPtCmllFI/Y763daW03MntXp2ZEFn/+VOPToaBfbq3UsnUjaYtbapNqi4tpeLYMRChpqSEy/sP0KlrV7xih9OtkemHlFKqrfK6qTP9e3ghNTU8ONjGzTd58NnXxfjc0oUn7xvA4P53XD0T1S5opU21SZVHj4KHB85vCzk5fz643+Azb7+N35tv4DV4cCuXUCmlfjyhfW/F6azhVGk5j47sz9Qhd+JzSxd6du/a2kVTN5BW2lSb4ygqoqa8AnNzVy6kpVkVNgC5fJnSjRu10qaUanc8PTvR73Z9S7Qj02faVJsjDgd06gQ1Qk3ZpQbrq89faIVSKaWUUj8trbSpNqezry+mk4HOnnRPSGiwvvt9Y1uhVB1XRUUFw4YNIyoqirCwMJ5++mkAzp49S3x8PHfddRfx8fGcO3cOcE10XjvnZFRUFGlpaVZecXFxBAcHW+vrzlf64YcfEhoaSlhYGNOnT7fS58+fT1hYGCEhITzxxBMNpmp6/PHHrQntwTXtUm3+4eHheHh4cPbsWcA1mXtERATR0dHENPJs5IsvvogxxhoEuKCggJtvvtnKr+78oHv37iUiIgK73V6vXFu2bGHw4MF4enry0UcfWdtfmVd0dDRVVVWICE888QR2u53IyEj27dtn7ZOenk5wcDB2u53Fixdb6U3FHmDRokXY7XaCg4P5/PPPrfS65x4REWFNPt9cXGbNmkVAQADR0dEMHDiQZ5991lonIvz5z39mwIABhISE8MorrwBw5MgRRowYQZcuXXjxxRcbxLi6uppBgwZx//33N1inVIcnIq3yAaKBHcABYA8wrM66/wc4CnwDJNRJHwL8073uFdzjzF3tM2TIEFHtS/nJk3LpwEG5tHefnHl3heTe/4DkTZ4s59evl+ry8tYu3g11+PDhVj1+TU2NlJaWiohIVVWVDBs2TL766iuZN2+eLFq0SEREFi1aJPPnzxcRkbKyMnE4HCIicvLkSenVq5f1ffTo0bJ79+4Gx8jOzpbo6Gg5e/asiIicOnVKRES2bdsmI0eOFKfTKU6nU2JjY2XTpk3Wfrt375ZHHnlEunXr1mjZ165dK2PGjLG+9+/fX06fPt3otsePH5dx48aJn5+ftU1+fr6EhYU1uv3QoUNl+/btUlNTI+PHj5fPPvvM2ufgwYMyY8YMWb16tbV9U3mtX79exo8fLzU1NfLVV1/JsGHDRETE6XRKYGCg5ObmSmVlpURGRkpmZqaISJOxz8zMlMjISKmoqJC8vDwJDAwUp9PZ4NyPHDkifn5+V41LSkqKdQ7l5eUSEBAgeXl5IiLy9ttvy4wZM6S6ulpEvv/NTp06Jbt27ZI//elP8sILLzTI829/+5v86le/kgkTJjQa11qtfd0r9VMC9kgj9ZnWbGlbAjwrItHAAvd3jDGhwDQgDBgPLDPG1A7ZvRz4DXCX+9P8cOWq3erq60u3qEg632mjW8I4+v7jFWxvv82tv/gFnbrqg7nNyd5ZzIo/bePV325kxZ+2kb2z+LryM8ZYLVkOhwOHw4ExhjVr1pCSkgJASkoKn3zyCQBeXl54eroep62oqGjRROpvvPEGc+bM4fbbbwew5tI0xlBRUUFVVRWVlZU4HA58fHwAV4vNvHnzWLJkSZP5fvDBBw3mH23K3LlzWbJkSYvKW1RUxMWLFxkxYgTGGGbOnGmdv7+/P5GRkXTq1LLb75o1a5g5cybGGGJjYzl//jxFRUXs2rULu91OYGAgN910E9OmTbNax5qK/Zo1a5g2bRpdunQhICAAu93e6DyiFy9etGLdUhXuWTZqZ5lYvnw5CxYssM6z9jfr3bs3Q4cOpXPnzg3yKCwsZP369fzrv/7rNR1bqY6iNSttAtziXr4VOOlengikikiliOTjalUbZozxBW4Rka/ctdCVwKQbXGb1M3NTr1507dOHrv7+dL711tYuzs9e9s5iNr1/hEtnXXM8Xjpbyab3j1x3xa26upro6Gh69+5NfHw8w4cP59SpU/i65zT19fWt19W5c+dOwsLCiIiI4LXXXrMqcQC//vWviY6O5rnnnrO6FLOzs8nOzmbUqFHExsaSnp4OwIgRIxgzZgy+vr74+vqSkJBgjZK/dOlSkpKSrDJc6fLly6Snp1uTmoOrEjhu3DiGDBnC66+/bqWvXbuWfv36ERUV1SCf/Px8Bg0axOjRo9m6dSsAJ06cwGb7foR6m83GiRMnrhrH3Nxcq2t0zpw5Vl533nlng7yaSgeajH1z+4BrGqvw8HBGjx7NwoULrxoXcE1jFR0djc1mY9q0aVblLDc3l1WrVhETE0NiYiI5OTlXPf8nn3ySJUuWtLhCq1RH05pvjz4JfG6MeRFX5XGkO70frm7TWoXuNId7+cp0pVQLfbUmF2dVTb00Z1UNX63JZcDwPj84Xw8PDw4cOMD58+dJTk7m0KFDzW4/fPhwMjMzycrKIiUlhcTERLp27cr7779Pv379KC0t5cEHH+S9995j5syZOJ1OcnJy2Lx5M4WFhdx9990cOnSIM2fOkJWVRWGh69YQHx/Pli1bsNvtrF69ms2bNzdZhnXr1jFq1ChrrlCAbdu20bdvX0pKSoiPj2fgwIHExMTw/PPPs2HDhgZ5+Pr6cvz4cXr06MHevXuZNGkSmZmZDZ6rA1rUQhcUFMSBAwfqpTWV1w85xtX22bRpEz179iQ3N5exY8cSFxeHt7d3o3G55557ANczglOmTOHSpUuMHTuW7du3M3LkSCorK+natSt79uzh448/Zvbs2ValtjGffvopvXv3ZsiQIc3+bkp1ZD/pf2eMMV8YYw418pkI/C9grojcCcwF3qrdrZGspJn0po79G2PMHmPMntOnT1/vqSjVLtS2sLU0/VrddtttxMXFkZ6ejo+PD0VFRYCru7C2BaaukJAQunXrZlXy+vVz/T+se/fuTJ8+3eq6s9lsTJw4kc6dOxMQEEBwcDA5OTmkpaURGxuLt7c33t7eJCYmsmPHDvbv38/Ro0ex2+34+/tz+fJl7HZ7vWOnpqY26Brt27cv4OrCS05OZteuXeTm5pKfn09UVBT+/v4UFhYyePBgiouL6dKlCz169ABgyJAhBAUFkZ2djc1msyqS4Or2q837WtlsNr799tsGeTWVDjQZ++b2qSsoKAgfHx8OHz7cZFyu5O3tTVxcnDURvM1ms1oxk5OT+frrr5s9z23btrF27Vr8/f2ZNm0aGzdu5JFHHrlKdJTqWH7SSpuI3Cci4Y181gApwMfuTVcDw9zLhcCddbKx4eo6LXQvX5ne1LFfF5EYEYnp1avXj3VKSrVp3nd0uab0ljh9+jTnz58HoLy8nC+++IKBAweSlJTEihUrAFixYgUTJ04EXN2JTqdrrsRjx47xzTff4O/vj9PptN7KdDgcfPrpp4SHhwMwadIkNm3aBMCZM2fIzs4mMDAQPz8/MjIycDqdOBwOMjIyCAkJYcKECRQXF1NQUEBBQQFeXl4cPXrUKvOFCxfIyMiwygRQVlZGaWmptbxhwwbCw8OJiIigpKTEystms7Fv3z769OnD6dOnqXaPE5iXl0dOTg6BgYH4+vrSvXt3duzYgYiwcuXKese6FklJSaxcuRIRYceOHdx66634+voydOhQcnJyyM/Pp6qqitTUVJKSkqx9Got9UlISqampVFZWkp+fT05ODsOGDWtwzJKSEvLz8+nfv3+TcbmS0+lk586dBAUFWb/Zxo0bAcjIyGDAgAHNnueiRYsoLCykoKCA1NRU7r33Xv7zP//zB8VMqfaqNbtHTwKjgc3AvUDtAw9rgf8yxvwfoC+uFw52iUi1MabUGBML7ARmAv+44aVWqg0bMTGITe8fqddF6nlTJ0ZMDPrBeRYVFZGSkkJ1dTU1NTVMnTqV+++/nxEjRjB16lTeeust/Pz8WL16NQBffvklixcvpnPnznTq1Illy5bRs2dPysrKSEhIwOFwUF1dzX333cdjjz0GQEJCAhs2bCA0NBQPDw9eeOEFevTowZQpU9i4cSMREREYYxg/fjwPPPDAVcuclpbGuHHjrIfmwfUcWHJyMuCqgEyfPp3x45t/12nLli0sWLAAT09PPDw8eO2116zu1uXLlzNr1izKy8tJTEwkMTERgN27d5OcnMy5c+dYt24dTz/9NJmZmU0e4xe/+AWfffYZdrsdLy8v3nnnHQA8PT1ZunQpCQkJVFdXM3v2bMLCwgB46qmnGo19WFgYU6dOJTQ0FE9PT1599VU8PDysY40ZMwYPDw8cDgeLFy/Gx8eHvLy8ZuMyb948Fi5cSFVVFWPHjmXy5MlWGR5++GFeeuklvL29efPNNwEoLi4mJiaGixcv0qlTJ/7+979z+PBhbrnlFpRSzTONPeNwQw5szL8AL+OqOFYAvxORve51fwZmA07gSRH5b3d6DPAucDPw38Dj0oITiImJkT179vwUp6FUq8vKyrIevm+J7J3FfLUml0tnK/G+owsjJgZd1/NsSrWGa73ulWpLjDF7RaTBYJGt1tImIl/iGnetsXXPA883kr4HaNgur5RqsQHD+2glTSml2iB9r1oppZRSqg3QSptSSimlVBuglTal2oHWejZVqdag17vqqLTSplQb17VrV7777jv9h0x1CCLCd999R1edrk51QK055IdS6kdQO5CrDiKtOoquXbvWmyZMqY5CK21KtXG1swQopZRq37R7VCmllFKqDdBKm1JKKaVUG6CVNqWUUkqpNqDVprG6kYwxp4Fj17BLT+DMT1Sc9kJj1DyNT/M0Ps3T+DRP49M8jU/z2kJ8+otIrysTO0Sl7VoZY/Y0NueX+p7GqHkan+ZpfJqn8Wmexqd5Gp/mteX4aPeoUkoppVQboJU2pZRSSqk2QCttjXu9tQvQBmiMmqfxaZ7Gp3kan+ZpfJqn8Wlem42PPtOmlFJKKdUGaEubUkoppVQb0O4rbcaYO40xm4wxWcaYTGPMHxrZZqAx5itjTKUx5t9bsq8x5hljzAljzAH35xc36px+TNcTH/e6AmPMP90x2FMn/Q5jzP9njMlx/3n7jTifH9t1Xj/Bda6PA8aYi8aYJ93rOtL187Ax5mv3Z7sxJqrOuvHGmG+MMUeNMU/VSe9I10+j8dH7j7VNc9eP3n+avn70/uPaZqI7NgeMMXuMMf9SZ13bu/+ISLv+AL7AYPdydyAbCL1im97AUOB54N9bsi/wTN1t2+rneuLjXlcA9Gwk3yXAU+7lp4C/tva5tkZ86mzjARTjGnuno10/I4Hb3cuJwM46MckFAoGbgIN1/n51pOunqfjo/aeZ+Li/6/2nmfjU2aYj33+8+f5RsEjgSJ2YtLn7T7tvaRORIhHZ514uBbKAfldsUyIiuwHHte7b1l1PfK5iIrDCvbwCmHT9pb3xfsT4jAVyReRaBnn+2WthfLaLyDn31x2Azb08DDgqInkiUgWk4rpuoGNdP43GR+8/1jZNXT/N6fDXzxU68v3nkrhrX0A3oHa5Td5/2n2lrS5jjD8wCNj5I+37e3ez69s/q+bTH+gHxkeADcaYvcaY39RJ9xGRInD9xcLVGtWmXc/1A0wDPrgirSNeP48C/+1e7gd8W2ddId/fcDvq9VM3Plfbt6NfP6D3nys1ev3Qwe8/xphkY8wRYD0w253cJu8/HabSZozxBv4v8KSIXPwR9l0OBAHRQBHwtx+vtDfedcRnlIgMxtUsP8cYc89PUsBWdp3Xz01AErC6TnKHu36MMWNw/aPyH7VJjWzWLl9n/4HxaW5fvX5c9P7z/TZNXT8d/v4jImkiMhBXi9lztbs1ktXP/v7TISptxpjOuH7Q90Xk4x9jXxE5JSLVIlIDvIGrqbVNup74iMhJ958lQBrfx+GUMcbXnb8vUPLjlfjGup74uCUC+0TkVG1CR7t+jDGRwJvARBH5zp1cCNxZZzMbcNK93KGunybio/ef77dpND56/7G2aTQ+bh3+/lNLRLYAQcaYnrTR+0+7r7QZYwzwFpAlIv/nx9q39gd1SwYOXW9ZW8N1xqebMaZ77TIwju/jsBZIcS+nAGt+nBLfWNcTnzp+xRVdEx3p+jHG+AEfAzNEJLvOqt3AXcaYAHdrwDRc1w10oOunqfjo/cfapqn46P2HZv9+1ero9x+7ezuMMYNxvXTwHW30/tPuB9d1v967FfgnUONO/hPgByAirxlj+gB7gFvc21wCQnG9adJgXxH5zBjzHq6mZcH1BtO/1faBtyXXGZ+euP53C+AJ/JeIPO/OtwfwoTuf48AvReTsjTinH9P1xEdELhpjvHA9NxEoIhfq5NuRrp83gQeB2oegneKerNm4hhr4O643ud7uoNdPo/Fpat8OeP9pKj6B6P3nan+/9P5jzH8AM3G9KFYOzBORL937t7n7T7uvtCmllFJKtQftvntUKaWUUqo90EqbUkoppVQboJU2pZRSSqk2QCttSimllFJtgFbalFJKKaV+BO4ZJkqMMS0aRsUYM9UYc9i4Jrz/r6tur2+PKqWUUkpdP/esHJeAlSISfpVt78I1tMi9InLOGNPbPVB0k7SlTSnV7hljehhjDrg/xcaYE3W+X3Zv42+MEWPMc3X262mMcRhjlrq/P3PFvgeMMbc1ccw4d36P1kkb5E77d/f3WGPMTnc+WcaYZ37KOCilflruWRfqjelmjAkyxqQb1xy5W40xA92rHgNeFZFz7n2vOvOC549eYqWU+plxT+0TDa6KF3BJRF50f79UZ9M84H7gL+7vvwQyr8jupdp9W+CfwEO4Rm0H16jrB+usXwFMFZGDxhgPILiF+Sql2o7Xgd+KSI4xZjiwDLgXGABgjNmGa4DfZ0QkvbmMtNKmlFLfKweyjDExIrIHV4XrQ6DvD8zvOHCLMcYH1/yF44HP6qzvjWvCbkSkGjj8QwuulPr5Ma7J7EcCq92zaQF0cf/pCdwFxOGa+3SrMSZcRM43lZ9W2pRSqr5UYJoxphioxjWJdN1K21xjzCPu5XMiMuYq+X2Eq8VuP7APqKyz7iXgG2PMZiAdWCEiFdd/Ckqpn4lOwHkRiW5kXSGwQ0QcQL4x5htclbjdzWWmlFLqe+lAPK6Jtlc1sv4lEYl2f65WYQNXS90vaWTibhH5f4EYYAMw3X1spVQ7ISIXcVXIfgmuSe6NMVHu1Z8AY9zpPXF1l+Y1l59W2pRSqg4RqQL2Av8b+L8/Qn7FuCarjgf+p5H1uSKyHBgLRLknq1ZKtUHGmA+Ar4BgY0yh+0Wkh4FHjTEHcT0jO9G9+efAd8aYw8AmXJPZf9dc/to9qpRSDf0NyBCR7+o8h3I9FgC9RaS6bn7GmAnAZ+Iae+kuXN2x53+MAyqlbjwR+VUTq8Y3sq0Af3R/WkQrbUopdQURyaThW6O16j7TBjBJRAqukt/2JlbNAF5yDzviBB52v5CglFIN6OC6SimllFJtgD7TppRSSinVBmj3qFJKXQdjTALw1yuS80UkuTXKo5Rqv7R7VCmllFKqDdDuUaWUUkqpNkArbUoppZRSbYBW2pRSSiml2gCttCmllFJKtQFaaVNKKaWUagP+fxItsGMsawe0AAAAAElFTkSuQmCC\n", + "text/plain": [ + "<Figure size 720x576 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10,8))\n", + "sns.scatterplot(x=\"TIME_MS\", y=\"SUM_PROXIMITY_KMS\", hue='EPC', data=test_1[test_1.MEASUREMENT == 26])\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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dKOxy1VEREREjoESOhEREZEUp4ROREREJMWNxoWFRURE0pq1lmiwGxuLgeOA2wM42HAY43bjzsjC7dXSPzJwSuhERERGkLWWcEc7WIsT6sadkQmxCF17duFEwgB4c/LInDAJtz+Q5GglVajLVUREZAQ54RBYB5wY4fY2sBBqakgkcwCR9lYine1JjFJSjRI6ERGREeTEYuBYbCyKLycPrCXW3dXnuFgwmIToJFUpoRMRERlBLrcHXC6M20uorQWMwZOVjePPpN6Vw44uD+3eHDwZmckOVVKIxtCJiIiMILffT1dnJ8HuMPtaI0wpiNAc8bB9VxPfvePH7NxRy5TKcm79+r9y+nuLkh2upAi10ImIiIyw1Ws2sG79NnbtqmPvviZqa/dx+xf+i507agHYuaOWL930DbZtqUluoJIylNCJiIiMIGst9fsbaGlqJTsni3AwHH/c3NrruOamVnbX1CYpSkk16nIVEREZQcYYMrMy8Hm9RCNRvD4vufm5uN1uYrFY4ji3201+YX7yApWUohY6ERGRETZ7zgwyszPo7g4SiUYpLMrn2k9c3uuY6z/9UWbPqUpShJJq1EInIiIywqbNqCAQ8HPgQAOxSJSsnCzOWnIGc4+fTcOBRsZPHMf8E+bgD/iTHaqkCCV0IiIiSTBxchkTJ5clOwxJE+pyFREREUlxSuhEREREUpwSOhEREZEUp4ROREREJMUpoRMRERFJcUroRERERFKcEjoRERGRFKeETkRERCTFKaETERERSXFK6ERERERSnBI6ERERkRSnhE5EREQkxSmhExEREUlxSuhEREREUpwSOhEREZEU50l2AKNNJBKhtraWYDCY7FBkCAUCAcrLy/F6vckORUREZMgpoTtMbW0tOTk5VFRUYIxJdjgyBKy1NDY2UltbS2VlZbLDERERGXJK6A4TDAaVzKUZYwxFRUXU19cnO5QxyVpLe1sHxkA0FsPlcgGGrMwMPF79ChIRGQr6bdoPJXPpR59pcmzfWsO+unp8Pg/dXSGikSi7avbwzG//RGFRHh+9bhknn3YCbrc72aGKiKQ0TYpIU263mwULFiRu//mf/5moq6+vx+v18t///d+9zqmoqOCyyy5LPH7ssce45pprRipkSTNtLe1s37KTpsYWOtu7Wf/mZta/tZnv3PEj1r2xkRf//DKfuuYW3lq7IdmhioikPCV0aSojI4O1a9cmbrfeemui7tFHH+XUU0/loYce6nPe6tWrWbdu3UiGKmmqrm4/dXsPkJ+fx/atO5lQPo6nn/hjr2Oi0RhrVr2RpAhFRNKHErox6KGHHuI73/kOtbW17Nmzp1fd5z//eb75zW8mKTJJJ263G7fLBVg8Hjc44A/4+xzn9/tGPjgRkTSjhC5NdXd39+py/b//+z8Adu/ezb59+zj55JNZtmxZovygZcuW8eqrr7J169ZkhC1pZMLE8UycXEZTQzNTqyqoqdnNB5Zd0OuY7Jwsqk9dkJwARUTSiCZFpKmDXa6He/jhh1m2bBkAl19+Oddddx2f/exnE/Vut5svfOELLF++nH/6p38aqXAlDWVmZTDzuOns2rEH47JUn7KAcDjM8rtv45W/vUbxuCLee85pzDxuerJDFRFJeUroxpiHHnqI/fv386tf/QqAvXv3smXLFqqqqhLHXHXVVSxfvpw5c+YkK0xJE+PLShlfVtqn/MIPLElCNCIi6UtdrmPIpk2b6OzsZM+ePdTU1FBTU8MXv/hFHn744V7Heb1ebr75Zu66667kBCoiIiLHRAldmjp8DN2tt97KQw89xKWXXtrruMsuu6zf2a7XXXcd0Wh0pMIVERGRQVCXa5qKxWIDOm7+/PmsX78egJqamkS53+9n7969wxGaiIiIDDG10ImIiIikOCV0IiIiIilOCZ2IiIhIilNCJyIiIpLilNCJiIiIpDgldCIiIiIpTgndKFVRUcG8efNYsGAB1dXVALz++ussWrSIefPmcdFFF9HW1pY4fvny5UyfPp2ZM2fy7LPPAtDV1cWFF17IrFmzmDNnDrfeemvi+F27drF48WJOOOEE5s+fz1NPPZWoe/DBB6mqqqKqqooHH3wwUX7NNddQWVmZWNvu4NZira2tXHTRRRx//PHMmTOHBx54AIjvG7t48WJmz57NnDlzuPvuuxPXampqYsmSJVRVVbFkyRKam5t7vf5du3aRnZ3Nt7/97T7vzcUXX8zcuXMTj2+++eZETDNmzCA/P/9Y324REZHUZq0ds7eFCxfaw61fv75PWTJMmTLF1tfX9yqrrq62zz//vLXW2vvuu8/edttt1lpr161bZ+fPn2+DwaDdvn27nTp1qo1Go7azs9P+6U9/stZaGwqF7BlnnGGfeuopa621119/vf3Rj36UOH/KlCnWWmsbGxttZWWlbWxstE1NTbaystI2NTVZa629+uqr7aOPPton1jvuuMPecsst1lprDxw4YAsKCmwoFLJ79+61a9assdZa29bWZquqquy6deustdZ+4QtfsMuXL7fWWrt8+fLE+QctXbrUfvCDH7Tf+ta3epU//vjj9oorrrBz5szp9337/ve/b6+99tp+60bLZysiIvJuAKvtO+Q0aqEbpFBzIy0b3qDpjdW0bHiDUHPjsD3Xpk2bOPPMMwFYsmQJjz/+OABPPPEEl19+OX6/n8rKSqZPn86qVavIzMxk8eLFAPh8Pk488URqa2sBMMYkWvhaW1uZMGECAM8++yxLliyhsLCQgoIClixZwjPPPHPEuIwxtLe3Y62lo6ODwsJCPB4PZWVlnHjiiQDk5OQwe/Zs9uzZk4j56quvBuDqq69mxYoVieutWLGCqVOn9tlLtqOjg+9+97vcdttt7xjLQw89xBVXXHH0N1NERCSNKKEbhFBzI521O3EiYQCcSJjO2p1DktQZYzj33HNZuHAh9957LwBz587lySefBODRRx9l9+7dAOzZs4dJkyYlzi0vL08kTge1tLTw29/+lnPOOQeAr33ta/zyl7+kvLycCy64gB/84AcDutaXv/xl5s+fz80330woFALgxhtvZMOGDUyYMIF58+Zx991343L1/q9VU1PDa6+9ximnnALA/v37KSsrA6CsrIwDBw4A0NnZyZ133sntt9/e5z35yle+wuc+9zkyMzP7fc927tzJjh07OPvss9/5jRUREUlDSugGoXvfHrBO70LrxMsH6a9//SuvvvoqTz/9NPfccw8vvPAC999/P/fccw8LFy6kvb0dn88Xf0pr+5xvjEncj0ajXHHFFXzmM59h6tSpQLwl65prrqG2tpannnqKq666Csdxjnit5cuXs3HjRl555RWampq48847gXir3oIFC9i7dy9r167lxhtv7DW+r6Ojg8suu4y77rqL3NzcI77u22+/nZtvvpns7Oxe5WvXrmXr1q199qI91MMPP8wHP/hB3G73EZ9DREQk3Wgv10E42DI30PJjcbALtLS0lEsvvZRVq1bx+c9/npUrVwKwefNmfv/73wPxVrSDrXUAtbW1ifMBbrjhBqqqqrjpppsSZffdd1+iK3XRokUEg0EaGhooLy/n+eef73Wts846CyDRoub3+7n22msTExYeeOABbr31VowxTJ8+ncrKSjZu3MjJJ59MJBLhsssu48orr2Tp0qWJ644bN466ujrKysqoq6ujtLQUgJdffpnHHnuMW265hZaWFlwuF4FAALfbzZo1a6ioqCAajXLgwAHOOuusXrE+/PDD3HPPPYN520VERFKSWugGweX1HVP5QHV2dtLe3p64v3LlSubOnZvolnQch2984xt84hOfAOKzPh9++GFCoRA7duxgy5YtnHzyyQDcdttttLa2ctddd/V6jsmTJ/Pcc88BsGHDBoLBICUlJZx33nmsXLmS5uZmmpubWblyJeeddx4AdXV1QLxFcMWKFYmZpodea//+/WzatImpU6direW6665j9uzZfPazn+31/BdffHFiBu2DDz7IJZdcAsCLL75ITU0NNTU13HTTTXzpS1/ixhtv5JOf/CR79+6lpqaGl156iRkzZvRK5jZt2kRzczOLFi0a1HsvIiKSitRCNwgZ4yfSWbuzd7ercZExfuKgrrt///5E12I0GuUjH/kI559/PnfffXeiBWrp0qVce+21AMyZM4dly5Zx3HHH4fF4uOeee3C73dTW1nLHHXcwa9asxOSEG2+8kY9//ON85zvf4frrr+d73/sexhh+9rOfYYyhsLCQr3zlK5x00kkAfPWrX6WwsBCAK6+8kvr6eqy1LFiwgJ/85CdAfGzbNddcw7x587DWcuedd1JcXMxLL73EL37xi8TyKwDf/OY3ueCCC7j11ltZtmwZ9913H5MnT+bRRx8d1Hv20EMPcfnll/fqahYRERkrTH9jpsaK6upqu3r16l5lGzZsYPbs2QO+Rqi5ke59e3AiYVxeHxnjJ+IvKBrqUGUIHOtnKyIiMpoYY9ZYa6v7q1ML3SD5C4qUwImIiEhSJW0MnTHmQ8aYdcYYxxhTfUj5EmPMGmPMmz3/nn1I3cKe8q3GmO+bnv41Y4zfGPN/PeUvG2MqkvCSRERERJIimZMi3gKWAi8cVt4AXGStnQdcDfzikLofAzcAVT2383vKrwOarbXTge8Bdw5j3CIiIiKjStK6XK21G4A+g9itta8d8nAdEDDG+IFCINda+/ee834OfAB4GrgE+FrPOY8BPzTGGDuWBwiKjAKR7k6cSJR4UzpYxxILdoMTw5OdgzcrB+PSZHsRkcEa7WPoLgNes9aGjDETgdpD6mqBg9NJJwK7Aay1UWNMK1BEvLWvF2PMDcRb+Zg8efIwhi4ytkW6Ooh1d2Pcbqwx2GiM7n212Gg0fkD9PrKnTMOXV5DcQEVE0sCw/mlsjPmjMeatfm6XDODcOcS7Tv/fwaJ+DrMDqOtdaO291tpqa211SUnJQF6GiLwLkY52cLlwYlGs4+CEQ28ncz269+3BOaxMRESO3bAmdNba91lr5/Zze+JI5xljyoHfAB+z1m7rKa4Fyg85rBzYe0jdpJ5zPUAe0DSUr2WkVVRUJNZvq66Ozxl5/fXXWbRoEfPmzeOiiy7qtb3W8uXLmT59OjNnzuTZZ58FoKuriwsvvJBZs2YxZ84cbr311sTxu3btYvHixZxwwgnMnz+fp556KlH34IMPUlVVRVVVVWLxX4BrrrmGyspKFixYwIIFC1i7di0Ara2tXHTRRRx//PHMmTOHBx54AIDdu3ezePFiZs+ezZw5c7j77rsT12pqamLJkiVUVVWxZMkSmpube73+Xbt2kZ2dndiNAuCss85i5syZiec/uNDyQY899hjGGA5fikaSwzrO239qWafvNnmA48RAIyNERAbPWpvUG/A8UH3I43zgdeCyfo59BTiV+NfE08AFPeWfAn7Sc/9y4JGBPPfChQvt4davX9+nLBmmTJli6+vre5VVV1fb559/3lpr7X333Wdvu+02a62169ats/Pnz7fBYNBu377dTp061UajUdvZ2Wn/9Kc/WWutDYVC9owzzrBPPfWUtdba66+/3v7oRz9KnD9lyhRrrbWNjY22srLSNjY22qamJltZWWmbmpqstdZeffXV9tFHH+0T6x133GFvueUWa621Bw4csAUFBTYUCtm9e/faNWvWWGutbWtrs1VVVXbdunXWWmu/8IUv2OXLl1trrV2+fHni/IOWLl1qP/jBD9pvfetbibL3vve99pVXXun3/Wpra7Pvec977CmnnPKOx4yWz3asCLU22+6G/ba7qd4GW5psV/0+2/j6K71uXfv3JjtMEZGUAay275DTJHPZkkuNMbXAIuD3xphne6puBKYDXzHGrO25lfbUfRL4H2ArsI14UgdwH1BkjNkKfBZ4uylqmO18eSO/+9J9PPKJu/jdl+5j58sbh+25Nm3axJlnngnAkiVLePzxxwF44oknuPzyy/H7/VRWVjJ9+nRWrVpFZmYmixcvBsDn83HiiSdSWxsfhmiMSbTwtba2JvZ+ffbZZ1myZAmFhYUUFBSwZMmSxJ6v78QYQ3t7O9ZaOjo6KCwsxOPxUFZWltihIicnh9mzZ7Nnz55EzFdffTUAV199NStWrEhcb8WKFUydOpU5c+YM+L35yle+wi233EIgEBjwOTK8PFnZuLx+jNsDGFz+AJnlFXgys3D5/GSML9cajiIiQyRpCZ219jfW2nJrrd9aO85ae15P+TestVnW2gWH3A701K228S7badbaG3uyVay1QWvth6y10621J1trt4/Ea9j58kZW/+qPdDXF913tampn9a/+OCRJnTGGc889l4ULF3LvvfcCMHfuXJ588kkAHn30UXbv3g3Anj17mDRpUuLc8vLyROJ0UEtLC7/97W8555xzAPja177GL3/5S8rLy7ngggv4wQ9+MKBrffnLX2b+/PncfPPNhEIhIL6d2IYNG5gwYQLz5s3j7rvvxnXYzMWamhpee+01TjnlFCC+vVlZWRkAZWVlie7Tzs5O7rzzTm6//fZ+35drr72WBQsW8B//8R8HW2157bXX2L17N+9///sH9ubKiHC5Pfhy8/Bm5eDOyMDl8+POyiarvJLcaTPJKB0/6H2PRUQkTusFDMKbT/yVWLj3gO5YOMqbT/x10Nf+61//yquvvsrTTz/NPffcwwsvvMD999/PPffcw8KFC2lvb8fni38ZHkxsDnXocjDRaJQrrriCz3zmM0ydOhWI7316zTXXUFtby1NPPcVVV12F4zhHvNby5cvZuHEjr7zyCk1NTdx5Z3y5v2effZYFCxawd+9e1q5dy4033thrfF9HRweXXXYZd911F7m5uUd83bfffjs333wz2dnZfep+9atf8eabb/Liiy/y4osv8otf/ALHcbj55pv5zne+c7S3VJLE5Xbj8fnx+gN4/QHcgYASORGRIaaEbhAOtswNtPxYHOwCLS0t5dJLL2XVqlXMmjWLlStXsmbNGq644gqmTZsGxFvRDrbWAdTW1ibOB7jhhhuoqqripptuSpTdd999LFu2DIBFixYRDAZpaGg44rXKysowxuD3+7n22mtZtWoVAA888ABLly7FGMP06dOprKxk48Z4K2UkEuGyyy7jyiuvZOnSpYnrjhs3jrq6OgDq6uooLY33qr/88svccsstVFRUcNddd/HNb36TH/7whwBMnBhfpSYnJ4ePfOQjrFq1ivb2dt56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X//6V1599VWefvpp7rnnHl544QXuv/9+7rnnHhYuXEh7ezs+nw+Id5sf7tDWkGg0yhVXXMFnPvMZpk6dCsBDDz3ENddcQ21tLU899RRXXXUVjuMc8VrLly9n48aNvPLKKzQ1NXHnnXcC8Va9BQsWsHfvXtauXcuNN97Ya3xfR0cHl112GXfddRe5ublHfN233347N998M9nZ2b3Ko9EotbW1nH766bz66qssWrSIz3/+8wN5K0VERNKeErpB2Lf3wDGVH4uDXaClpaVceumlrFq1ilmzZrFy5UrWrFnDFVdcwbRp04B4K9rB1jqA2traxPkAN9xwA1VVVdx0002Jsvvuu49ly5YBsGjRIoLBIA0NDUe8VllZGcYY/H4/1157LatWrQLggQceYOnSpRhjmD59OpWVlWzcuBGASCTCZZddxpVXXsnSpUsT1x03bhx1dXUA1NXVUVpaCsDLL7/MLbfcQkVFBXfddRff/OY3+eEPf0hRURGZmZlceumlAHzoQx/i1VdfHfT7LCIikg6U0A3C+Amlx1Q+UJ2dnbS3tyfur1y5krlz5ya6JR3H4Rvf+Aaf+MQnALj44ot5+OGHCYVC7Nixgy1btnDyyScDcNttt9Ha2spdd93V6zkmT57Mc889B8Q3rQ8Gg5SUlHDeeeexcuVKmpubaW5uZuXKlZx33nkAiQTMWsuKFSuYO3dun2vt37+fTZs2MXXqVKy1XHfddcyePZvPfvazvZ7/4osvTsygffDBB7nkkksAePHFF6mpqaGmpoabbrqJL33pS9x4440YY7jooot4/vnnAXjuuec47rjjBvU+i4iIpI13mi0xFm6DneX6u9+stCfNXGLnTT4zcTtp5hL7u9+sHPA1+rNt2zY7f/58O3/+fHvcccfZb3zjG9Zaa++66y5bVVVlq6qq7L/927/1mjX4jW98w06dOtXOmDEjMZN19+7dFrCzZs2yxx9/vD3++OPtT3/6U2ttfGbraaedZufPn2+PP/54++yzzyaudd9999lp06bZadOm2fvvvz9RvnjxYjt37lw7Z84ce+WVV9r29nZrrbV79uyxS5YsSdT94he/sNZa++KLL1rAzps3L/H8v//976211jY0NNizzz7bTp8+3Z599tm2sbGxz/tw++2395rlWlNTY9/znvfYefPm2bPPPtvu3LnTWmvtqlWr7MSJE21m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\n", + "text/plain": [ + "<Figure size 720x576 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10,8))\n", + "sns.scatterplot(x=\"TIME_MS\", y=\"SUM_PROXIMITY_KMS\", hue='EAN', data=test_1[test_1.MEASUREMENT == 28])\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "NastÄpnie tworzymy intuicyjny podziaĹ na zbiĂłr testowy i treningowy: pomiary przed godzinÄ 10.30 traktujemy jako zbiĂłr treningowy, natomiast te po godzinie 10.30 - jako zbiĂłr testowy." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "train = df[df.TIMESTAMP <= '2021-10-26T10:30:00.000']\n", + "train = train[['SUM_PROXIMITY_KMS','TIME_MS', 'EAN', 'MEASUREMENT','StyleColor', 'EPC']]\n", + "test = df[df.TIMESTAMP > '2021-10-26T10:30:00.000']\n", + "test = test[['SUM_PROXIMITY_KMS','TIME_MS', 'EAN', 'MEASUREMENT','StyleColor', 'EPC']]" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "\n", + "from sklearn.cluster import DBSCAN\n", + "from sklearn import metrics\n", + "from sklearn.datasets import make_blobs\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.preprocessing import normalize\n", + "from sklearn.neighbors import NearestNeighbors\n", + "import plotly.express as px\n", + "from kneed import KneeLocator" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "#zbiĂłr testowy dla kilku stylokolorĂłw\n", + "test0 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & ((df.StyleColor == 'RH797-81X') | (df.StyleColor == 'SL171-99X') \n", + " | (df.StyleColor == 'RH797-59X'))]\n", + "caly1 = test0[['SUM_PROXIMITY_KMS','TIME_MS', 'EAN', 'MEASUREMENT','StyleColor', 'EPC']]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "def c1(x, g, d, c):\n", + " outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", + " for j in x.StyleColor.unique():\n", + " DF = x[(x.StyleColor == j)]\n", + " measurements = DF.MEASUREMENT.unique()\n", + "\n", + " for i in measurements:\n", + " proba = DF[ DF.MEASUREMENT == i ]\n", + " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", + " minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)\n", + " neighbors = max(2,minimal_epc.astype(int))\n", + "\n", + " if minimal_epc > g:\n", + " minimal_epc = g\n", + " neighbors = g\n", + " \n", + " X_embedded = proba[['TIME_MS','SUM_PROXIMITY_KMS']]\n", + " nbrs = NearestNeighbors(n_neighbors=neighbors ).fit(X_embedded)\n", + " distances, indices = nbrs.kneighbors(X_embedded)\n", + " distance_desc = sorted(distances[:,neighbors-1], reverse=True)\n", + "\n", + " kneedle = KneeLocator(range(1,len(distance_desc)+1), #x values\n", + " distance_desc, # y values\n", + " S=1.0, #parameter suggested from paper\n", + " curve=\"convex\", #parameter from figure\n", + " direction=\"decreasing\") #parameter from figure\n", + "\n", + " eps = max(6000,kneedle.knee_y/d)\n", + "\n", + " db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='auto')\n", + " db.fit(X)\n", + " y_pred = db.fit_predict(X)\n", + " clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + " calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", + "\n", + " if db.labels_[db.labels_ == -1].size != 0 :\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > c*proba[proba['EPC'] == b].count()[0] :\n", + " outliery = outliery.append({'MEASUREMENT': i, 'EAN':proba[proba['EPC'] == b].EAN.iloc[0], \n", + " 'StyleColor':j}, ignore_index = True)\n", + "\n", + "\n", + " return(outliery)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "#zbiĂłr testowy dla kilku stylokolorĂłw \n", + "train1 = train[(train.StyleColor == 'RH267-85J') | (train.StyleColor == 'RJ369-87X') | (train.StyleColor =='RM119-93X') \n", + " | (train.StyleColor == 'RS483-99X') | (train.StyleColor == 'SB281-90M')]\n", + "\n", + "train2 = train[(train.StyleColor == 'RV167-MLC') | (train.StyleColor == 'RV462-87X') | (train.StyleColor =='QJ677-33X') \n", + " | (train.StyleColor == 'RH797-00X') | (train.StyleColor == 'RH267-55J')]\n", + "\n", + "train3 = train[(train.StyleColor == 'SL171-99X') | (train.StyleColor == 'SO133-09M') | (train.StyleColor =='RB254-00X') \n", + " | (train.StyleColor == 'SF078-MLC') | (train.StyleColor == 'QY337-00X')]\n", + "\n", + "train4 = train[(train.StyleColor == 'SP095-59X') | (train.StyleColor == 'RN633-00X') | (train.StyleColor =='RH267-59J') \n", + " | (train.StyleColor == 'RV167-87X')]\n", + "\n", + "train5 = train[(train.StyleColor == 'RJ365-09M') | (train.StyleColor == 'RH797-59X') | (train.StyleColor =='SP090-90X') \n", + " | (train.StyleColor == 'RH797-99X') | (train.StyleColor == 'RJ371-59M')]\n", + "\n", + "train6 = train[(train.StyleColor == 'RV462-99X') | (train.StyleColor == 'RH797-81X') | (train.StyleColor =='QZ555-20X') \n", + " | (train.StyleColor == 'RJ371-53M') | (train.StyleColor == 'RS054-99X')]" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "# Wybrane StyleColor\n", + "z1 = test[(test.StyleColor == 'RH267-85J') | (test.StyleColor == 'RJ369-87X') | (test.StyleColor =='RM119-93X') \n", + " | (test.StyleColor == 'RS483-99X') | (test.StyleColor == 'SB281-90M')]\n", + "\n", + "z2 = test[(test.StyleColor == 'RV167-MLC') | (test.StyleColor == 'RV462-87X') | (test.StyleColor =='QJ677-33X') \n", + " | (test.StyleColor == 'RH797-00X') | (test.StyleColor == 'RH267-55J')]\n", + "\n", + "z3 = test[(test.StyleColor == 'SL171-99X') | (test.StyleColor == 'SO133-09M') | (test.StyleColor =='RB254-00X') \n", + " | (test.StyleColor == 'SF078-MLC') | (test.StyleColor == 'QY337-00X')]\n", + "\n", + "z4 = test[(test.StyleColor == 'SP095-59X') | (test.StyleColor == 'RN633-00X') | (test.StyleColor =='RH267-59J') \n", + " | (test.StyleColor == 'RV167-87X') | (test.StyleColor == 'RK485-99X')]\n", + "\n", + "z5 = test[(test.StyleColor == 'RJ365-09M') | (test.StyleColor == 'RH797-59X') | (test.StyleColor =='SP090-90X') \n", + " | (test.StyleColor == 'RH797-99X') | (test.StyleColor == 'RJ371-59M')]\n", + "\n", + "z6 = test[(test.StyleColor == 'RV462-99X') | (test.StyleColor == 'RH797-81X') | (test.StyleColor =='QZ555-20X') \n", + " | (test.StyleColor == 'RJ371-53M') | (test.StyleColor == 'RS054-99X')]" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "u = train[(train.StyleColor == 'RV462-99X') | (train.StyleColor == 'RH797-81X') | (train.StyleColor =='SL171-99X')]\n", + "t = test[(test.StyleColor == 'RV462-99X') | (test.StyleColor == 'RH797-81X') | (test.StyleColor =='SL171-99X')]" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 21 5902805820447 RH797-81X\n", + "1 24 5902805820447 RH797-81X\n", + "2 26 5902805820447 RH797-81X\n", + "3 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(u)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 38 5902851414515 SL171-99X\n", + "1 29 5902805820447 RH797-81X\n", + "2 32 5902805820447 RH797-81X\n", + "3 34 5902805820447 RH797-81X" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(t)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [MEASUREMENT, EAN, StyleColor]\n", + "Index: []" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train1)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [MEASUREMENT, EAN, StyleColor]\n", + "Index: []" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train2)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>18</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>11</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>11</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 18 5902851852638 SO133-09M\n", + "1 11 5902690542745 QY337-00X\n", + "2 11 5902690542769 QY337-00X" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train3)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [MEASUREMENT, EAN, StyleColor]\n", + "Index: []" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train4)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [MEASUREMENT, EAN, StyleColor]\n", + "Index: []" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train5)" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 21 5902805820447 RH797-81X\n", + "1 24 5902805820447 RH797-81X\n", + "2 26 5902805820447 RH797-81X\n", + "3 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 74, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train6)" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 29 5902805820447 RH797-81X\n", + "1 32 5902805820447 RH797-81X\n", + "2 34 5902805820447 RH797-81X" + ] + }, + "execution_count": 75, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(z6)" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>11</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>11</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 11 5902690542745 QY337-00X\n", + "1 11 5902690542769 QY337-00X\n", + "2 21 5902805820447 RH797-81X\n", + "3 26 5902805820447 RH797-81X\n", + "4 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 68, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 29 5902805820447 RH797-81X\n", + "1 32 5902805820447 RH797-81X\n", + "2 34 5902805820447 RH797-81X" + ] + }, + "execution_count": 67, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>18</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>11</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>11</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 18 5902851852638 SO133-09M\n", + "1 11 5902690542745 QY337-00X\n", + "2 11 5902690542769 QY337-00X\n", + "3 21 5902805820447 RH797-81X\n", + "4 24 5902805820447 RH797-81X\n", + "5 26 5902805820447 RH797-81X\n", + "6 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 92, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train,70,6,0.5)" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>42</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>38</td>\n", + " <td>5902851445700</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>35</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>42</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>42</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>42</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>42</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>38</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>42</td>\n", + " <td>5902975236956</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>38</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>42</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 42 5902805533040 RH267-85J\n", + "1 38 5902851414515 SL171-99X\n", + "2 38 5902851445700 RS483-99X\n", + "3 35 5902690542769 QY337-00X\n", + "4 42 5902690542769 QY337-00X\n", + "5 42 5902690542745 QY337-00X\n", + "6 42 5902690542769 QY337-00X\n", + "7 29 5902805820447 RH797-81X\n", + "8 32 5902805820447 RH797-81X\n", + "9 34 5902805820447 RH797-81X\n", + "10 42 5902805820447 RH797-81X\n", + "11 38 5902975236994 SF078-MLC\n", + "12 42 5902975236956 SF078-MLC\n", + "13 38 5902851852614 SO133-09M\n", + "14 38 5902851852638 SO133-09M\n", + "15 38 5902851852638 SO133-09M\n", + "16 42 5902851852638 SO133-09M\n", + "17 42 5902851852614 SO133-09M\n", + "18 42 5902851852638 SO133-09M" + ] + }, + "execution_count": 95, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(test,70,6,0.4)" + ] + }, + { + "cell_type": "code", + "execution_count": 268, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>22</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>25</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>30</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 22 5902805820447 RH797-81X\n", + "1 25 5902805820447 RH797-81X\n", + "2 24 5902805820447 RH797-81X\n", + "3 26 5902805820447 RH797-81X\n", + "4 30 5902805820447 RH797-81X\n", + "5 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 268, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(caly1,0.7)" + ] + }, + { + "cell_type": "code", + "execution_count": 225, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>22</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>25</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>30</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 22 5902805820447 RH797-81X\n", + "1 21 5902805820447 RH797-81X\n", + "2 25 5902805820447 RH797-81X\n", + "3 24 5902805820447 RH797-81X\n", + "4 26 5902805820447 RH797-81X\n", + "5 30 5902805820447 RH797-81X\n", + "6 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 225, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(caly1, 0.5)" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": {}, + "outputs": [], + "source": [ + "outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", + "DF = df[(df.StyleColor == 'SL171-99X')]" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": {}, + "outputs": [], + "source": [ + "proba = DF[ DF.MEASUREMENT == 28 ]\n", + "X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", + "minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "303568480C287AC000B5BAD5 96\n", + "303568480C287A8000B5BA63 90\n", + "303568480C287A8000B5BADA 54\n", + "303568480C287A8000B5BABD 14\n", + "Name: EPC, dtype: int64" + ] + }, + "execution_count": 92, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "proba['EPC'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "7.0" + ] + }, + "execution_count": 93, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "minimal_epc" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "metadata": {}, + "outputs": [], + "source": [ + "eps = np.floor(proba['EPC'].value_counts().max()*20)" + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "metadata": {}, + "outputs": [], + "source": [ + "db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='auto')\n", + "db.fit(X)\n", + "y_pred = db.fit_predict(X)\n", + "clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + "calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": {}, + "outputs": [], + "source": [ + "if (db.labels_[db.labels_ == -1].size != 0) :\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > 0.6*proba[proba['EPC'] == b].count()[0] :\n", + " outliery = outliery.append({'MEASUREMENT': 24, 'EAN':proba[proba['EPC'] == b].EAN.iloc[0], \n", + " 'StyleColor':'QY337-00X'}, ignore_index = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "303568480C287AC000B5BAD5 7\n", + "303568480C287A8000B5BA63 5\n", + "303568480C287A8000B5BADA 4\n", + "Name: EPC, dtype: int64" + ] + }, + "execution_count": 102, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [MEASUREMENT, EAN, StyleColor]\n", + "Index: []" + ] + }, + "execution_count": 103, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "outliery" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [MEASUREMENT, EAN, StyleColor]\n", + "Index: []" + ] + }, + "execution_count": 84, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(z1)" + ] + }, + { + "cell_type": "code", + "execution_count": 183, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>38</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>42</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 38 5902851414515 SL171-99X\n", + "1 29 5902805820447 RH797-81X\n", + "2 32 5902805820447 RH797-81X\n", + "3 34 5902805820447 RH797-81X\n", + "4 38 5902851852614 SO133-09M\n", + "5 38 5902851852638 SO133-09M\n", + "6 42 5902851852638 SO133-09M\n", + "7 42 5902851852614 SO133-09M\n", + "8 42 5902851852638 SO133-09M" + ] + }, + "execution_count": 183, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 186, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>38</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>42</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 38 5902851414515 SL171-99X\n", + "1 29 5902805820447 RH797-81X\n", + "2 32 5902805820447 RH797-81X\n", + "3 34 5902805820447 RH797-81X\n", + "4 38 5902851852614 SO133-09M\n", + "5 38 5902851852638 SO133-09M\n", + "6 42 5902851852638 SO133-09M\n", + "7 42 5902851852614 SO133-09M\n", + "8 42 5902851852638 SO133-09M" + ] + }, + "execution_count": 186, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 277, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 24 5902805820447 RH797-81X\n", + "1 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 277, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# dla /5\n", + "c1(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 278, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 29 5902805820447 RH797-81X\n", + "1 32 5902805820447 RH797-81X\n", + "2 42 5902851852638 SO133-09M" + ] + }, + "execution_count": 278, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 280, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 24 5902805820447 RH797-81X\n", + "1 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 280, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# dla /6\n", + "c1(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 281, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 29 5902805820447 RH797-81X\n", + "1 32 5902805820447 RH797-81X\n", + "2 34 5902805820447 RH797-81X\n", + "3 42 5902851852638 SO133-09M" + ] + }, + "execution_count": 281, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 283, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>11</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>11</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 11 5902690542745 QY337-00X\n", + "1 11 5902690542769 QY337-00X\n", + "2 24 5902805820447 RH797-81X\n", + "3 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 283, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# eps min 5000 / 5\n", + "# \n", + "c1(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 284, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>42</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>38</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 38 5902851414515 SL171-99X\n", + "1 42 5902690542769 QY337-00X\n", + "2 29 5902805820447 RH797-81X\n", + "3 32 5902805820447 RH797-81X\n", + "4 34 5902805820447 RH797-81X\n", + "5 38 5902851852614 SO133-09M\n", + "6 38 5902851852638 SO133-09M\n", + "7 42 5902851852638 SO133-09M" + ] + }, + "execution_count": 284, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# c=0.6\n", + "c1(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 317, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>11</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>11</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 11 5902690542745 QY337-00X\n", + "1 11 5902690542769 QY337-00X\n", + "2 24 5902805820447 RH797-81X\n", + "3 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 317, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 318, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 38 5902851414515 SL171-99X\n", + "1 29 5902805820447 RH797-81X\n", + "2 32 5902805820447 RH797-81X\n", + "3 34 5902805820447 RH797-81X\n", + "4 42 5902851852638 SO133-09M" + ] + }, + "execution_count": 318, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": {}, + "outputs": [], + "source": [ + "def c2(x):\n", + " outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", + " for j in x.StyleColor.unique():\n", + " DF = x[(x.StyleColor == j)]\n", + " measurements = DF.MEASUREMENT.unique()\n", + "\n", + " for i in measurements:\n", + " proba = DF[ DF.MEASUREMENT == i ]\n", + " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", + " minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)\n", + " neighbors = max(20,minimal_epc.astype(int))\n", + " \n", + " if minimal_epc > 70:\n", + " minimal_epc = 70\n", + " neighbors = 70\n", + " \n", + " X_embedded = proba[['TIME_MS','SUM_PROXIMITY_KMS']]\n", + " nbrs = NearestNeighbors(n_neighbors=neighbors ).fit(X_embedded)\n", + " distances, indices = nbrs.kneighbors(X_embedded)\n", + " distance_desc = sorted(distances[:,neighbors-1], reverse=True)\n", + "\n", + " kneedle = KneeLocator(range(1,len(distance_desc)+1), #x values\n", + " distance_desc, # y values\n", + " S=1.0, #parameter suggested from paper\n", + " curve=\"convex\", #parameter from figure\n", + " direction=\"decreasing\") #parameter from figure\n", + "\n", + " eps = max(5000,kneedle.knee_y/5)\n", + "\n", + " db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='auto')\n", + " db.fit(X)\n", + " y_pred = db.fit_predict(X)\n", + " clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + " calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", + "\n", + " if db.labels_[db.labels_ == -1].size != 0 :\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > 0.3*proba[proba['EPC'] == b].count()[0] :\n", + " outliery = outliery.append({'MEASUREMENT': i, 'EAN':proba[proba['EPC'] == b].EAN.iloc[0], \n", + " 'StyleColor':j}, ignore_index = True)\n", + "\n", + "\n", + " return(outliery)" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>24</td>\n", + " <td>5902805820461</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>24</td>\n", + " <td>5902805820461</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>27</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 21 5902805820447 RH797-81X\n", + "1 24 5902805820447 RH797-81X\n", + "2 24 5902805820461 RH797-81X\n", + "3 24 5902805820447 RH797-81X\n", + "4 24 5902805820461 RH797-81X\n", + "5 26 5902805820447 RH797-81X\n", + "6 27 5902805820447 RH797-81X\n", + "7 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(train6)" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>42</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 29 5902805820447 RH797-81X\n", + "1 32 5902805820447 RH797-81X\n", + "2 34 5902805820447 RH797-81X\n", + "3 42 5902805820447 RH797-81X" + ] + }, + "execution_count": 71, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(z6)" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>18</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>11</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>11</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 18 5902851852638 SO133-09M\n", + "1 11 5902690542745 QY337-00X\n", + "2 11 5902690542769 QY337-00X\n", + "3 21 5902805820447 RH797-81X\n", + "4 24 5902805820447 RH797-81X\n", + "5 26 5902805820447 RH797-81X\n", + "6 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>42</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>42</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>38</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>42</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 38 5902851414515 SL171-99X\n", + "1 42 5902690542769 QY337-00X\n", + "2 42 5902690542745 QY337-00X\n", + "3 29 5902805820447 RH797-81X\n", + "4 32 5902805820447 RH797-81X\n", + "5 34 5902805820447 RH797-81X\n", + "6 38 5902851852614 SO133-09M\n", + "7 38 5902851852638 SO133-09M\n", + "8 38 5902851852638 SO133-09M\n", + "9 42 5902851852638 SO133-09M\n", + "10 42 5902851852614 SO133-09M\n", + "11 42 5902851852638 SO133-09M" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [], + "source": [ + "def c3(x):\n", + " outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", + " for j in x.StyleColor.unique():\n", + " DF = x[(x.StyleColor == j)]\n", + " measurements = DF.MEASUREMENT.unique()\n", + "\n", + " for i in measurements:\n", + " proba = DF[ DF.MEASUREMENT == i ]\n", + " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", + " minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)\n", + " neighbors = max(2,minimal_epc.astype(int))\n", + " \n", + " if minimal_epc > 70:\n", + " minimal_epc = 70\n", + " neighbors = 70\n", + " \n", + " X_embedded = proba[['TIME_MS','SUM_PROXIMITY_KMS']]\n", + " nbrs = NearestNeighbors(n_neighbors=neighbors ).fit(X_embedded)\n", + " distances, indices = nbrs.kneighbors(X_embedded)\n", + " distance_desc = sorted(distances[:,neighbors-1], reverse=True)\n", + "\n", + " kneedle = KneeLocator(range(1,len(distance_desc)+1), #x values\n", + " distance_desc, # y values\n", + " S=1.0, #parameter suggested from paper\n", + " curve=\"convex\", #parameter from figure\n", + " direction=\"decreasing\") #parameter from figure\n", + "\n", + " eps = max(5000,kneedle.knee_y/4)\n", + "\n", + " db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='kd_tree')\n", + " db.fit(X)\n", + " y_pred = db.fit_predict(X)\n", + " clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + " calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", + "\n", + " if db.labels_[db.labels_ == -1].size != 0 :\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > 0.5*proba[proba['EPC'] == b].count()[0] :\n", + " outliery = outliery.append({'MEASUREMENT': i, 'EAN':proba[proba['EPC'] == b].EAN.iloc[0], \n", + " 'StyleColor':j}, ignore_index = True)\n", + "\n", + "\n", + " return(outliery)" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>18</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>11</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>11</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 18 5902851852638 SO133-09M\n", + "1 11 5902690542745 QY337-00X\n", + "2 11 5902690542769 QY337-00X\n", + "3 21 5902805820447 RH797-81X\n", + "4 24 5902805820447 RH797-81X\n", + "5 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c3(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>42</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>42</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>42</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 38 5902851414515 SL171-99X\n", + "1 42 5902690542769 QY337-00X\n", + "2 42 5902690542745 QY337-00X\n", + "3 29 5902805820447 RH797-81X\n", + "4 32 5902805820447 RH797-81X\n", + "5 38 5902851852638 SO133-09M\n", + "6 42 5902851852638 SO133-09M\n", + "7 42 5902851852614 SO133-09M\n", + "8 42 5902851852638 SO133-09M" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c3(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [], + "source": [ + "def c4(x):\n", + " outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", + " for j in x.StyleColor.unique():\n", + " DF = x[(x.StyleColor == j)]\n", + " measurements = DF.MEASUREMENT.unique()\n", + "\n", + " for i in measurements:\n", + " proba = DF[ DF.MEASUREMENT == i ]\n", + " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", + " minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)\n", + " neighbors = max(2,minimal_epc.astype(int))\n", + " \n", + " if minimal_epc > 70:\n", + " minimal_epc = 70\n", + " neighbors = 70\n", + " \n", + " X_embedded = proba[['TIME_MS','SUM_PROXIMITY_KMS']]\n", + " nbrs = NearestNeighbors(n_neighbors=neighbors ).fit(X_embedded)\n", + " distances, indices = nbrs.kneighbors(X_embedded)\n", + " distance_desc = sorted(distances[:,neighbors-1], reverse=True)\n", + "\n", + " kneedle = KneeLocator(range(1,len(distance_desc)+1), #x values\n", + " distance_desc, # y values\n", + " S=1.0, #parameter suggested from paper\n", + " curve=\"convex\", #parameter from figure\n", + " direction=\"decreasing\") #parameter from figure\n", + "\n", + " eps = max(5000,kneedle.knee_y/2)\n", + "\n", + " db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='auto')\n", + " db.fit(X)\n", + " y_pred = db.fit_predict(X)\n", + " clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + " calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", + "\n", + " if (db.labels_[db.labels_ == -1].size != 0 ) & (db.labels_[db.labels_ == -1].size > minimal_epc ):\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts().sum()\n", + " b = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()[0] \n", + " if a - 2*b < 0:\n", + " outliery = outliery.append({'MEASUREMENT': i, 'EAN': proba[proba['EPC'] == calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts().index[0]].EAN.iloc[0], \"StyleColor\":j}, ignore_index = True)\n", + "\n", + " return(outliery)" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>6</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>24</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>4</td>\n", + " <td>5902851445731</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>7</td>\n", + " <td>5902851445700</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>11</td>\n", + " <td>5902851445731</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>28</td>\n", + " <td>5902805303681</td>\n", + " <td>RJ369-87X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>1</td>\n", + " <td>5902805431803</td>\n", + " <td>RM119-93X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>5</td>\n", + " <td>5902805431797</td>\n", + " <td>RM119-93X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>6</td>\n", + " <td>5902805431803</td>\n", + " <td>RM119-93X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>12</td>\n", + " <td>5902851535913</td>\n", + " <td>RV167-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>2</td>\n", + " <td>5902975217986</td>\n", + " <td>RV462-87X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>4</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>7</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>12</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>4</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>7</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>14</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>20</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>2</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>19</th>\n", + " <td>4</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>20</th>\n", + " <td>13</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>21</th>\n", + " <td>16</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>22</th>\n", + " <td>23</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>23</th>\n", + " <td>24</td>\n", + " <td>5902805219685</td>\n", + " <td>RN633-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>24</th>\n", + " <td>1</td>\n", + " <td>5902805533255</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>25</th>\n", + " <td>2</td>\n", + " <td>5902805533255</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>26</th>\n", + " <td>13</td>\n", + " <td>5902805533255</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>27</th>\n", + " <td>21</td>\n", + " <td>5902805533255</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>28</th>\n", + " <td>24</td>\n", + " <td>5902805533255</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>29</th>\n", + " <td>26</td>\n", + " <td>5902805444698</td>\n", + " <td>RJ365-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>30</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>31</th>\n", + " <td>23</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>32</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>33</th>\n", + " <td>3</td>\n", + " <td>5902805385823</td>\n", + " <td>RJ371-53M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 6 5902805533040 RH267-85J\n", + "1 24 5902805533040 RH267-85J\n", + "2 4 5902851445731 RS483-99X\n", + "3 7 5902851445700 RS483-99X\n", + "4 11 5902851445731 RS483-99X\n", + "5 28 5902805303681 RJ369-87X\n", + "6 1 5902805431803 RM119-93X\n", + "7 5 5902805431797 RM119-93X\n", + "8 6 5902805431803 RM119-93X\n", + "9 12 5902851535913 RV167-MLC\n", + "10 2 5902975217986 RV462-87X\n", + "11 4 5902851414508 SL171-99X\n", + "12 7 5902851414508 SL171-99X\n", + "13 12 5902851414508 SL171-99X\n", + "14 4 5902851852638 SO133-09M\n", + "15 7 5902851852638 SO133-09M\n", + "16 14 5902851852638 SO133-09M\n", + "17 20 5902851852638 SO133-09M\n", + "18 2 5902690542769 QY337-00X\n", + "19 4 5902690542745 QY337-00X\n", + "20 13 5902690542769 QY337-00X\n", + "21 16 5902690542745 QY337-00X\n", + "22 23 5902690542745 QY337-00X\n", + "23 24 5902805219685 RN633-00X\n", + "24 1 5902805533255 RH267-59J\n", + "25 2 5902805533255 RH267-59J\n", + "26 13 5902805533255 RH267-59J\n", + "27 21 5902805533255 RH267-59J\n", + "28 24 5902805533255 RH267-59J\n", + "29 26 5902805444698 RJ365-09M\n", + "30 21 5902805820447 RH797-81X\n", + "31 23 5902805820447 RH797-81X\n", + "32 28 5902805820447 RH797-81X\n", + "33 3 5902805385823 RJ371-53M" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c4(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>41</td>\n", + " <td>5902805532999</td>\n", + " <td>RH267-55J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>32</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>34</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>42</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>32</td>\n", + " <td>5902805431803</td>\n", + " <td>RM119-93X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>40</td>\n", + " <td>5902805431803</td>\n", + " <td>RM119-93X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>32</td>\n", + " <td>5902851445700</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>37</td>\n", + " <td>5902851445700</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>40</td>\n", + " <td>5902851445731</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>32</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>36</td>\n", + " <td>5902805820423</td>\n", + " <td>RH797-59X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>37</td>\n", + " <td>5902805303681</td>\n", + " <td>RJ369-87X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>32</td>\n", + " <td>5902805533255</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>38</td>\n", + " <td>5902805533255</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>40</td>\n", + " <td>5902805533255</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>29</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>36</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>19</th>\n", + " <td>41</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>20</th>\n", + " <td>39</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>21</th>\n", + " <td>32</td>\n", + " <td>5902805820546</td>\n", + " <td>RH797-00X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 41 5902805532999 RH267-55J\n", + "1 32 5902851414515 SL171-99X\n", + "2 34 5902851414515 SL171-99X\n", + "3 42 5902851414515 SL171-99X\n", + "4 32 5902805431803 RM119-93X\n", + "5 40 5902805431803 RM119-93X\n", + "6 32 5902851445700 RS483-99X\n", + "7 37 5902851445700 RS483-99X\n", + "8 40 5902851445731 RS483-99X\n", + "9 32 5902690542745 QY337-00X\n", + "10 36 5902805820423 RH797-59X\n", + "11 37 5902805303681 RJ369-87X\n", + "12 29 5902805820447 RH797-81X\n", + "13 32 5902805820447 RH797-81X\n", + "14 32 5902805533255 RH267-59J\n", + "15 38 5902805533255 RH267-59J\n", + "16 40 5902805533255 RH267-59J\n", + "17 29 5902975236994 SF078-MLC\n", + "18 36 5902975236994 SF078-MLC\n", + "19 41 5902975236994 SF078-MLC\n", + "20 39 5902851852638 SO133-09M\n", + "21 32 5902805820546 RH797-00X" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c4(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [], + "source": [ + "def c5(x):\n", + " outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", + " for j in x.StyleColor.unique():\n", + " DF = x[(x.StyleColor == j)]\n", + " measurements = DF.MEASUREMENT.unique()\n", + "\n", + " for i in measurements:\n", + " proba = DF[ DF.MEASUREMENT == i ]\n", + " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", + " minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)\n", + "\n", + " eps = np.floor(proba['EPC'].value_counts().max()*30)\n", + "\n", + " db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='kd_tree')\n", + " db.fit(X)\n", + " y_pred = db.fit_predict(X)\n", + " clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + " calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", + "\n", + " if db.labels_[db.labels_ == -1].size != 0 :\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > 0.5*proba[proba['EPC'] == b].count()[0] :\n", + " outliery = outliery.append({'MEASUREMENT': i, 'EAN':proba[proba['EPC'] == b].EAN.iloc[0], \n", + " 'StyleColor':j}, ignore_index = True)\n", + "\n", + "\n", + " return(outliery)" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>27</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 21 5902805820447 RH797-81X\n", + "1 24 5902805820447 RH797-81X\n", + "2 26 5902805820447 RH797-81X\n", + "3 27 5902805820447 RH797-81X\n", + "4 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 63, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c5(u)" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>35</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>38</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>42</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 35 5902851414515 SL171-99X\n", + "1 38 5902851414515 SL171-99X\n", + "2 38 5902851414508 SL171-99X\n", + "3 42 5902851414515 SL171-99X\n", + "4 29 5902805820447 RH797-81X\n", + "5 32 5902805820447 RH797-81X\n", + "6 34 5902805820447 RH797-81X" + ] + }, + "execution_count": 64, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c5(t)" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>13</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>13</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>26</td>\n", + " <td>5902851445700</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>16</td>\n", + " <td>5902851547602</td>\n", + " <td>SB281-90M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>6</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>6</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>7</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>11</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>11</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>11</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>12</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>13</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>13</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>18</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>17</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>24</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>4</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>4</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>12</td>\n", + " <td>5902975236956</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>19</th>\n", + " <td>23</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>20</th>\n", + " <td>28</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>21</th>\n", + " <td>11</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>22</th>\n", + " <td>11</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>23</th>\n", + " <td>19</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>24</th>\n", + " <td>19</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>25</th>\n", + " <td>1</td>\n", + " <td>5902805533255</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>26</th>\n", + " <td>5</td>\n", + " <td>5902805533255</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>27</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>28</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>29</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>30</th>\n", + " <td>27</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>31</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 13 5902805533040 RH267-85J\n", + "1 13 5902805533040 RH267-85J\n", + "2 26 5902851445700 RS483-99X\n", + "3 16 5902851547602 SB281-90M\n", + "4 6 5902851852638 SO133-09M\n", + "5 6 5902851852614 SO133-09M\n", + "6 7 5902851852638 SO133-09M\n", + "7 11 5902851852614 SO133-09M\n", + "8 11 5902851852638 SO133-09M\n", + "9 11 5902851852638 SO133-09M\n", + "10 12 5902851852638 SO133-09M\n", + "11 13 5902851852638 SO133-09M\n", + "12 13 5902851852614 SO133-09M\n", + "13 18 5902851852638 SO133-09M\n", + "14 17 5902851852638 SO133-09M\n", + "15 24 5902851852638 SO133-09M\n", + "16 4 5902975236994 SF078-MLC\n", + "17 4 5902975236994 SF078-MLC\n", + "18 12 5902975236956 SF078-MLC\n", + "19 23 5902975236994 SF078-MLC\n", + "20 28 5902975236994 SF078-MLC\n", + "21 11 5902690542745 QY337-00X\n", + "22 11 5902690542769 QY337-00X\n", + "23 19 5902690542745 QY337-00X\n", + "24 19 5902690542769 QY337-00X\n", + "25 1 5902805533255 RH267-59J\n", + "26 5 5902805533255 RH267-59J\n", + "27 21 5902805820447 RH797-81X\n", + "28 24 5902805820447 RH797-81X\n", + "29 26 5902805820447 RH797-81X\n", + "30 27 5902805820447 RH797-81X\n", + "31 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# bez if i 0,3\n", + "c5(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>35</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>38</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>42</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>28</td>\n", + " <td>5902851445731</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>29</td>\n", + " <td>5902851445731</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>34</td>\n", + " <td>5902851445731</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>35</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>35</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>42</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>42</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>32</td>\n", + " <td>5902805303681</td>\n", + " <td>RJ369-87X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>38</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>38</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>19</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>20</th>\n", + " <td>42</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>21</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 35 5902851414515 SL171-99X\n", + "1 38 5902851414515 SL171-99X\n", + "2 38 5902851414508 SL171-99X\n", + "3 42 5902851414515 SL171-99X\n", + "4 28 5902851445731 RS483-99X\n", + "5 29 5902851445731 RS483-99X\n", + "6 34 5902851445731 RS483-99X\n", + "7 35 5902690542745 QY337-00X\n", + "8 35 5902690542769 QY337-00X\n", + "9 42 5902690542769 QY337-00X\n", + "10 42 5902690542745 QY337-00X\n", + "11 32 5902805303681 RJ369-87X\n", + "12 29 5902805820447 RH797-81X\n", + "13 32 5902805820447 RH797-81X\n", + "14 34 5902805820447 RH797-81X\n", + "15 38 5902975236994 SF078-MLC\n", + "16 38 5902851852614 SO133-09M\n", + "17 38 5902851852638 SO133-09M\n", + "18 38 5902851852638 SO133-09M\n", + "19 42 5902851852638 SO133-09M\n", + "20 42 5902851852614 SO133-09M\n", + "21 42 5902851852638 SO133-09M" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c5(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 137, + "metadata": {}, + "outputs": [], + "source": [ + "outliery1 = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", + "j = 'RH797-81X' #'RH797-81X' # 'RH267-55J'\n", + "i = 24" + ] + }, + { + "cell_type": "code", + "execution_count": 138, + "metadata": {}, + "outputs": [], + "source": [ + "DF = train[(train.StyleColor == j)]\n", + "proba = DF[ DF.MEASUREMENT == i ]\n", + "X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", + "minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)" + ] + }, + { + "cell_type": "code", + "execution_count": 139, + "metadata": {}, + "outputs": [], + "source": [ + "eps = 6000\n", + "\n", + "db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='auto')\n", + "db.fit(X)\n", + "y_pred = db.fit_predict(X)\n", + "clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + "calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 140, + "metadata": {}, + "outputs": [], + "source": [ + "if db.labels_[db.labels_ == -1].size != 0 :\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > 0.5*proba[proba['EPC'] == b].count()[0] :\n", + " outliery1 = outliery1.append({'MEASUREMENT': i, 'EAN':proba[proba['EPC'] == b].EAN.iloc[0], \n", + " 'StyleColor':j}, ignore_index = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 141, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 24 5902805820447 RH797-81X" + ] + }, + "execution_count": 141, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "outliery1" + ] + }, + { + "cell_type": "code", + "execution_count": 150, + "metadata": {}, + "outputs": [], + "source": [ + "outliery2 = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", + "for i in train.MEASUREMENT.unique():\n", + " DF = train[(train.MEASUREMENT == i)]\n", + "\n", + " for k in DF.StyleColor.unique():\n", + " proba = DF[ DF.StyleColor == k]\n", + " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2) \n", + "\n", + " y_pred = db.fit_predict(X)\n", + " clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + " calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", + "\n", + " if db.labels_[db.labels_ == -1].size != 0 :\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > 0.9*proba[proba['EPC'] == b].count()[0] :\n", + " outliery2 = outliery2.append({'MEASUREMENT': i, 'EAN':proba[proba['EPC'] == b].EAN.iloc[0], \n", + " 'StyleColor':k}, ignore_index = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 151, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>3</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>3</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>3</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>4</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>4</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>...</th>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>171</th>\n", + " <td>28</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>172</th>\n", + " <td>28</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>173</th>\n", + " <td>28</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>174</th>\n", + " <td>28</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>175</th>\n", + " <td>28</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>176 rows Ă 3 columns</p>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 3 5902690542769 QY337-00X\n", + "1 3 5902690542745 QY337-00X\n", + "2 3 5902690542769 QY337-00X\n", + "3 4 5902805533040 RH267-85J\n", + "4 4 5902805533040 RH267-85J\n", + ".. ... ... ...\n", + "171 28 5902805533040 RH267-85J\n", + "172 28 5902805533040 RH267-85J\n", + "173 28 5902805533040 RH267-85J\n", + "174 28 5902805533040 RH267-85J\n", + "175 28 5902805533040 RH267-85J\n", + "\n", + "[176 rows x 3 columns]" + ] + }, + "execution_count": 151, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "outliery2" + ] + }, + { + "cell_type": "code", + "execution_count": 144, + "metadata": {}, + "outputs": [], + "source": [ + "DF = train[(train.StyleColor == 'RH797-81X')]\n", + "proba = DF[ DF.MEASUREMENT == 24 ]\n", + "X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", + "y_pred = db.fit_predict(X)\n", + "clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + "calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", + "y_pred = db.fit_predict(X)\n", + "\n", + "if db.labels_[db.labels_ == -1].size != 0 :\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > 0.5*proba[proba['EPC'] == b].count()[0] :\n", + " outliery1 = outliery1.append({'MEASUREMENT': i, 'EAN':proba[proba['EPC'] == b].EAN.iloc[0], \n", + " 'StyleColor':j}, ignore_index = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 145, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3035684754501F0000B5B614 83\n", + "3035684754501F4000B5B6E5 30\n", + "3035684754501F8000B5B6E6 28\n", + "3035684754501F0000B5B632 23\n", + "3035684754501F8000B5B6A5 20\n", + "Name: EPC, dtype: int64" + ] + }, + "execution_count": 145, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "outputs": [], + "source": [ + "def c6(x):\n", + " outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EPC', 'StyleColor'])\n", + " for j in x.StyleColor.unique():\n", + " DF = x[(x.StyleColor == j)]\n", + " measurements = DF.MEASUREMENT.unique()\n", + "\n", + " for i in measurements:\n", + " proba = DF[ DF.MEASUREMENT == i ]\n", + " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", + " minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)\n", + " neighbors = max(10,minimal_epc.astype(int))\n", + " \n", + " if minimal_epc > 70:\n", + " minimal_epc = 70\n", + " neighbors = 70\n", + " \n", + " X_embedded = proba[['TIME_MS','SUM_PROXIMITY_KMS']]\n", + " nbrs = NearestNeighbors(n_neighbors=neighbors ).fit(X_embedded)\n", + " distances, indices = nbrs.kneighbors(X_embedded)\n", + " distance_desc = sorted(distances[:,neighbors-1], reverse=True)\n", + "\n", + " kneedle = KneeLocator(range(1,len(distance_desc)+1), #x values\n", + " distance_desc, # y values\n", + " S=1.0, #parameter suggested from paper\n", + " curve=\"convex\", #parameter from figure\n", + " direction=\"decreasing\") #parameter from figure\n", + "\n", + " eps = max(2000,kneedle.knee_y/3)\n", + "\n", + " db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='auto')\n", + " db.fit(X)\n", + " y_pred = db.fit_predict(X)\n", + " clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + " calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", + "\n", + " if db.labels_[db.labels_ == -1].size != 0 :\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > 0.4*proba[proba['EPC'] == b].count()[0] :\n", + " outliery = outliery.append({'MEASUREMENT': i, 'EPC':proba[proba['EPC'] == b].EPC.iloc[0], \n", + " 'StyleColor':j}, ignore_index = True)\n", + "\n", + "\n", + " return(outliery)" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [], + "source": [ + "train7 = train[(train.StyleColor == 'SF078-MLC') | (train.StyleColor == 'RH797-81X') | (train.StyleColor == 'SL171-99X')]\n", + "test7 = test[(test.StyleColor == 'SF078-MLC') | (test.StyleColor == 'RH797-81X') | (test.StyleColor == 'SL171-99X')]" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EPC</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>27</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>28</td>\n", + " <td>30356849FC1724C000B59A42</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>21</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>24</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>27</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>28</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EPC StyleColor\n", + "0 27 303568480C287AC000B5BAD5 SL171-99X\n", + "1 28 30356849FC1724C000B59A42 SF078-MLC\n", + "2 21 3035684754501F0000B5B614 RH797-81X\n", + "3 24 3035684754501F0000B5B614 RH797-81X\n", + "4 27 3035684754501F0000B5B614 RH797-81X\n", + "5 28 3035684754501F0000B5B614 RH797-81X" + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c6(train7)" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EPC</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>32</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>35</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>38</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BA63</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BADA</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BABD</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>41</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>42</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>42</td>\n", + " <td>303568480C287A8000B5BABD</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>29</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>32</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EPC StyleColor\n", + "0 32 303568480C287AC000B5BAD5 SL171-99X\n", + "1 35 303568480C287AC000B5BAD5 SL171-99X\n", + "2 38 303568480C287AC000B5BAD5 SL171-99X\n", + "3 38 303568480C287A8000B5BA63 SL171-99X\n", + "4 38 303568480C287A8000B5BADA SL171-99X\n", + "5 38 303568480C287A8000B5BABD SL171-99X\n", + "6 41 303568480C287AC000B5BAD5 SL171-99X\n", + "7 42 303568480C287AC000B5BAD5 SL171-99X\n", + "8 42 303568480C287A8000B5BABD SL171-99X\n", + "9 29 3035684754501F0000B5B614 RH797-81X\n", + "10 32 3035684754501F0000B5B614 RH797-81X" + ] + }, + "execution_count": 79, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c6(test7)" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>23</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>24</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>24</td>\n", + " <td>5902805820461</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>24</td>\n", + " <td>5902805820461</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>27</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 23 5902975236994 SF078-MLC\n", + "1 24 5902975236994 SF078-MLC\n", + "2 21 5902805820447 RH797-81X\n", + "3 24 5902805820447 RH797-81X\n", + "4 24 5902805820461 RH797-81X\n", + "5 24 5902805820447 RH797-81X\n", + "6 24 5902805820461 RH797-81X\n", + "7 26 5902805820447 RH797-81X\n", + "8 27 5902805820447 RH797-81X\n", + "9 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(train7)" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>32</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>38</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>38</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>38</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>42</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>42</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>42</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>29</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>36</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>38</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>38</td>\n", + " <td>5902975236956</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>40</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>41</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>42</td>\n", + " <td>5902975236956</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 32 5902851414515 SL171-99X\n", + "1 38 5902851414515 SL171-99X\n", + "2 38 5902851414508 SL171-99X\n", + "3 38 5902851414508 SL171-99X\n", + "4 38 5902851414508 SL171-99X\n", + "5 42 5902851414515 SL171-99X\n", + "6 42 5902851414508 SL171-99X\n", + "7 29 5902805820447 RH797-81X\n", + "8 32 5902805820447 RH797-81X\n", + "9 34 5902805820447 RH797-81X\n", + "10 42 5902805820447 RH797-81X\n", + "11 29 5902975236994 SF078-MLC\n", + "12 36 5902975236994 SF078-MLC\n", + "13 38 5902975236994 SF078-MLC\n", + "14 38 5902975236956 SF078-MLC\n", + "15 40 5902975236994 SF078-MLC\n", + "16 41 5902975236994 SF078-MLC\n", + "17 42 5902975236956 SF078-MLC" + ] + }, + "execution_count": 82, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(test7)" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>4</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>4</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>12</td>\n", + " <td>5902975236956</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>23</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>28</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>27</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 4 5902975236994 SF078-MLC\n", + "1 4 5902975236994 SF078-MLC\n", + "2 12 5902975236956 SF078-MLC\n", + "3 23 5902975236994 SF078-MLC\n", + "4 28 5902975236994 SF078-MLC\n", + "5 21 5902805820447 RH797-81X\n", + "6 24 5902805820447 RH797-81X\n", + "7 26 5902805820447 RH797-81X\n", + "8 27 5902805820447 RH797-81X\n", + "9 28 5902805820447 RH797-81X" + ] + }, + "execution_count": 85, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c5(train7)" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>35</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>38</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>42</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>38</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 35 5902851414515 SL171-99X\n", + "1 38 5902851414515 SL171-99X\n", + "2 38 5902851414508 SL171-99X\n", + "3 42 5902851414515 SL171-99X\n", + "4 29 5902805820447 RH797-81X\n", + "5 32 5902805820447 RH797-81X\n", + "6 34 5902805820447 RH797-81X\n", + "7 38 5902975236994 SF078-MLC" + ] + }, + "execution_count": 86, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c5(test7)" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EPC</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>12</td>\n", + " <td>303568480C2B874000B59A39</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>23</td>\n", + " <td>303568480C2B874000B59A39</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>28</td>\n", + " <td>303568480C2B868000B599B2</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>1</td>\n", + " <td>303568480C357A0000B59999</td>\n", + " <td>SB281-90M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>16</td>\n", + " <td>303568480C357A0000B59999</td>\n", + " <td>SB281-90M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>7</td>\n", + " <td>30356847541DA80000B5BA54</td>\n", + " <td>RJ369-87X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>17</td>\n", + " <td>303568480C3455C000B5B30A</td>\n", + " <td>RV167-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>17</td>\n", + " <td>30356847542CCD0000B59A80</td>\n", + " <td>QJ677-33X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>26</td>\n", + " <td>30356847542CCD8000B599FA</td>\n", + " <td>QJ677-33X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>26</td>\n", + " <td>30356847542CCD0000B59A26</td>\n", + " <td>QJ677-33X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>4</td>\n", + " <td>3035684754340CC000B594C3</td>\n", + " <td>RH267-55J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>18</td>\n", + " <td>3035684754340D0000B594EB</td>\n", + " <td>RH267-55J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>18</td>\n", + " <td>3035684754340CC000B594C6</td>\n", + " <td>RH267-55J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>27</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>7</td>\n", + " <td>303568480C5343C000B599F6</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>17</td>\n", + " <td>303568480C5343C000B599C8</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>17</td>\n", + " <td>303568480C53434000B599E1</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>24</td>\n", + " <td>303568480C53434000B599E1</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>24</td>\n", + " <td>30356847540FE2C000B59A68</td>\n", + " <td>RB254-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>19</th>\n", + " <td>28</td>\n", + " <td>30356849FC1724C000B59A42</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>20</th>\n", + " <td>11</td>\n", + " <td>303568458835008000B5BAD1</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>21</th>\n", + " <td>11</td>\n", + " <td>303568458835010000B5BA58</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>22</th>\n", + " <td>19</td>\n", + " <td>303568458835008000B5BAD1</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>23</th>\n", + " <td>19</td>\n", + " <td>303568458835010000B5BA58</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>24</th>\n", + " <td>7</td>\n", + " <td>303568475415740000B5A5CD</td>\n", + " <td>RN633-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>25</th>\n", + " <td>1</td>\n", + " <td>303568475434134000B5B6DF</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>26</th>\n", + " <td>2</td>\n", + " <td>30356847542B6D4000B5B656</td>\n", + " <td>RJ365-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>27</th>\n", + " <td>2</td>\n", + " <td>30356847542B6D0000B5B65A</td>\n", + " <td>RJ365-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>28</th>\n", + " <td>12</td>\n", + " <td>30356849FC1E348000B5B2D4</td>\n", + " <td>SP090-90X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>29</th>\n", + " <td>21</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>30</th>\n", + " <td>24</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>31</th>\n", + " <td>27</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>32</th>\n", + " <td>28</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EPC StyleColor\n", + "0 12 303568480C2B874000B59A39 RS483-99X\n", + "1 23 303568480C2B874000B59A39 RS483-99X\n", + "2 28 303568480C2B868000B599B2 RS483-99X\n", + "3 1 303568480C357A0000B59999 SB281-90M\n", + "4 16 303568480C357A0000B59999 SB281-90M\n", + "5 7 30356847541DA80000B5BA54 RJ369-87X\n", + "6 17 303568480C3455C000B5B30A RV167-MLC\n", + "7 17 30356847542CCD0000B59A80 QJ677-33X\n", + "8 26 30356847542CCD8000B599FA QJ677-33X\n", + "9 26 30356847542CCD0000B59A26 QJ677-33X\n", + "10 4 3035684754340CC000B594C3 RH267-55J\n", + "11 18 3035684754340D0000B594EB RH267-55J\n", + "12 18 3035684754340CC000B594C6 RH267-55J\n", + "13 27 303568480C287AC000B5BAD5 SL171-99X\n", + "14 7 303568480C5343C000B599F6 SO133-09M\n", + "15 17 303568480C5343C000B599C8 SO133-09M\n", + "16 17 303568480C53434000B599E1 SO133-09M\n", + "17 24 303568480C53434000B599E1 SO133-09M\n", + "18 24 30356847540FE2C000B59A68 RB254-00X\n", + "19 28 30356849FC1724C000B59A42 SF078-MLC\n", + "20 11 303568458835008000B5BAD1 QY337-00X\n", + "21 11 303568458835010000B5BA58 QY337-00X\n", + "22 19 303568458835008000B5BAD1 QY337-00X\n", + "23 19 303568458835010000B5BA58 QY337-00X\n", + "24 7 303568475415740000B5A5CD RN633-00X\n", + "25 1 303568475434134000B5B6DF RH267-59J\n", + "26 2 30356847542B6D4000B5B656 RJ365-09M\n", + "27 2 30356847542B6D0000B5B65A RJ365-09M\n", + "28 12 30356849FC1E348000B5B2D4 SP090-90X\n", + "29 21 3035684754501F0000B5B614 RH797-81X\n", + "30 24 3035684754501F0000B5B614 RH797-81X\n", + "31 27 3035684754501F0000B5B614 RH797-81X\n", + "32 28 3035684754501F0000B5B614 RH797-81X" + ] + }, + "execution_count": 83, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c6(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EPC</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>42</td>\n", + " <td>3035684754340E0000B594E8</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>32</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>35</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>38</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BA63</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BADA</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BABD</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>41</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>42</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>42</td>\n", + " <td>303568480C287A8000B5BABD</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>38</td>\n", + " <td>303568480C2B868000B599B2</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>38</td>\n", + " <td>303568480C34548000B5B2B5</td>\n", + " <td>RV167-87X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>42</td>\n", + " <td>303568458835010000B5BA58</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>42</td>\n", + " <td>303568458835008000B5BAD1</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>32</td>\n", + " <td>30356847541DA80000B5BA54</td>\n", + " <td>RJ369-87X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>29</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>32</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>29</td>\n", + " <td>303568475415744000B599FE</td>\n", + " <td>RN633-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>39</td>\n", + " <td>303568480C5343C000B599F6</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>19</th>\n", + " <td>42</td>\n", + " <td>303568480C5343C000B599F6</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>20</th>\n", + " <td>42</td>\n", + " <td>303568480C53434000B599E1</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>21</th>\n", + " <td>42</td>\n", + " <td>303568480C5343C000B599C8</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>22</th>\n", + " <td>35</td>\n", + " <td>303568475450218000B59781</td>\n", + " <td>RH797-00X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EPC StyleColor\n", + "0 42 3035684754340E0000B594E8 RH267-85J\n", + "1 32 303568480C287AC000B5BAD5 SL171-99X\n", + "2 35 303568480C287AC000B5BAD5 SL171-99X\n", + "3 38 303568480C287AC000B5BAD5 SL171-99X\n", + "4 38 303568480C287A8000B5BA63 SL171-99X\n", + "5 38 303568480C287A8000B5BADA SL171-99X\n", + "6 38 303568480C287A8000B5BABD SL171-99X\n", + "7 41 303568480C287AC000B5BAD5 SL171-99X\n", + "8 42 303568480C287AC000B5BAD5 SL171-99X\n", + "9 42 303568480C287A8000B5BABD SL171-99X\n", + "10 38 303568480C2B868000B599B2 RS483-99X\n", + "11 38 303568480C34548000B5B2B5 RV167-87X\n", + "12 42 303568458835010000B5BA58 QY337-00X\n", + "13 42 303568458835008000B5BAD1 QY337-00X\n", + "14 32 30356847541DA80000B5BA54 RJ369-87X\n", + "15 29 3035684754501F0000B5B614 RH797-81X\n", + "16 32 3035684754501F0000B5B614 RH797-81X\n", + "17 29 303568475415744000B599FE RN633-00X\n", + "18 39 303568480C5343C000B599F6 SO133-09M\n", + "19 42 303568480C5343C000B599F6 SO133-09M\n", + "20 42 303568480C53434000B599E1 SO133-09M\n", + "21 42 303568480C5343C000B599C8 SO133-09M\n", + "22 35 303568475450218000B59781 RH797-00X" + ] + }, + "execution_count": 84, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c6(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": {}, + "outputs": [], + "source": [ + "def c7(x):\n", + " outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EPC', 'StyleColor'])\n", + " for j in x.StyleColor.unique():\n", + " DF = x[(x.StyleColor == j)]\n", + " measurements = DF.MEASUREMENT.unique()\n", + "\n", + " for i in measurements:\n", + " proba = DF[ DF.MEASUREMENT == i ]\n", + " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", + " minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)\n", + " neighbors = max(10,minimal_epc.astype(int))\n", + " \n", + " if minimal_epc > 70:\n", + " minimal_epc = 70\n", + " neighbors = 70\n", + " \n", + " X_embedded = proba[['TIME_MS','SUM_PROXIMITY_KMS']]\n", + " nbrs = NearestNeighbors(n_neighbors=neighbors ).fit(X_embedded)\n", + " distances, indices = nbrs.kneighbors(X_embedded)\n", + " distance_desc = sorted(distances[:,neighbors-1], reverse=True)\n", + "\n", + " kneedle = KneeLocator(range(1,len(distance_desc)+1), #x values\n", + " distance_desc, # y values\n", + " S=1.0, #parameter suggested from paper\n", + " curve=\"convex\", #parameter from figure\n", + " direction=\"decreasing\") #parameter from figure\n", + "\n", + " eps = max(4000,kneedle.knee_y/5)\n", + "\n", + " db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='auto')\n", + " db.fit(X)\n", + " y_pred = db.fit_predict(X)\n", + " clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + " calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", + "\n", + " if db.labels_[db.labels_ == -1].size != 0 :\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > 0.4*proba[proba['EPC'] == b].count()[0] :\n", + " outliery = outliery.append({'MEASUREMENT': i, 'EPC':proba[proba['EPC'] == b].EPC.iloc[0], \n", + " 'StyleColor':j}, ignore_index = True)\n", + "\n", + "\n", + " return(outliery)" + ] + }, + { + "cell_type": "code", + "execution_count": 113, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EPC</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>26</td>\n", + " <td>303568480C2B868000B599B2</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>16</td>\n", + " <td>303568480C357A0000B59999</td>\n", + " <td>SB281-90M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>4</td>\n", + " <td>30356847541DA7C000B5BADD</td>\n", + " <td>RJ369-87X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>26</td>\n", + " <td>30356847541DA80000B5BA54</td>\n", + " <td>RJ369-87X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>11</td>\n", + " <td>303568480C53434000B599E1</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>11</td>\n", + " <td>303568480C5343C000B599F6</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>11</td>\n", + " <td>303568480C5343C000B599C8</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>18</td>\n", + " <td>303568480C5343C000B599C8</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>18</td>\n", + " <td>303568480C5343C000B599F6</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>18</td>\n", + " <td>303568480C53434000B599E1</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>17</td>\n", + " <td>303568480C5343C000B599C8</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>17</td>\n", + " <td>303568480C53434000B599E1</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>24</td>\n", + " <td>303568480C5343C000B599F6</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>24</td>\n", + " <td>303568480C53434000B599E1</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>24</td>\n", + " <td>303568480C5343C000B599C8</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>24</td>\n", + " <td>30356847540FE2C000B59A68</td>\n", + " <td>RB254-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>23</td>\n", + " <td>30356849FC1724C000B59A42</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>11</td>\n", + " <td>303568458835008000B5BAD1</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>11</td>\n", + " <td>303568458835010000B5BA58</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>19</th>\n", + " <td>1</td>\n", + " <td>303568475434134000B5B6DF</td>\n", + " <td>RH267-59J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>20</th>\n", + " <td>21</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>21</th>\n", + " <td>24</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>22</th>\n", + " <td>26</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>23</th>\n", + " <td>27</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>24</th>\n", + " <td>28</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EPC StyleColor\n", + "0 26 303568480C2B868000B599B2 RS483-99X\n", + "1 16 303568480C357A0000B59999 SB281-90M\n", + "2 4 30356847541DA7C000B5BADD RJ369-87X\n", + "3 26 30356847541DA80000B5BA54 RJ369-87X\n", + "4 11 303568480C53434000B599E1 SO133-09M\n", + "5 11 303568480C5343C000B599F6 SO133-09M\n", + "6 11 303568480C5343C000B599C8 SO133-09M\n", + "7 18 303568480C5343C000B599C8 SO133-09M\n", + "8 18 303568480C5343C000B599F6 SO133-09M\n", + "9 18 303568480C53434000B599E1 SO133-09M\n", + "10 17 303568480C5343C000B599C8 SO133-09M\n", + "11 17 303568480C53434000B599E1 SO133-09M\n", + "12 24 303568480C5343C000B599F6 SO133-09M\n", + "13 24 303568480C53434000B599E1 SO133-09M\n", + "14 24 303568480C5343C000B599C8 SO133-09M\n", + "15 24 30356847540FE2C000B59A68 RB254-00X\n", + "16 23 30356849FC1724C000B59A42 SF078-MLC\n", + "17 11 303568458835008000B5BAD1 QY337-00X\n", + "18 11 303568458835010000B5BA58 QY337-00X\n", + "19 1 303568475434134000B5B6DF RH267-59J\n", + "20 21 3035684754501F0000B5B614 RH797-81X\n", + "21 24 3035684754501F0000B5B614 RH797-81X\n", + "22 26 3035684754501F0000B5B614 RH797-81X\n", + "23 27 3035684754501F0000B5B614 RH797-81X\n", + "24 28 3035684754501F0000B5B614 RH797-81X" + ] + }, + "execution_count": 113, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c7(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EPC</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>42</td>\n", + " <td>3035684754340E0000B594E8</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>32</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>38</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BA63</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BADA</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BABD</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>42</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>42</td>\n", + " <td>303568480C287A8000B5BABD</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>42</td>\n", + " <td>51356847542A2B0000B5B280</td>\n", + " <td>RM119-93X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>42</td>\n", + " <td>30356847542A2B0000B5B215</td>\n", + " <td>RM119-93X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>38</td>\n", + " <td>303568480C2B868000B599B2</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>34</td>\n", + " <td>303568458835008000B5BAD1</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>35</td>\n", + " <td>303568458835010000B5BA58</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>42</td>\n", + " <td>303568458835010000B5BA58</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>42</td>\n", + " <td>303568458835008000B5BAD1</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>42</td>\n", + " <td>303568458835010000B5BA61</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>42</td>\n", + " <td>30356847541DA80000B5BA54</td>\n", + " <td>RJ369-87X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>29</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>32</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>19</th>\n", + " <td>34</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>20</th>\n", + " <td>42</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>21</th>\n", + " <td>38</td>\n", + " <td>30356849FC1724C000B59A42</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>22</th>\n", + " <td>39</td>\n", + " <td>30356849FC1724C000B59A42</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>23</th>\n", + " <td>42</td>\n", + " <td>30356849FC1723C000B5B1A3</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>24</th>\n", + " <td>38</td>\n", + " <td>303568480C53434000B599E1</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>25</th>\n", + " <td>38</td>\n", + " <td>303568480C5343C000B599F6</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>26</th>\n", + " <td>38</td>\n", + " <td>303568480C5343C000B599C8</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>27</th>\n", + " <td>39</td>\n", + " <td>303568480C5343C000B599F6</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>28</th>\n", + " <td>42</td>\n", + " <td>303568480C5343C000B599F6</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>29</th>\n", + " <td>42</td>\n", + " <td>303568480C53434000B599E1</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>30</th>\n", + " <td>42</td>\n", + " <td>303568480C5343C000B599C8</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>31</th>\n", + " <td>38</td>\n", + " <td>303568480C357A0000B59A61</td>\n", + " <td>SB281-90M</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EPC StyleColor\n", + "0 42 3035684754340E0000B594E8 RH267-85J\n", + "1 32 303568480C287AC000B5BAD5 SL171-99X\n", + "2 38 303568480C287AC000B5BAD5 SL171-99X\n", + "3 38 303568480C287A8000B5BA63 SL171-99X\n", + "4 38 303568480C287A8000B5BADA SL171-99X\n", + "5 38 303568480C287A8000B5BABD SL171-99X\n", + "6 42 303568480C287AC000B5BAD5 SL171-99X\n", + "7 42 303568480C287A8000B5BABD SL171-99X\n", + "8 42 51356847542A2B0000B5B280 RM119-93X\n", + "9 42 30356847542A2B0000B5B215 RM119-93X\n", + "10 38 303568480C2B868000B599B2 RS483-99X\n", + "11 34 303568458835008000B5BAD1 QY337-00X\n", + "12 35 303568458835010000B5BA58 QY337-00X\n", + "13 42 303568458835010000B5BA58 QY337-00X\n", + "14 42 303568458835008000B5BAD1 QY337-00X\n", + "15 42 303568458835010000B5BA61 QY337-00X\n", + "16 42 30356847541DA80000B5BA54 RJ369-87X\n", + "17 29 3035684754501F0000B5B614 RH797-81X\n", + "18 32 3035684754501F0000B5B614 RH797-81X\n", + "19 34 3035684754501F0000B5B614 RH797-81X\n", + "20 42 3035684754501F0000B5B614 RH797-81X\n", + "21 38 30356849FC1724C000B59A42 SF078-MLC\n", + "22 39 30356849FC1724C000B59A42 SF078-MLC\n", + "23 42 30356849FC1723C000B5B1A3 SF078-MLC\n", + "24 38 303568480C53434000B599E1 SO133-09M\n", + "25 38 303568480C5343C000B599F6 SO133-09M\n", + "26 38 303568480C5343C000B599C8 SO133-09M\n", + "27 39 303568480C5343C000B599F6 SO133-09M\n", + "28 42 303568480C5343C000B599F6 SO133-09M\n", + "29 42 303568480C53434000B599E1 SO133-09M\n", + "30 42 303568480C5343C000B599C8 SO133-09M\n", + "31 38 303568480C357A0000B59A61 SB281-90M" + ] + }, + "execution_count": 114, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c7(test)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/DBSCAN_1-zmiany_df.ipynb b/DBSCAN_1-zmiany_df.ipynb index e73fa9a39778f2f7174671da8c26cde128aeb617..694c4ac49efedcbc045715864b0e6e838c605e6d 100644 --- a/DBSCAN_1-zmiany_df.ipynb +++ b/DBSCAN_1-zmiany_df.ipynb @@ -18,7 +18,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -500,23 +500,6 @@ "execution_count": 5, "metadata": {}, "outputs": [ - { - "data": { - "text/plain": [ - "{'whiskers': [<matplotlib.lines.Line2D at 0x215c384d970>,\n", - " <matplotlib.lines.Line2D at 0x215c384dcd0>],\n", - " 'caps': [<matplotlib.lines.Line2D at 0x215c4d13070>,\n", - " <matplotlib.lines.Line2D at 0x215c4d133d0>],\n", - " 'boxes': [<matplotlib.lines.Line2D at 0x215c384d610>],\n", - " 'medians': [<matplotlib.lines.Line2D at 0x215c4d13730>],\n", - " 'fliers': [<matplotlib.lines.Line2D at 0x215c4d13a90>],\n", - " 'means': []}" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - }, { "data": { "image/png": "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\n", @@ -531,12 +514,12 @@ } ], "source": [ - "plt.boxplot(df['LENGTH_OF_MEASUREMENT'])" + "plt.boxplot(df['LENGTH_OF_MEASUREMENT']);" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ @@ -546,7 +529,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -855,7 +838,7 @@ "[8 rows x 24 columns]" ] }, - "execution_count": 7, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -866,7 +849,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -877,7 +860,7 @@ " 42], dtype=int64)" ] }, - "execution_count": 8, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -944,7 +927,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -954,7 +937,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -969,9 +952,72 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>EPC</th>\n", + " <th>PROXIMITY</th>\n", + " <th>TIMESTAMP</th>\n", + " <th>MEASUREMENT</th>\n", + " <th>ITEMID</th>\n", + " <th>EAN</th>\n", + " <th>StyleColorSize</th>\n", + " <th>StyleColor</th>\n", + " <th>Size</th>\n", + " <th>SubclassID</th>\n", + " <th>...</th>\n", + " <th>SEC</th>\n", + " <th>MICROSEC</th>\n", + " <th>MILISEC</th>\n", + " <th>TIME_MS</th>\n", + " <th>TIME_PER_MEASUREMENT_MS</th>\n", + " <th>NUMBER_OF_SIGNALS</th>\n", + " <th>LENGTH_OF_MEASUREMENT</th>\n", + " <th>TIME_KMS</th>\n", + " <th>MAX_PROXIMITY_KMS</th>\n", + " <th>SUM_PROXIMITY_KMS</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " </tbody>\n", + "</table>\n", + "<p>0 rows Ă 36 columns</p>\n", + "</div>" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [EPC, PROXIMITY, TIMESTAMP, MEASUREMENT, ITEMID, EAN, StyleColorSize, StyleColor, Size, SubclassID, ItemSeason, FashionLevel, SubclassID.1, SubclassName, ClassID, ClassID.1, ClassName, DepartmentID, DepartmentID.1, DepartmentName, BrandID, BrandID.1, BrandName, Active, HOUR, MIN, SEC, MICROSEC, MILISEC, TIME_MS, TIME_PER_MEASUREMENT_MS, NUMBER_OF_SIGNALS, LENGTH_OF_MEASUREMENT, TIME_KMS, MAX_PROXIMITY_KMS, SUM_PROXIMITY_KMS]\n", + "Index: []\n", + "\n", + "[0 rows x 36 columns]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "#do testow samego modelu\n", "test_1 = df[(df.TIMESTAMP <= '2021-10-26T10:30:00.000') & (df.StyleColor == 'RH797-81X') & ((df.MEASUREMENT == 2) | (df.MEASUREMENT == 3) | (df.MEASUREMENT == 4) | (df.MEASUREMENT == 26) | (df.MEASUREMENT == 28) ) ]\n", @@ -996,9 +1042,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 112, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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kZqA91ORSKRH202bNo1PP/0UgIqKikS51+tl06ZNfRGaiIiIJJlqAEVERERSjBJAERERkRSjBFBEREQkxSgBFBEREUkxSgBFREREUowSQBEREZEUowRwgBo9ejRTp05lxowZlJeXA/Dhhx8ya9Yspk6dyimnnEJTU1Ni+3nz5jF27FjGjx/PCy+8AEBbWxsnn3wyEyZMYPLkyVx77bWJ7Tds2MDs2bM54IADmDZtGs8991xi3UMPPURZWRllZWU89NBDifKLLrqIkpKSxLMFly5dCkBjYyOnnHIK06dPZ/LkyTzwwANAbN7h2bNnM3HiRCZPnsydd96ZOFZdXR1z5syhrKyMOXPmUF9f3+nzb9iwgczMTH796193uTannnoqU6ZMSby/6qqrEjGNGzeOQYMG7enlFhERSS3W2pR9zZw50+7o008/7VKWDKNGjbI1NTWdysrLy+1rr71mrbX2vvvus9dff7211tply5bZadOmWb/fb9euXWtLS0ttOBy2ra2t9pVXXrHWWhsIBOwRRxxhn3vuOWuttZdeeqn93e9+l9h/1KhR1lpra2trbUlJia2trbV1dXW2pKTE1tXVWWutvfDCC+3jjz/eJdabbrrJXnPNNdZaa7du3Wpzc3NtIBCwmzZtskuWLLHWWtvU1GTLysrssmXLrLXW/vCHP7Tz5s2z1lo7b968xP7bnXHGGfass86yt956a6fyJ5980s6dO9dOnjy52+v2m9/8xl588cXdrhso91ZEROSLABbbXsqBVAO4lwL1tTQs/4i6jxbTsPwjAvW1fXaulStXctRRRwEwZ84cnnzySQCeeuopzjvvPLxeLyUlJYwdO5ZFixaRnp7O7NmzAfB4PBx44IFUVlYCYIxJ1CA2NjYybNgwAF544QXmzJlDXl4eubm5zJkzh3/961+7jMsYQ3NzM9ZaWlpayMvLw+VyUVRUxIEHHghAVlYWEydOpKqqKhHzhRdeCMCFF17IggULEsdbsGABpaWlXeYibmlp4f/+7/+4/vrrdxrL/PnzmTt37u4vpoiISApTArgXAvW1tFauJxoKAhANBWmtXN8rSaAxhuOPP56ZM2dyzz33ADBlyhSefvppAB5//HE2btwIQFVVFSNGjEjsW1xcnEi0tmtoaOCf//wnxx57LAA/+9nPeOSRRyguLuakk07irrvu6tGxrrvuOqZNm8ZVV11FIBAA4IorrmD58uUMGzaMqVOncuedd+JwdP6nVVFRwQcffMAhhxwCQHV1NUVFRQAUFRWxdetWAFpbW7nlllu48cYbu1yTG264gR/84Aekp6d3e83Wr1/PunXrOOaYY3Z+YUVEREQJ4N5o31IFNtq50EZj5Xvprbfe4v333+f555/n7rvv5vXXX+f+++/n7rvvZubMmTQ3N+PxeGKntLbL/saYxHI4HGbu3Ll897vfpbS0FIjVlF100UVUVlby3HPPccEFFxCNRnd5rHnz5rFixQree+896urquOWWW4BYreGMGTPYtGkTS5cu5YorrujUP7GlpYUzzzyTO+64g+zs7F1+7htvvJGrrrqKzMzMTuVLly5l9erVXeYy7ujRRx/lrLPOwul07vIcIiIiqU5zAe+F7TV/PS3fE9ubZAsLCzn99NNZtGgRV199NQsXLgTgs88+49lnnwVitXTbawMBKisrE/sDXHbZZZSVlXHllVcmyu67775E0+6sWbPw+/1s27aN4uJiXnvttU7HOvroowESNXZer5eLL744MUDjgQce4Nprr8UYw9ixYykpKWHFihUcfPDBhEIhzjzzTM4//3zOOOOMxHGHDBnC5s2bKSoqYvPmzRQWFgLw7rvv8sQTT3DNNdfQ0NCAw+HA5/PhdDpZsmQJo0ePJhwOs3XrVo4++uhOsT766KPcfffde3PZRUREUoJqAPeCw+3Zo/Keam1tpbm5ObG8cOFCpkyZkmgmjUaj/OIXv+Dyyy8HYqNiH330UQKBAOvWrWPVqlUcfPDBAFx//fU0NjZyxx13dDrHyJEjefnllwFYvnw5fr+fgoICTjjhBBYuXEh9fT319fUsXLiQE044AYDNmzcDsRrHBQsWJEbidjxWdXU1K1eupLS0FGstl1xyCRMnTuT73/9+p/OfeuqpiRHGDz30EKeddhoAb7zxBhUVFVRUVHDllVfyk5/8hCuuuIJvf/vbbNq0iYqKCt58803GjRvXKflbuXIl9fX1zJo1a6+uvYiISCpQDeBeSBs6nNbK9Z2bgY2DtKHD9+q41dXViabOcDjM1772NU488UTuvPPORA3XGWecwcUXXwzA5MmTOeecc5g0aRIul4u7774bp9NJZWUlN910ExMmTEgMxrjiiiv45je/yW233call17K7bffjjGGBx98EGMMeXl53HDD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\n", + "text/plain": [ + "<Figure size 720x576 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "plt.figure(figsize=(10,8))\n", "sns.scatterplot(x=\"TIME_MS\", y=\"SUM_PROXIMITY_KMS\", hue='EAN', data=test6)\n", @@ -1007,9 +1066,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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VERERHpNSVuC2zumbe/PVVddxRNPPMEZZ5zR5bizzjqrWxcpwCWXXEIwGByocEVEROQjUvdogguFQr06bvbs2axbtw6AsrKyWLnX62XXrl39EZqIiIj0IbW0iYiIiCQAJW0iIiIiCUBJm4iIiEgCUNImIiIikgCUtImIiIgkACVtIiIiIglASVscFRUVMWvWLObOnUtpaSkAq1evZsGCBcyaNYtTTz2Vpqam2PFLly5l0qRJTJkyhZdeegmAtrY2TjnlFKZOncqMGTO46qqrYsfv2LGDhQsXcthhhzF79mxeeOGFWN2jjz5KSUkJJSUlPProo7Hyiy66iOLi4ti6b6tWrQKgsbGRU089lTlz5jBjxgwefvhhAHbu3MnChQuZNm0aM2bM4K677opdq66ujkWLFlFSUsKiRYuor6/vcv87duwgLS2Nn//8593em9NOO42ZM2fGni9ZsiQW0+TJkxkxYsTBvt0iIiKJzVo75H/mzZtn97Vu3bpuZQNt/Pjxtrq6uktZaWmpffXVV6211j744IP22muvtdZau3btWjt79mzr8/ns1q1b7YQJE2wwGLStra32H//4h7XWWr/fb48++mj7wgsvWGut/cpXvmLvu+++2Pnjx4+31lpbW1tri4uLbW1tra2rq7PFxcW2rq7OWmvthRdeaJ966qlusd500032yiuvtNZaW1VVZbOysqzf77e7du2yK1eutNZa29TUZEtKSuzatWuttdZ+//vft0uXLrXWWrt06dLY+XudeeaZ9rOf/ay97bbbupQ/88wz9rzzzrMzZszo8X27++677cUXX9xj3WD4exURETkUwArbQz6jlrZe8tfX0rD+XereXUHD+nfx19f2y+ts3LiRY489FoBFixbxzDPPAPDcc89x7rnn4vV6KS4uZtKkSSxfvpyUlBQWLlwIgMfj4fDDD6e8vBwAY0yspa6xsZGxY8cC8NJLL7Fo0SKys7PJyspi0aJF/O1vfztgXMYYmpubsdbS0tJCdnY2LpeLvLw8Dj/8cADS09OZNm0aFRUVsZgvvPBCAC688EKeffbZ2PWeffZZJkyY0G3f05aWFn7xi19w7bXX7jeWJ554gvPOO+/D30wREZEhRElbL/jra2kt30440AFAONBBa/n2Q07cjDGceOKJzJs3j/vvvx+AmTNn8vzzzwPw1FNPsXPnTgAqKioo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\n", + "text/plain": [ + "<Figure size 720x576 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "plt.figure(figsize=(10,8))\n", "sns.scatterplot(x=\"TIME_MS\", y=\"SUM_PROXIMITY_KMS\", hue='EAN', data=test_1[test_1.MEASUREMENT == 3])\n", @@ -1018,9 +1090,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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43a7+dOf/sR9992H1WoFIDMzk09/+tNRjlCAJG1CCCHEMc3j8QzrHn3iiSdG1HnhhReorKykurqa/Px8EhISohCpOBTpHhVCCCGOYQfrHv3sZz+L3W6nsLCQ++67j+7u7skNThwWSdqEEEKI49SeMW17pKamUldXh8vlwul0RjEyMRrpHhVCCCEEAA6HgxtuuIHbbrsNv98PQHNzM3/729+iHJkASdqEEEKIY9r+Y9q++c1vHrT+XXfdRXp6OuXl5cyePZtLL72U9PT0SYpWHIzSWkc7hglXVVWlV65cGe0whBBCHMSWLVuYNWtWtMMQYlKN9n2vlFqlta7av660tAkhhBBCxABJ2oQQQgghYoAkbUIIIYQQMUCSNiGEEEKIGCBJmxBCCCFEDJCkTQghhBAiBkjSJoQQQgBer5dFixYxd+5cKioq+P73vw9AV1cXS5cupaysjKVLlw5t9bR8+fKhtc/mzp3LM888M3SuM844gxkzZgwdb2trGzr25JNPUl5eTkVFBddcc81Q+Z133klFRQWzZs3itttuY/8luW699Vbi4+OHnv/sZz8bOv/s2bMxGo10dXUBUFhYSGVlJfPmzRu248EeP//5z1FK0dHRAcCuXbuw2+1D57vpppuG6q5atYrKykpKS0uHxfXOO++wYMECTCYTTz311FD9/c81b948/H4/vb29fPKTnxx6fx988MGh17z88svMmDGD0tJSfvrTnw6VH+i9B7j77rspLS1lxowZvPLKK0Pl+957ZWUlzz333KjH9n1fvvCFL1BUVMS8efOYOXMmP/zhD4eOaa35zne+w/Tp05k1axb33nsvAA899BDp6enD7nPz5s0A1NXVce655zJr1izKy8vZtWvXiH+DI6K1jsoXMA/4CFgLrAQW7XPsW0A1sA04b5/yhcCGwWP3MrjO3KG+Fi5cqIUQQkxtmzdvjur1w+GwdrlcWmut/X6/XrRokf7www/1HXfcoe+++26ttdZ33323vvPOO7XWWg8MDOhAIKC11rqpqUmnp6cPPT/99NP1ihUrRlxj+/btet68ebqrq0trrXVra6vWWuv3339fn3TSSToYDOpgMKiXLFmi33rrraHXrVixQn/uc5/TcXFxo8b+/PPP6zPPPHPoeUFBgW5vbx+1bl1dnT733HN1fn7+UJ3a2lpdUVExav0TTjhBf/DBBzocDuvzzz9fv/jii0OvWbdunf785z+v//GPfwzVP9C5fvKTnwy9d21tbTo5OVn7fD4dDAZ1cXGxrqmp0T6fT8+ZM0dv2rRJa60P+N5v2rRJz5kzR3u9Xr1z505dXFysg8HgiHvfunWrzs/PP+T7ct111w3dg8fj0UVFRXrnzp1aa60feOAB/fnPf16HQiGt9d5/swcffFDffPPNo75np59+un711Ve11lq7XC49MDAwaj2tR/++B1bqUfKZaLa03QP8UGs9D/je4HOUUuXA1UAFcD7wO6WUcfA1vwduBMoGv86f5JiFEEJMEc+uaeTkn75J0Tf/zck/fZNn1zQe1fmUUkMtWYFAgEAggFKK5557juuuuw6A6667jmeffRaIbPlkMkW28PZ6vSilDnmNP/3pT9x8880kJycDkJGRMXRtr9eL3+/H5/MRCATIzMwEIBQKcccdd3DPPfcc8LyPPfYYn/nMZ8Z0n7fffjv33HPPmOJtbm6mr6+PE088EaUU11577dD9FxYWMmfOHAyGsaUSSilcLhdaa/r7+0lJScFkMrF8+XJKS0spLi7GYrFw9dVXD7WOHei9f+6557j66quxWq0UFRVRWlrK8uXLR1yzr69v6L0eK6/XC0BcXBwAv//97/ne9743dJ97/s0OZPPmzQSDQZYuXQpAfHw8DofjsGI4kGgmbRpIGHycCDQNPr4EeFxr7dNa1xJpVVuklMoGErTWHw5moY8Al05yzEIIIaaAZ9c08q2nN9DY40EDjT0evvX0hqNO3EKhEPPmzSMjI4OlS5eyePFiWltbyc7OBiA7O3tYV+fHH39MRUUFlZWV/OEPfxhK4gC++MUvMm/ePH784x8PdSlu376d7du3c/LJJ7NkyRJefvllAE488UTOPPNMsrOzyc7O5rzzzhtaJf83v/kNF1988VAM+3O73bz88stcccUVQ2VKKc4991wWLlzI/fffP1T+/PPPk5uby9y5c0ecp7a2lvnz53P66afz7rvvAtDY2EheXt5Qnby8PBobD/0e19TUDHUZ3nzzzQDccsstbNmyhZycHCorK/n1r3+NwWCgsbGRadOmjXqNA733B3sNwJlnnsns2bM5/fTTueuuuw75vgDccccdzJs3j7y8PK6++uqh5KympoYnnniCqqoqLrjgAnbs2DH0mieeeGJY96jH42H79u0kJSVx+eWX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\n", + "text/plain": [ + "<Figure size 720x576 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "plt.figure(figsize=(10,8))\n", "sns.scatterplot(x=\"TIME_MS\", y=\"SUM_PROXIMITY_KMS\", hue='EPC', data=test_1[test_1.MEASUREMENT == 4])\n", @@ -1029,9 +1114,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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EVauXFnvWNciKSmJlStXIiLs2LGDW2+9FV9fX4YOHUpOTg75+flUVVWRmppKUlKStU9jsU9KSiI1NZXKykry8/PJyclhWCMDTZeUlJCfn0///v2bjMuVnE4nO3fuJCgoyPrNNm7cCEBGRgYDBgwA4OjRo1aL3759+6iqqqJHjx6ICI8++ighISH88Y9//EGxUqrda+zthPb20bdHVXt2TW/RHVwlstBH5Olbvv8s9HGl/0AHDx6U6OhoiYiIkLCwMHn22WdFROTMmTNy7733it1ul3vvvVe+++47ERFZuXKlhIaGSlRUlAwaNEjS0tJEROTSpUsyePBgiYiIkNDQUHniiSesNxtrampk7ty5EhISIuHh4fLBBx+IiOsNyt/85jcycOBACQkJkblz5zZaxivfHn3nnXfkoYceqpeWm5srkZGREhkZKaGhobJw4cJG86r7JuVHH30koaGhEhkZKYMGDZK1a9da2+3evVvCwsIkMDBQ5syZY70xuWvXLunXr594eXnJHXfcIaGhoSLS9NujNTU18rvf/U4CAwMlPDy83tu169evl7vuuksCAwPrlbep2IuILFy4UAIDA2XAgAHWG6215xUeHi5RUVESGhoqb7311lXjkpKSIv7+/hIVFSUhISHy+9//3jrPc+fOyS9+8QsJDw+X2NhYOXDggIiILF682Pr9Y2NjZevWrSIisnXrVgEkIiJCoqKiJCoqStavX9/obyCib4+q9o0m3h410sgzDu1NTEyM7Nmzp7WLodRPIisry3r4vkW+/tD1DNuFQlcL29gF1/U8m1Kt4Zqve6XaEGPMXhFpMFikvoigVEcTOVUraUop1QbpM21KKaWUUm2AVtqUUkoppdoArbQppZRSSrUBWmlTSimllGoDtNKmlFJKKdUGaKVNKXVdKioqGDZsGFFRUYSFhfH0008DcPbsWeLj47nrrruIj4/n3LlzAOzatcuaXzMqKoq0tDQrr7i4OIKDg631decr/fDDDwkNDSUsLIzp06db6fPnzycsLIyQkBCeeOKJBlM1Pf7449aE9uCadqk2//DwcDw8PDh79izgmsw9IiKC6OhoYmIavG3Piy++iDHGGgS4oKCAm2++2crvt7/9rbXt3r17iYiIwG631yvXli1bGDx4MJ6ennz00UfW9lfmFR0dTVVVFRcuXOCBBx6w4vvOO+9Y+6Sn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\n", + "text/plain": [ + "<Figure size 720x576 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "plt.figure(figsize=(10,8))\n", "sns.scatterplot(x=\"TIME_MS\", y=\"SUM_PROXIMITY_KMS\", hue='EPC', data=test_1[test_1.MEASUREMENT == 26])\n", @@ -1040,9 +1138,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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dKOxy1VEREREjoESOhEREZEUp4ROREREJMWNxoWFRURE0pq1lmiwGxuLgeOA2wM42HAY43bjzsjC7dXSPzJwSuhERERGkLWWcEc7WIsT6sadkQmxCF17duFEwgB4c/LInDAJtz+Q5GglVajLVUREZAQ54RBYB5wY4fY2sBBqakgkcwCR9lYine1JjFJSjRI6ERGREeTEYuBYbCyKLycPrCXW3dXnuFgwmIToJFUpoRMRERlBLrcHXC6M20uorQWMwZOVjePPpN6Vw44uD+3eHDwZmckOVVKIxtCJiIiMILffT1dnJ8HuMPtaI0wpiNAc8bB9VxPfvePH7NxRy5TKcm79+r9y+nuLkh2upAi10ImIiIyw1Ws2sG79NnbtqmPvviZqa/dx+xf+i507agHYuaOWL930DbZtqUluoJIylNCJiIiMIGst9fsbaGlqJTsni3AwHH/c3NrruOamVnbX1CYpSkk16nIVEREZQcYYMrMy8Hm9RCNRvD4vufm5uN1uYrFY4ji3201+YX7yApWUohY6ERGRETZ7zgwyszPo7g4SiUYpLMrn2k9c3uuY6z/9UWbPqUpShJJq1EInIiIywqbNqCAQ8HPgQAOxSJSsnCzOWnIGc4+fTcOBRsZPHMf8E+bgD/iTHaqkCCV0IiIiSTBxchkTJ5clOwxJE+pyFREREUlxSuhEREREUpwSOhEREZEUp4ROREREJMUpoRMRERFJcUroRERERFKcEjoRERGRFKeETkRERCTFKaETERERSXFK6ERERERSnBI6ERERkRSnhE5EREQkxSmhExEREUlxSuhEREREUpwSOhEREZEU50l2AKNNJBKhtraWYDCY7FBkCAUCAcrLy/F6vckORUREZMgpoTtMbW0tOTk5VFRUYIxJdjgyBKy1NDY2UltbS2VlZbLDERERGXJK6A4TDAaVzKUZYwxFRUXU19cnO5QxyVpLe1sHxkA0FsPlcgGGrMwMPF79ChIRGQr6bdoPJXPpR59pcmzfWsO+unp8Pg/dXSGikSi7avbwzG//RGFRHh+9bhknn3YCbrc72aGKiKQ0TYpIU263mwULFiRu//mf/5moq6+vx+v18t///d+9zqmoqOCyyy5LPH7ssce45pprRipkSTNtLe1s37KTpsYWOtu7Wf/mZta/tZnv3PEj1r2xkRf//DKfuuYW3lq7IdmhioikPCV0aSojI4O1a9cmbrfeemui7tFHH+XUU0/loYce6nPe6tWrWbdu3UiGKmmqrm4/dXsPkJ+fx/atO5lQPo6nn/hjr2Oi0RhrVr2RpAhFRNKHErox6KGHHuI73/kOtbW17Nmzp1fd5z//eb75zW8mKTJJJ263G7fLBVg8Hjc44A/4+xzn9/tGPjgRkTSjhC5NdXd39+py/b//+z8Adu/ezb59+zj55JNZtmxZovygZcuW8eqrr7J169ZkhC1pZMLE8UycXEZTQzNTqyqoqdnNB5Zd0OuY7Jwsqk9dkJwARUTSiCZFpKmDXa6He/jhh1m2bBkAl19+Oddddx2f/exnE/Vut5svfOELLF++nH/6p38aqXAlDWVmZTDzuOns2rEH47JUn7KAcDjM8rtv45W/vUbxuCLee85pzDxuerJDFRFJeUroxpiHHnqI/fv386tf/QqAvXv3smXLFqqqqhLHXHXVVSxfvpw5c+YkK0xJE+PLShlfVtqn/MIPLElCNCIi6UtdrmPIpk2b6OzsZM+ePdTU1FBTU8MXv/hFHn744V7Heb1ebr75Zu66667kBCoiIiLHRAldmjp8DN2tt97KQw89xKWXXtrruMsuu6zf2a7XXXcd0Wh0pMIVERGRQVCXa5qKxWIDOm7+/PmsX78egJqamkS53+9n7969wxGaiIiIDDG10ImIiIikOCV0IiIiIilOCZ2IiIhIilNCJyIiIpLilNCJiIiIpDgldCIiIiIpTgndKFVRUcG8efNYsGAB1dXVALz++ussWrSIefPmcdFFF9HW1pY4fvny5UyfPp2ZM2fy7LPPAtDV1cWFF17IrFmzmDNnDrfeemvi+F27drF48WJOOOEE5s+fz1NPPZWoe/DBB6mqqqKqqooHH3wwUX7NNddQWVmZWNvu4NZira2tXHTRRRx//PHMmTOHBx54AIjvG7t48WJmz57NnDlzuPvuuxPXampqYsmSJVRVVbFkyRKam5t7vf5du3aRnZ3Nt7/97T7vzcUXX8zcuXMTj2+++eZETDNmzCA/P/9Y324REZHUZq0ds7eFCxfaw61fv75PWTJMmTLF1tfX9yqrrq62zz//vLXW2vvuu8/edttt1lpr161bZ+fPn2+DwaDdvn27nTp1qo1Go7azs9P+6U9/stZaGwqF7BlnnGGfeuopa621119/vf3Rj36UOH/KlCnWWmsbGxttZWWlbWxstE1NTbaystI2NTVZa629+uqr7aOPPton1jvuuMPecsst1lprDxw4YAsKCmwoFLJ79+61a9assdZa29bWZquqquy6deustdZ+4QtfsMuXL7fWWrt8+fLE+QctXbrUfvCDH7Tf+ta3epU//vjj9oorrrBz5szp9337/ve/b6+99tp+60bLZysiIvJuAKvtO+Q0aqEbpFBzIy0b3qDpjdW0bHiDUHPjsD3Xpk2bOPPMMwFYsmQJjz/+OABPPPEEl19+OX6/n8rKSqZPn86qVavIzMxk8eLFAPh8Pk488URqa2sBMMYkWvhaW1uZMGECAM8++yxLliyhsLCQgoIClixZwjPPPHPEuIwxtLe3Y62lo6ODwsJCPB4PZWVlnHjiiQDk5OQwe/Zs9uzZk4j56quvBuDqq69mxYoVieutWLGCqVOn9tlLtqOjg+9+97vcdttt7xjLQw89xBVXXHH0N1NERCSNKKEbhFBzI521O3EiYQCcSJjO2p1DktQZYzj33HNZuHAh9957LwBz587lySefBODRRx9l9+7dAOzZs4dJkyYlzi0vL08kTge1tLTw29/+lnPOOQeAr33ta/zyl7+kvLycCy64gB/84AcDutaXv/xl5s+fz80330woFALgxhtvZMOGDUyYMIF58+Zx991343L1/q9VU1PDa6+9ximnnALA/v37KSsrA6CsrIwDBw4A0NnZyZ133sntt9/e5z35yle+wuc+9zkyMzP7fc927tzJjh07OPvss9/5jRUREUlDSugGoXvfHrBO70LrxMsH6a9//SuvvvoqTz/9NPfccw8vvPAC999/P/fccw8LFy6kvb0dn88Xf0pr+5xvjEncj0ajXHHFFXzmM59h6tSpQLwl65prrqG2tpannnqKq666Csdxjnit5cuXs3HjRl555RWampq48847gXir3oIFC9i7dy9r167lxhtv7DW+r6Ojg8suu4y77rqL3NzcI77u22+/nZtvvpns7Oxe5WvXrmXr1q199qI91MMPP8wHP/hB3G73EZ9DREQk3Wgv10E42DI30PJjcbALtLS0lEsvvZRVq1bx+c9/npUrVwKwefNmfv/73wPxVrSDrXUAtbW1ifMBbrjhBqqqqrjpppsSZffdd1+iK3XRokUEg0EaGhooLy/n+eef73Wts846CyDRoub3+7n22msT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tba2JvZ+ffbZZ1myZAmFhYUUFBSwZMmSxJ6v78QYQ3t7O9ZaOjo6KCwsxOPxUFZWltihIicnh9mzZ7Nnz55EzFdffTUAV199NStWrEhcb8WKFUydOpU5c+YM+L35yle+wi233EIgEBjwOTK8PFnZuLx+jNsDGFz+AJnlFXgys3D5/GSML9cajiIiQyRpCZ219jfW2nJrrd9aO85ae15P+TestVnW2gWH3A701K228S7badbaG3uyVay1QWvth6y10621J1trt4/Ea9j58kZW/+qPdDXF913tampn9a/+OCRJnTGGc889l4ULF3LvvfcCMHfuXJ588kkAHn30UXbv3g3Anj17mDRpUuLc8vLyROJ0UEtLC7/97W8555xzAPja177GL3/5S8rLy7ngggv4wQ9+MKBrffnLX2b+/PncfPPNhEIhIL6d2IYNG5gwYQLz5s3j7rvvxnXYzMWamhpee+01TjnlFCC+vVlZWRkAZWVlie7Tzs5O7rzzTm6//fZ+35drr72WBQsW8B//8R8HW2157bXX2L17N+9///sH9ubKiHC5Pfhy8/Bm5eDOyMDl8+POyiarvJLcaTPJKB0/6H2PRUQkTusFDMKbT/yVWLj3gO5YOMqbT/x10Nf+61//yquvvsrTTz/NPffcwwsvvMD999/PPffcw8KFC2lvb8fni38ZHkxsDnXocjDRaJQrrriCz3zmM0ydOhWI7316zTXXUFtby1NPPcVVV12F4zhHvNby5cvZuHEjr7zyCk1NTdx5Z3y5v2effZYFCxawd+9e1q5dy4033thrfF9HRweXXXYZd911F7m5uUd83bfffjs333wz2dnZfep+9atf8eabb/Liiy/y4osv8otf/ALHcbj55pv5zne+c7S3VJLE5Xbj8fnx+gN4/QHcgYASORGRIaaEbhAOtswNtPxYHOwCLS0t5dJLL2XVqlXMmjWLlStXsmbNGq644gqmTZsGxFvRDrbWAdTW1ibOB7jhhhuoqqripptuSpTdd999LFu2DIBFixYRDAZpaGg44rXKysowxuD3+7n22mtZtWoVAA888ABLly7FGMP06dOprKxk48Z4K2UkEuGyyy7jyiuvZOnSpYnrjhs3jrq6OgDq6uooLY33qr/88svccsstVFRUcNddd/HNb36TH/7whwBMnBhfpSYnJ4ePfOQjrFq1ivb2dt56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X//6V1599VWefvpp7rnnHl544QXuv/9+7rnnHhYuXEh7ezs+nw+Id5sf7tDWkGg0yhVXXMFnPvMZpk6dCsBDDz3ENddcQ21tLU899RRXXXUVjuMc8VrLly9n48aNvPLKKzQ1NXHnnXcC8Va9BQsWsHfvXtauXcuNN97Ya3xfR0cHl112GXfddRe5ublHfN233347N998M9nZ2b3Ko9EotbW1nH766bz66qssWrSIz3/+8wN5K0VERNKeErpB2Lf3wDGVH4uDXaClpaVceumlrFq1ilmzZrFy5UrWrFnDFVdcwbRp04B4K9rB1jqA2traxPkAN9xwA1VVVdx0002Jsvvuu49ly5YBsGjRIoLBIA0NDUe8VllZGcYY/H4/1157LatWrQLggQceYOnSpRhjmD59OpWVlWzcuBGASCTCZZddxpVXXsnSpUsT1x03bhx1dXUA1NXVUVpaCsDLL7/MLbfcQkVFBXfddRff/OY3+eEPf0hRURGZmZlceumlAHzoQx/i1VdfHfT7LCIikg6U0A3C+Amlx1Q+UJ2dnbS3tyfur1y5krlz5ya6JR3H4Rvf+Aaf+MQnALj44ot5+OGHCYVC7Nixgy1btnDyyScDcNttt9Ha2spdd93V6zkmT57Mc889B8Q3rQ8Gg5SUlHDeeeexcuVKmpubaW5uZuXKlZx33nkAiQTMWsuKFSuYO3dun2vt37+fTZs2MXXqVKy1XHfddcyePZvPfvazvZ7/4osvTsygffDBB7nkkksAePHFF6mpqaGmpoabbrqJL33pS9x4440YY7jooot4/vnnAXjuuec47rjjBvU+i4iIpI13mi0xFm6DneX6u9+stCfNXGLnTT4zcTtp5hL7u9+sHPA1+rNt2zY7f/58O3/+fHvcccfZb3zjG9Zaa++66y5bVVVlq6qq7L/927/1mjX4jW98w06dOtXOmDEjMZN19+7dFrCzZs2yxx9/vD3++OPtT3/6U2ttfGbraaedZufPn2+PP/54++yzzyaudd9999lp06bZadOm2fvvvz9RvnjxYjt37lw7Z84ce+WVV9r29nZrrbV79uyxS5YsSdT94he/sNZa++KLL1rAzps3L/H8v//976211jY0NNizzz7bTp8+3Z599tm2sbGxz/tw++2395rlWlNTY9/znvfYefPm2bPPPtvu3LnTWmvtqlWr7MSJE21m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\n", + "text/plain": [ + "<Figure size 720x576 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "plt.figure(figsize=(10,8))\n", "sns.scatterplot(x=\"TIME_MS\", y=\"SUM_PROXIMITY_KMS\", hue='EAN', data=test_1[test_1.MEASUREMENT == 28])\n", @@ -1058,7 +1169,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 24, "metadata": {}, "outputs": [], "source": [ @@ -1070,7 +1181,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -1088,7 +1199,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -1100,11 +1211,11 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ - "def c1(x):\n", + "def c1(x, g, d, c):\n", " outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", " for j in x.StyleColor.unique():\n", " DF = x[(x.StyleColor == j)]\n", @@ -1115,10 +1226,10 @@ " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", " minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)\n", " neighbors = max(2,minimal_epc.astype(int))\n", - " \n", - " if minimal_epc > 70:\n", - " minimal_epc = 70\n", - " neighbors = 70\n", + "\n", + " if minimal_epc > g:\n", + " minimal_epc = g\n", + " neighbors = g\n", " \n", " X_embedded = proba[['TIME_MS','SUM_PROXIMITY_KMS']]\n", " nbrs = NearestNeighbors(n_neighbors=neighbors ).fit(X_embedded)\n", @@ -1131,7 +1242,7 @@ " curve=\"convex\", #parameter from figure\n", " direction=\"decreasing\") #parameter from figure\n", "\n", - " eps = max(6000,kneedle.knee_y/8)\n", + " eps = max(6000,kneedle.knee_y/d)\n", "\n", " db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='auto')\n", " db.fit(X)\n", @@ -1142,7 +1253,7 @@ " if db.labels_[db.labels_ == -1].size != 0 :\n", " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", " for b in a.index:\n", - " if a[b] > 0.5*proba[proba['EPC'] == b].count()[0] :\n", + " if a[b] > c*proba[proba['EPC'] == b].count()[0] :\n", " outliery = outliery.append({'MEASUREMENT': i, 'EAN':proba[proba['EPC'] == b].EAN.iloc[0], \n", " 'StyleColor':j}, ignore_index = True)\n", "\n", @@ -1152,7 +1263,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 25, "metadata": {}, "outputs": [], "source": [ @@ -1178,7 +1289,43 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "# Wybrane StyleColor\n", + "z1 = test[(test.StyleColor == 'RH267-85J') | (test.StyleColor == 'RJ369-87X') | (test.StyleColor =='RM119-93X') \n", + " | (test.StyleColor == 'RS483-99X') | (test.StyleColor == 'SB281-90M')]\n", + "\n", + "z2 = test[(test.StyleColor == 'RV167-MLC') | (test.StyleColor == 'RV462-87X') | (test.StyleColor =='QJ677-33X') \n", + " | (test.StyleColor == 'RH797-00X') | (test.StyleColor == 'RH267-55J')]\n", + "\n", + "z3 = test[(test.StyleColor == 'SL171-99X') | (test.StyleColor == 'SO133-09M') | (test.StyleColor =='RB254-00X') \n", + " | (test.StyleColor == 'SF078-MLC') | (test.StyleColor == 'QY337-00X')]\n", + "\n", + "z4 = test[(test.StyleColor == 'SP095-59X') | (test.StyleColor == 'RN633-00X') | (test.StyleColor =='RH267-59J') \n", + " | (test.StyleColor == 'RV167-87X') | (test.StyleColor == 'RK485-99X')]\n", + "\n", + "z5 = test[(test.StyleColor == 'RJ365-09M') | (test.StyleColor == 'RH797-59X') | (test.StyleColor =='SP090-90X') \n", + " | (test.StyleColor == 'RH797-99X') | (test.StyleColor == 'RJ371-59M')]\n", + "\n", + "z6 = test[(test.StyleColor == 'RV462-99X') | (test.StyleColor == 'RH797-81X') | (test.StyleColor =='QZ555-20X') \n", + " | (test.StyleColor == 'RJ371-53M') | (test.StyleColor == 'RS054-99X')]" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "u = train[(train.StyleColor == 'RV462-99X') | (train.StyleColor == 'RH797-81X') | (train.StyleColor =='SL171-99X')]\n", + "t = test[(test.StyleColor == 'RV462-99X') | (test.StyleColor == 'RH797-81X') | (test.StyleColor =='SL171-99X')]" + ] + }, + { + "cell_type": "code", + "execution_count": 28, "metadata": {}, "outputs": [ { @@ -1208,28 +1355,54 @@ " </tr>\n", " </thead>\n", " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ - "Empty DataFrame\n", - "Columns: [MEASUREMENT, EAN, StyleColor]\n", - "Index: []" + " MEASUREMENT EAN StyleColor\n", + "0 21 5902805820447 RH797-81X\n", + "1 24 5902805820447 RH797-81X\n", + "2 26 5902805820447 RH797-81X\n", + "3 28 5902805820447 RH797-81X" ] }, - "execution_count": 17, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "c1(train1)" + "c2(u)" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 29, "metadata": {}, "outputs": [ { @@ -1259,28 +1432,156 @@ " </tr>\n", " </thead>\n", " <tbody>\n", - " </tbody>\n", - "</table>\n", - "</div>" - ], - "text/plain": [ - "Empty DataFrame\n", - "Columns: [MEASUREMENT, EAN, StyleColor]\n", - "Index: []" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "c1(train2)" - ] - }, + " <tr>\n", + " <th>0</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>29</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " MEASUREMENT EAN StyleColor\n", + "0 38 5902851414515 SL171-99X\n", + "1 29 5902805820447 RH797-81X\n", + "2 32 5902805820447 RH797-81X\n", + "3 34 5902805820447 RH797-81X" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c2(t)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [MEASUREMENT, EAN, StyleColor]\n", + "Index: []" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train1)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>MEASUREMENT</th>\n", + " <th>EAN</th>\n", + " <th>StyleColor</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [MEASUREMENT, EAN, StyleColor]\n", + "Index: []" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c1(train2)" + ] + }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 26, "metadata": {}, "outputs": [ { @@ -1339,7 +1640,7 @@ "2 11 5902690542769 QY337-00X" ] }, - "execution_count": 19, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -1350,7 +1651,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 27, "metadata": {}, "outputs": [ { @@ -1390,7 +1691,7 @@ "Index: []" ] }, - "execution_count": 20, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } @@ -1401,7 +1702,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 28, "metadata": {}, "outputs": [ { @@ -1441,7 +1742,7 @@ "Index: []" ] }, - "execution_count": 21, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -1452,7 +1753,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 74, "metadata": {}, "outputs": [ { @@ -1518,7 +1819,7 @@ "3 28 5902805820447 RH797-81X" ] }, - "execution_count": 22, + "execution_count": 74, "metadata": {}, "output_type": "execute_result" } @@ -1529,7 +1830,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 75, "metadata": {}, "outputs": [ { @@ -1561,43 +1862,19 @@ " <tbody>\n", " <tr>\n", " <th>0</th>\n", - " <td>18</td>\n", - " <td>5902851852638</td>\n", - " <td>SO133-09M</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1</th>\n", - " <td>11</td>\n", - " <td>5902690542745</td>\n", - " <td>QY337-00X</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2</th>\n", - " <td>11</td>\n", - " <td>5902690542769</td>\n", - " <td>QY337-00X</td>\n", - " </tr>\n", - " <tr>\n", - " <th>3</th>\n", - " <td>21</td>\n", - " <td>5902805820447</td>\n", - " <td>RH797-81X</td>\n", - " </tr>\n", - " <tr>\n", - " <th>4</th>\n", - " <td>24</td>\n", + " <td>29</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>5</th>\n", - " <td>26</td>\n", + " <th>1</th>\n", + " <td>32</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>6</th>\n", - " <td>28</td>\n", + " <th>2</th>\n", + " <td>34</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", @@ -1607,27 +1884,23 @@ ], "text/plain": [ " MEASUREMENT EAN StyleColor\n", - "0 18 5902851852638 SO133-09M\n", - "1 11 5902690542745 QY337-00X\n", - "2 11 5902690542769 QY337-00X\n", - "3 21 5902805820447 RH797-81X\n", - "4 24 5902805820447 RH797-81X\n", - "5 26 5902805820447 RH797-81X\n", - "6 28 5902805820447 RH797-81X" + "0 29 5902805820447 RH797-81X\n", + "1 32 5902805820447 RH797-81X\n", + "2 34 5902805820447 RH797-81X" ] }, - "execution_count": 23, + "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "c1(train)" + "c1(z6)" ] }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 68, "metadata": {}, "outputs": [ { @@ -1659,101 +1932,59 @@ " <tbody>\n", " <tr>\n", " <th>0</th>\n", - " <td>38</td>\n", - " <td>5902851414515</td>\n", - " <td>SL171-99X</td>\n", + " <td>11</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", - " <td>42</td>\n", + " <td>11</td>\n", " <td>5902690542769</td>\n", " <td>QY337-00X</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", - " <td>29</td>\n", + " <td>21</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", - " <td>32</td>\n", + " <td>26</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", - " <td>34</td>\n", + " <td>28</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", - " <tr>\n", - " <th>5</th>\n", - " <td>38</td>\n", - " <td>5902851852614</td>\n", - " <td>SO133-09M</td>\n", - " </tr>\n", - " <tr>\n", - " <th>6</th>\n", - " <td>38</td>\n", - " <td>5902851852638</td>\n", - " <td>SO133-09M</td>\n", - " </tr>\n", - " <tr>\n", - " <th>7</th>\n", - " <td>38</td>\n", - " <td>5902851852638</td>\n", - " <td>SO133-09M</td>\n", - " </tr>\n", - " <tr>\n", - " <th>8</th>\n", - " <td>42</td>\n", - " <td>5902851852638</td>\n", - " <td>SO133-09M</td>\n", - " </tr>\n", - " <tr>\n", - " <th>9</th>\n", - " <td>42</td>\n", - " <td>5902851852614</td>\n", - " <td>SO133-09M</td>\n", - " </tr>\n", - " <tr>\n", - " <th>10</th>\n", - " <td>42</td>\n", - " <td>5902851852638</td>\n", - " <td>SO133-09M</td>\n", - " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ - " MEASUREMENT EAN StyleColor\n", - "0 38 5902851414515 SL171-99X\n", - "1 42 5902690542769 QY337-00X\n", - "2 29 5902805820447 RH797-81X\n", - "3 32 5902805820447 RH797-81X\n", - "4 34 5902805820447 RH797-81X\n", - "5 38 5902851852614 SO133-09M\n", - "6 38 5902851852638 SO133-09M\n", - "7 38 5902851852638 SO133-09M\n", - "8 42 5902851852638 SO133-09M\n", - "9 42 5902851852614 SO133-09M\n", - "10 42 5902851852638 SO133-09M" + " MEASUREMENT EAN StyleColor\n", + "0 11 5902690542745 QY337-00X\n", + "1 11 5902690542769 QY337-00X\n", + "2 21 5902805820447 RH797-81X\n", + "3 26 5902805820447 RH797-81X\n", + "4 28 5902805820447 RH797-81X" ] }, - "execution_count": 24, + "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "c1(test)" + "c1(train)" ] }, { "cell_type": "code", - "execution_count": 268, + "execution_count": 67, "metadata": {}, "outputs": [ { @@ -1785,37 +2016,19 @@ " <tbody>\n", " <tr>\n", " <th>0</th>\n", - " <td>22</td>\n", + " <td>29</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", - " <td>25</td>\n", + " <td>32</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", - " <td>24</td>\n", - " <td>5902805820447</td>\n", - " <td>RH797-81X</td>\n", - " </tr>\n", - " <tr>\n", - " <th>3</th>\n", - " <td>26</td>\n", - " <td>5902805820447</td>\n", - " <td>RH797-81X</td>\n", - " </tr>\n", - " <tr>\n", - " <th>4</th>\n", - " <td>30</td>\n", - " <td>5902805820447</td>\n", - " <td>RH797-81X</td>\n", - " </tr>\n", - " <tr>\n", - " <th>5</th>\n", - " <td>28</td>\n", + " <td>34</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", @@ -1825,26 +2038,23 @@ ], "text/plain": [ " MEASUREMENT EAN StyleColor\n", - "0 22 5902805820447 RH797-81X\n", - "1 25 5902805820447 RH797-81X\n", - "2 24 5902805820447 RH797-81X\n", - "3 26 5902805820447 RH797-81X\n", - "4 30 5902805820447 RH797-81X\n", - "5 28 5902805820447 RH797-81X" + "0 29 5902805820447 RH797-81X\n", + "1 32 5902805820447 RH797-81X\n", + "2 34 5902805820447 RH797-81X" ] }, - "execution_count": 268, + "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "c1(caly1,0.7)" + "c1(test)" ] }, { "cell_type": "code", - "execution_count": 225, + "execution_count": 92, "metadata": {}, "outputs": [ { @@ -1876,37 +2086,37 @@ " <tbody>\n", " <tr>\n", " <th>0</th>\n", - " <td>22</td>\n", - " <td>5902805820447</td>\n", - " <td>RH797-81X</td>\n", + " <td>18</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", - " <td>21</td>\n", - " <td>5902805820447</td>\n", - " <td>RH797-81X</td>\n", + " <td>11</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", - " <td>25</td>\n", - " <td>5902805820447</td>\n", - " <td>RH797-81X</td>\n", + " <td>11</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", - " <td>24</td>\n", + " <td>21</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", - " <td>26</td>\n", + " <td>24</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", " <th>5</th>\n", - " <td>30</td>\n", + " <td>26</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", @@ -1922,331 +2132,27 @@ ], "text/plain": [ " MEASUREMENT EAN StyleColor\n", - "0 22 5902805820447 RH797-81X\n", - "1 21 5902805820447 RH797-81X\n", - "2 25 5902805820447 RH797-81X\n", - "3 24 5902805820447 RH797-81X\n", - "4 26 5902805820447 RH797-81X\n", - "5 30 5902805820447 RH797-81X\n", + "0 18 5902851852638 SO133-09M\n", + "1 11 5902690542745 QY337-00X\n", + "2 11 5902690542769 QY337-00X\n", + "3 21 5902805820447 RH797-81X\n", + "4 24 5902805820447 RH797-81X\n", + "5 26 5902805820447 RH797-81X\n", "6 28 5902805820447 RH797-81X" ] }, - "execution_count": 225, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "c1(caly1, 0.5)" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [], - "source": [ - "outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", - "DF = df[(df.StyleColor == 'RH797-81X')]" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [], - "source": [ - "proba = DF[ DF.MEASUREMENT == 38 ]\n", - "X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", - "minimal_epc = np.floor(proba['EAN'].value_counts().min()/2)" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [], - "source": [ - "if minimal_epc > 70:\n", - " minimal_epc = 70\n", - " neighbors = 70" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "3035684754501F8000B5B6E6 140\n", - "3035684754501F4000B5B6E5 135\n", - "3035684754501F0000B5B614 130\n", - "3035684754501F0000B5B632 90\n", - "3035684754501F8000B5B6A5 80\n", - "Name: EPC, dtype: int64" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "proba['EPC'].value_counts()" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "67.0" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "minimal_epc" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [], - "source": [ - "neighbors = max(2,minimal_epc.astype(int))\n", - "X_embedded = proba[['TIME_MS','SUM_PROXIMITY_KMS']]\n", - "nbrs = NearestNeighbors(n_neighbors=neighbors ).fit(X_embedded)\n", - "distances, indices = nbrs.kneighbors(X_embedded)\n", - "distance_desc = sorted(distances[:,neighbors-1], reverse=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [], - "source": [ - "kneedle = KneeLocator(range(1,len(distance_desc)+1), #x values\n", - " distance_desc, # y values\n", - " S=1.0, #parameter suggested from paper\n", - " curve=\"convex\", #parameter from figure\n", - " direction=\"decreasing\") #parameter from figure" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "5000" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "eps = max(5000,kneedle.knee_y/8)\n", - "eps" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": {}, - "outputs": [], - "source": [ - "db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='brute')\n", - "db.fit(X)\n", - "y_pred = db.fit_predict(X)\n", - "clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", - "calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "metadata": {}, - "outputs": [], - "source": [ - "if (db.labels_[db.labels_ == -1].size != 0) :\n", - " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", - " for b in a.index:\n", - " if a[b] > 0.6*proba[proba['EPC'] == b].count()[0] :\n", - " outliery = outliery.append({'MEASUREMENT': 24, 'EAN':proba[proba['EPC'] == b].EAN.iloc[0], \n", - " 'StyleColor':'QY337-00X'}, ignore_index = True)" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "3035684754501F4000B5B6E5 39\n", - "3035684754501F8000B5B6E6 31\n", - "3035684754501F8000B5B6A5 10\n", - "3035684754501F0000B5B632 10\n", - "3035684754501F0000B5B614 6\n", - "Name: EPC, dtype: int64" - ] - }, - "execution_count": 39, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "a" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "<div>\n", - "<style scoped>\n", - " .dataframe tbody tr th:only-of-type {\n", - " vertical-align: middle;\n", - " }\n", - "\n", - " .dataframe tbody tr th {\n", - " vertical-align: top;\n", - " }\n", - "\n", - " .dataframe thead th {\n", - " text-align: right;\n", - " }\n", - "</style>\n", - "<table border=\"1\" class=\"dataframe\">\n", - " <thead>\n", - " <tr style=\"text-align: right;\">\n", - " <th></th>\n", - " <th>MEASUREMENT</th>\n", - " <th>EAN</th>\n", - " <th>StyleColor</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " </tbody>\n", - "</table>\n", - "</div>" - ], - "text/plain": [ - "Empty DataFrame\n", - "Columns: [MEASUREMENT, EAN, StyleColor]\n", - "Index: []" - ] - }, - "execution_count": 40, + "execution_count": 92, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "outliery" + "c1(train,70,6,0.5)" ] }, { "cell_type": "code", - "execution_count": 41, - "metadata": {}, - "outputs": [], - "source": [ - "# Wybrane StyleColor\n", - "z1 = test[(test.StyleColor == 'RH267-85J') | (test.StyleColor == 'RJ369-87X') | (test.StyleColor =='RM119-93X') \n", - " | (test.StyleColor == 'RS483-99X') | (test.StyleColor == 'SB281-90M')]\n", - "\n", - "z2 = test[(test.StyleColor == 'RV167-MLC') | (test.StyleColor == 'RV462-87X') | (test.StyleColor =='QJ677-33X') \n", - " | (test.StyleColor == 'RH797-00X') | (test.StyleColor == 'RH267-55J')]\n", - "\n", - "z3 = test[(test.StyleColor == 'SL171-99X') | (test.StyleColor == 'SO133-09M') | (test.StyleColor =='RB254-00X') \n", - " | (test.StyleColor == 'SF078-MLC') | (test.StyleColor == 'QY337-00X')]\n", - "\n", - "z4 = test[(test.StyleColor == 'SP095-59X') | (test.StyleColor == 'RN633-00X') | (test.StyleColor =='RH267-59J') \n", - " | (test.StyleColor == 'RV167-87X') | (test.StyleColor == 'RK485-99X')]\n", - "\n", - "z5 = test[(test.StyleColor == 'RJ365-09M') | (test.StyleColor == 'RH797-59X') | (test.StyleColor =='SP090-90X') \n", - " | (test.StyleColor == 'RH797-99X') | (test.StyleColor == 'RJ371-59M')]\n", - "\n", - "z6 = test[(test.StyleColor == 'RV462-99X') | (test.StyleColor == 'RH797-81X') | (test.StyleColor =='QZ555-20X') \n", - " | (test.StyleColor == 'RJ371-53M') | (test.StyleColor == 'RS054-99X')]" - ] - }, - { - "cell_type": "code", - "execution_count": 84, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "<div>\n", - "<style scoped>\n", - " .dataframe tbody tr th:only-of-type {\n", - " vertical-align: middle;\n", - " }\n", - "\n", - " .dataframe tbody tr th {\n", - " vertical-align: top;\n", - " }\n", - "\n", - " .dataframe thead th {\n", - " text-align: right;\n", - " }\n", - "</style>\n", - "<table border=\"1\" class=\"dataframe\">\n", - " <thead>\n", - " <tr style=\"text-align: right;\">\n", - " <th></th>\n", - " <th>MEASUREMENT</th>\n", - " <th>EAN</th>\n", - " <th>StyleColor</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " </tbody>\n", - "</table>\n", - "</div>" - ], - "text/plain": [ - "Empty DataFrame\n", - "Columns: [MEASUREMENT, EAN, StyleColor]\n", - "Index: []" - ] - }, - "execution_count": 84, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "c1(z1)" - ] - }, - { - "cell_type": "code", - "execution_count": 183, + "execution_count": 95, "metadata": {}, "outputs": [ { @@ -2278,54 +2184,114 @@ " <tbody>\n", " <tr>\n", " <th>0</th>\n", + " <td>42</td>\n", + " <td>5902805533040</td>\n", + " <td>RH267-85J</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", " <td>38</td>\n", " <td>5902851414515</td>\n", " <td>SL171-99X</td>\n", " </tr>\n", " <tr>\n", - " <th>1</th>\n", + " <th>2</th>\n", + " <td>38</td>\n", + " <td>5902851445700</td>\n", + " <td>RS483-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>35</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>42</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>42</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>42</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", " <td>29</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>2</th>\n", + " <th>8</th>\n", " <td>32</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>3</th>\n", + " <th>9</th>\n", " <td>34</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>4</th>\n", + " <th>10</th>\n", + " <td>42</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>38</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>42</td>\n", + " <td>5902975236956</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", " <td>38</td>\n", " <td>5902851852614</td>\n", " <td>SO133-09M</td>\n", " </tr>\n", " <tr>\n", - " <th>5</th>\n", + " <th>14</th>\n", " <td>38</td>\n", " <td>5902851852638</td>\n", " <td>SO133-09M</td>\n", " </tr>\n", " <tr>\n", - " <th>6</th>\n", + " <th>15</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", " <td>42</td>\n", " <td>5902851852638</td>\n", " <td>SO133-09M</td>\n", " </tr>\n", " <tr>\n", - " <th>7</th>\n", + " <th>17</th>\n", " <td>42</td>\n", " <td>5902851852614</td>\n", " <td>SO133-09M</td>\n", " </tr>\n", " <tr>\n", - " <th>8</th>\n", + " <th>18</th>\n", " <td>42</td>\n", " <td>5902851852638</td>\n", " <td>SO133-09M</td>\n", @@ -2335,30 +2301,40 @@ "</div>" ], "text/plain": [ - " MEASUREMENT EAN StyleColor\n", - "0 38 5902851414515 SL171-99X\n", - "1 29 5902805820447 RH797-81X\n", - "2 32 5902805820447 RH797-81X\n", - "3 34 5902805820447 RH797-81X\n", - "4 38 5902851852614 SO133-09M\n", - "5 38 5902851852638 SO133-09M\n", - "6 42 5902851852638 SO133-09M\n", - "7 42 5902851852614 SO133-09M\n", - "8 42 5902851852638 SO133-09M" + " MEASUREMENT EAN StyleColor\n", + "0 42 5902805533040 RH267-85J\n", + "1 38 5902851414515 SL171-99X\n", + "2 38 5902851445700 RS483-99X\n", + "3 35 5902690542769 QY337-00X\n", + "4 42 5902690542769 QY337-00X\n", + "5 42 5902690542745 QY337-00X\n", + "6 42 5902690542769 QY337-00X\n", + "7 29 5902805820447 RH797-81X\n", + "8 32 5902805820447 RH797-81X\n", + "9 34 5902805820447 RH797-81X\n", + "10 42 5902805820447 RH797-81X\n", + "11 38 5902975236994 SF078-MLC\n", + "12 42 5902975236956 SF078-MLC\n", + "13 38 5902851852614 SO133-09M\n", + "14 38 5902851852638 SO133-09M\n", + "15 38 5902851852638 SO133-09M\n", + "16 42 5902851852638 SO133-09M\n", + "17 42 5902851852614 SO133-09M\n", + "18 42 5902851852638 SO133-09M" ] }, - "execution_count": 183, + "execution_count": 95, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "c1(test)" + "c1(test,70,6,0.4)" ] }, { "cell_type": "code", - "execution_count": 186, + "execution_count": 268, "metadata": {}, "outputs": [ { @@ -2390,57 +2366,39 @@ " <tbody>\n", " <tr>\n", " <th>0</th>\n", - " <td>38</td>\n", - " <td>5902851414515</td>\n", - " <td>SL171-99X</td>\n", + " <td>22</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", - " <td>29</td>\n", + " <td>25</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", - " <td>32</td>\n", + " <td>24</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", - " <td>34</td>\n", + " <td>26</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", - " <td>38</td>\n", - " <td>5902851852614</td>\n", - " <td>SO133-09M</td>\n", + " <td>30</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", " <th>5</th>\n", - " <td>38</td>\n", - " <td>5902851852638</td>\n", - " <td>SO133-09M</td>\n", - " </tr>\n", - " <tr>\n", - " <th>6</th>\n", - " <td>42</td>\n", - " <td>5902851852638</td>\n", - " <td>SO133-09M</td>\n", - " </tr>\n", - " <tr>\n", - " <th>7</th>\n", - " <td>42</td>\n", - " <td>5902851852614</td>\n", - " <td>SO133-09M</td>\n", - " </tr>\n", - " <tr>\n", - " <th>8</th>\n", - " <td>42</td>\n", - " <td>5902851852638</td>\n", - " <td>SO133-09M</td>\n", + " <td>28</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", @@ -2448,29 +2406,26 @@ ], "text/plain": [ " MEASUREMENT EAN StyleColor\n", - "0 38 5902851414515 SL171-99X\n", - "1 29 5902805820447 RH797-81X\n", - "2 32 5902805820447 RH797-81X\n", - "3 34 5902805820447 RH797-81X\n", - "4 38 5902851852614 SO133-09M\n", - "5 38 5902851852638 SO133-09M\n", - "6 42 5902851852638 SO133-09M\n", - "7 42 5902851852614 SO133-09M\n", - "8 42 5902851852638 SO133-09M" + "0 22 5902805820447 RH797-81X\n", + "1 25 5902805820447 RH797-81X\n", + "2 24 5902805820447 RH797-81X\n", + "3 26 5902805820447 RH797-81X\n", + "4 30 5902805820447 RH797-81X\n", + "5 28 5902805820447 RH797-81X" ] }, - "execution_count": 186, + "execution_count": 268, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "c1(test)" + "c1(caly1,0.7)" ] }, { "cell_type": "code", - "execution_count": 277, + "execution_count": 225, "metadata": {}, "outputs": [ { @@ -2498,16 +2453,46 @@ " <th>EAN</th>\n", " <th>StyleColor</th>\n", " </tr>\n", - " </thead>\n", - " <tbody>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>22</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", " <tr>\n", - " <th>0</th>\n", + " <th>1</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>25</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", " <td>24</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>1</th>\n", + " <th>4</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>30</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", " <td>28</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", @@ -2518,23 +2503,27 @@ ], "text/plain": [ " MEASUREMENT EAN StyleColor\n", - "0 24 5902805820447 RH797-81X\n", - "1 28 5902805820447 RH797-81X" + "0 22 5902805820447 RH797-81X\n", + "1 21 5902805820447 RH797-81X\n", + "2 25 5902805820447 RH797-81X\n", + "3 24 5902805820447 RH797-81X\n", + "4 26 5902805820447 RH797-81X\n", + "5 30 5902805820447 RH797-81X\n", + "6 28 5902805820447 RH797-81X" ] }, - "execution_count": 277, + "execution_count": 225, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# dla /5\n", - "c1(train)" + "c1(caly1, 0.5)" ] }, { "cell_type": "code", - "execution_count": 278, + "execution_count": 84, "metadata": {}, "outputs": [ { @@ -2564,47 +2553,28 @@ " </tr>\n", " </thead>\n", " <tbody>\n", - " <tr>\n", - " <th>0</th>\n", - " <td>29</td>\n", - " <td>5902805820447</td>\n", - " <td>RH797-81X</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1</th>\n", - " <td>32</td>\n", - " <td>5902805820447</td>\n", - " <td>RH797-81X</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2</th>\n", - " <td>42</td>\n", - " <td>5902851852638</td>\n", - " <td>SO133-09M</td>\n", - " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ - " MEASUREMENT EAN StyleColor\n", - "0 29 5902805820447 RH797-81X\n", - "1 32 5902805820447 RH797-81X\n", - "2 42 5902851852638 SO133-09M" + "Empty DataFrame\n", + "Columns: [MEASUREMENT, EAN, StyleColor]\n", + "Index: []" ] }, - "execution_count": 278, + "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "c1(test)" + "c1(z1)" ] }, { "cell_type": "code", - "execution_count": 280, + "execution_count": 183, "metadata": {}, "outputs": [ { @@ -2636,39 +2606,87 @@ " <tbody>\n", " <tr>\n", " <th>0</th>\n", - " <td>24</td>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>29</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>1</th>\n", - " <td>28</td>\n", + " <th>2</th>\n", + " <td>32</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>34</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>38</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>42</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " MEASUREMENT EAN StyleColor\n", - "0 24 5902805820447 RH797-81X\n", - "1 28 5902805820447 RH797-81X" + "0 38 5902851414515 SL171-99X\n", + "1 29 5902805820447 RH797-81X\n", + "2 32 5902805820447 RH797-81X\n", + "3 34 5902805820447 RH797-81X\n", + "4 38 5902851852614 SO133-09M\n", + "5 38 5902851852638 SO133-09M\n", + "6 42 5902851852638 SO133-09M\n", + "7 42 5902851852614 SO133-09M\n", + "8 42 5902851852638 SO133-09M" ] }, - "execution_count": 280, + "execution_count": 183, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# dla /6\n", - "c1(train)" + "c1(test)" ] }, { "cell_type": "code", - "execution_count": 281, + "execution_count": 186, "metadata": {}, "outputs": [ { @@ -2700,24 +2718,54 @@ " <tbody>\n", " <tr>\n", " <th>0</th>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", " <td>29</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>1</th>\n", + " <th>2</th>\n", " <td>32</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>2</th>\n", + " <th>3</th>\n", " <td>34</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>3</th>\n", + " <th>4</th>\n", + " <td>38</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>42</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", " <td>42</td>\n", " <td>5902851852638</td>\n", " <td>SO133-09M</td>\n", @@ -2728,13 +2776,18 @@ ], "text/plain": [ " MEASUREMENT EAN StyleColor\n", - "0 29 5902805820447 RH797-81X\n", - "1 32 5902805820447 RH797-81X\n", - "2 34 5902805820447 RH797-81X\n", - "3 42 5902851852638 SO133-09M" + "0 38 5902851414515 SL171-99X\n", + "1 29 5902805820447 RH797-81X\n", + "2 32 5902805820447 RH797-81X\n", + "3 34 5902805820447 RH797-81X\n", + "4 38 5902851852614 SO133-09M\n", + "5 38 5902851852638 SO133-09M\n", + "6 42 5902851852638 SO133-09M\n", + "7 42 5902851852614 SO133-09M\n", + "8 42 5902851852638 SO133-09M" ] }, - "execution_count": 281, + "execution_count": 186, "metadata": {}, "output_type": "execute_result" } @@ -2745,7 +2798,59 @@ }, { "cell_type": "code", - "execution_count": 283, + "execution_count": 69, + "metadata": {}, + "outputs": [], + "source": [ + "def c2(x):\n", + " outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", + " for j in x.StyleColor.unique():\n", + " DF = x[(x.StyleColor == j)]\n", + " measurements = DF.MEASUREMENT.unique()\n", + "\n", + " for i in measurements:\n", + " proba = DF[ DF.MEASUREMENT == i ]\n", + " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", + " minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)\n", + " neighbors = max(20,minimal_epc.astype(int))\n", + " \n", + " if minimal_epc > 70:\n", + " minimal_epc = 70\n", + " neighbors = 70\n", + " \n", + " X_embedded = proba[['TIME_MS','SUM_PROXIMITY_KMS']]\n", + " nbrs = NearestNeighbors(n_neighbors=neighbors ).fit(X_embedded)\n", + " distances, indices = nbrs.kneighbors(X_embedded)\n", + " distance_desc = sorted(distances[:,neighbors-1], reverse=True)\n", + "\n", + " kneedle = KneeLocator(range(1,len(distance_desc)+1), #x values\n", + " distance_desc, # y values\n", + " S=1.0, #parameter suggested from paper\n", + " curve=\"convex\", #parameter from figure\n", + " direction=\"decreasing\") #parameter from figure\n", + "\n", + " eps = max(5000,kneedle.knee_y/5)\n", + "\n", + " db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='auto')\n", + " db.fit(X)\n", + " y_pred = db.fit_predict(X)\n", + " clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", + " calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", + "\n", + " if db.labels_[db.labels_ == -1].size != 0 :\n", + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > 0.3*proba[proba['EPC'] == b].count()[0] :\n", + " outliery = outliery.append({'MEASUREMENT': i, 'EAN':proba[proba['EPC'] == b].EAN.iloc[0], \n", + " 'StyleColor':j}, ignore_index = True)\n", + "\n", + "\n", + " return(outliery)" + ] + }, + { + "cell_type": "code", + "execution_count": 70, "metadata": {}, "outputs": [ { @@ -2777,24 +2882,48 @@ " <tbody>\n", " <tr>\n", " <th>0</th>\n", - " <td>11</td>\n", - " <td>5902690542745</td>\n", - " <td>QY337-00X</td>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>24</td>\n", + " <td>5902805820461</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>24</td>\n", + " <td>5902805820461</td>\n", + " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>1</th>\n", - " <td>11</td>\n", - " <td>5902690542769</td>\n", - " <td>QY337-00X</td>\n", + " <th>5</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>2</th>\n", - " <td>24</td>\n", + " <th>6</th>\n", + " <td>27</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>3</th>\n", + " <th>7</th>\n", " <td>28</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", @@ -2805,26 +2934,28 @@ ], "text/plain": [ " MEASUREMENT EAN StyleColor\n", - "0 11 5902690542745 QY337-00X\n", - "1 11 5902690542769 QY337-00X\n", - "2 24 5902805820447 RH797-81X\n", - "3 28 5902805820447 RH797-81X" + "0 21 5902805820447 RH797-81X\n", + "1 24 5902805820447 RH797-81X\n", + "2 24 5902805820461 RH797-81X\n", + "3 24 5902805820447 RH797-81X\n", + "4 24 5902805820461 RH797-81X\n", + "5 26 5902805820447 RH797-81X\n", + "6 27 5902805820447 RH797-81X\n", + "7 28 5902805820447 RH797-81X" ] }, - "execution_count": 283, + "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# eps min 5000 / 5\n", - "# \n", - "c1(train)" + "c2(train6)" ] }, { "cell_type": "code", - "execution_count": 284, + "execution_count": 71, "metadata": {}, "outputs": [ { @@ -2856,51 +2987,27 @@ " <tbody>\n", " <tr>\n", " <th>0</th>\n", - " <td>38</td>\n", - " <td>5902851414515</td>\n", - " <td>SL171-99X</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1</th>\n", - " <td>42</td>\n", - " <td>5902690542769</td>\n", - " <td>QY337-00X</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2</th>\n", " <td>29</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>3</th>\n", + " <th>1</th>\n", " <td>32</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>4</th>\n", + " <th>2</th>\n", " <td>34</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>5</th>\n", - " <td>38</td>\n", - " <td>5902851852614</td>\n", - " <td>SO133-09M</td>\n", - " </tr>\n", - " <tr>\n", - " <th>6</th>\n", - " <td>38</td>\n", - " <td>5902851852638</td>\n", - " <td>SO133-09M</td>\n", - " </tr>\n", - " <tr>\n", - " <th>7</th>\n", + " <th>3</th>\n", " <td>42</td>\n", - " <td>5902851852638</td>\n", - " <td>SO133-09M</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", @@ -2908,29 +3015,24 @@ ], "text/plain": [ " MEASUREMENT EAN StyleColor\n", - "0 38 5902851414515 SL171-99X\n", - "1 42 5902690542769 QY337-00X\n", - "2 29 5902805820447 RH797-81X\n", - "3 32 5902805820447 RH797-81X\n", - "4 34 5902805820447 RH797-81X\n", - "5 38 5902851852614 SO133-09M\n", - "6 38 5902851852638 SO133-09M\n", - "7 42 5902851852638 SO133-09M" + "0 29 5902805820447 RH797-81X\n", + "1 32 5902805820447 RH797-81X\n", + "2 34 5902805820447 RH797-81X\n", + "3 42 5902805820447 RH797-81X" ] }, - "execution_count": 284, + "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# c=0.6\n", - "c1(test)" + "c2(z6)" ] }, { "cell_type": "code", - "execution_count": 317, + "execution_count": 45, "metadata": {}, "outputs": [ { @@ -2962,24 +3064,42 @@ " <tbody>\n", " <tr>\n", " <th>0</th>\n", + " <td>18</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", " <td>11</td>\n", " <td>5902690542745</td>\n", " <td>QY337-00X</td>\n", " </tr>\n", " <tr>\n", - " <th>1</th>\n", + " <th>2</th>\n", " <td>11</td>\n", " <td>5902690542769</td>\n", " <td>QY337-00X</td>\n", " </tr>\n", " <tr>\n", - " <th>2</th>\n", + " <th>3</th>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", " <td>24</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>3</th>\n", + " <th>5</th>\n", + " <td>26</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", " <td>28</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", @@ -2990,24 +3110,27 @@ ], "text/plain": [ " MEASUREMENT EAN StyleColor\n", - "0 11 5902690542745 QY337-00X\n", - "1 11 5902690542769 QY337-00X\n", - "2 24 5902805820447 RH797-81X\n", - "3 28 5902805820447 RH797-81X" + "0 18 5902851852638 SO133-09M\n", + "1 11 5902690542745 QY337-00X\n", + "2 11 5902690542769 QY337-00X\n", + "3 21 5902805820447 RH797-81X\n", + "4 24 5902805820447 RH797-81X\n", + "5 26 5902805820447 RH797-81X\n", + "6 28 5902805820447 RH797-81X" ] }, - "execution_count": 317, + "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "c1(train)" + "c2(train)" ] }, { "cell_type": "code", - "execution_count": 318, + "execution_count": 46, "metadata": {}, "outputs": [ { @@ -3045,24 +3168,66 @@ " </tr>\n", " <tr>\n", " <th>1</th>\n", + " <td>42</td>\n", + " <td>5902690542769</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>42</td>\n", + " <td>5902690542745</td>\n", + " <td>QY337-00X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", " <td>29</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>2</th>\n", + " <th>4</th>\n", " <td>32</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>3</th>\n", + " <th>5</th>\n", " <td>34</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>4</th>\n", + " <th>6</th>\n", + " <td>38</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>38</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>42</td>\n", + " <td>5902851852638</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>42</td>\n", + " <td>5902851852614</td>\n", + " <td>SO133-09M</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", " <td>42</td>\n", " <td>5902851852638</td>\n", " <td>SO133-09M</td>\n", @@ -3072,31 +3237,39 @@ "</div>" ], "text/plain": [ - " MEASUREMENT EAN StyleColor\n", - "0 38 5902851414515 SL171-99X\n", - "1 29 5902805820447 RH797-81X\n", - "2 32 5902805820447 RH797-81X\n", - "3 34 5902805820447 RH797-81X\n", - "4 42 5902851852638 SO133-09M" + " MEASUREMENT EAN StyleColor\n", + "0 38 5902851414515 SL171-99X\n", + "1 42 5902690542769 QY337-00X\n", + "2 42 5902690542745 QY337-00X\n", + "3 29 5902805820447 RH797-81X\n", + "4 32 5902805820447 RH797-81X\n", + "5 34 5902805820447 RH797-81X\n", + "6 38 5902851852614 SO133-09M\n", + "7 38 5902851852638 SO133-09M\n", + "8 38 5902851852638 SO133-09M\n", + "9 42 5902851852638 SO133-09M\n", + "10 42 5902851852614 SO133-09M\n", + "11 42 5902851852638 SO133-09M" ] }, - "execution_count": 318, + "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "c1(test)" + "c2(test)" ] }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 76, "metadata": {}, "outputs": [], "source": [ - "def c2(x):\n", - " outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", + "# najlepszy model\n", + "def c6(x):\n", + " outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EPC', 'StyleColor'])\n", " for j in x.StyleColor.unique():\n", " DF = x[(x.StyleColor == j)]\n", " measurements = DF.MEASUREMENT.unique()\n", @@ -3105,7 +3278,7 @@ " proba = DF[ DF.MEASUREMENT == i ]\n", " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", " minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)\n", - " neighbors = max(2,minimal_epc.astype(int))\n", + " neighbors = max(10,minimal_epc.astype(int))\n", " \n", " if minimal_epc > 70:\n", " minimal_epc = 70\n", @@ -3122,7 +3295,7 @@ " curve=\"convex\", #parameter from figure\n", " direction=\"decreasing\") #parameter from figure\n", "\n", - " eps = max(5000,kneedle.knee_y/5)\n", + " eps = max(2000,kneedle.knee_y/3)\n", "\n", " db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='auto')\n", " db.fit(X)\n", @@ -3131,96 +3304,29 @@ " calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", "\n", " if db.labels_[db.labels_ == -1].size != 0 :\n", - " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", - " for b in a.index:\n", - " if a[b] > 0.5*proba[proba['EPC'] == b].count()[0] :\n", - " outliery = outliery.append({'MEASUREMENT': i, 'EAN':proba[proba['EPC'] == b].EAN.iloc[0], \n", - " 'StyleColor':j}, ignore_index = True)\n", - "\n", - "\n", - " return(outliery)" - ] - }, - { - "cell_type": "code", - "execution_count": 43, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "<div>\n", - "<style scoped>\n", - " .dataframe tbody tr th:only-of-type {\n", - " vertical-align: middle;\n", - " }\n", - "\n", - " .dataframe tbody tr th {\n", - " vertical-align: top;\n", - " }\n", - "\n", - " .dataframe thead th {\n", - " text-align: right;\n", - " }\n", - "</style>\n", - "<table border=\"1\" class=\"dataframe\">\n", - " <thead>\n", - " <tr style=\"text-align: right;\">\n", - " <th></th>\n", - " <th>MEASUREMENT</th>\n", - " <th>EAN</th>\n", - " <th>StyleColor</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>0</th>\n", - " <td>21</td>\n", - " <td>5902805820447</td>\n", - " <td>RH797-81X</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1</th>\n", - " <td>24</td>\n", - " <td>5902805820447</td>\n", - " <td>RH797-81X</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2</th>\n", - " <td>26</td>\n", - " <td>5902805820447</td>\n", - " <td>RH797-81X</td>\n", - " </tr>\n", - " <tr>\n", - " <th>3</th>\n", - " <td>28</td>\n", - " <td>5902805820447</td>\n", - " <td>RH797-81X</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "</div>" - ], - "text/plain": [ - " MEASUREMENT EAN StyleColor\n", - "0 21 5902805820447 RH797-81X\n", - "1 24 5902805820447 RH797-81X\n", - "2 26 5902805820447 RH797-81X\n", - "3 28 5902805820447 RH797-81X" - ] - }, - "execution_count": 43, - "metadata": {}, - "output_type": "execute_result" - } - ], + " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", + " for b in a.index:\n", + " if a[b] > 0.4*proba[proba['EPC'] == b].count()[0] :\n", + " outliery = outliery.append({'MEASUREMENT': i, 'EPC':proba[proba['EPC'] == b].EPC.iloc[0], \n", + " 'StyleColor':j}, ignore_index = True)\n", + "\n", + "\n", + " return(outliery)" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [], "source": [ - "c2(train6)" + "train7 = train[(train.StyleColor == 'SF078-MLC') | (train.StyleColor == 'RH797-81X') | (train.StyleColor == 'SL171-99X')]\n", + "test7 = test[(test.StyleColor == 'SF078-MLC') | (test.StyleColor == 'RH797-81X') | (test.StyleColor == 'SL171-99X')]" ] }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 123, "metadata": {}, "outputs": [ { @@ -3244,53 +3350,166 @@ " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", - " <th>MEASUREMENT</th>\n", + " <th></th>\n", + " <th>SUM_PROXIMITY_KMS</th>\n", + " <th>TIME_MS</th>\n", " <th>EAN</th>\n", + " <th>MEASUREMENT</th>\n", + " </tr>\n", + " <tr>\n", " <th>StyleColor</th>\n", + " <th>EPC</th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", - " <th>0</th>\n", - " <td>29</td>\n", - " <td>5902805820447</td>\n", - " <td>RH797-81X</td>\n", + " <th rowspan=\"5\" valign=\"top\">RH797-81X</th>\n", + " <th>3035684754501F0000B5B614</th>\n", + " <td>1699</td>\n", + " <td>1699</td>\n", + " <td>1699</td>\n", + " <td>1699</td>\n", " </tr>\n", " <tr>\n", - " <th>1</th>\n", - " <td>32</td>\n", - " <td>5902805820447</td>\n", - " <td>RH797-81X</td>\n", + " <th>3035684754501F0000B5B632</th>\n", + " <td>1393</td>\n", + " <td>1393</td>\n", + " <td>1393</td>\n", + " <td>1393</td>\n", " </tr>\n", " <tr>\n", - " <th>2</th>\n", - " <td>34</td>\n", - " <td>5902805820447</td>\n", - " <td>RH797-81X</td>\n", + " <th>3035684754501F4000B5B6E5</th>\n", + " <td>1646</td>\n", + " <td>1646</td>\n", + " <td>1646</td>\n", + " <td>1646</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3035684754501F8000B5B6A5</th>\n", + " <td>1329</td>\n", + " <td>1329</td>\n", + " <td>1329</td>\n", + " <td>1329</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3035684754501F8000B5B6E6</th>\n", + " <td>1625</td>\n", + " <td>1625</td>\n", + " <td>1625</td>\n", + " <td>1625</td>\n", + " </tr>\n", + " <tr>\n", + " <th rowspan=\"4\" valign=\"top\">SF078-MLC</th>\n", + " <th>30356849FC1723C000B5B1A3</th>\n", + " <td>934</td>\n", + " <td>934</td>\n", + " <td>934</td>\n", + " <td>934</td>\n", + " </tr>\n", + " <tr>\n", + " <th>30356849FC17244000B59A90</th>\n", + " <td>1187</td>\n", + " <td>1187</td>\n", + " <td>1187</td>\n", + " <td>1187</td>\n", + " </tr>\n", + " <tr>\n", + " <th>30356849FC1724C000B599A7</th>\n", + " <td>1108</td>\n", + " <td>1108</td>\n", + " <td>1108</td>\n", + " <td>1108</td>\n", + " </tr>\n", + " <tr>\n", + " <th>30356849FC1724C000B59A42</th>\n", + " <td>1179</td>\n", + " <td>1179</td>\n", + " <td>1179</td>\n", + " <td>1179</td>\n", + " </tr>\n", + " <tr>\n", + " <th rowspan=\"4\" valign=\"top\">SL171-99X</th>\n", + " <th>303568480C287A8000B5BA63</th>\n", + " <td>2191</td>\n", + " <td>2191</td>\n", + " <td>2191</td>\n", + " <td>2191</td>\n", + " </tr>\n", + " <tr>\n", + " <th>303568480C287A8000B5BABD</th>\n", + " <td>785</td>\n", + " <td>785</td>\n", + " <td>785</td>\n", + " <td>785</td>\n", + " </tr>\n", + " <tr>\n", + " <th>303568480C287A8000B5BADA</th>\n", + " <td>1241</td>\n", + " <td>1241</td>\n", + " <td>1241</td>\n", + " <td>1241</td>\n", + " </tr>\n", + " <tr>\n", + " <th>303568480C287AC000B5BAD5</th>\n", + " <td>1152</td>\n", + " <td>1152</td>\n", + " <td>1152</td>\n", + " <td>1152</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ - " MEASUREMENT EAN StyleColor\n", - "0 29 5902805820447 RH797-81X\n", - "1 32 5902805820447 RH797-81X\n", - "2 34 5902805820447 RH797-81X" + " SUM_PROXIMITY_KMS TIME_MS EAN \\\n", + "StyleColor EPC \n", + "RH797-81X 3035684754501F0000B5B614 1699 1699 1699 \n", + " 3035684754501F0000B5B632 1393 1393 1393 \n", + " 3035684754501F4000B5B6E5 1646 1646 1646 \n", + " 3035684754501F8000B5B6A5 1329 1329 1329 \n", + " 3035684754501F8000B5B6E6 1625 1625 1625 \n", + "SF078-MLC 30356849FC1723C000B5B1A3 934 934 934 \n", + " 30356849FC17244000B59A90 1187 1187 1187 \n", + " 30356849FC1724C000B599A7 1108 1108 1108 \n", + " 30356849FC1724C000B59A42 1179 1179 1179 \n", + "SL171-99X 303568480C287A8000B5BA63 2191 2191 2191 \n", + " 303568480C287A8000B5BABD 785 785 785 \n", + " 303568480C287A8000B5BADA 1241 1241 1241 \n", + " 303568480C287AC000B5BAD5 1152 1152 1152 \n", + "\n", + " MEASUREMENT \n", + "StyleColor EPC \n", + "RH797-81X 3035684754501F0000B5B614 1699 \n", + " 3035684754501F0000B5B632 1393 \n", + " 3035684754501F4000B5B6E5 1646 \n", + " 3035684754501F8000B5B6A5 1329 \n", + " 3035684754501F8000B5B6E6 1625 \n", + "SF078-MLC 30356849FC1723C000B5B1A3 934 \n", + " 30356849FC17244000B59A90 1187 \n", + " 30356849FC1724C000B599A7 1108 \n", + " 30356849FC1724C000B59A42 1179 \n", + "SL171-99X 303568480C287A8000B5BA63 2191 \n", + " 303568480C287A8000B5BABD 785 \n", + " 303568480C287A8000B5BADA 1241 \n", + " 303568480C287AC000B5BAD5 1152 " ] }, - "execution_count": 44, + "execution_count": 123, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "c2(z6)" + "train7.groupby(['StyleColor','EPC']).count()" ] }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 77, "metadata": {}, "outputs": [ { @@ -3315,51 +3534,45 @@ " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>MEASUREMENT</th>\n", - " <th>EAN</th>\n", + " <th>EPC</th>\n", " <th>StyleColor</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", - " <td>18</td>\n", - " <td>5902851852638</td>\n", - " <td>SO133-09M</td>\n", + " <td>27</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", - " <td>11</td>\n", - " <td>5902690542745</td>\n", - " <td>QY337-00X</td>\n", + " <td>28</td>\n", + " <td>30356849FC1724C000B59A42</td>\n", + " <td>SF078-MLC</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", - " <td>11</td>\n", - " <td>5902690542769</td>\n", - " <td>QY337-00X</td>\n", - " </tr>\n", - " <tr>\n", - " <th>3</th>\n", " <td>21</td>\n", - " <td>5902805820447</td>\n", + " <td>3035684754501F0000B5B614</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>4</th>\n", + " <th>3</th>\n", " <td>24</td>\n", - " <td>5902805820447</td>\n", + " <td>3035684754501F0000B5B614</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>5</th>\n", - " <td>26</td>\n", - " <td>5902805820447</td>\n", + " <th>4</th>\n", + " <td>27</td>\n", + " <td>3035684754501F0000B5B614</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>6</th>\n", + " <th>5</th>\n", " <td>28</td>\n", - " <td>5902805820447</td>\n", + " <td>3035684754501F0000B5B614</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " </tbody>\n", @@ -3367,28 +3580,27 @@ "</div>" ], "text/plain": [ - " MEASUREMENT EAN StyleColor\n", - "0 18 5902851852638 SO133-09M\n", - "1 11 5902690542745 QY337-00X\n", - "2 11 5902690542769 QY337-00X\n", - "3 21 5902805820447 RH797-81X\n", - "4 24 5902805820447 RH797-81X\n", - "5 26 5902805820447 RH797-81X\n", - "6 28 5902805820447 RH797-81X" + " MEASUREMENT EPC StyleColor\n", + "0 27 303568480C287AC000B5BAD5 SL171-99X\n", + "1 28 30356849FC1724C000B59A42 SF078-MLC\n", + "2 21 3035684754501F0000B5B614 RH797-81X\n", + "3 24 3035684754501F0000B5B614 RH797-81X\n", + "4 27 3035684754501F0000B5B614 RH797-81X\n", + "5 28 3035684754501F0000B5B614 RH797-81X" ] }, - "execution_count": 45, + "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "c2(train)" + "c6(train7)" ] }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 79, "metadata": {}, "outputs": [ { @@ -3413,167 +3625,108 @@ " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>MEASUREMENT</th>\n", - " <th>EAN</th>\n", + " <th>EPC</th>\n", " <th>StyleColor</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", - " <td>38</td>\n", - " <td>5902851414515</td>\n", + " <td>32</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", " <td>SL171-99X</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", - " <td>42</td>\n", - " <td>5902690542769</td>\n", - " <td>QY337-00X</td>\n", + " <td>35</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", - " <td>42</td>\n", - " <td>5902690542745</td>\n", - " <td>QY337-00X</td>\n", + " <td>38</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", - " <td>29</td>\n", - " <td>5902805820447</td>\n", - " <td>RH797-81X</td>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BA63</td>\n", + " <td>SL171-99X</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", - " <td>32</td>\n", - " <td>5902805820447</td>\n", - " <td>RH797-81X</td>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BADA</td>\n", + " <td>SL171-99X</td>\n", " </tr>\n", " <tr>\n", " <th>5</th>\n", - " <td>34</td>\n", - " <td>5902805820447</td>\n", - " <td>RH797-81X</td>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BABD</td>\n", + " <td>SL171-99X</td>\n", " </tr>\n", " <tr>\n", " <th>6</th>\n", - " <td>38</td>\n", - " <td>5902851852614</td>\n", - " <td>SO133-09M</td>\n", + " <td>41</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", " </tr>\n", " <tr>\n", " <th>7</th>\n", - " <td>38</td>\n", - " <td>5902851852638</td>\n", - " <td>SO133-09M</td>\n", + " <td>42</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", " </tr>\n", " <tr>\n", " <th>8</th>\n", - " <td>38</td>\n", - " <td>5902851852638</td>\n", - " <td>SO133-09M</td>\n", + " <td>42</td>\n", + " <td>303568480C287A8000B5BABD</td>\n", + " <td>SL171-99X</td>\n", " </tr>\n", " <tr>\n", " <th>9</th>\n", - " <td>42</td>\n", - " <td>5902851852638</td>\n", - " <td>SO133-09M</td>\n", + " <td>29</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", " <th>10</th>\n", - " <td>42</td>\n", - " <td>5902851852614</td>\n", - " <td>SO133-09M</td>\n", - " </tr>\n", - " <tr>\n", - " <th>11</th>\n", - " <td>42</td>\n", - " <td>5902851852638</td>\n", - " <td>SO133-09M</td>\n", + " <td>32</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ - " MEASUREMENT EAN StyleColor\n", - "0 38 5902851414515 SL171-99X\n", - "1 42 5902690542769 QY337-00X\n", - "2 42 5902690542745 QY337-00X\n", - "3 29 5902805820447 RH797-81X\n", - "4 32 5902805820447 RH797-81X\n", - "5 34 5902805820447 RH797-81X\n", - "6 38 5902851852614 SO133-09M\n", - "7 38 5902851852638 SO133-09M\n", - "8 38 5902851852638 SO133-09M\n", - "9 42 5902851852638 SO133-09M\n", - "10 42 5902851852614 SO133-09M\n", - "11 42 5902851852638 SO133-09M" + " MEASUREMENT EPC StyleColor\n", + "0 32 303568480C287AC000B5BAD5 SL171-99X\n", + "1 35 303568480C287AC000B5BAD5 SL171-99X\n", + "2 38 303568480C287AC000B5BAD5 SL171-99X\n", + "3 38 303568480C287A8000B5BA63 SL171-99X\n", + "4 38 303568480C287A8000B5BADA SL171-99X\n", + "5 38 303568480C287A8000B5BABD SL171-99X\n", + "6 41 303568480C287AC000B5BAD5 SL171-99X\n", + "7 42 303568480C287AC000B5BAD5 SL171-99X\n", + "8 42 303568480C287A8000B5BABD SL171-99X\n", + "9 29 3035684754501F0000B5B614 RH797-81X\n", + "10 32 3035684754501F0000B5B614 RH797-81X" ] }, - "execution_count": 46, + "execution_count": 79, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "c2(test)" - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "metadata": {}, - "outputs": [], - "source": [ - "def c3(x):\n", - " outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", - " for j in x.StyleColor.unique():\n", - " DF = x[(x.StyleColor == j)]\n", - " measurements = DF.MEASUREMENT.unique()\n", - "\n", - " for i in measurements:\n", - " proba = DF[ DF.MEASUREMENT == i ]\n", - " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", - " minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)\n", - " neighbors = max(2,minimal_epc.astype(int))\n", - " \n", - " if minimal_epc > 70:\n", - " minimal_epc = 70\n", - " neighbors = 70\n", - " \n", - " X_embedded = proba[['TIME_MS','SUM_PROXIMITY_KMS']]\n", - " nbrs = NearestNeighbors(n_neighbors=neighbors ).fit(X_embedded)\n", - " distances, indices = nbrs.kneighbors(X_embedded)\n", - " distance_desc = sorted(distances[:,neighbors-1], reverse=True)\n", - "\n", - " kneedle = KneeLocator(range(1,len(distance_desc)+1), #x values\n", - " distance_desc, # y values\n", - " S=1.0, #parameter suggested from paper\n", - " curve=\"convex\", #parameter from figure\n", - " direction=\"decreasing\") #parameter from figure\n", - "\n", - " eps = max(5000,kneedle.knee_y/4)\n", - "\n", - " db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='kd_tree')\n", - " db.fit(X)\n", - " y_pred = db.fit_predict(X)\n", - " clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", - " calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", - "\n", - " if db.labels_[db.labels_ == -1].size != 0 :\n", - " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", - " for b in a.index:\n", - " if a[b] > 0.5*proba[proba['EPC'] == b].count()[0] :\n", - " outliery = outliery.append({'MEASUREMENT': i, 'EAN':proba[proba['EPC'] == b].EAN.iloc[0], \n", - " 'StyleColor':j}, ignore_index = True)\n", - "\n", - "\n", - " return(outliery)" + "c6(test7)" ] }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 81, "metadata": {}, "outputs": [ { @@ -3605,36 +3758,60 @@ " <tbody>\n", " <tr>\n", " <th>0</th>\n", - " <td>18</td>\n", - " <td>5902851852638</td>\n", - " <td>SO133-09M</td>\n", + " <td>23</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", - " <td>11</td>\n", - " <td>5902690542745</td>\n", - " <td>QY337-00X</td>\n", + " <td>24</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", - " <td>11</td>\n", - " <td>5902690542769</td>\n", - " <td>QY337-00X</td>\n", + " <td>21</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>24</td>\n", + " <td>5902805820461</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>24</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>3</th>\n", - " <td>21</td>\n", + " <th>6</th>\n", + " <td>24</td>\n", + " <td>5902805820461</td>\n", + " <td>RH797-81X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>26</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>4</th>\n", - " <td>24</td>\n", + " <th>8</th>\n", + " <td>27</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>5</th>\n", + " <th>9</th>\n", " <td>28</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", @@ -3645,26 +3822,30 @@ ], "text/plain": [ " MEASUREMENT EAN StyleColor\n", - "0 18 5902851852638 SO133-09M\n", - "1 11 5902690542745 QY337-00X\n", - "2 11 5902690542769 QY337-00X\n", - "3 21 5902805820447 RH797-81X\n", - "4 24 5902805820447 RH797-81X\n", - "5 28 5902805820447 RH797-81X" + "0 23 5902975236994 SF078-MLC\n", + "1 24 5902975236994 SF078-MLC\n", + "2 21 5902805820447 RH797-81X\n", + "3 24 5902805820447 RH797-81X\n", + "4 24 5902805820461 RH797-81X\n", + "5 24 5902805820447 RH797-81X\n", + "6 24 5902805820461 RH797-81X\n", + "7 26 5902805820447 RH797-81X\n", + "8 27 5902805820447 RH797-81X\n", + "9 28 5902805820447 RH797-81X" ] }, - "execution_count": 51, + "execution_count": 81, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "c3(train)" + "c2(train7)" ] }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 82, "metadata": {}, "outputs": [ { @@ -3696,137 +3877,150 @@ " <tbody>\n", " <tr>\n", " <th>0</th>\n", - " <td>38</td>\n", + " <td>32</td>\n", " <td>5902851414515</td>\n", " <td>SL171-99X</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", - " <td>42</td>\n", - " <td>5902690542769</td>\n", - " <td>QY337-00X</td>\n", + " <td>38</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", - " <td>42</td>\n", - " <td>5902690542745</td>\n", - " <td>QY337-00X</td>\n", + " <td>38</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", + " <td>38</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>38</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>42</td>\n", + " <td>5902851414515</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>42</td>\n", + " <td>5902851414508</td>\n", + " <td>SL171-99X</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", " <td>29</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>4</th>\n", + " <th>8</th>\n", " <td>32</td>\n", " <td>5902805820447</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>5</th>\n", - " <td>38</td>\n", - " <td>5902851852638</td>\n", - " <td>SO133-09M</td>\n", + " <th>9</th>\n", + " <td>34</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>6</th>\n", + " <th>10</th>\n", " <td>42</td>\n", - " <td>5902851852638</td>\n", - " <td>SO133-09M</td>\n", + " <td>5902805820447</td>\n", + " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", - " <th>7</th>\n", - " <td>42</td>\n", - " <td>5902851852614</td>\n", - " <td>SO133-09M</td>\n", + " <th>11</th>\n", + " <td>29</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", " </tr>\n", " <tr>\n", - " <th>8</th>\n", + " <th>12</th>\n", + " <td>36</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>38</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>38</td>\n", + " <td>5902975236956</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>40</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>41</td>\n", + " <td>5902975236994</td>\n", + " <td>SF078-MLC</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", " <td>42</td>\n", - " <td>5902851852638</td>\n", - " <td>SO133-09M</td>\n", + " <td>5902975236956</td>\n", + " <td>SF078-MLC</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ - " MEASUREMENT EAN StyleColor\n", - "0 38 5902851414515 SL171-99X\n", - "1 42 5902690542769 QY337-00X\n", - "2 42 5902690542745 QY337-00X\n", - "3 29 5902805820447 RH797-81X\n", - "4 32 5902805820447 RH797-81X\n", - "5 38 5902851852638 SO133-09M\n", - "6 42 5902851852638 SO133-09M\n", - "7 42 5902851852614 SO133-09M\n", - "8 42 5902851852638 SO133-09M" + " MEASUREMENT EAN StyleColor\n", + "0 32 5902851414515 SL171-99X\n", + "1 38 5902851414515 SL171-99X\n", + "2 38 5902851414508 SL171-99X\n", + "3 38 5902851414508 SL171-99X\n", + "4 38 5902851414508 SL171-99X\n", + "5 42 5902851414515 SL171-99X\n", + "6 42 5902851414508 SL171-99X\n", + "7 29 5902805820447 RH797-81X\n", + "8 32 5902805820447 RH797-81X\n", + "9 34 5902805820447 RH797-81X\n", + "10 42 5902805820447 RH797-81X\n", + "11 29 5902975236994 SF078-MLC\n", + "12 36 5902975236994 SF078-MLC\n", + "13 38 5902975236994 SF078-MLC\n", + "14 38 5902975236956 SF078-MLC\n", + "15 40 5902975236994 SF078-MLC\n", + "16 41 5902975236994 SF078-MLC\n", + "17 42 5902975236956 SF078-MLC" ] }, - "execution_count": 52, + "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "c3(test)" - ] - }, - { - "cell_type": "code", - "execution_count": 60, - "metadata": {}, - "outputs": [], - "source": [ - "def c4(x):\n", - " outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", - " for j in x.StyleColor.unique():\n", - " DF = x[(x.StyleColor == j)]\n", - " measurements = DF.MEASUREMENT.unique()\n", - "\n", - " for i in measurements:\n", - " proba = DF[ DF.MEASUREMENT == i ]\n", - " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", - " minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)\n", - " neighbors = max(2,minimal_epc.astype(int))\n", - " \n", - " if minimal_epc > 70:\n", - " minimal_epc = 70\n", - " neighbors = 70\n", - " \n", - " X_embedded = proba[['TIME_MS','SUM_PROXIMITY_KMS']]\n", - " nbrs = NearestNeighbors(n_neighbors=neighbors ).fit(X_embedded)\n", - " distances, indices = nbrs.kneighbors(X_embedded)\n", - " distance_desc = sorted(distances[:,neighbors-1], reverse=True)\n", - "\n", - " kneedle = KneeLocator(range(1,len(distance_desc)+1), #x values\n", - " distance_desc, # y values\n", - " S=1.0, #parameter suggested from paper\n", - " curve=\"convex\", #parameter from figure\n", - " direction=\"decreasing\") #parameter from figure\n", - "\n", - " eps = max(5000,kneedle.knee_y/2)\n", - "\n", - " db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='auto')\n", - " db.fit(X)\n", - " y_pred = db.fit_predict(X)\n", - " clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", - " calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", - "\n", - " if (db.labels_[db.labels_ == -1].size != 0 ) & (db.labels_[db.labels_ == -1].size > minimal_epc ):\n", - " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts().sum()\n", - " b = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()[0] \n", - " if a - 2*b < 0:\n", - " outliery = outliery.append({'MEASUREMENT': i, 'EAN': proba[proba['EPC'] == calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts().index[0]].EAN.iloc[0], \"StyleColor\":j}, ignore_index = True)\n", - "\n", - " return(outliery)" + "c2(test7)" ] }, { "cell_type": "code", - "execution_count": 61, + "execution_count": 83, "metadata": {}, "outputs": [ { @@ -3851,269 +4045,262 @@ " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>MEASUREMENT</th>\n", - " <th>EAN</th>\n", + " <th>EPC</th>\n", " <th>StyleColor</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", - " <td>6</td>\n", - " <td>5902805533040</td>\n", - " <td>RH267-85J</td>\n", + " <td>12</td>\n", + " <td>303568480C2B874000B59A39</td>\n", + " <td>RS483-99X</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", - " <td>24</td>\n", - " <td>5902805533040</td>\n", - " <td>RH267-85J</td>\n", + " <td>23</td>\n", + " <td>303568480C2B874000B59A39</td>\n", + " <td>RS483-99X</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", - " <td>4</td>\n", - " <td>5902851445731</td>\n", + " <td>28</td>\n", + " <td>303568480C2B868000B599B2</td>\n", " <td>RS483-99X</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", - " <td>7</td>\n", - " <td>5902851445700</td>\n", - " <td>RS483-99X</td>\n", + " <td>1</td>\n", + " <td>303568480C357A0000B59999</td>\n", + " <td>SB281-90M</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", - " <td>11</td>\n", - " <td>5902851445731</td>\n", - " <td>RS483-99X</td>\n", + " <td>16</td>\n", + " <td>303568480C357A0000B59999</td>\n", + " <td>SB281-90M</td>\n", " </tr>\n", " <tr>\n", " <th>5</th>\n", - " <td>28</td>\n", - " <td>5902805303681</td>\n", + " <td>7</td>\n", + " <td>30356847541DA80000B5BA54</td>\n", " <td>RJ369-87X</td>\n", " </tr>\n", " <tr>\n", " <th>6</th>\n", - " <td>1</td>\n", - " <td>5902805431803</td>\n", - " <td>RM119-93X</td>\n", + " <td>17</td>\n", + " <td>303568480C3455C000B5B30A</td>\n", + " <td>RV167-MLC</td>\n", " </tr>\n", " <tr>\n", " <th>7</th>\n", - " <td>5</td>\n", - " <td>5902805431797</td>\n", - " <td>RM119-93X</td>\n", + " <td>17</td>\n", + " <td>30356847542CCD0000B59A80</td>\n", + " <td>QJ677-33X</td>\n", " </tr>\n", " <tr>\n", " <th>8</th>\n", - " <td>6</td>\n", - " <td>5902805431803</td>\n", - " <td>RM119-93X</td>\n", + " <td>26</td>\n", + " <td>30356847542CCD8000B599FA</td>\n", + " <td>QJ677-33X</td>\n", " </tr>\n", " <tr>\n", " <th>9</th>\n", - " <td>12</td>\n", - " <td>5902851535913</td>\n", - " <td>RV167-MLC</td>\n", + " <td>26</td>\n", + " <td>30356847542CCD0000B59A26</td>\n", + " <td>QJ677-33X</td>\n", " </tr>\n", " <tr>\n", " <th>10</th>\n", - " <td>2</td>\n", - " <td>5902975217986</td>\n", - " <td>RV462-87X</td>\n", + " <td>4</td>\n", + " <td>3035684754340CC000B594C3</td>\n", + " <td>RH267-55J</td>\n", " </tr>\n", " <tr>\n", " <th>11</th>\n", - " <td>4</td>\n", - " <td>5902851414508</td>\n", - " <td>SL171-99X</td>\n", + " <td>18</td>\n", + " <td>3035684754340D0000B594EB</td>\n", + " <td>RH267-55J</td>\n", " </tr>\n", " <tr>\n", " <th>12</th>\n", - " <td>7</td>\n", - " <td>5902851414508</td>\n", - " <td>SL171-99X</td>\n", + " <td>18</td>\n", + " <td>3035684754340CC000B594C6</td>\n", + " <td>RH267-55J</td>\n", " </tr>\n", " <tr>\n", " <th>13</th>\n", - " <td>12</td>\n", - " <td>5902851414508</td>\n", + " <td>27</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", " <td>SL171-99X</td>\n", " </tr>\n", " <tr>\n", " <th>14</th>\n", - " <td>4</td>\n", - " <td>5902851852638</td>\n", + " <td>7</td>\n", + " <td>303568480C5343C000B599F6</td>\n", " <td>SO133-09M</td>\n", " </tr>\n", " <tr>\n", " <th>15</th>\n", - " <td>7</td>\n", - " <td>5902851852638</td>\n", + " <td>17</td>\n", + " <td>303568480C5343C000B599C8</td>\n", " <td>SO133-09M</td>\n", " </tr>\n", " <tr>\n", " <th>16</th>\n", - " <td>14</td>\n", - " <td>5902851852638</td>\n", + " <td>17</td>\n", + " <td>303568480C53434000B599E1</td>\n", " <td>SO133-09M</td>\n", " </tr>\n", " <tr>\n", " <th>17</th>\n", - " <td>20</td>\n", - " <td>5902851852638</td>\n", + " <td>24</td>\n", + " <td>303568480C53434000B599E1</td>\n", " <td>SO133-09M</td>\n", " </tr>\n", " <tr>\n", " <th>18</th>\n", - " <td>2</td>\n", - " <td>5902690542769</td>\n", - " <td>QY337-00X</td>\n", + " <td>24</td>\n", + " <td>30356847540FE2C000B59A68</td>\n", + " <td>RB254-00X</td>\n", " </tr>\n", " <tr>\n", " <th>19</th>\n", - " <td>4</td>\n", - " <td>5902690542745</td>\n", - " <td>QY337-00X</td>\n", + " <td>28</td>\n", + " <td>30356849FC1724C000B59A42</td>\n", + " <td>SF078-MLC</td>\n", " </tr>\n", " <tr>\n", " <th>20</th>\n", - " <td>13</td>\n", - " <td>5902690542769</td>\n", + " <td>11</td>\n", + " <td>303568458835008000B5BAD1</td>\n", " <td>QY337-00X</td>\n", " </tr>\n", " <tr>\n", " <th>21</th>\n", - " <td>16</td>\n", - " <td>5902690542745</td>\n", + " <td>11</td>\n", + " <td>303568458835010000B5BA58</td>\n", " <td>QY337-00X</td>\n", " </tr>\n", " <tr>\n", " <th>22</th>\n", - " <td>23</td>\n", - " <td>5902690542745</td>\n", + " <td>19</td>\n", + " <td>303568458835008000B5BAD1</td>\n", " <td>QY337-00X</td>\n", " </tr>\n", " <tr>\n", " <th>23</th>\n", - " <td>24</td>\n", - " <td>5902805219685</td>\n", - " <td>RN633-00X</td>\n", + " <td>19</td>\n", + " <td>303568458835010000B5BA58</td>\n", + " <td>QY337-00X</td>\n", " </tr>\n", " <tr>\n", " <th>24</th>\n", - " <td>1</td>\n", - " <td>5902805533255</td>\n", - " <td>RH267-59J</td>\n", + " <td>7</td>\n", + " <td>303568475415740000B5A5CD</td>\n", + " <td>RN633-00X</td>\n", " </tr>\n", " <tr>\n", " <th>25</th>\n", - " <td>2</td>\n", - " <td>5902805533255</td>\n", + " <td>1</td>\n", + " <td>303568475434134000B5B6DF</td>\n", " <td>RH267-59J</td>\n", " </tr>\n", " <tr>\n", " <th>26</th>\n", - " <td>13</td>\n", - " <td>5902805533255</td>\n", - " <td>RH267-59J</td>\n", + " <td>2</td>\n", + " <td>30356847542B6D4000B5B656</td>\n", + " <td>RJ365-09M</td>\n", " </tr>\n", " <tr>\n", " <th>27</th>\n", - " <td>21</td>\n", - " <td>5902805533255</td>\n", - " <td>RH267-59J</td>\n", + " <td>2</td>\n", + " <td>30356847542B6D0000B5B65A</td>\n", + " <td>RJ365-09M</td>\n", " </tr>\n", " <tr>\n", " <th>28</th>\n", - " <td>24</td>\n", - " <td>5902805533255</td>\n", - " <td>RH267-59J</td>\n", + " <td>12</td>\n", + " <td>30356849FC1E348000B5B2D4</td>\n", + " <td>SP090-90X</td>\n", " </tr>\n", " <tr>\n", " <th>29</th>\n", - " <td>26</td>\n", - " <td>5902805444698</td>\n", - " <td>RJ365-09M</td>\n", + " <td>21</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", " <th>30</th>\n", - " <td>21</td>\n", - " <td>5902805820447</td>\n", + " <td>24</td>\n", + " <td>3035684754501F0000B5B614</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", " <th>31</th>\n", - " <td>23</td>\n", - " <td>5902805820447</td>\n", + " <td>27</td>\n", + " <td>3035684754501F0000B5B614</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", " <th>32</th>\n", " <td>28</td>\n", - " <td>5902805820447</td>\n", + " <td>3035684754501F0000B5B614</td>\n", " <td>RH797-81X</td>\n", " </tr>\n", - " <tr>\n", - " <th>33</th>\n", - " <td>3</td>\n", - " <td>5902805385823</td>\n", - " <td>RJ371-53M</td>\n", - " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ - " MEASUREMENT EAN StyleColor\n", - "0 6 5902805533040 RH267-85J\n", - "1 24 5902805533040 RH267-85J\n", - "2 4 5902851445731 RS483-99X\n", - "3 7 5902851445700 RS483-99X\n", - "4 11 5902851445731 RS483-99X\n", - "5 28 5902805303681 RJ369-87X\n", - "6 1 5902805431803 RM119-93X\n", - "7 5 5902805431797 RM119-93X\n", - "8 6 5902805431803 RM119-93X\n", - "9 12 5902851535913 RV167-MLC\n", - "10 2 5902975217986 RV462-87X\n", - "11 4 5902851414508 SL171-99X\n", - "12 7 5902851414508 SL171-99X\n", - "13 12 5902851414508 SL171-99X\n", - "14 4 5902851852638 SO133-09M\n", - "15 7 5902851852638 SO133-09M\n", - "16 14 5902851852638 SO133-09M\n", - "17 20 5902851852638 SO133-09M\n", - "18 2 5902690542769 QY337-00X\n", - "19 4 5902690542745 QY337-00X\n", - "20 13 5902690542769 QY337-00X\n", - "21 16 5902690542745 QY337-00X\n", - "22 23 5902690542745 QY337-00X\n", - "23 24 5902805219685 RN633-00X\n", - "24 1 5902805533255 RH267-59J\n", - "25 2 5902805533255 RH267-59J\n", - "26 13 5902805533255 RH267-59J\n", - "27 21 5902805533255 RH267-59J\n", - "28 24 5902805533255 RH267-59J\n", - "29 26 5902805444698 RJ365-09M\n", - "30 21 5902805820447 RH797-81X\n", - "31 23 5902805820447 RH797-81X\n", - "32 28 5902805820447 RH797-81X\n", - "33 3 5902805385823 RJ371-53M" + " MEASUREMENT EPC StyleColor\n", + "0 12 303568480C2B874000B59A39 RS483-99X\n", + "1 23 303568480C2B874000B59A39 RS483-99X\n", + "2 28 303568480C2B868000B599B2 RS483-99X\n", + "3 1 303568480C357A0000B59999 SB281-90M\n", + "4 16 303568480C357A0000B59999 SB281-90M\n", + "5 7 30356847541DA80000B5BA54 RJ369-87X\n", + "6 17 303568480C3455C000B5B30A RV167-MLC\n", + "7 17 30356847542CCD0000B59A80 QJ677-33X\n", + "8 26 30356847542CCD8000B599FA QJ677-33X\n", + "9 26 30356847542CCD0000B59A26 QJ677-33X\n", + "10 4 3035684754340CC000B594C3 RH267-55J\n", + "11 18 3035684754340D0000B594EB RH267-55J\n", + "12 18 3035684754340CC000B594C6 RH267-55J\n", + "13 27 303568480C287AC000B5BAD5 SL171-99X\n", + "14 7 303568480C5343C000B599F6 SO133-09M\n", + "15 17 303568480C5343C000B599C8 SO133-09M\n", + "16 17 303568480C53434000B599E1 SO133-09M\n", + "17 24 303568480C53434000B599E1 SO133-09M\n", + "18 24 30356847540FE2C000B59A68 RB254-00X\n", + "19 28 30356849FC1724C000B59A42 SF078-MLC\n", + "20 11 303568458835008000B5BAD1 QY337-00X\n", + "21 11 303568458835010000B5BA58 QY337-00X\n", + "22 19 303568458835008000B5BAD1 QY337-00X\n", + "23 19 303568458835010000B5BA58 QY337-00X\n", + "24 7 303568475415740000B5A5CD RN633-00X\n", + "25 1 303568475434134000B5B6DF RH267-59J\n", + "26 2 30356847542B6D4000B5B656 RJ365-09M\n", + "27 2 30356847542B6D0000B5B65A RJ365-09M\n", + "28 12 30356849FC1E348000B5B2D4 SP090-90X\n", + "29 21 3035684754501F0000B5B614 RH797-81X\n", + "30 24 3035684754501F0000B5B614 RH797-81X\n", + "31 27 3035684754501F0000B5B614 RH797-81X\n", + "32 28 3035684754501F0000B5B614 RH797-81X" ] }, - "execution_count": 61, + "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "c4(train)" + "c6(train)" ] }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 84, "metadata": {}, "outputs": [ { @@ -4138,359 +4325,188 @@ " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>MEASUREMENT</th>\n", - " <th>EAN</th>\n", + " <th>EPC</th>\n", " <th>StyleColor</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", - " <td>41</td>\n", - " <td>5902805532999</td>\n", - " <td>RH267-55J</td>\n", + " <td>42</td>\n", + " <td>3035684754340E0000B594E8</td>\n", + " <td>RH267-85J</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>32</td>\n", - " <td>5902851414515</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", " <td>SL171-99X</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", - " <td>34</td>\n", - " <td>5902851414515</td>\n", + " <td>35</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", " <td>SL171-99X</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", - " <td>42</td>\n", - " <td>5902851414515</td>\n", + " <td>38</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", " <td>SL171-99X</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", - " <td>32</td>\n", - " <td>5902805431803</td>\n", - " <td>RM119-93X</td>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BA63</td>\n", + " <td>SL171-99X</td>\n", " </tr>\n", " <tr>\n", " <th>5</th>\n", - " <td>40</td>\n", - " <td>5902805431803</td>\n", - " <td>RM119-93X</td>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BADA</td>\n", + " <td>SL171-99X</td>\n", " </tr>\n", " <tr>\n", " <th>6</th>\n", - " <td>32</td>\n", - " <td>5902851445700</td>\n", - " <td>RS483-99X</td>\n", + " <td>38</td>\n", + " <td>303568480C287A8000B5BABD</td>\n", + " <td>SL171-99X</td>\n", " </tr>\n", " <tr>\n", " <th>7</th>\n", - " <td>37</td>\n", - " <td>5902851445700</td>\n", - " <td>RS483-99X</td>\n", + " <td>41</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", " </tr>\n", " <tr>\n", " <th>8</th>\n", - " <td>40</td>\n", - " <td>5902851445731</td>\n", - " <td>RS483-99X</td>\n", + " <td>42</td>\n", + " <td>303568480C287AC000B5BAD5</td>\n", + " <td>SL171-99X</td>\n", " </tr>\n", " <tr>\n", " <th>9</th>\n", - " <td>32</td>\n", - " <td>5902690542745</td>\n", - " <td>QY337-00X</td>\n", + " <td>42</td>\n", + " <td>303568480C287A8000B5BABD</td>\n", + " <td>SL171-99X</td>\n", " </tr>\n", " <tr>\n", " <th>10</th>\n", - " <td>36</td>\n", - " <td>5902805820423</td>\n", - " <td>RH797-59X</td>\n", + " <td>38</td>\n", + " <td>303568480C2B868000B599B2</td>\n", + " <td>RS483-99X</td>\n", " </tr>\n", " <tr>\n", " <th>11</th>\n", - " <td>37</td>\n", - " <td>5902805303681</td>\n", - " <td>RJ369-87X</td>\n", + " <td>38</td>\n", + " <td>303568480C34548000B5B2B5</td>\n", + " <td>RV167-87X</td>\n", " </tr>\n", " <tr>\n", " <th>12</th>\n", - " <td>29</td>\n", - " <td>5902805820447</td>\n", - " <td>RH797-81X</td>\n", + " <td>42</td>\n", + " <td>303568458835010000B5BA58</td>\n", + " <td>QY337-00X</td>\n", " </tr>\n", " <tr>\n", " <th>13</th>\n", - " <td>32</td>\n", - " <td>5902805820447</td>\n", - " <td>RH797-81X</td>\n", + " <td>42</td>\n", + " <td>303568458835008000B5BAD1</td>\n", + " <td>QY337-00X</td>\n", " </tr>\n", " <tr>\n", " <th>14</th>\n", " <td>32</td>\n", - " <td>5902805533255</td>\n", - " <td>RH267-59J</td>\n", + " <td>30356847541DA80000B5BA54</td>\n", + " <td>RJ369-87X</td>\n", " </tr>\n", " <tr>\n", " <th>15</th>\n", - " <td>38</td>\n", - " <td>5902805533255</td>\n", - " <td>RH267-59J</td>\n", + " <td>29</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", " <th>16</th>\n", - " <td>40</td>\n", - " <td>5902805533255</td>\n", - " <td>RH267-59J</td>\n", + " <td>32</td>\n", + " <td>3035684754501F0000B5B614</td>\n", + " <td>RH797-81X</td>\n", " </tr>\n", " <tr>\n", " <th>17</th>\n", " <td>29</td>\n", - " <td>5902975236994</td>\n", - " <td>SF078-MLC</td>\n", + " <td>303568475415744000B599FE</td>\n", + " <td>RN633-00X</td>\n", " </tr>\n", " <tr>\n", " <th>18</th>\n", - " <td>36</td>\n", - " <td>5902975236994</td>\n", - " <td>SF078-MLC</td>\n", + " <td>39</td>\n", + " <td>303568480C5343C000B599F6</td>\n", + " <td>SO133-09M</td>\n", " </tr>\n", " <tr>\n", " <th>19</th>\n", - " <td>41</td>\n", - " <td>5902975236994</td>\n", - " <td>SF078-MLC</td>\n", + " <td>42</td>\n", + " <td>303568480C5343C000B599F6</td>\n", + " <td>SO133-09M</td>\n", " </tr>\n", " <tr>\n", " <th>20</th>\n", - " <td>39</td>\n", - " <td>5902851852638</td>\n", + " <td>42</td>\n", + " <td>303568480C53434000B599E1</td>\n", " <td>SO133-09M</td>\n", " </tr>\n", " <tr>\n", " <th>21</th>\n", - " <td>32</td>\n", - " <td>5902805820546</td>\n", - " <td>RH797-00X</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "</div>" - ], - "text/plain": [ - " MEASUREMENT EAN StyleColor\n", - "0 41 5902805532999 RH267-55J\n", - "1 32 5902851414515 SL171-99X\n", - "2 34 5902851414515 SL171-99X\n", - "3 42 5902851414515 SL171-99X\n", - "4 32 5902805431803 RM119-93X\n", - "5 40 5902805431803 RM119-93X\n", - "6 32 5902851445700 RS483-99X\n", - "7 37 5902851445700 RS483-99X\n", - "8 40 5902851445731 RS483-99X\n", - "9 32 5902690542745 QY337-00X\n", - "10 36 5902805820423 RH797-59X\n", - "11 37 5902805303681 RJ369-87X\n", - "12 29 5902805820447 RH797-81X\n", - "13 32 5902805820447 RH797-81X\n", - "14 32 5902805533255 RH267-59J\n", - "15 38 5902805533255 RH267-59J\n", - "16 40 5902805533255 RH267-59J\n", - "17 29 5902975236994 SF078-MLC\n", - "18 36 5902975236994 SF078-MLC\n", - "19 41 5902975236994 SF078-MLC\n", - "20 39 5902851852638 SO133-09M\n", - "21 32 5902805820546 RH797-00X" - ] - }, - "execution_count": 62, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "c4(test)" - ] - }, - { - "cell_type": "code", - "execution_count": 63, - "metadata": {}, - "outputs": [], - "source": [ - "def c5(x):\n", - " outliery = pd.DataFrame(columns = ['MEASUREMENT', 'EAN', 'StyleColor'])\n", - " for j in x.StyleColor.unique():\n", - " DF = x[(x.StyleColor == j)]\n", - " measurements = DF.MEASUREMENT.unique()\n", - "\n", - " for i in measurements:\n", - " proba = DF[ DF.MEASUREMENT == i ]\n", - " X = np.asarray(proba[['SUM_PROXIMITY_KMS','TIME_MS']]).reshape(-1, 2)\n", - " minimal_epc = np.floor(proba['EPC'].value_counts().min()/2)\n", - " neighbors = max(2,minimal_epc.astype(int))\n", - " \n", - " if minimal_epc > 70:\n", - " minimal_epc = 70\n", - " neighbors = 70\n", - " \n", - " X_embedded = proba[['TIME_MS','SUM_PROXIMITY_KMS']]\n", - " nbrs = NearestNeighbors(n_neighbors=neighbors ).fit(X_embedded)\n", - " distances, indices = nbrs.kneighbors(X_embedded)\n", - " distance_desc = sorted(distances[:,neighbors-1], reverse=True)\n", - "\n", - " kneedle = KneeLocator(range(1,len(distance_desc)+1), #x values\n", - " distance_desc, # y values\n", - " S=1.0, #parameter suggested from paper\n", - " curve=\"convex\", #parameter from figure\n", - " direction=\"decreasing\") #parameter from figure\n", - "\n", - " eps = max(5000,kneedle.knee_y/2)\n", - "\n", - " db = DBSCAN(eps=eps, min_samples=minimal_epc, algorithm='kd_tree')\n", - " db.fit(X)\n", - " y_pred = db.fit_predict(X)\n", - " clusters = pd.DataFrame(db.labels_,columns = ['CLUSTER'],index=proba.index)\n", - " calosc = pd.concat([proba, clusters.reindex(proba.index)], axis=1)\n", - "\n", - " if db.labels_[db.labels_ == -1].size != 0 :\n", - " a = calosc[calosc.CLUSTER == -1 ]['EPC'].value_counts()\n", - " for b in a.index:\n", - " if a[b] > 0.5*proba[proba['EPC'] == b].count()[0] :\n", - " outliery = outliery.append({'MEASUREMENT': i, 'EAN':proba[proba['EPC'] == b].EAN.iloc[0], \n", - " 'StyleColor':j}, ignore_index = True)\n", - "\n", - "\n", - " return(outliery)" - ] - }, - { - "cell_type": "code", - "execution_count": 64, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "<div>\n", - "<style scoped>\n", - " .dataframe tbody tr th:only-of-type {\n", - " vertical-align: middle;\n", - " }\n", - "\n", - " .dataframe tbody tr th {\n", - " vertical-align: top;\n", - " }\n", - "\n", - " .dataframe thead th {\n", - " text-align: right;\n", - " }\n", - "</style>\n", - "<table border=\"1\" class=\"dataframe\">\n", - " <thead>\n", - " <tr style=\"text-align: right;\">\n", - " <th></th>\n", - " <th>MEASUREMENT</th>\n", - " <th>EAN</th>\n", - " <th>StyleColor</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>0</th>\n", - " <td>28</td>\n", - " <td>5902805820447</td>\n", - " <td>RH797-81X</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "</div>" - ], - "text/plain": [ - " MEASUREMENT EAN StyleColor\n", - "0 28 5902805820447 RH797-81X" - ] - }, - "execution_count": 64, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "c5(train)" - ] - }, - { - "cell_type": "code", - "execution_count": 65, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "<div>\n", - "<style scoped>\n", - " .dataframe tbody tr th:only-of-type {\n", - " vertical-align: middle;\n", - " }\n", - "\n", - " .dataframe tbody tr th {\n", - " vertical-align: top;\n", - " }\n", - "\n", - " .dataframe thead th {\n", - " text-align: right;\n", - " }\n", - "</style>\n", - "<table border=\"1\" class=\"dataframe\">\n", - " <thead>\n", - " <tr style=\"text-align: right;\">\n", - " <th></th>\n", - " <th>MEASUREMENT</th>\n", - " <th>EAN</th>\n", - " <th>StyleColor</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>0</th>\n", - " <td>29</td>\n", - " <td>5902805820447</td>\n", - " <td>RH797-81X</td>\n", + " <td>42</td>\n", + " <td>303568480C5343C000B599C8</td>\n", + " <td>SO133-09M</td>\n", " </tr>\n", " <tr>\n", - " <th>1</th>\n", - " <td>32</td>\n", - " <td>5902805820447</td>\n", - " <td>RH797-81X</td>\n", + " <th>22</th>\n", + " <td>35</td>\n", + " <td>303568475450218000B59781</td>\n", + " <td>RH797-00X</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ - " MEASUREMENT EAN StyleColor\n", - "0 29 5902805820447 RH797-81X\n", - "1 32 5902805820447 RH797-81X" + " MEASUREMENT EPC StyleColor\n", + "0 42 3035684754340E0000B594E8 RH267-85J\n", + "1 32 303568480C287AC000B5BAD5 SL171-99X\n", + "2 35 303568480C287AC000B5BAD5 SL171-99X\n", + "3 38 303568480C287AC000B5BAD5 SL171-99X\n", + "4 38 303568480C287A8000B5BA63 SL171-99X\n", + "5 38 303568480C287A8000B5BADA SL171-99X\n", + "6 38 303568480C287A8000B5BABD SL171-99X\n", + "7 41 303568480C287AC000B5BAD5 SL171-99X\n", + "8 42 303568480C287AC000B5BAD5 SL171-99X\n", + "9 42 303568480C287A8000B5BABD SL171-99X\n", + "10 38 303568480C2B868000B599B2 RS483-99X\n", + "11 38 303568480C34548000B5B2B5 RV167-87X\n", + "12 42 303568458835010000B5BA58 QY337-00X\n", + "13 42 303568458835008000B5BAD1 QY337-00X\n", + "14 32 30356847541DA80000B5BA54 RJ369-87X\n", + "15 29 3035684754501F0000B5B614 RH797-81X\n", + "16 32 3035684754501F0000B5B614 RH797-81X\n", + "17 29 303568475415744000B599FE RN633-00X\n", + "18 39 303568480C5343C000B599F6 SO133-09M\n", + "19 42 303568480C5343C000B599F6 SO133-09M\n", + "20 42 303568480C53434000B599E1 SO133-09M\n", + "21 42 303568480C5343C000B599C8 SO133-09M\n", + "22 35 303568475450218000B59781 RH797-00X" ] }, - "execution_count": 65, + "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "c5(test)" + "c6(test)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": {