diff --git a/partALogistic.ipynb b/partALogistic.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..b07ef36fd8968b75ed2726d0a926f2e4d8ad1a20 --- /dev/null +++ b/partALogistic.ipynb @@ -0,0 +1,2745 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<h1>1. Loading Datasets</h1>" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "[ TrainingDataBinary.csv info ]\n", + "<class 'pandas.core.frame.DataFrame'>\n", + "RangeIndex: 6000 entries, 0 to 5999\n", + "Columns: 129 entries, R1-PA1:VH to marker\n", + "dtypes: float64(112), int64(17)\n", + "memory usage: 5.9 MB\n", + "\n", + "[ TestingDataBinary.csv info ]\n", + "<class 'pandas.core.frame.DataFrame'>\n", + "RangeIndex: 100 entries, 0 to 99\n", + "Columns: 128 entries, R1-PA1:VH to snort_log4\n", + "dtypes: float64(112), int64(16)\n", + "memory usage: 100.1 KB\n" + ] + } + ], + "source": [ + "readTrainingBin = pd.read_csv(\"TrainingDataBinary.csv\")\n", + "readtest = pd.read_csv(\"TestingDataBinary.csv\")\n", + "\n", + "\n", + "print(\"\\n[ TrainingDataBinary.csv info ]\")\n", + "readTrainingBin.info()\n", + "\n", + "print(\"\\n[ TestingDataBinary.csv info ]\")\n", + "readtest.info()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<h1>1.1: Analysing the Data</h1>" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "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>R1-PA1:VH</th>\n", + " <th>R1-PM1:V</th>\n", + " <th>R1-PA2:VH</th>\n", + " <th>R1-PM2:V</th>\n", + " <th>R1-PA3:VH</th>\n", + " <th>R1-PM3:V</th>\n", + " <th>R1-PA4:IH</th>\n", + " <th>R1-PM4:I</th>\n", + " <th>R1-PA5:IH</th>\n", + " <th>R1-PM5:I</th>\n", + " <th>...</th>\n", + " <th>control_panel_log4</th>\n", + " <th>relay1_log</th>\n", + " <th>relay2_log</th>\n", + " <th>relay3_log</th>\n", + " <th>relay4_log</th>\n", + " <th>snort_log1</th>\n", + " <th>snort_log2</th>\n", + " <th>snort_log3</th>\n", + " <th>snort_log4</th>\n", + " <th>marker</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>count</th>\n", + " <td>6000.000000</td>\n", + " <td>6000.000000</td>\n", + " <td>6000.000000</td>\n", + " <td>6000.000000</td>\n", + " <td>6000.000000</td>\n", + " <td>6000.000000</td>\n", + " <td>6000.000000</td>\n", + " <td>6000.000000</td>\n", + " <td>6000.000000</td>\n", + " <td>6000.000000</td>\n", + " <td>...</td>\n", + " <td>6000.0</td>\n", + " <td>6000.000000</td>\n", + " <td>6000.000000</td>\n", + " <td>6000.000000</td>\n", + " <td>6000.000000</td>\n", + " <td>6000.000000</td>\n", + " <td>6000.000000</td>\n", + " <td>6000.0</td>\n", + " <td>6000.0</td>\n", + " <td>6000.000000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>mean</th>\n", + " <td>-12.119629</td>\n", + " <td>131232.981183</td>\n", + " <td>-7.472883</td>\n", + " <td>131432.647990</td>\n", + " <td>-4.996787</td>\n", + " <td>131679.080624</td>\n", + " <td>-11.428280</td>\n", + " <td>386.786641</td>\n", + " <td>-7.515268</td>\n", + " <td>383.905649</td>\n", + " <td>...</td>\n", + " <td>0.0</td>\n", + " <td>0.001333</td>\n", + " <td>0.001167</td>\n", + " <td>0.000500</td>\n", + " <td>0.000333</td>\n", + " <td>0.000167</td>\n", + " <td>0.000167</td>\n", + " <td>0.0</td>\n", + " <td>0.0</td>\n", + " <td>0.500000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>std</th>\n", + " <td>100.501215</td>\n", + " <td>5919.297191</td>\n", + " <td>107.427713</td>\n", + " <td>1516.363119</td>\n", + " <td>102.750200</td>\n", + " <td>1560.823960</td>\n", + " <td>100.559491</td>\n", + " <td>131.042601</td>\n", + " <td>107.372367</td>\n", + " <td>86.024159</td>\n", + " <td>...</td>\n", + " <td>0.0</td>\n", + " <td>0.036494</td>\n", + " <td>0.034139</td>\n", + " <td>0.022357</td>\n", + " <td>0.018256</td>\n", + " <td>0.012910</td>\n", + " <td>0.012910</td>\n", + " <td>0.0</td>\n", + " <td>0.0</td>\n", + " <td>0.500042</td>\n", + " </tr>\n", + " <tr>\n", + " <th>min</th>\n", + " <td>-179.983232</td>\n", + " <td>28809.187230</td>\n", + " <td>-179.994691</td>\n", + " <td>109269.310700</td>\n", + " <td>-179.857182</td>\n", + " <td>106034.858800</td>\n", + " <td>-179.943125</td>\n", + " <td>0.000000</td>\n", + " <td>-179.954584</td>\n", + " <td>3.112870</td>\n", + " <td>...</td>\n", + " <td>0.0</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>0.0</td>\n", + " <td>0.0</td>\n", + " <td>0.000000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>25%</th>\n", + " <td>-102.585229</td>\n", + " <td>131108.128800</td>\n", + " <td>-110.522126</td>\n", + " <td>130932.615900</td>\n", + " <td>-99.508445</td>\n", + " <td>131183.348600</td>\n", + " <td>-100.481041</td>\n", + " <td>306.800805</td>\n", + " <td>-111.566342</td>\n", + " <td>312.751880</td>\n", + " <td>...</td>\n", + " <td>0.0</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>0.0</td>\n", + " <td>0.0</td>\n", + " <td>0.000000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>50%</th>\n", + " <td>-21.889852</td>\n", + " <td>131684.814000</td>\n", + " <td>-9.665798</td>\n", + " <td>131534.374400</td>\n", + " <td>-5.483206</td>\n", + " <td>131760.033900</td>\n", + " <td>-18.601075</td>\n", + " <td>380.777245</td>\n", + " <td>-8.648798</td>\n", + " <td>383.798560</td>\n", + " <td>...</td>\n", + " <td>0.0</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>0.0</td>\n", + " <td>0.0</td>\n", + " <td>0.500000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>75%</th>\n", + " <td>72.960446</td>\n", + " <td>132186.279400</td>\n", + " <td>96.401581</td>\n", + " <td>131985.693300</td>\n", + " <td>84.406710</td>\n", + " <td>132236.426000</td>\n", + " <td>71.088306</td>\n", + " <td>452.693697</td>\n", + " <td>94.748598</td>\n", + " <td>456.493230</td>\n", + " <td>...</td>\n", + " <td>0.0</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>0.000000</td>\n", + " <td>0.0</td>\n", + " <td>0.0</td>\n", + " <td>1.000000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>max</th>\n", + " <td>179.994691</td>\n", + " <td>138429.523700</td>\n", + " <td>179.971773</td>\n", + " <td>138379.377100</td>\n", + " <td>179.960314</td>\n", + " <td>138479.670200</td>\n", + " <td>179.920207</td>\n", + " <td>1769.941260</td>\n", + " <td>179.988962</td>\n", + " <td>912.620240</td>\n", + " <td>...</td>\n", + " <td>0.0</td>\n", + " <td>1.000000</td>\n", + " <td>1.000000</td>\n", + " <td>1.000000</td>\n", + " <td>1.000000</td>\n", + " <td>1.000000</td>\n", + " <td>1.000000</td>\n", + " <td>0.0</td>\n", + " <td>0.0</td>\n", + " <td>1.000000</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>8 rows × 129 columns</p>\n", + "</div>" + ], + "text/plain": [ + " R1-PA1:VH R1-PM1:V R1-PA2:VH R1-PM2:V R1-PA3:VH \n", + "count 6000.000000 6000.000000 6000.000000 6000.000000 6000.000000 \\\n", + "mean -12.119629 131232.981183 -7.472883 131432.647990 -4.996787 \n", + "std 100.501215 5919.297191 107.427713 1516.363119 102.750200 \n", + "min -179.983232 28809.187230 -179.994691 109269.310700 -179.857182 \n", + "25% -102.585229 131108.128800 -110.522126 130932.615900 -99.508445 \n", + "50% -21.889852 131684.814000 -9.665798 131534.374400 -5.483206 \n", + "75% 72.960446 132186.279400 96.401581 131985.693300 84.406710 \n", + "max 179.994691 138429.523700 179.971773 138379.377100 179.960314 \n", + "\n", + " R1-PM3:V R1-PA4:IH R1-PM4:I R1-PA5:IH R1-PM5:I ... \n", + "count 6000.000000 6000.000000 6000.000000 6000.000000 6000.000000 ... \\\n", + "mean 131679.080624 -11.428280 386.786641 -7.515268 383.905649 ... \n", + "std 1560.823960 100.559491 131.042601 107.372367 86.024159 ... \n", + "min 106034.858800 -179.943125 0.000000 -179.954584 3.112870 ... \n", + "25% 131183.348600 -100.481041 306.800805 -111.566342 312.751880 ... \n", + "50% 131760.033900 -18.601075 380.777245 -8.648798 383.798560 ... \n", + "75% 132236.426000 71.088306 452.693697 94.748598 456.493230 ... \n", + "max 138479.670200 179.920207 1769.941260 179.988962 912.620240 ... \n", + "\n", + " control_panel_log4 relay1_log relay2_log relay3_log relay4_log \n", + "count 6000.0 6000.000000 6000.000000 6000.000000 6000.000000 \\\n", + "mean 0.0 0.001333 0.001167 0.000500 0.000333 \n", + "std 0.0 0.036494 0.034139 0.022357 0.018256 \n", + "min 0.0 0.000000 0.000000 0.000000 0.000000 \n", + "25% 0.0 0.000000 0.000000 0.000000 0.000000 \n", + "50% 0.0 0.000000 0.000000 0.000000 0.000000 \n", + "75% 0.0 0.000000 0.000000 0.000000 0.000000 \n", + "max 0.0 1.000000 1.000000 1.000000 1.000000 \n", + "\n", + " snort_log1 snort_log2 snort_log3 snort_log4 marker \n", + "count 6000.000000 6000.000000 6000.0 6000.0 6000.000000 \n", + "mean 0.000167 0.000167 0.0 0.0 0.500000 \n", + "std 0.012910 0.012910 0.0 0.0 0.500042 \n", + "min 0.000000 0.000000 0.0 0.0 0.000000 \n", + "25% 0.000000 0.000000 0.0 0.0 0.000000 \n", + "50% 0.000000 0.000000 0.0 0.0 0.500000 \n", + "75% 0.000000 0.000000 0.0 0.0 1.000000 \n", + "max 1.000000 1.000000 0.0 0.0 1.000000 \n", + "\n", + "[8 rows x 129 columns]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "readTrainingBin.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "R1-PA1:VH float64\n", + "R1-PM1:V float64\n", + "R1-PA2:VH float64\n", + "R1-PM2:V float64\n", + "R1-PA3:VH float64\n", + " ... \n", + "snort_log1 int64\n", + "snort_log2 int64\n", + "snort_log3 int64\n", + "snort_log4 int64\n", + "marker int64\n", + "Length: 129, dtype: object" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "readTrainingBin.dtypes" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 False\n", + "1 False\n", + "2 False\n", + "3 False\n", + "4 False\n", + " ... \n", + "5995 False\n", + "5996 False\n", + "5997 False\n", + "5998 False\n", + "5999 False\n", + "Length: 6000, dtype: bool" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "readTrainingBin.duplicated()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "marker\n", + "0 3000\n", + "1 3000\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "readTrainingBin['marker'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['R1-PA1:VH', 'R1-PM1:V', 'R1-PA2:VH', 'R1-PM2:V', 'R1-PA3:VH',\n", + " 'R1-PM3:V', 'R1-PA4:IH', 'R1-PM4:I', 'R1-PA5:IH', 'R1-PM5:I',\n", + " 'R1-PA6:IH', 'R1-PM6:I', 'R1-PA7:VH', 'R1-PM7:V', 'R1-PA8:VH',\n", + " 'R1-PM8:V', 'R1-PA9:VH', 'R1-PM9:V', 'R1-PA10:IH', 'R1-PM10:I',\n", + " 'R1-PA11:IH', 'R1-PM11:I', 'R1-PA12:IH', 'R1-PM12:I', 'R1:F',\n", + " 'R1:DF', 'R1-PA:Z', 'R1-PA:ZH', 'R1:S', 'R2-PA1:VH', 'R2-PM1:V',\n", + " 'R2-PA2:VH', 'R2-PM2:V', 'R2-PA3:VH', 'R2-PM3:V', 'R2-PA4:IH',\n", + " 'R2-PM4:I', 'R2-PA5:IH', 'R2-PM5:I', 'R2-PA6:IH', 'R2-PM6:I',\n", + " 'R2-PA7:VH', 'R2-PM7:V', 'R2-PA8:VH', 'R2-PM8:V', 'R2-PA9:VH',\n", + " 'R2-PM9:V', 'R2-PA10:IH', 'R2-PM10:I', 'R2-PA11:IH', 'R2-PM11:I',\n", + " 'R2-PA12:IH', 'R2-PM12:I', 'R2:F', 'R2:DF', 'R2-PA:Z', 'R2-PA:ZH',\n", + " 'R2:S', 'R3-PA1:VH', 'R3-PM1:V', 'R3-PA2:VH', 'R3-PM2:V',\n", + " 'R3-PA3:VH', 'R3-PM3:V', 'R3-PA4:IH', 'R3-PM4:I', 'R3-PA5:IH',\n", + " 'R3-PM5:I', 'R3-PA6:IH', 'R3-PM6:I', 'R3-PA7:VH', 'R3-PM7:V',\n", + " 'R3-PA8:VH', 'R3-PM8:V', 'R3-PA9:VH', 'R3-PM9:V', 'R3-PA10:IH',\n", + " 'R3-PM10:I', 'R3-PA11:IH', 'R3-PM11:I', 'R3-PA12:IH', 'R3-PM12:I',\n", + " 'R3:F', 'R3:DF', 'R3-PA:Z', 'R3-PA:ZH', 'R3:S', 'R4-PA1:VH',\n", + " 'R4-PM1:V', 'R4-PA2:VH', 'R4-PM2:V', 'R4-PA3:VH', 'R4-PM3:V',\n", + " 'R4-PA4:IH', 'R4-PM4:I', 'R4-PA5:IH', 'R4-PM5:I', 'R4-PA6:IH',\n", + " 'R4-PM6:I', 'R4-PA7:VH', 'R4-PM7:V', 'R4-PA8:VH', 'R4-PM8:V',\n", + " 'R4-PA9:VH', 'R4-PM9:V', 'R4-PA10:IH', 'R4-PM10:I', 'R4-PA11:IH',\n", + " 'R4-PM11:I', 'R4-PA12:IH', 'R4-PM12:I', 'R4:F', 'R4:DF', 'R4-PA:Z',\n", + " 'R4-PA:ZH', 'R4:S', 'control_panel_log1', 'control_panel_log2',\n", + " 'control_panel_log3', 'control_panel_log4', 'relay1_log',\n", + " 'relay2_log', 'relay3_log', 'relay4_log', 'snort_log1',\n", + " 'snort_log2', 'snort_log3', 'snort_log4', 'marker'], dtype=object)" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "headers = readTrainingBin.columns.values\n", + "headers" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<h1>2: Data Preparation</h1>" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.linear_model import LogisticRegression\n", + "from scipy.special import expit\n", + "from sklearn.model_selection import train_test_split" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "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>R1-PA1:VH</th>\n", + " <th>R1-PM1:V</th>\n", + " <th>R1-PA2:VH</th>\n", + " <th>R1-PM2:V</th>\n", + " <th>R1-PA3:VH</th>\n", + " <th>R1-PM3:V</th>\n", + " <th>R1-PA4:IH</th>\n", + " <th>R1-PM4:I</th>\n", + " <th>R1-PA5:IH</th>\n", + " <th>R1-PM5:I</th>\n", + " <th>...</th>\n", + " <th>control_panel_log4</th>\n", + " <th>relay1_log</th>\n", + " <th>relay2_log</th>\n", + " <th>relay3_log</th>\n", + " <th>relay4_log</th>\n", + " <th>snort_log1</th>\n", + " <th>snort_log2</th>\n", + " <th>snort_log3</th>\n", + " <th>snort_log4</th>\n", + " <th>marker</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>70.399324</td>\n", + " <td>127673.0908</td>\n", + " <td>-49.572308</td>\n", + " <td>127648.0176</td>\n", + " <td>-169.578319</td>\n", + " <td>127723.2374</td>\n", + " <td>65.689611</td>\n", + " <td>605.91099</td>\n", + " <td>-57.003571</td>\n", + " <td>626.78553</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>73.688102</td>\n", + " <td>130280.7109</td>\n", + " <td>-46.300719</td>\n", + " <td>130255.6377</td>\n", + " <td>-166.278082</td>\n", + " <td>130355.9307</td>\n", + " <td>71.831719</td>\n", + " <td>483.59351</td>\n", + " <td>-50.947407</td>\n", + " <td>500.98896</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>73.733939</td>\n", + " <td>130305.7842</td>\n", + " <td>-46.254883</td>\n", + " <td>130280.7109</td>\n", + " <td>-166.232245</td>\n", + " <td>130381.0040</td>\n", + " <td>71.808800</td>\n", + " <td>483.59351</td>\n", + " <td>-50.913030</td>\n", + " <td>500.98896</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>74.083443</td>\n", + " <td>130581.5902</td>\n", + " <td>-45.899649</td>\n", + " <td>130556.5169</td>\n", + " <td>-165.882741</td>\n", + " <td>130656.8100</td>\n", + " <td>72.152575</td>\n", + " <td>482.86107</td>\n", + " <td>-50.437475</td>\n", + " <td>499.15786</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>74.553268</td>\n", + " <td>131083.0556</td>\n", + " <td>-45.424094</td>\n", + " <td>131057.9823</td>\n", + " <td>-165.424375</td>\n", + " <td>131158.2754</td>\n", + " <td>72.118198</td>\n", + " <td>484.50906</td>\n", + " <td>-50.013486</td>\n", + " <td>497.69298</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>...</th>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5995</th>\n", + " <td>116.889120</td>\n", + " <td>131860.3269</td>\n", + " <td>-3.076783</td>\n", + " <td>131810.1804</td>\n", + " <td>-123.094253</td>\n", + " <td>131910.4735</td>\n", + " <td>114.780635</td>\n", + " <td>376.10794</td>\n", + " <td>-5.254023</td>\n", + " <td>374.82617</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5996</th>\n", + " <td>116.849013</td>\n", + " <td>131810.1804</td>\n", + " <td>-3.116890</td>\n", + " <td>131760.0339</td>\n", + " <td>-123.128630</td>\n", + " <td>131885.4002</td>\n", + " <td>114.769176</td>\n", + " <td>376.29105</td>\n", + " <td>-5.322778</td>\n", + " <td>374.82617</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5997</th>\n", + " <td>116.384917</td>\n", + " <td>131734.9606</td>\n", + " <td>-3.586716</td>\n", + " <td>131684.8140</td>\n", + " <td>-123.586996</td>\n", + " <td>131785.1071</td>\n", + " <td>114.299351</td>\n", + " <td>376.47416</td>\n", + " <td>-5.849899</td>\n", + " <td>374.82617</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5998</th>\n", + " <td>111.125164</td>\n", + " <td>130506.3704</td>\n", + " <td>-8.846468</td>\n", + " <td>130456.2238</td>\n", + " <td>-128.858208</td>\n", + " <td>130556.5169</td>\n", + " <td>106.667553</td>\n", + " <td>478.83265</td>\n", + " <td>-13.464508</td>\n", + " <td>477.73399</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5999</th>\n", + " <td>110.878793</td>\n", + " <td>130481.2971</td>\n", + " <td>-9.092840</td>\n", + " <td>130456.2238</td>\n", + " <td>-129.104580</td>\n", + " <td>130556.5169</td>\n", + " <td>106.392533</td>\n", + " <td>478.83265</td>\n", + " <td>-13.750987</td>\n", + " <td>477.91710</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>6000 rows × 129 columns</p>\n", + "</div>" + ], + "text/plain": [ + " R1-PA1:VH R1-PM1:V R1-PA2:VH R1-PM2:V R1-PA3:VH \n", + "0 70.399324 127673.0908 -49.572308 127648.0176 -169.578319 \\\n", + "1 73.688102 130280.7109 -46.300719 130255.6377 -166.278082 \n", + "2 73.733939 130305.7842 -46.254883 130280.7109 -166.232245 \n", + "3 74.083443 130581.5902 -45.899649 130556.5169 -165.882741 \n", + "4 74.553268 131083.0556 -45.424094 131057.9823 -165.424375 \n", + "... ... ... ... ... ... \n", + "5995 116.889120 131860.3269 -3.076783 131810.1804 -123.094253 \n", + "5996 116.849013 131810.1804 -3.116890 131760.0339 -123.128630 \n", + "5997 116.384917 131734.9606 -3.586716 131684.8140 -123.586996 \n", + "5998 111.125164 130506.3704 -8.846468 130456.2238 -128.858208 \n", + "5999 110.878793 130481.2971 -9.092840 130456.2238 -129.104580 \n", + "\n", + " R1-PM3:V R1-PA4:IH R1-PM4:I R1-PA5:IH R1-PM5:I ... \n", + "0 127723.2374 65.689611 605.91099 -57.003571 626.78553 ... \\\n", + "1 130355.9307 71.831719 483.59351 -50.947407 500.98896 ... \n", + "2 130381.0040 71.808800 483.59351 -50.913030 500.98896 ... \n", + "3 130656.8100 72.152575 482.86107 -50.437475 499.15786 ... \n", + "4 131158.2754 72.118198 484.50906 -50.013486 497.69298 ... \n", + "... ... ... ... ... ... ... \n", + "5995 131910.4735 114.780635 376.10794 -5.254023 374.82617 ... \n", + "5996 131885.4002 114.769176 376.29105 -5.322778 374.82617 ... \n", + "5997 131785.1071 114.299351 376.47416 -5.849899 374.82617 ... \n", + "5998 130556.5169 106.667553 478.83265 -13.464508 477.73399 ... \n", + "5999 130556.5169 106.392533 478.83265 -13.750987 477.91710 ... \n", + "\n", + " control_panel_log4 relay1_log relay2_log relay3_log relay4_log \n", + "0 0 0 0 0 0 \\\n", + "1 0 0 0 0 0 \n", + "2 0 0 0 0 0 \n", + "3 0 0 0 0 0 \n", + "4 0 0 0 0 0 \n", + "... ... ... ... ... ... \n", + "5995 0 0 0 0 0 \n", + "5996 0 0 0 0 0 \n", + "5997 0 0 0 0 0 \n", + "5998 0 0 0 0 0 \n", + "5999 0 0 0 0 0 \n", + "\n", + " snort_log1 snort_log2 snort_log3 snort_log4 marker \n", + "0 0 0 0 0 0 \n", + "1 0 0 0 0 0 \n", + "2 0 0 0 0 0 \n", + "3 0 0 0 0 0 \n", + "4 0 0 0 0 0 \n", + "... ... ... ... ... ... \n", + "5995 0 0 0 0 0 \n", + "5996 0 0 0 0 0 \n", + "5997 0 0 0 0 0 \n", + "5998 0 0 0 0 0 \n", + "5999 0 0 0 0 0 \n", + "\n", + "[6000 rows x 129 columns]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "readTrainingBin" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "<class 'pandas.core.frame.DataFrame'>\n", + "RangeIndex: 6000 entries, 0 to 5999\n", + "Columns: 129 entries, R1-PA1:VH to marker\n", + "dtypes: float64(112), int64(17)\n", + "memory usage: 5.9 MB\n" + ] + } + ], + "source": [ + "readTrainingBin.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "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>R1-PA1:VH</th>\n", + " <th>R1-PM1:V</th>\n", + " <th>R1-PA2:VH</th>\n", + " <th>R1-PM2:V</th>\n", + " <th>R1-PA3:VH</th>\n", + " <th>R1-PM3:V</th>\n", + " <th>R1-PA4:IH</th>\n", + " <th>R1-PM4:I</th>\n", + " <th>R1-PA5:IH</th>\n", + " <th>R1-PM5:I</th>\n", + " <th>...</th>\n", + " <th>control_panel_log3</th>\n", + " <th>control_panel_log4</th>\n", + " <th>relay1_log</th>\n", + " <th>relay2_log</th>\n", + " <th>relay3_log</th>\n", + " <th>relay4_log</th>\n", + " <th>snort_log1</th>\n", + " <th>snort_log2</th>\n", + " <th>snort_log3</th>\n", + " <th>snort_log4</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>70.399324</td>\n", + " <td>127673.0908</td>\n", + " <td>-49.572308</td>\n", + " <td>127648.0176</td>\n", + " <td>-169.578319</td>\n", + " <td>127723.2374</td>\n", + " <td>65.689611</td>\n", + " <td>605.91099</td>\n", + " <td>-57.003571</td>\n", + " <td>626.78553</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>73.688102</td>\n", + " <td>130280.7109</td>\n", + " <td>-46.300719</td>\n", + " <td>130255.6377</td>\n", + " <td>-166.278082</td>\n", + " <td>130355.9307</td>\n", + " <td>71.831719</td>\n", + " <td>483.59351</td>\n", + " <td>-50.947407</td>\n", + " <td>500.98896</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>73.733939</td>\n", + " <td>130305.7842</td>\n", + " <td>-46.254883</td>\n", + " <td>130280.7109</td>\n", + " <td>-166.232245</td>\n", + " <td>130381.0040</td>\n", + " <td>71.808800</td>\n", + " <td>483.59351</td>\n", + " <td>-50.913030</td>\n", + " <td>500.98896</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>74.083443</td>\n", + " <td>130581.5902</td>\n", + " <td>-45.899649</td>\n", + " <td>130556.5169</td>\n", + " <td>-165.882741</td>\n", + " <td>130656.8100</td>\n", + " <td>72.152575</td>\n", + " <td>482.86107</td>\n", + " <td>-50.437475</td>\n", + " <td>499.15786</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>74.553268</td>\n", + " <td>131083.0556</td>\n", + " <td>-45.424094</td>\n", + " <td>131057.9823</td>\n", + " <td>-165.424375</td>\n", + " <td>131158.2754</td>\n", + " <td>72.118198</td>\n", + " <td>484.50906</td>\n", + " <td>-50.013486</td>\n", + " <td>497.69298</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>...</th>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5995</th>\n", + " <td>116.889120</td>\n", + " <td>131860.3269</td>\n", + " <td>-3.076783</td>\n", + " <td>131810.1804</td>\n", + " <td>-123.094253</td>\n", + " <td>131910.4735</td>\n", + " <td>114.780635</td>\n", + " <td>376.10794</td>\n", + " <td>-5.254023</td>\n", + " <td>374.82617</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5996</th>\n", + " <td>116.849013</td>\n", + " <td>131810.1804</td>\n", + " <td>-3.116890</td>\n", + " <td>131760.0339</td>\n", + " <td>-123.128630</td>\n", + " <td>131885.4002</td>\n", + " <td>114.769176</td>\n", + " <td>376.29105</td>\n", + " <td>-5.322778</td>\n", + " <td>374.82617</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5997</th>\n", + " <td>116.384917</td>\n", + " <td>131734.9606</td>\n", + " <td>-3.586716</td>\n", + " <td>131684.8140</td>\n", + " <td>-123.586996</td>\n", + " <td>131785.1071</td>\n", + " <td>114.299351</td>\n", + " <td>376.47416</td>\n", + " <td>-5.849899</td>\n", + " <td>374.82617</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5998</th>\n", + " <td>111.125164</td>\n", + " <td>130506.3704</td>\n", + " <td>-8.846468</td>\n", + " <td>130456.2238</td>\n", + " <td>-128.858208</td>\n", + " <td>130556.5169</td>\n", + " <td>106.667553</td>\n", + " <td>478.83265</td>\n", + " <td>-13.464508</td>\n", + " <td>477.73399</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5999</th>\n", + " <td>110.878793</td>\n", + " <td>130481.2971</td>\n", + " <td>-9.092840</td>\n", + " <td>130456.2238</td>\n", + " <td>-129.104580</td>\n", + " <td>130556.5169</td>\n", + " <td>106.392533</td>\n", + " <td>478.83265</td>\n", + " <td>-13.750987</td>\n", + " <td>477.91710</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>6000 rows × 128 columns</p>\n", + "</div>" + ], + "text/plain": [ + " R1-PA1:VH R1-PM1:V R1-PA2:VH R1-PM2:V R1-PA3:VH \n", + "0 70.399324 127673.0908 -49.572308 127648.0176 -169.578319 \\\n", + "1 73.688102 130280.7109 -46.300719 130255.6377 -166.278082 \n", + "2 73.733939 130305.7842 -46.254883 130280.7109 -166.232245 \n", + "3 74.083443 130581.5902 -45.899649 130556.5169 -165.882741 \n", + "4 74.553268 131083.0556 -45.424094 131057.9823 -165.424375 \n", + "... ... ... ... ... ... \n", + "5995 116.889120 131860.3269 -3.076783 131810.1804 -123.094253 \n", + "5996 116.849013 131810.1804 -3.116890 131760.0339 -123.128630 \n", + "5997 116.384917 131734.9606 -3.586716 131684.8140 -123.586996 \n", + "5998 111.125164 130506.3704 -8.846468 130456.2238 -128.858208 \n", + "5999 110.878793 130481.2971 -9.092840 130456.2238 -129.104580 \n", + "\n", + " R1-PM3:V R1-PA4:IH R1-PM4:I R1-PA5:IH R1-PM5:I ... \n", + "0 127723.2374 65.689611 605.91099 -57.003571 626.78553 ... \\\n", + "1 130355.9307 71.831719 483.59351 -50.947407 500.98896 ... \n", + "2 130381.0040 71.808800 483.59351 -50.913030 500.98896 ... \n", + "3 130656.8100 72.152575 482.86107 -50.437475 499.15786 ... \n", + "4 131158.2754 72.118198 484.50906 -50.013486 497.69298 ... \n", + "... ... ... ... ... ... ... \n", + "5995 131910.4735 114.780635 376.10794 -5.254023 374.82617 ... \n", + "5996 131885.4002 114.769176 376.29105 -5.322778 374.82617 ... \n", + "5997 131785.1071 114.299351 376.47416 -5.849899 374.82617 ... \n", + "5998 130556.5169 106.667553 478.83265 -13.464508 477.73399 ... \n", + "5999 130556.5169 106.392533 478.83265 -13.750987 477.91710 ... \n", + "\n", + " control_panel_log3 control_panel_log4 relay1_log relay2_log \n", + "0 0 0 0 0 \\\n", + "1 0 0 0 0 \n", + "2 0 0 0 0 \n", + "3 0 0 0 0 \n", + "4 0 0 0 0 \n", + "... ... ... ... ... \n", + "5995 0 0 0 0 \n", + "5996 0 0 0 0 \n", + "5997 0 0 0 0 \n", + "5998 0 0 0 0 \n", + "5999 0 0 0 0 \n", + "\n", + " relay3_log relay4_log snort_log1 snort_log2 snort_log3 snort_log4 \n", + "0 0 0 0 0 0 0 \n", + "1 0 0 0 0 0 0 \n", + "2 0 0 0 0 0 0 \n", + "3 0 0 0 0 0 0 \n", + "4 0 0 0 0 0 0 \n", + "... ... ... ... ... ... ... \n", + "5995 0 0 0 0 0 0 \n", + "5996 0 0 0 0 0 0 \n", + "5997 0 0 0 0 0 0 \n", + "5998 0 0 0 0 0 0 \n", + "5999 0 0 0 0 0 0 \n", + "\n", + "[6000 rows x 128 columns]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X = readTrainingBin.drop(columns = 'marker')\n", + "X" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "y = readTrainingBin['marker']" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "X_train, X_test, y_train, y_test = train_test_split(X,y, random_state=1, test_size=0.2, shuffle = True, stratify =y)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "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>R1-PA1:VH</th>\n", + " <th>R1-PM1:V</th>\n", + " <th>R1-PA2:VH</th>\n", + " <th>R1-PM2:V</th>\n", + " <th>R1-PA3:VH</th>\n", + " <th>R1-PM3:V</th>\n", + " <th>R1-PA4:IH</th>\n", + " <th>R1-PM4:I</th>\n", + " <th>R1-PA5:IH</th>\n", + " <th>R1-PM5:I</th>\n", + " <th>...</th>\n", + " <th>control_panel_log3</th>\n", + " <th>control_panel_log4</th>\n", + " <th>relay1_log</th>\n", + " <th>relay2_log</th>\n", + " <th>relay3_log</th>\n", + " <th>relay4_log</th>\n", + " <th>snort_log1</th>\n", + " <th>snort_log2</th>\n", + " <th>snort_log3</th>\n", + " <th>snort_log4</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>4859</th>\n", + " <td>51.400044</td>\n", + " <td>130957.6892</td>\n", + " <td>-68.577319</td>\n", + " <td>130932.6159</td>\n", + " <td>171.428972</td>\n", + " <td>131032.9090</td>\n", + " <td>48.265965</td>\n", + " <td>474.98734</td>\n", + " <td>-73.258384</td>\n", + " <td>481.76241</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5077</th>\n", + " <td>-64.222839</td>\n", + " <td>132035.8398</td>\n", + " <td>175.812099</td>\n", + " <td>131985.6933</td>\n", + " <td>55.794630</td>\n", + " <td>132111.0596</td>\n", + " <td>-64.973414</td>\n", + " <td>322.45671</td>\n", + " <td>174.964122</td>\n", + " <td>321.17494</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1642</th>\n", + " <td>-139.366254</td>\n", + " <td>132311.6458</td>\n", + " <td>100.657225</td>\n", + " <td>132261.4993</td>\n", + " <td>-19.337326</td>\n", + " <td>132361.7923</td>\n", + " <td>-138.701623</td>\n", + " <td>275.58055</td>\n", + " <td>101.058296</td>\n", + " <td>274.66500</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3534</th>\n", + " <td>131.367763</td>\n", + " <td>131609.5942</td>\n", + " <td>11.390401</td>\n", + " <td>131584.5210</td>\n", + " <td>-108.604150</td>\n", + " <td>131684.8140</td>\n", + " <td>128.806642</td>\n", + " <td>388.37631</td>\n", + " <td>8.663122</td>\n", + " <td>390.57363</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1237</th>\n", + " <td>-141.400254</td>\n", + " <td>131183.3486</td>\n", + " <td>98.606037</td>\n", + " <td>130531.4436</td>\n", + " <td>-21.365596</td>\n", + " <td>131233.4952</td>\n", + " <td>-144.580170</td>\n", + " <td>457.95811</td>\n", + " <td>95.139642</td>\n", + " <td>459.97232</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>...</th>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4093</th>\n", + " <td>-45.326691</td>\n", + " <td>132186.2794</td>\n", + " <td>-165.298324</td>\n", + " <td>132136.1329</td>\n", + " <td>74.696508</td>\n", + " <td>132236.4260</td>\n", + " <td>-40.531034</td>\n", + " <td>273.74945</td>\n", + " <td>-164.330025</td>\n", + " <td>287.11648</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>529</th>\n", + " <td>-137.005668</td>\n", + " <td>131860.3269</td>\n", + " <td>103.006352</td>\n", + " <td>131810.1804</td>\n", + " <td>-16.988199</td>\n", + " <td>131910.4735</td>\n", + " <td>-130.193200</td>\n", + " <td>292.24356</td>\n", + " <td>103.235536</td>\n", + " <td>317.32963</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2729</th>\n", + " <td>-174.322409</td>\n", + " <td>130681.8832</td>\n", + " <td>65.712530</td>\n", + " <td>130681.8832</td>\n", + " <td>-54.293481</td>\n", + " <td>130757.1031</td>\n", + " <td>-179.754049</td>\n", + " <td>516.73642</td>\n", + " <td>60.372563</td>\n", + " <td>518.38441</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1068</th>\n", + " <td>-166.495806</td>\n", + " <td>130656.8100</td>\n", + " <td>73.533403</td>\n", + " <td>130004.9050</td>\n", + " <td>-46.472607</td>\n", + " <td>130706.9565</td>\n", + " <td>-165.275406</td>\n", + " <td>426.28008</td>\n", + " <td>70.055550</td>\n", + " <td>452.28170</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>725</th>\n", + " <td>-29.662025</td>\n", + " <td>131810.1804</td>\n", + " <td>-149.627928</td>\n", + " <td>131785.1071</td>\n", + " <td>90.361174</td>\n", + " <td>131860.3269</td>\n", + " <td>-32.188769</td>\n", + " <td>385.62966</td>\n", + " <td>-151.954137</td>\n", + " <td>385.08033</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>4800 rows × 128 columns</p>\n", + "</div>" + ], + "text/plain": [ + " R1-PA1:VH R1-PM1:V R1-PA2:VH R1-PM2:V R1-PA3:VH \n", + "4859 51.400044 130957.6892 -68.577319 130932.6159 171.428972 \\\n", + "5077 -64.222839 132035.8398 175.812099 131985.6933 55.794630 \n", + "1642 -139.366254 132311.6458 100.657225 132261.4993 -19.337326 \n", + "3534 131.367763 131609.5942 11.390401 131584.5210 -108.604150 \n", + "1237 -141.400254 131183.3486 98.606037 130531.4436 -21.365596 \n", + "... ... ... ... ... ... \n", + "4093 -45.326691 132186.2794 -165.298324 132136.1329 74.696508 \n", + "529 -137.005668 131860.3269 103.006352 131810.1804 -16.988199 \n", + "2729 -174.322409 130681.8832 65.712530 130681.8832 -54.293481 \n", + "1068 -166.495806 130656.8100 73.533403 130004.9050 -46.472607 \n", + "725 -29.662025 131810.1804 -149.627928 131785.1071 90.361174 \n", + "\n", + " R1-PM3:V R1-PA4:IH R1-PM4:I R1-PA5:IH R1-PM5:I ... \n", + "4859 131032.9090 48.265965 474.98734 -73.258384 481.76241 ... \\\n", + "5077 132111.0596 -64.973414 322.45671 174.964122 321.17494 ... \n", + "1642 132361.7923 -138.701623 275.58055 101.058296 274.66500 ... \n", + "3534 131684.8140 128.806642 388.37631 8.663122 390.57363 ... \n", + "1237 131233.4952 -144.580170 457.95811 95.139642 459.97232 ... \n", + "... ... ... ... ... ... ... \n", + "4093 132236.4260 -40.531034 273.74945 -164.330025 287.11648 ... \n", + "529 131910.4735 -130.193200 292.24356 103.235536 317.32963 ... \n", + "2729 130757.1031 -179.754049 516.73642 60.372563 518.38441 ... \n", + "1068 130706.9565 -165.275406 426.28008 70.055550 452.28170 ... \n", + "725 131860.3269 -32.188769 385.62966 -151.954137 385.08033 ... \n", + "\n", + " control_panel_log3 control_panel_log4 relay1_log relay2_log \n", + "4859 0 0 0 0 \\\n", + "5077 0 0 0 0 \n", + "1642 0 0 0 0 \n", + "3534 0 0 0 0 \n", + "1237 0 0 0 0 \n", + "... ... ... ... ... \n", + "4093 0 0 0 0 \n", + "529 0 0 0 0 \n", + "2729 0 0 0 0 \n", + "1068 0 0 0 0 \n", + "725 0 0 0 0 \n", + "\n", + " relay3_log relay4_log snort_log1 snort_log2 snort_log3 snort_log4 \n", + "4859 0 0 0 0 0 0 \n", + "5077 0 0 0 0 0 0 \n", + "1642 0 0 0 0 0 0 \n", + "3534 0 0 0 0 0 0 \n", + "1237 0 0 0 0 0 0 \n", + "... ... ... ... ... ... ... \n", + "4093 0 0 0 0 0 0 \n", + "529 0 0 0 0 0 0 \n", + "2729 0 0 0 0 0 0 \n", + "1068 0 0 0 0 0 0 \n", + "725 0 0 0 0 0 0 \n", + "\n", + "[4800 rows x 128 columns]" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_train" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "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>R1-PA1:VH</th>\n", + " <th>R1-PM1:V</th>\n", + " <th>R1-PA2:VH</th>\n", + " <th>R1-PM2:V</th>\n", + " <th>R1-PA3:VH</th>\n", + " <th>R1-PM3:V</th>\n", + " <th>R1-PA4:IH</th>\n", + " <th>R1-PM4:I</th>\n", + " <th>R1-PA5:IH</th>\n", + " <th>R1-PM5:I</th>\n", + " <th>...</th>\n", + " <th>control_panel_log3</th>\n", + " <th>control_panel_log4</th>\n", + " <th>relay1_log</th>\n", + " <th>relay2_log</th>\n", + " <th>relay3_log</th>\n", + " <th>relay4_log</th>\n", + " <th>snort_log1</th>\n", + " <th>snort_log2</th>\n", + " <th>snort_log3</th>\n", + " <th>snort_log4</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>3315</th>\n", + " <td>-9.310564</td>\n", + " <td>132060.9131</td>\n", + " <td>-129.293656</td>\n", + " <td>132010.7666</td>\n", + " <td>110.712635</td>\n", + " <td>132111.0596</td>\n", + " <td>-3.924761</td>\n", + " <td>332.52776</td>\n", + " <td>-122.842151</td>\n", + " <td>326.66824</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5843</th>\n", + " <td>-77.779021</td>\n", + " <td>132261.4993</td>\n", + " <td>162.255918</td>\n", + " <td>132236.4260</td>\n", + " <td>42.255637</td>\n", + " <td>132361.7923</td>\n", + " <td>-78.168632</td>\n", + " <td>305.79370</td>\n", + " <td>161.642853</td>\n", + " <td>307.99102</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>915</th>\n", + " <td>-140.311634</td>\n", + " <td>130757.1031</td>\n", + " <td>99.723304</td>\n", + " <td>130706.9565</td>\n", + " <td>-20.271247</td>\n", + " <td>130807.2496</td>\n", + " <td>-145.559928</td>\n", + " <td>507.39781</td>\n", + " <td>94.612521</td>\n", + " <td>508.13025</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1958</th>\n", + " <td>-4.835764</td>\n", + " <td>131183.3486</td>\n", + " <td>-124.830315</td>\n", + " <td>130556.5169</td>\n", + " <td>115.187435</td>\n", + " <td>131258.5685</td>\n", + " <td>-8.949601</td>\n", + " <td>461.80342</td>\n", + " <td>-129.018636</td>\n", + " <td>462.35275</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4461</th>\n", + " <td>-71.407730</td>\n", + " <td>131534.3744</td>\n", + " <td>168.627209</td>\n", + " <td>131484.2279</td>\n", + " <td>48.615469</td>\n", + " <td>131584.5210</td>\n", + " <td>-72.227060</td>\n", + " <td>396.43315</td>\n", + " <td>165.974414</td>\n", + " <td>402.65889</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>...</th>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3519</th>\n", + " <td>128.325357</td>\n", + " <td>130732.0298</td>\n", + " <td>8.359454</td>\n", + " <td>130706.9565</td>\n", + " <td>-111.635097</td>\n", + " <td>130782.1763</td>\n", + " <td>123.014039</td>\n", + " <td>513.44044</td>\n", + " <td>3.013758</td>\n", + " <td>515.27154</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5130</th>\n", + " <td>-143.417066</td>\n", + " <td>132161.2062</td>\n", + " <td>96.606414</td>\n", + " <td>132136.1329</td>\n", + " <td>-23.388137</td>\n", + " <td>132236.4260</td>\n", + " <td>-144.580170</td>\n", + " <td>352.66986</td>\n", + " <td>94.790138</td>\n", + " <td>355.96584</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>963</th>\n", + " <td>55.468044</td>\n", + " <td>131283.6417</td>\n", + " <td>-64.497859</td>\n", + " <td>131258.5685</td>\n", + " <td>175.502702</td>\n", + " <td>131333.7883</td>\n", + " <td>51.938624</td>\n", + " <td>430.67472</td>\n", + " <td>-67.947065</td>\n", + " <td>430.49161</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1672</th>\n", + " <td>-141.635167</td>\n", + " <td>132286.5725</td>\n", + " <td>98.388313</td>\n", + " <td>132236.4260</td>\n", + " <td>-21.600509</td>\n", + " <td>132361.7923</td>\n", + " <td>-140.718435</td>\n", + " <td>267.88993</td>\n", + " <td>98.852408</td>\n", + " <td>268.80548</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2379</th>\n", + " <td>61.684636</td>\n", + " <td>131634.6675</td>\n", + " <td>-58.298456</td>\n", + " <td>131584.5210</td>\n", + " <td>-178.298736</td>\n", + " <td>131709.8873</td>\n", + " <td>61.793498</td>\n", + " <td>357.24761</td>\n", + " <td>-57.799982</td>\n", + " <td>353.95163</td>\n", + " <td>...</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>1200 rows × 128 columns</p>\n", + "</div>" + ], + "text/plain": [ + " R1-PA1:VH R1-PM1:V R1-PA2:VH R1-PM2:V R1-PA3:VH \n", + "3315 -9.310564 132060.9131 -129.293656 132010.7666 110.712635 \\\n", + "5843 -77.779021 132261.4993 162.255918 132236.4260 42.255637 \n", + "915 -140.311634 130757.1031 99.723304 130706.9565 -20.271247 \n", + "1958 -4.835764 131183.3486 -124.830315 130556.5169 115.187435 \n", + "4461 -71.407730 131534.3744 168.627209 131484.2279 48.615469 \n", + "... ... ... ... ... ... \n", + "3519 128.325357 130732.0298 8.359454 130706.9565 -111.635097 \n", + "5130 -143.417066 132161.2062 96.606414 132136.1329 -23.388137 \n", + "963 55.468044 131283.6417 -64.497859 131258.5685 175.502702 \n", + "1672 -141.635167 132286.5725 98.388313 132236.4260 -21.600509 \n", + "2379 61.684636 131634.6675 -58.298456 131584.5210 -178.298736 \n", + "\n", + " R1-PM3:V R1-PA4:IH R1-PM4:I R1-PA5:IH R1-PM5:I ... \n", + "3315 132111.0596 -3.924761 332.52776 -122.842151 326.66824 ... \\\n", + "5843 132361.7923 -78.168632 305.79370 161.642853 307.99102 ... \n", + "915 130807.2496 -145.559928 507.39781 94.612521 508.13025 ... \n", + "1958 131258.5685 -8.949601 461.80342 -129.018636 462.35275 ... \n", + "4461 131584.5210 -72.227060 396.43315 165.974414 402.65889 ... \n", + "... ... ... ... ... ... ... \n", + "3519 130782.1763 123.014039 513.44044 3.013758 515.27154 ... \n", + "5130 132236.4260 -144.580170 352.66986 94.790138 355.96584 ... \n", + "963 131333.7883 51.938624 430.67472 -67.947065 430.49161 ... \n", + "1672 132361.7923 -140.718435 267.88993 98.852408 268.80548 ... \n", + "2379 131709.8873 61.793498 357.24761 -57.799982 353.95163 ... \n", + "\n", + " control_panel_log3 control_panel_log4 relay1_log relay2_log \n", + "3315 0 0 0 0 \\\n", + "5843 0 0 0 0 \n", + "915 0 0 0 0 \n", + "1958 0 0 0 0 \n", + "4461 0 0 0 0 \n", + "... ... ... ... ... \n", + "3519 0 0 0 0 \n", + "5130 0 0 0 0 \n", + "963 0 0 0 0 \n", + "1672 0 0 0 0 \n", + "2379 0 0 0 0 \n", + "\n", + " relay3_log relay4_log snort_log1 snort_log2 snort_log3 snort_log4 \n", + "3315 0 0 0 0 0 0 \n", + "5843 0 0 0 0 0 0 \n", + "915 0 0 0 0 0 0 \n", + "1958 0 0 0 0 0 0 \n", + "4461 0 0 0 0 0 0 \n", + "... ... ... ... ... ... ... \n", + "3519 0 0 0 0 0 0 \n", + "5130 0 0 0 0 0 0 \n", + "963 0 0 0 0 0 0 \n", + "1672 0 0 0 0 0 0 \n", + "2379 0 0 0 0 0 0 \n", + "\n", + "[1200 rows x 128 columns]" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_test" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "X_train\n", + "<class 'pandas.core.frame.DataFrame'>\n", + "Index: 4800 entries, 4859 to 725\n", + "Columns: 128 entries, R1-PA1:VH to snort_log4\n", + "dtypes: float64(112), int64(16)\n", + "memory usage: 4.7 MB\n", + "\n", + "\n", + "X_test\n", + "<class 'pandas.core.frame.DataFrame'>\n", + "Index: 1200 entries, 3315 to 2379\n", + "Columns: 128 entries, R1-PA1:VH to snort_log4\n", + "dtypes: float64(112), int64(16)\n", + "memory usage: 1.2 MB\n", + "\n", + "\n", + "y_train\n", + "<class 'pandas.core.series.Series'>\n", + "Index: 4800 entries, 4859 to 725\n", + "Series name: marker\n", + "Non-Null Count Dtype\n", + "-------------- -----\n", + "4800 non-null int64\n", + "dtypes: int64(1)\n", + "memory usage: 75.0 KB\n", + "\n", + "\n", + "y_test\n", + "<class 'pandas.core.series.Series'>\n", + "Index: 1200 entries, 3315 to 2379\n", + "Series name: marker\n", + "Non-Null Count Dtype\n", + "-------------- -----\n", + "1200 non-null int64\n", + "dtypes: int64(1)\n", + "memory usage: 18.8 KB\n", + "\n", + "\n" + ] + } + ], + "source": [ + "print(\"X_train\")\n", + "X_train.info()\n", + "print(\"\\n\")\n", + "print(\"X_test\")\n", + "X_test.info()\n", + "print(\"\\n\")\n", + "print(\"y_train\")\n", + "y_train.info()\n", + "print(\"\\n\")\n", + "print(\"y_test\")\n", + "y_test.info()\n", + "print(\"\\n\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "R1-PA1:VH R1-PM1:V R1-PA2:VH R1-PM2:V R1-PA3:VH R1-PM3:V R1-PA4:IH R1-PM4:I R1-PA5:IH R1-PM5:I R1-PA6:IH R1-PM6:I R1-PA7:VH R1-PM7:V R1-PA8:VH R1-PM8:V R1-PA9:VH R1-PM9:V R1-PA10:IH R1-PM10:I R1-PA11:IH R1-PM11:I R1-PA12:IH R1-PM12:I R1:F R1:DF R1-PA:Z R1-PA:ZH R1:S R2-PA1:VH R2-PM1:V R2-PA2:VH R2-PM2:V R2-PA3:VH R2-PM3:V R2-PA4:IH R2-PM4:I R2-PA5:IH R2-PM5:I R2-PA6:IH R2-PM6:I R2-PA7:VH R2-PM7:V R2-PA8:VH R2-PM8:V R2-PA9:VH R2-PM9:V R2-PA10:IH R2-PM10:I R2-PA11:IH R2-PM11:I R2-PA12:IH R2-PM12:I R2:F R2:DF R2-PA:Z R2-PA:ZH R2:S R3-PA1:VH R3-PM1:V R3-PA2:VH R3-PM2:V R3-PA3:VH R3-PM3:V R3-PA4:IH R3-PM4:I R3-PA5:IH R3-PM5:I R3-PA6:IH R3-PM6:I R3-PA7:VH R3-PM7:V R3-PA8:VH R3-PM8:V R3-PA9:VH R3-PM9:V R3-PA10:IH R3-PM10:I R3-PA11:IH R3-PM11:I R3-PA12:IH R3-PM12:I R3:F R3:DF R3-PA:Z R3-PA:ZH R3:S R4-PA1:VH R4-PM1:V R4-PA2:VH R4-PM2:V R4-PA3:VH R4-PM3:V R4-PA4:IH R4-PM4:I R4-PA5:IH R4-PM5:I R4-PA6:IH R4-PM6:I R4-PA7:VH R4-PM7:V R4-PA8:VH R4-PM8:V R4-PA9:VH R4-PM9:V R4-PA10:IH R4-PM10:I R4-PA11:IH R4-PM11:I R4-PA12:IH R4-PM12:I R4:F R4:DF R4-PA:Z R4-PA:ZH R4:S control_panel_log1 control_panel_log2 control_panel_log3 control_panel_log4 relay1_log relay2_log relay3_log relay4_log snort_log1 snort_log2 snort_log3 snort_log4\n", + "-179.983232 132211.3527 60.051707 131584.5210 -59.960033 132286.5725 179.920207 299.01863 60.005870 299.01863 -60.172028 298.46930 -179.966044 132035.8398 0.0 0.0 0.0 0.0 179.920207 298.83552 0.000000 0.0000 0.000000 0.00000 60.000 0.00 12.530582 0.004078 0 175.462595 130907.5427 55.502422 130882.4694 -64.497859 130932.6159 -12.037843 303.596380 -131.866237 303.047050 107.950978 303.047050 175.485514 130907.5427 0.0 0.0 0.0 0.0 -11.980548 303.230160 0.000000 0.000000 0.000000 0.000000 59.999000 0.00 12.209129 -3.008139 0 175.433947 130882.4694 55.468044 130857.3961 -64.549425 130932.6159 -12.100869 299.75107 -132.278766 301.21595 108.002544 301.39906 175.456866 130882.4694 0.0 0.0 0.0 0.0 -12.118057 300.84973 0.000000 0.00000 0.000000 0.00000 60.000 0.00 12.507478 -3.013915 0 179.920351 132642.2813 59.988097 132484.4531 -60.075988 132725.0469 179.914860 297.105774 60.081486 297.002808 -60.086977 297.191620 179.947822 132617.2656 0.0 0.0 0.0 0.0 179.975280 297.100067 0.000000 0.00000 0.000000 0.00000 60.000 0.00 12.661398 0.001620 0 0 0 0 0 0 0 0 0 0 0 0 0 1\n", + " 52.769413 131183.3486 -67.190761 131158.2754 172.798341 131208.4219 48.581091 456.49323 -71.161358 456.12701 168.799096 454.84524 52.792331 131183.3486 0.0 0.0 0.0 0.0 48.735790 455.76079 0.000000 0.0000 0.000000 0.00000 60.000 0.00 8.161543 0.079687 0 45.909120 129508.3203 -74.034121 129346.3281 165.923777 129583.4453 -138.919382 460.601807 101.109927 461.391449 -18.899231 461.254120 45.936584 129478.0078 0.0 0.0 0.0 0.0 -138.902893 461.088196 0.000000 0.000000 0.000000 0.000000 60.000000 0.00 8.001741 -3.057129 0 45.916838 129027.0474 -74.049065 129001.9742 165.962955 129052.1207 -138.976643 457.95811 101.155699 457.59189 -18.941985 456.85945 45.939756 129027.0474 0.0 0.0 0.0 0.0 -138.919347 457.40878 0.000000 0.00000 0.000000 0.00000 60.000 0.00 7.991356 -3.052803 0 52.838168 131258.5685 -67.156383 130531.4436 172.838449 131308.7150 48.907677 452.831030 -71.167088 452.281700 168.856392 452.098590 52.843897 131032.9090 0.0 0.0 0.0 0.0 48.861841 452.464810 0.000000 0.00000 0.000000 0.00000 60.000 0.00 8.227599 0.068253 0 0 0 0 0 0 0 0 0 0 0 0 0 1\n", + " 52.735035 131208.4219 -67.248056 131158.2754 172.763964 131283.6417 54.791954 444.40797 -64.864552 441.66132 172.614995 456.31012 52.752224 131208.4219 0.0 0.0 0.0 0.0 54.167430 447.33773 -112.104922 7.3244 111.428832 7.87373 59.986 0.03 8.075977 -0.065313 0 45.848697 130433.3359 -74.100039 130286.0859 165.868835 130520.8047 -133.003235 446.640015 107.630312 444.025024 -15.108949 457.878113 45.870669 130418.3516 0.0 0.0 0.0 0.0 -133.508615 449.420929 61.169132 7.902145 -82.762761 7.673264 59.984001 0.03 7.974048 3.097316 0 45.842353 129979.8317 -74.123550 129954.7584 165.888470 129979.8317 -140.168395 496.22810 101.453637 487.98815 -21.445810 501.90451 45.876731 129979.8317 0.0 0.0 0.0 0.0 -140.065263 495.31255 73.086496 8.05684 -115.072844 8.60617 59.986 0.03 7.107864 -3.041972 0 53.267886 133264.4301 -66.732394 132637.5983 173.279626 133339.6499 46.839300 488.354370 -71.424919 479.748200 165.687935 492.932120 53.267886 133088.9172 0.0 0.0 0.0 0.0 47.022646 486.889490 -96.938729 7.87373 68.170518 8.42306 59.988 0.01 7.403319 0.109701 0 0 0 0 0 0 0 0 0 0 0 0 0 1\n", + " 52.631903 131183.3486 -67.345459 131133.2021 172.666561 131233.4952 48.489418 456.12701 -71.321786 456.31012 168.638668 454.47902 52.649092 131183.3486 0.0 0.0 0.0 0.0 48.598280 455.57768 0.000000 0.0000 0.000000 0.00000 60.000 0.00 8.172086 0.078582 0 45.766297 129501.9063 -74.171449 129355.4844 165.775453 129576.9766 -139.117129 460.544586 100.978090 461.648926 -19.047547 461.322784 45.793765 129483.3438 0.0 0.0 0.0 0.0 -139.067692 461.174011 0.000000 0.000000 0.000000 0.000000 60.000000 0.00 8.007119 -3.055037 0 45.779328 129027.0474 -74.186575 129001.9742 165.819716 129052.1207 -139.142801 457.95811 101.029648 457.77500 -19.113872 457.22567 45.802246 129027.0474 0.0 0.0 0.0 0.0 -139.079775 457.59189 0.000000 0.00000 0.000000 0.00000 60.000 0.00 7.990588 -3.052317 0 52.689199 131183.3486 -67.305352 130631.7367 172.735316 131258.5685 48.684224 452.464810 -71.241572 452.647920 168.673045 451.732370 52.706388 131032.9090 0.0 0.0 0.0 0.0 48.701413 452.281700 0.000000 0.00000 0.000000 0.00000 60.000 0.00 8.230786 0.072472 0 0 0 0 0 0 0 0 0 0 0 0 0 1\n", + " 52.626173 131183.3486 -67.356918 131133.2021 172.660832 131233.4952 48.455041 456.12701 -71.321786 456.49323 168.655857 454.66213 52.643362 131183.3486 0.0 0.0 0.0 0.0 48.592551 455.76079 0.000000 0.0000 0.000000 0.00000 59.999 0.00 8.178557 0.079555 0 45.760806 129499.5547 -74.176940 129354.6484 165.775453 129579.4297 -139.089658 460.699097 100.961609 461.345673 -19.025574 461.380005 45.788270 129478.8438 0.0 0.0 0.0 0.0 -139.051218 461.156860 0.000000 0.000000 0.000000 0.000000 60.000000 0.00 8.001563 -3.056584 0 45.767869 129052.1207 -74.192305 129001.9742 165.813986 129052.1207 -139.131341 457.95811 101.041107 457.40878 -19.090954 457.40878 45.796517 129027.0474 0.0 0.0 0.0 0.0 -139.068316 457.59189 0.000000 0.00000 0.000000 0.00000 60.000 0.00 7.989802 -3.053534 0 52.689199 131183.3486 -67.316811 130631.7367 172.729587 131258.5685 48.655576 452.831030 -71.264491 452.831030 168.673045 451.915480 52.706388 131032.9090 0.0 0.0 0.0 0.0 48.684224 452.464810 0.000000 0.00000 0.000000 0.00000 60.000 0.00 8.224419 0.073250 0 0 0 0 0 0 0 0 0 0 0 0 0 1\n", + " ..\n", + "-64.996332 132261.4993 175.032877 131609.5942 55.021137 132311.6458 -64.767149 290.22935 175.319356 290.77868 55.078433 290.77868 -64.984873 132060.9131 0.0 0.0 0.0 0.0 -64.795797 290.59557 0.000000 0.0000 0.000000 0.00000 60.000 0.00 12.927910 -0.004007 0 -69.448214 130982.7625 170.598184 130957.6892 50.597903 131007.8358 103.046460 294.990210 -16.907985 294.807100 -137.080153 294.990210 -69.419566 130982.7625 0.0 0.0 0.0 0.0 103.023541 294.990210 0.000000 0.000000 0.000000 0.000000 60.000000 0.00 12.581165 -3.010841 0 -69.476862 130932.6159 170.552347 130907.5427 50.557796 131007.8358 102.857383 292.79289 -16.862148 292.60978 -137.206203 291.69423 -69.459674 130957.6892 0.0 0.0 0.0 0.0 102.926138 292.42667 0.000000 0.00000 0.000000 0.00000 60.000 0.00 12.642412 -3.001647 0 -65.107726 132678.1719 174.960022 132528.5781 54.906924 132765.6875 -64.668279 288.728699 175.415965 289.083496 55.170593 289.312378 -65.085754 132655.4531 0.0 0.0 0.0 0.0 -64.701235 289.049133 0.000000 0.00000 0.000000 0.00000 60.000 0.00 13.029317 -0.008249 0 0 0 0 0 0 0 0 0 0 0 0 0 1\n", + "-65.024980 132261.4993 174.998499 131609.5942 54.986760 132311.6458 -64.835904 290.59557 175.262060 290.41246 55.078433 290.77868 -65.013521 132060.9131 0.0 0.0 0.0 0.0 -64.835904 290.59557 0.000000 0.0000 0.000000 0.00000 60.000 0.00 12.898625 -0.003355 0 -69.482592 130982.7625 170.563806 130957.6892 50.574985 131007.8358 102.989164 295.173320 -16.925173 294.807100 -137.177555 294.990210 -69.453944 130982.7625 0.0 0.0 0.0 0.0 102.960516 294.990210 0.000000 0.000000 0.000000 0.000000 59.999000 0.00 12.553246 -3.009908 0 -69.505510 130932.6159 170.523699 130907.5427 50.523418 131032.9090 102.863113 292.97600 -16.919444 292.60978 -137.303606 291.51112 -69.494051 130957.6892 0.0 0.0 0.0 0.0 102.880302 292.42667 0.000000 0.00000 0.000000 0.00000 59.999 0.00 12.614378 -3.002597 0 -65.140689 132680.2344 174.927073 132525.0000 54.873965 132764.7188 -64.717716 288.591370 175.344548 289.157867 55.170593 289.358154 -65.113225 132655.7031 0.0 0.0 0.0 0.0 -64.739689 289.037720 0.000000 0.00000 0.000000 0.00000 60.000 0.00 13.057142 -0.008193 0 0 0 0 0 0 0 0 0 0 0 0 0 1\n", + "-65.173949 131885.4002 174.849530 131835.2537 54.849250 131960.6200 -66.554777 347.54278 173.205142 347.17656 53.222050 348.45833 -65.156760 131885.4002 0.0 0.0 0.0 0.0 -66.709476 347.72589 0.000000 0.0000 0.000000 0.00000 60.000 0.00 10.770447 0.017453 0 -70.392155 130845.9219 169.681092 130702.2891 49.627991 130935.4922 103.191837 352.220520 -16.795350 352.615356 -136.749581 352.649689 -70.364684 130828.0938 0.0 0.0 0.0 0.0 103.213809 352.489471 0.000000 0.000000 0.000000 0.000000 60.000000 0.00 10.575605 -3.029681 0 -70.387865 130406.0773 169.664262 130355.9307 49.658252 130406.0773 103.161051 350.28943 -16.776204 349.92321 -136.787944 349.74010 -70.359217 130381.0040 0.0 0.0 0.0 0.0 103.195429 350.10632 0.000000 0.00000 0.000000 0.00000 60.000 0.00 10.569825 -3.027301 0 -65.105194 131935.5467 174.918285 131283.6417 54.906546 131985.6933 -66.577696 345.345460 173.451513 345.528570 53.411126 344.979240 -65.099465 131734.9606 0.0 0.0 0.0 0.0 -66.571966 345.345460 0.000000 0.00000 0.000000 0.00000 60.000 0.00 10.852975 0.027302 0 0 0 0 0 0 0 0 0 0 0 0 0 1\n", + "-65.214056 131885.4002 174.815153 131835.2537 54.809143 131960.6200 -66.606344 347.54278 173.130657 347.17656 53.193402 348.45833 -65.202597 131885.4002 0.0 0.0 0.0 0.0 -66.766772 347.72589 0.000000 0.0000 0.000000 0.00000 59.999 0.00 10.776975 0.017445 0 -70.425111 130852.1406 169.642638 130698.3672 49.589540 130942.8359 103.109437 352.483765 -16.800843 352.506653 -136.793526 352.832794 -70.403138 130829.4141 0.0 0.0 0.0 0.0 103.169864 352.603912 0.000000 0.000000 0.000000 0.000000 59.999001 0.00 10.557738 -3.028207 0 -70.427972 130381.0040 169.612696 130381.0040 49.635334 130406.0773 103.143862 350.28943 -16.810582 349.92321 -136.833781 349.92321 -70.399324 130381.0040 0.0 0.0 0.0 0.0 103.166781 350.10632 0.000000 0.00000 0.000000 0.00000 59.999 0.00 10.566006 -3.028474 0 -65.151031 131935.5467 174.878178 131308.7150 54.872168 131985.6933 -66.600614 345.345460 173.417136 345.528570 53.393937 345.162350 -65.133842 131734.9606 0.0 0.0 0.0 0.0 -66.600614 345.345460 0.000000 0.00000 0.000000 0.00000 59.999 0.00 10.856373 0.026303 0 0 0 0 0 0 0 0 0 0 0 0 0 1\n", + " 179.994691 132211.3527 60.011599 131584.5210 -60.000140 132286.5725 179.880100 298.65241 60.017329 298.28619 -60.194946 298.83552 -179.994691 132035.8398 0.0 0.0 0.0 0.0 179.903018 298.65241 0.000000 0.0000 0.000000 0.00000 60.000 0.00 12.537542 0.002100 0 175.422488 130907.5427 55.462315 130882.4694 -64.537966 130932.6159 -12.049302 303.596380 -131.934992 303.413270 107.893682 302.863940 175.451136 130907.5427 0.0 0.0 0.0 0.0 -12.026384 303.230160 0.000000 0.000000 0.000000 0.000000 59.999000 0.00 12.216565 -3.008186 0 175.399570 130882.4694 55.433667 130832.3229 -64.589532 130932.6159 -12.175353 299.38485 -132.307414 301.58217 107.991085 301.21595 175.416759 130882.4694 0.0 0.0 0.0 0.0 -12.158164 300.66662 0.000000 0.00000 0.000000 0.00000 59.999 0.00 12.552263 -3.011497 0 179.881897 132633.9063 59.944151 132488.1719 -60.108950 132727.2031 179.887389 297.174439 60.021059 297.128662 -60.043032 297.431946 179.909368 132615.5469 0.0 0.0 0.0 0.0 179.958805 297.243103 0.000000 0.00000 0.000000 0.00000 60.000 0.00 12.679510 0.000863 0 0 0 0 0 0 0 0 0 0 0 0 0 1\n", + "Name: count, Length: 4800, dtype: int64" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_train.value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "R1-PA1:VH R1-PM1:V R1-PA2:VH R1-PM2:V R1-PA3:VH R1-PM3:V R1-PA4:IH R1-PM4:I R1-PA5:IH R1-PM5:I R1-PA6:IH R1-PM6:I R1-PA7:VH R1-PM7:V R1-PA8:VH R1-PM8:V R1-PA9:VH R1-PM9:V R1-PA10:IH R1-PM10:I R1-PA11:IH R1-PM11:I R1-PA12:IH R1-PM12:I R1:F R1:DF R1-PA:Z R1-PA:ZH R1:S R2-PA1:VH R2-PM1:V R2-PA2:VH R2-PM2:V R2-PA3:VH R2-PM3:V R2-PA4:IH R2-PM4:I R2-PA5:IH R2-PM5:I R2-PA6:IH R2-PM6:I R2-PA7:VH R2-PM7:V R2-PA8:VH R2-PM8:V R2-PA9:VH R2-PM9:V R2-PA10:IH R2-PM10:I R2-PA11:IH R2-PM11:I R2-PA12:IH R2-PM12:I R2:F R2:DF R2-PA:Z R2-PA:ZH R2:S R3-PA1:VH R3-PM1:V R3-PA2:VH R3-PM2:V R3-PA3:VH R3-PM3:V R3-PA4:IH R3-PM4:I R3-PA5:IH R3-PM5:I R3-PA6:IH R3-PM6:I R3-PA7:VH R3-PM7:V R3-PA8:VH R3-PM8:V R3-PA9:VH R3-PM9:V R3-PA10:IH R3-PM10:I R3-PA11:IH R3-PM11:I R3-PA12:IH R3-PM12:I R3:F R3:DF R3-PA:Z R3-PA:ZH R3:S R4-PA1:VH R4-PM1:V R4-PA2:VH R4-PM2:V R4-PA3:VH R4-PM3:V R4-PA4:IH R4-PM4:I R4-PA5:IH R4-PM5:I R4-PA6:IH R4-PM6:I R4-PA7:VH R4-PM7:V R4-PA8:VH R4-PM8:V R4-PA9:VH R4-PM9:V R4-PA10:IH R4-PM10:I R4-PA11:IH R4-PM11:I R4-PA12:IH R4-PM12:I R4:F R4:DF R4-PA:Z R4-PA:ZH R4:S control_panel_log1 control_panel_log2 control_panel_log3 control_panel_log4 relay1_log relay2_log relay3_log relay4_log snort_log1 snort_log2 snort_log3 snort_log4\n", + "-179.822804 131208.4219 60.212135 131158.2754 -59.793876 131283.6417 177.651294 445.68974 56.230078 450.63371 -62.354997 446.42218 -179.805615 131208.4219 0.0 0.0 0.0 0.0 177.175739 447.52084 -129.138957 3.84531 -11.802931 4.21153 59.999 0.00 8.562731 0.031573 0 173.383492 129561.9453 53.434756 129411.5078 -66.601871 129649.8984 -10.236511 451.108948 -131.366271 456.567749 109.964905 450.822815 173.410949 129538.3438 0.0 0.0 0.0 0.0 -10.549622 452.802673 42.140809 3.610611 175.624695 3.919601 60.000000 0.0 8.358397 -3.083787 0 173.382758 129102.2672 53.411126 129077.1940 -66.571966 129152.4138 -10.290322 448.61950 -131.281820 453.01414 109.962060 446.78840 173.411406 129102.2672 0.0 0.0 0.0 0.0 -10.542423 449.53505 38.720488 3.66220 -176.218900 3.29598 59.999 0.0 8.349940 -3.079151 0 -179.759779 131258.5685 60.257971 130606.6634 -59.742309 131308.7150 177.616917 442.943090 56.470720 448.070170 -62.228946 442.027540 -179.748320 131057.9823 0.0 0.0 0.0 0.0 177.284601 444.224860 -128.755076 3.84531 4.503448 3.66220 60.000000 0.0 8.613290 0.041052 0 0 0 0 0 0 0 0 0 0 0 0 0 1\n", + " 59.925656 131835.2537 -60.057436 131810.1804 179.960314 131910.4735 59.937115 362.37469 -61.959656 367.50177 179.817074 361.27603 59.942845 131835.2537 0.0 0.0 0.0 0.0 59.255295 363.65646 115.502562 4.57775 -126.629402 4.02842 59.999 0.00 10.630608 -0.013052 0 54.396060 130708.0703 -65.547181 130555.7656 174.410711 130795.2813 -129.850161 366.840363 108.613586 373.437866 -9.648743 367.012024 54.423524 130687.1094 0.0 0.0 0.0 0.0 -130.300598 369.060516 -73.314513 3.902435 54.994815 4.383087 60.000000 0.0 10.462053 -3.075550 0 54.385154 130230.5644 -65.575020 130230.5644 174.448460 130255.6377 -129.837966 364.75512 108.609880 370.24842 -9.717364 363.47335 54.425261 130255.6377 0.0 0.0 0.0 0.0 -130.324980 366.22000 -75.441353 4.21153 55.278968 3.84531 60.000 0.0 10.441144 -3.074482 0 59.982952 131885.4002 -60.000140 131258.5685 -179.994691 131935.5467 59.770957 359.628040 -61.759121 365.670670 -179.954584 358.529380 60.000140 131684.8140 0.0 0.0 0.0 0.0 59.346968 361.276030 112.924252 4.21153 -110.374590 4.21153 59.999000 0.0 10.763537 -0.001468 0 0 0 0 0 0 0 0 0 0 0 0 0 1\n", + " 59.776687 131785.1071 -60.217864 131734.9606 179.788427 131860.3269 59.112056 365.30445 -62.200298 368.23421 179.209739 363.29024 59.782416 131785.1071 0.0 0.0 0.0 0.0 58.705256 365.48756 106.277941 3.66220 0.000000 0.00000 60.000 0.00 10.461234 0.005595 0 54.231265 130646.2656 -65.711980 130498.9609 174.245912 130730.5469 -130.564271 369.237915 108.316958 373.346314 -10.274963 368.803040 54.258729 130624.6719 0.0 0.0 0.0 0.0 -130.844431 370.450989 0.000000 0.000000 56.455994 3.255844 60.000000 0.0 10.302272 -3.062930 0 54.224726 130180.4178 -65.735448 130155.3446 174.270843 130180.4178 -130.479679 366.76933 108.340590 370.79775 -10.370536 365.67067 54.259103 130180.4178 0.0 0.0 0.0 0.0 -130.840642 367.68488 -76.604457 3.29598 0.000000 0.00000 60.000 0.0 10.306758 -3.064294 0 59.828253 131835.2537 -60.154839 131183.3486 179.851452 131885.4002 59.157892 361.825360 -62.016952 366.220000 179.278494 361.092920 59.839712 131634.6675 0.0 0.0 0.0 0.0 58.802659 363.107130 114.184759 3.11287 0.000000 0.00000 60.000000 0.0 10.592622 0.006800 0 0 0 0 0 0 0 0 0 0 0 0 0 1\n", + " 59.175081 132035.8398 -60.808011 132010.7666 179.192550 132111.0596 58.584935 318.06207 -61.764850 318.61140 178.401869 319.52695 59.192270 132060.9131 0.0 0.0 0.0 0.0 58.407318 318.61140 0.000000 0.00000 0.000000 0.00000 60.000 0.00 11.830496 0.002332 0 54.401552 131158.7031 -65.541689 131009.8281 174.421694 131234.1719 -132.690126 323.472961 107.350158 323.375702 -12.675476 323.112488 54.429016 131136.7656 0.0 0.0 0.0 0.0 -132.668160 323.324219 0.000000 0.000000 0.000000 0.000000 60.000000 0.0 11.515211 -3.016462 0 54.402343 130681.8832 -65.569290 130656.8100 174.448460 130706.9565 -132.708485 321.17494 107.349373 320.99183 -12.691015 320.80872 54.430991 130681.8832 0.0 0.0 0.0 0.0 -132.679837 320.99183 0.000000 0.00000 0.000000 0.00000 60.000 0.0 11.551572 -3.016050 0 59.232377 132085.9864 -60.750715 131434.0813 179.249846 132136.1329 58.504720 316.780300 -61.426805 316.780300 178.482083 316.047860 59.243836 131885.4002 0.0 0.0 0.0 0.0 58.521909 316.597190 0.000000 0.00000 0.000000 0.00000 59.999000 0.0 11.830870 0.015543 0 0 0 0 0 0 0 0 0 0 0 0 0 1\n", + " 59.049030 131885.4002 -60.922602 131835.2537 179.072229 131935.5467 60.670501 335.82374 -61.862253 343.88058 -178.946179 332.16154 59.071949 131885.4002 0.0 0.0 0.0 0.0 59.937115 337.28862 111.973142 6.95818 -108.025463 5.85952 60.000 0.00 11.718305 -0.034630 0 53.874206 130863.0625 -66.069035 130711.9844 173.888857 130946.5078 -129.652413 339.757935 107.926947 348.598480 -9.165345 338.218689 53.901674 130840.8750 0.0 0.0 0.0 0.0 -130.317086 342.103943 -78.313296 6.248474 58.905949 6.294250 60.000000 0.0 11.530598 -3.089338 0 53.875221 130406.0773 -66.084952 130381.0040 173.921339 130381.0040 -129.694727 337.65484 107.968167 346.07790 -9.367860 335.64063 53.909599 130381.0040 0.0 0.0 0.0 0.0 -130.382276 339.66905 -75.819505 6.22574 59.581881 5.67641 60.000 0.0 11.508231 -3.087276 0 59.123515 131910.4735 -60.865307 131283.6417 179.135255 131960.6200 60.750715 332.344650 -61.862253 342.232590 -178.992015 330.879770 59.129244 131734.9606 0.0 0.0 0.0 0.0 59.948574 335.091300 117.845959 6.59196 -111.824173 6.40885 59.999000 0.0 11.895820 -0.038949 0 0 0 0 0 0 0 0 0 0 0 0 0 1\n", + " ..\n", + "-60.481425 132236.4260 179.542055 132186.2794 59.536044 132286.5725 -57.685391 311.47011 179.473300 320.99183 62.503966 308.90657 -60.469966 132236.4260 0.0 0.0 0.0 0.0 -58.596394 313.66743 -0.492744 6.95818 130.748969 6.04263 60.000 0.00 12.740412 -0.058563 0 -65.305481 131315.4531 174.762274 131169.1875 54.709170 131403.1094 111.107486 315.542236 -11.670228 326.168060 -128.295596 313.631043 -65.278017 131296.7969 0.0 0.0 0.0 0.0 110.349431 318.340302 164.841616 6.975174 -57.367859 7.038116 60.000999 0.0 12.600163 -3.086686 0 -65.305729 130857.3961 174.734939 130832.3229 54.751847 130882.4694 111.113705 313.30121 -11.653962 323.18915 -128.468597 311.28700 -65.277082 130857.3961 0.0 0.0 0.0 0.0 110.300105 315.86475 165.779608 6.77507 -59.037571 6.40885 60.000 0.0 12.585376 -3.088209 0 -60.424129 132286.5725 179.605080 131634.6675 59.610529 132336.7191 -57.645284 308.723460 179.524866 318.611400 62.572721 307.258580 -60.406940 132085.9864 0.0 0.0 0.0 0.0 -58.544828 311.470110 0.171887 6.59196 128.657673 6.22574 60.000000 0.0 12.886121 -0.060473 0 0 0 0 0 0 0 0 0 0 0 0 0 1\n", + "-61.123138 132035.8398 178.917531 131985.6933 58.905791 132085.9864 -61.260647 320.25939 178.144038 323.18915 59.100597 318.42829 -61.105949 132035.8398 0.0 0.0 0.0 0.0 -61.346591 320.62561 0.000000 0.00000 0.000000 0.00000 60.000 0.00 11.922371 0.007187 0 -65.942690 131125.5000 174.125072 130981.7188 54.077456 131210.3125 108.025821 324.176788 -12.801819 327.180847 -131.910105 324.405670 -65.915226 131103.1250 0.0 0.0 0.0 0.0 107.762149 325.241089 0.000000 0.000000 0.000000 0.000000 60.000000 0.0 11.686342 -3.041287 0 -65.941713 130656.8100 174.110415 130656.8100 54.104405 130656.8100 107.973897 321.72427 -12.822795 324.28781 -132.015206 321.54116 -65.907335 130656.8100 0.0 0.0 0.0 0.0 107.704606 322.45671 0.000000 0.00000 0.000000 0.00000 60.000 0.0 11.705786 -3.039765 0 -61.048653 132085.9864 178.974827 131459.1546 58.968816 132136.1329 -60.974169 317.878960 178.241441 320.076280 59.197999 316.780300 -61.037194 131885.4002 0.0 0.0 0.0 0.0 -61.186163 318.245180 0.000000 0.00000 0.000000 0.00000 60.000000 0.0 11.990849 -0.002974 0 0 0 0 0 0 0 0 0 0 0 0 0 1\n", + "-61.833605 132035.8398 178.201333 132010.7666 58.195323 132111.0596 -62.641476 318.61140 177.330438 320.99183 57.754146 319.16073 -61.816417 132060.9131 0.0 0.0 0.0 0.0 -62.521155 319.71006 0.000000 0.00000 0.000000 0.00000 59.999 0.01 11.919940 0.018146 0 -66.612854 131143.8125 173.454894 131006.5938 53.407288 131234.7031 106.482239 323.993683 -13.554382 324.434265 -133.558052 324.182495 -66.590881 131128.6875 0.0 0.0 0.0 0.0 106.454775 324.199677 0.000000 0.000000 0.000000 0.000000 60.000000 0.0 11.511754 -3.021346 0 -66.612073 130681.8832 173.445784 130681.8832 53.434044 130681.8832 106.449829 321.54116 -13.533263 321.54116 -133.590839 321.35805 -66.577696 130681.8832 0.0 0.0 0.0 0.0 106.438370 321.54116 0.000000 0.00000 0.000000 0.00000 60.000 0.0 11.538667 -3.019913 0 -61.759121 132085.9864 178.264359 131459.1546 58.264078 132161.2062 -62.395104 317.146520 177.593998 317.512740 57.628095 316.597190 -61.747662 131910.4735 0.0 0.0 0.0 0.0 -62.389374 317.146520 0.000000 0.00000 0.000000 0.00000 60.000000 0.0 11.846582 0.013325 0 0 0 0 0 0 0 0 0 0 0 0 0 1\n", + "-61.856524 132060.9131 178.184145 132035.8398 58.178135 132111.0596 -62.635746 318.97762 177.255953 320.80872 57.708309 319.52695 -61.833605 132060.9131 0.0 0.0 0.0 0.0 -62.561262 319.71006 0.000000 0.00000 0.000000 0.00000 60.000 0.00 11.894755 0.015408 0 -66.634827 131165.3125 173.432928 131011.1953 53.385315 131251.5469 106.432802 323.930725 -13.576355 324.199677 -133.541564 324.279785 -66.607363 131141.4688 0.0 0.0 0.0 0.0 106.432802 324.136719 0.000000 0.000000 0.000000 0.000000 60.000000 0.0 11.521349 -3.021094 0 -66.634992 130706.9565 173.417136 130656.8100 53.411126 130732.0298 106.352426 321.54116 -13.550452 321.35805 -133.625217 320.99183 -66.600614 130706.9565 0.0 0.0 0.0 0.0 106.386803 321.35805 0.000000 0.00000 0.000000 0.00000 60.000 0.0 11.535422 -3.016762 0 -61.776309 132111.0596 178.247170 131484.2279 58.241160 132161.2062 -62.429481 317.146520 177.565350 317.512740 57.593718 317.146520 -61.770580 131910.4735 0.0 0.0 0.0 0.0 -62.429481 317.329630 0.000000 0.00000 0.000000 0.00000 60.000000 0.0 11.851964 0.012123 0 0 0 0 0 0 0 0 0 0 0 0 0 1\n", + " 179.891559 131484.2279 59.902737 130857.3961 -60.086084 131559.4477 176.539756 422.06855 57.335887 418.77257 -62.670124 418.22324 179.903018 131308.7150 0.0 0.0 0.0 0.0 177.072607 419.68812 0.000000 0.00000 0.000000 0.00000 59.999 0.00 8.822680 0.074010 0 173.445784 129478.3663 53.497069 129453.2930 -66.514670 129478.3663 -11.871686 426.829410 -130.960963 423.533430 108.982302 423.350320 173.474432 129478.3663 0.0 0.0 0.0 0.0 -11.287269 424.632090 0.000000 0.000000 0.000000 0.000000 60.000000 0.0 8.591154 -3.032516 0 173.417136 129428.2197 53.451233 129428.2197 -66.560507 129503.4396 -11.716987 422.61788 -131.058366 418.95568 108.861981 420.05434 173.440054 129453.2930 0.0 0.0 0.0 0.0 -11.304457 420.60367 0.000000 0.00000 0.000000 0.00000 59.999 0.0 8.658456 -3.042107 0 179.761058 131885.5313 59.823305 131730.9219 -60.235295 131954.2813 176.679386 418.327332 57.560121 415.843964 -62.405089 415.609375 179.783024 131856.8281 0.0 0.0 0.0 0.0 177.278147 416.576386 0.000000 0.00000 0.000000 0.00000 59.999001 0.0 8.954109 0.069583 0 0 0 0 0 0 0 0 0 0 0 0 0 1\n", + "Name: count, Length: 1200, dtype: int64" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_test.value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "marker\n", + "1 2400\n", + "0 2400\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_train.value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "marker\n", + "1 600\n", + "0 600\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_test.value_counts()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<h1>3. Choosing a Model: Logistic Regression</h1>" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Creating a LG model" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "log_reg = LogisticRegression(max_iter=10000, random_state =1)#.fit(X_train, y_train)\n", + "#check if it can predict\n", + "#log_reg.predict(X_train)\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<h1>3.1. Training the Model</h1>" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "fit() trains the model" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<style>#sk-container-id-1 {color: black;background-color: white;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>LogisticRegression(max_iter=10000, random_state=1)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LogisticRegression</label><div class=\"sk-toggleable__content\"><pre>LogisticRegression(max_iter=10000, random_state=1)</pre></div></div></div></div></div>" + ], + "text/plain": [ + "LogisticRegression(max_iter=10000, random_state=1)" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\n", + "log_reg.fit(X_train, y_train)\n", + "#log_reg.score(X_train, y_train)\n", + "#log_reg.score(X_test, y_test)\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<h1>3.2. Initial Evaluation of the Model</h1>" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "firstPred = log_reg.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[563, 37],\n", + " [128, 472]], dtype=int64)" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn import metrics\n", + "from sklearn.metrics import confusion_matrix\n", + "from sklearn.metrics import classification_report\n", + "from sklearn.metrics import ConfusionMatrixDisplay\n", + "\n", + "cnf_matrix = metrics.confusion_matrix(y_test, firstPred)\n", + "cnf_matrix" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " normal 0.81 0.94 0.87 600\n", + " abnormal 0.93 0.79 0.85 600\n", + "\n", + " accuracy 0.86 1200\n", + " macro avg 0.87 0.86 0.86 1200\n", + "weighted avg 0.87 0.86 0.86 1200\n", + "\n" + ] + } + ], + "source": [ + "target_names = ['normal', 'abnormal']\n", + "print(classification_report(y_test, firstPred, target_names=target_names))" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<h1> 4. Hyperparameter Tuning</h1>" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Grid search adjusts the C parameter and chooses the best C value " + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Best parameter (CV score=0.873):\n", + "{'C': 92.49147277217335}\n" + ] + } + ], + "source": [ + "from sklearn.model_selection import GridSearchCV\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "\n", + "param_grid = {\n", + " \"C\": np.logspace(0, 4, 60),\n", + "}\n", + "\n", + "im_lg = GridSearchCV(log_reg, param_grid, n_jobs=2, cv=KFold(n_splits=5, random_state=0, shuffle=True))\n", + "im_lg.fit(X_train, y_train)\n", + "print(\"Best parameter (CV score=%0.3f):\" % im_lg.best_score_)\n", + "print(im_lg.best_params_)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "The K fold cross validation is chosen as it will go through all of the permuations of training and testing the data. The stratified cross validation is not used as the given dataset is not divided into categories/imbalanced. \n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "#get_score(LogisticRegression(), X_train_scaled, X_test_scaled, y_train, y_test)\n", + "results = cross_val_score(im_lg, X, y, cv=KFold(n_splits=5, random_state=0, shuffle=True))\n", + "print(\"Accuracy: %.3f%% (%.3f%%)\" % (results.mean()*100.0, results.std()*100.0))\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<h1> 5. Metric Evaluation</h1>" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([1, 0, 0, ..., 0, 0, 0], dtype=int64)" + ] + }, + "execution_count": 127, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#confusion Matrix\n", + "\n", + "y_pred = im_lg.predict(X_test)\n", + "y_pred\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3315 1\n", + "5843 0\n", + "915 0\n", + "1958 1\n", + "4461 1\n", + " ..\n", + "3519 0\n", + "5130 0\n", + "963 0\n", + "1672 0\n", + "2379 1\n", + "Name: marker, Length: 1200, dtype: int64" + ] + }, + "execution_count": 128, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_test" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[571, 29],\n", + " [124, 476]], dtype=int64)" + ] + }, + "execution_count": 129, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\n", + "confusion_matrix(y_test, y_pred)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.82 0.95 0.88 600\n", + " 1 0.94 0.79 0.86 600\n", + "\n", + " accuracy 0.87 1200\n", + " macro avg 0.88 0.87 0.87 1200\n", + "weighted avg 0.88 0.87 0.87 1200\n", + "\n" + ] + } + ], + "source": [ + "\n", + "print(classification_report(y_test, y_pred))\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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9OOPP+qZZ55R//79tX69/fyIhIQE9ejRQ7t377adf/DgQX399ddas2aNPvzwQy1YsEBdu3bVsWPHtHHjRk2fPl3jx4/X9u3bbddxc3PTnDlztGfPHi1evFjffvutRo8e7dD3JTExUUFBQbYtIiLCofNReu7uVo0fsVGySHPe+W2+TfcH96maT4E+WtGiEqMDruziSYv2TfNRy2kX5e597b5FudLJ1Z6q0/N3WYpVMgotajY2VzfdUaTgVkVqNeOizv/kpsx/uZdf8ChbRhlsJlWpdfNevXrZ7b///vuqWbOm9u7dK3//S/MWhgwZYus3b948rVmzRgsWLLBLEqZOnapOnTpJksaOHauuXbsqNzdXPj4+mjlzpvr166dBgwZJkkaMGKFt27Zp5syZuvvuu23XeOyxx9S/f3+7eKxWq95//30FBAQoKipKd999t9LS0rR69Wq5ubmpadOmmj59utavX6927S798hs2bJjt/Pr16+vll1/Ws88+q7feeqvE35dx48ZpxIgRtv3s7GySmgpQnMzUqnleoxPu+5/qjNS6RYYim/xXX3241O6cudO/0rebGujVv91Z0eECNtl73ZWf6abk3n62NqPIol9S3HX0Qy/d98M5WX7NSU5946mii1L4w/YJjXfNS7/J/G/57Q9KrxBDXsGGLp50k3TtYSygslVqQrN//35NnDhR27dv13//+19bZSY9PV1RUVGSpJiYGFt/Dw8PtW3bVqmpqXbXadmype3r2rVrS5JOnz6tunXrKjU1VX/961/t+t9xxx1644037Nratm17WXz169dXQMBvSx1DQ0Pl7u4uNzc3u7bTp0/b9teuXavExETt27dP2dnZKiwsVG5uri5cuCBf35KtjPH29pa393X+zEKZKk5mbq59TqMSuuhcjo/d8bnv365FH7a27dcIuajECWs1dVZH7dvPEBQqV432heqwwn5o+8fx1eTXoEgNBuTbkhlJOrbcU7XuLpRXiP2f4sG/Dj+dP+Imn7BLX+dnSflnLapWm4nBZlGV3+VUqQlNfHy86tWrp3fffVfh4eGyWq1q0aKF8vPzHbqOp6en7WuL5dIEtv8dtioJPz+/y9r+97rF175SW/G9jhw5ooceekgDBw7U1KlTFRISos2bN2vAgAHKz88vcUKDsufjU6DwsHO2/bDQHDWsn6lzOV7K/MVXE0Zu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", + "text/plain": [ + "<Figure size 640x480 with 2 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "cm =confusion_matrix(y_test, y_pred)\n", + "disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels = target_names)\n", + "disp.plot()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "86.45833333333334" + ] + }, + "execution_count": 132, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "log_reg.score(X_train, y_train)*100" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "87.04166666666666" + ] + }, + "execution_count": 133, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "im_lg.score(X_train, y_train)*100" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.model_selection import StratifiedKFold\n", + "\n", + "cvScore = cross_val_score(im_lg, X, y, cv=StratifiedKFold(n_splits=5, shuffle=True, random_state=1), scoring='f1_macro')\n", + "print (cvScore)\n", + "print (\" StratifiedKFold Cross-Validation Accuracy: %0.2f%% | Standard Deviation: %0.2f%%\" % (100*cvScore.mean(), 100*cvScore.std()))\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<h1> 6. Testing Data</h1>" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\60172\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\sklearn\\base.py:439: UserWarning: X does not have valid feature names, but LogisticRegression was fitted with feature names\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "y_testpred = im_lg.predict(readtest.values)\n", + "y_testpred = pd.DataFrame(y_testpred, columns=['predicted marker'])\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "predicted marker\n", + "0 50\n", + "1 50\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 135, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_testpred.value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#readtest['marker'] = np.transpose(y_testpred)\n", + "y_testpred.to_csv('testresult.csv')\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.3" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +}