├── depV.pdf ├── Participant-1 - Colaboratory.pdf ├── README.md ├── Copy_of_STEP_1_Channel_Selection_(CSV_File_creation)_without_details.ipynb ├── Copy_of_channel_selection_and_feature_selection_BCI_arousal.ipynb ├── Participant_1_,Arousal,80_20.ipynb └── Copy_of_channel_selection_and_feature_selection_BCI.ipynb /depV.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dasparagjyoti/EEG-Channel-Selection-for-Emotion-Recognition/HEAD/depV.pdf -------------------------------------------------------------------------------- /Participant-1 - Colaboratory.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dasparagjyoti/EEG-Channel-Selection-for-Emotion-Recognition/HEAD/Participant-1 - Colaboratory.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # EEG Channel Selection for Emotion Recognition 2 | 3 | - Developed an best EEG Channel Selection Model Using Technique Filter and Wrapper 4 | - Reduced the dimensionality of the EEG data by removing redundant and irrelevant EEG channels and select the subset of optimal channels that carries the most discriminative information 5 | 6 | # Working Methodology(Flowchart) 7 | 8 | ![flowchart](https://user-images.githubusercontent.com/13942624/159150490-950d38d7-96a3-4fbe-b46c-b45851c63d4a.png) 9 | 10 | # Results 11 | ![df](https://user-images.githubusercontent.com/13942624/159150547-cfde4aa3-fd86-4ddd-aeb5-bd84b9e5557a.PNG) 12 | 13 | ![df2](https://user-images.githubusercontent.com/13942624/159150567-2d65ac75-c190-4bd3-910d-484de4be8bb0.PNG) 14 | 15 | 16 | ![df](https://user-images.githubusercontent.com/13942624/159150674-2fc870d8-d5f8-44ae-a481-cb6a6fa37cac.PNG) 17 | 18 | 19 | ![Final Slides Final Year-27](https://user-images.githubusercontent.com/13942624/166136933-8ad1ba7e-50ff-4996-bde5-2032778a3c08.png) 20 | 21 | ![Final Slides Final Year-26](https://user-images.githubusercontent.com/13942624/166136953-eb27a592-fd16-4b6e-b417-55b542cc26f6.png) 22 | -------------------------------------------------------------------------------- /Copy_of_STEP_1_Channel_Selection_(CSV_File_creation)_without_details.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "Copy of STEP: 1--Channel Selection (CSV File creation) without details", 7 | "provenance": [], 8 | "collapsed_sections": [], 9 | "include_colab_link": true 10 | }, 11 | "kernelspec": { 12 | "display_name": "Python 3", 13 | "name": "python3" 14 | }, 15 | "language_info": { 16 | "name": "python" 17 | } 18 | }, 19 | "cells": [ 20 | { 21 | "cell_type": "markdown", 22 | "metadata": { 23 | "id": "view-in-github", 24 | "colab_type": "text" 25 | }, 26 | "source": [ 27 | "\"Open" 28 | ] 29 | }, 30 | { 31 | "cell_type": "code", 32 | "metadata": { 33 | "colab": { 34 | "base_uri": "https://localhost:8080/" 35 | }, 36 | "id": "Azg9wbOhz1XJ", 37 | "outputId": "f6c7f265-3eb6-4c9e-99d0-78afd6ec6c8f" 38 | }, 39 | "source": [ 40 | "from google.colab import drive \n", 41 | "drive._mount('/content/drive')\n", 42 | "!ls /content/drive/MyDrive/Deap" 43 | ], 44 | "execution_count": null, 45 | "outputs": [ 46 | { 47 | "output_type": "stream", 48 | "name": "stdout", 49 | "text": [ 50 | "Mounted at /content/drive\n", 51 | "s01.dat s05.dat s09.dat s13.dat s17.dat s21.dat s25.dat s29.dat\n", 52 | "s02.dat s06.dat s10.dat s14.dat s18.dat s22.dat s26.dat s30.dat\n", 53 | "s03.dat s07.dat s11.dat s15.dat s19.dat s23.dat s27.dat s31.dat\n", 54 | "s04.dat s08.dat s12.dat s16.dat s20.dat s24.dat s28.dat s32.dat\n" 55 | ] 56 | } 57 | ] 58 | }, 59 | { 60 | "cell_type": "code", 61 | "metadata": { 62 | "id": "CYrTggoIbl42" 63 | }, 64 | "source": [ 65 | "import os\n", 66 | "import time\n", 67 | "import pickle\n", 68 | "import pandas as pd\n", 69 | "import numpy as np\n", 70 | "from scipy import signal\n", 71 | "from scipy.signal import welch\n", 72 | "from scipy.integrate import simps\n", 73 | "from scipy.stats import f_oneway\n", 74 | "\n", 75 | "from tqdm import tqdm\n", 76 | "\n", 77 | "#!pip install scikit-learn==0.20.3\n", 78 | "from sklearn.model_selection import train_test_split\n", 79 | "from sklearn.preprocessing import StandardScaler\n", 80 | "from sklearn.svm import SVC\n", 81 | "from sklearn.neighbors import KNeighborsClassifier\n", 82 | "from sklearn.neural_network import MLPClassifier\n", 83 | "from sklearn import model_selection\n", 84 | "from sklearn.metrics import classification_report, confusion_matrix\n", 85 | "import itertools\n", 86 | "from sklearn.metrics import accuracy_score\n", 87 | "from sklearn.metrics import f1_score\n", 88 | "from sklearn.metrics import precision_recall_curve\n", 89 | "\n", 90 | "from scipy.signal import butter, lfilter, sosfilt, sosfreqz, freqz\n", 91 | "from sklearn.decomposition import FastICA\n", 92 | "\n", 93 | "import matplotlib.pyplot as plt\n", 94 | "from matplotlib import cm\n", 95 | "import seaborn as sns\n", 96 | "import pandas as pd\n", 97 | "from sklearn import preprocessing\n", 98 | "%matplotlib inline" 99 | ], 100 | "execution_count": null, 101 | "outputs": [] 102 | }, 103 | { 104 | "cell_type": "code", 105 | "metadata": { 106 | "id": "udO6VWBziiQW" 107 | }, 108 | "source": [ 109 | "def butter_bandpass(lowcut, highcut, fs, order = 3):\n", 110 | " nyq = 0.5 * fs\n", 111 | " low = lowcut / nyq\n", 112 | " high = highcut / nyq\n", 113 | " b, a = butter(order, [low, high], btype='band', analog=False)\n", 114 | " return b, a\n", 115 | "def butter_bandpass_filter(data, lowcut, highcut, fs, order = 5):\n", 116 | " b, a = butter_bandpass(lowcut, highcut, fs, order = order)\n", 117 | " y = lfilter(b, a, data)\n", 118 | " return y\n", 119 | "def eye_movement_artifact(shyam): # parameter must be an 2D array like 32_channels*7860_data\n", 120 | " # Inverse that 2D array\n", 121 | " shyam = shyam.transpose()\n", 122 | " ica = FastICA()\n", 123 | " comps = ica.fit_transform(shyam)\n", 124 | " # invert the array \n", 125 | " data_after = comps.transpose()\n", 126 | " return data_after\n", 127 | "def signal_pro(data):\n", 128 | " mean_value, fs, lowcut, highcut = 0, 128, 0.5, 45\n", 129 | " # do the bandpass filter\n", 130 | " for i in range(40):\n", 131 | " for j in range(32):\n", 132 | " data[i][j] = butter_bandpass_filter(data[i][j], lowcut, highcut, fs, order=5)\n", 133 | " # creating dummy variable which contains same data information \n", 134 | " error_eye = np.zeros((40,32,7680))\n", 135 | " new_data = np.zeros((40,32,7680))\n", 136 | " for i in range(40):\n", 137 | " for j in range(32):\n", 138 | " for k in range(7680):\n", 139 | " error_eye[i][j][k] = data[i][j][k]\n", 140 | " new_data[i][j][k] = data[i][j][k]\n", 141 | " for i in range(40):\n", 142 | " error_eye[i] = eye_movement_artifact(error_eye[i])\n", 143 | " for i in range(40):\n", 144 | " for j in range(32):\n", 145 | " mean_value = np.mean(error_eye[i][j])\n", 146 | " for k in range(7680):\n", 147 | " if(data[i][j][k] > 0.0):\n", 148 | " # data is positive\n", 149 | " new_data[i][j][k] = data[i][j][k] - abs(mean_value)\n", 150 | " else: # data is negative\n", 151 | " new_data[i][j][k] = data[i][j][k] + abs(mean_value)\n", 152 | " return new_data" 153 | ], 154 | "execution_count": null, 155 | "outputs": [] 156 | }, 157 | { 158 | "cell_type": "code", 159 | "metadata": { 160 | "id": "z1ZQs2q3Hnno" 161 | }, 162 | "source": [ 163 | "def bandpower(data, sf, band, window_sec=None, relative=False):\n", 164 | " band = np.asarray(band)\n", 165 | " low, high = band\n", 166 | " # Define window length\n", 167 | " if window_sec is not None:\n", 168 | " nperseg = window_sec * sf\n", 169 | " else:\n", 170 | " nperseg = (2 / low) * sf\n", 171 | " # Compute the modified periodogram (Welch)\n", 172 | " freqs, psd = welch(data, sf, nperseg=nperseg)\n", 173 | " # Frequency resolution\n", 174 | " freq_res = freqs[1] - freqs[0]\n", 175 | " # Find closest indices of band in frequency vector\n", 176 | " idx_band = np.logical_and(freqs >= low, freqs <= high)\n", 177 | " # Integral approximation of the spectrum using Simpson's rule.\n", 178 | " bp = simps(psd[idx_band], dx=freq_res)\n", 179 | " if relative:\n", 180 | " bp /= simps(psd, dx=freq_res)\n", 181 | " return bp" 182 | ], 183 | "execution_count": null, 184 | "outputs": [] 185 | }, 186 | { 187 | "cell_type": "code", 188 | "metadata": { 189 | "id": "CN81MihX5ZbU" 190 | }, 191 | "source": [ 192 | "def get_band_power(trial, channel, band):\n", 193 | " bd = (0,0)\n", 194 | " if (band == \"theta\"): # drownsiness, emotional connection, intuition, creativity\n", 195 | " bd = (4,8)\n", 196 | " elif (band == \"alpha\"): # reflection, relaxation\n", 197 | " bd = (8,12)\n", 198 | " elif (band == \"beta\"): # concentration, problem solving, memory\n", 199 | " bd = (12,30)\n", 200 | " elif (band == \"gamma\"): # cognition, perception, learning, multi-tasking\n", 201 | " bd = (30,48)\n", 202 | " return bandpower(filter_data[trial,channel], 128, bd)" 203 | ], 204 | "execution_count": null, 205 | "outputs": [] 206 | }, 207 | { 208 | "cell_type": "code", 209 | "metadata": { 210 | "id": "I4DEPV9z4a4q" 211 | }, 212 | "source": [ 213 | "def get_csf_file(subject, filter_data):\n", 214 | " try:\n", 215 | " mypath = \"/content/drive/MyDrive/Sequential methods for channel selection/our code/\" + subject\n", 216 | " os.mkdir(mypath)\n", 217 | " except Exception as e:\n", 218 | " print(e)\n", 219 | " #---------------------------------------- Theta ---------------------------------------\n", 220 | " eeg_theta = []\n", 221 | " for i in range (len(filter_data)):\n", 222 | " for j in range (len(filter_data[0])):\n", 223 | " eeg_theta.append(get_band_power(i,j,\"theta\"))\n", 224 | " eeg_theta = np.reshape(eeg_theta, (40, 32))\n", 225 | " df_theta = pd.DataFrame(data = eeg_theta, columns=eeg_channels)\n", 226 | " # Normalize the datset\n", 227 | " draft = []\n", 228 | " for i in range(0, len(eeg_channels)):\n", 229 | " draft.append(eeg_channels[i] + '_theta')\n", 230 | " min_max_scaler = preprocessing.MinMaxScaler()\n", 231 | " df_theta = min_max_scaler.fit_transform(df_theta)\n", 232 | " df_theta = pd.DataFrame(df_theta, columns = draft)\n", 233 | " df_theta.to_csv(mypath + \"/\" + subject + \"_theta.csv\", index = False, encoding = 'utf-8-sig')\n", 234 | " #---------------------------------------- Alpha --------------------------------------------------\n", 235 | " eeg_alpha = []\n", 236 | " for i in range (len(filter_data)):\n", 237 | " for j in range (len(filter_data[0])):\n", 238 | " eeg_alpha.append(get_band_power(i,j,\"alpha\"))\n", 239 | " eeg_alpha = np.reshape(eeg_alpha, (40, 32))\n", 240 | "\n", 241 | " df_alpha = pd.DataFrame(data = eeg_alpha, columns=eeg_channels)\n", 242 | " draft = []\n", 243 | " for i in range(0, len(eeg_channels)):\n", 244 | " draft.append(eeg_channels[i] + '_alpha')\n", 245 | " min_max_scaler = preprocessing.MinMaxScaler()\n", 246 | " df_alpha = min_max_scaler.fit_transform(df_alpha)\n", 247 | " df_alpha = pd.DataFrame(df_alpha, columns = draft)\n", 248 | " df_alpha.to_csv(mypath + \"/\" + subject + \"_alpha.csv\", index=False, encoding='utf-8-sig')\n", 249 | " #---------------------------------------- Beta----------------------------------------------------\n", 250 | " eeg_beta = []\n", 251 | " for i in range (len(filter_data)):\n", 252 | " for j in range (len(filter_data[0])):\n", 253 | " eeg_beta.append(get_band_power(i,j,\"beta\"))\n", 254 | " eeg_beta = np.reshape(eeg_beta, (40, 32))\n", 255 | " df_beta = pd.DataFrame(data = eeg_beta, columns=eeg_channels)\n", 256 | " draft = []\n", 257 | " for i in range(0, len(eeg_channels)):\n", 258 | " draft.append(eeg_channels[i] + '_beta')\n", 259 | " min_max_scaler = preprocessing.MinMaxScaler()\n", 260 | " df_beta = min_max_scaler.fit_transform(df_beta)\n", 261 | " df_beta = pd.DataFrame(df_beta, columns = draft)\n", 262 | " df_beta.to_csv(mypath + \"/\" + subject + \"_beta.csv\", index=False, encoding='utf-8-sig')\n", 263 | " #---------------------------------------- Gamma-----------------------------------------------------\n", 264 | " eeg_gamma = []\n", 265 | " for i in range (len(filter_data)):\n", 266 | " for j in range (len(filter_data[0])):\n", 267 | " eeg_gamma.append(get_band_power(i,j,\"gamma\"))\n", 268 | " eeg_gamma = np.reshape(eeg_gamma, (40, 32))\n", 269 | " df_gamma = pd.DataFrame(data = eeg_gamma, columns=eeg_channels)\n", 270 | " draft = []\n", 271 | " for i in range(0, len(eeg_channels)):\n", 272 | " draft.append(eeg_channels[i] + '_gamma')\n", 273 | " min_max_scaler = preprocessing.MinMaxScaler()\n", 274 | " df_gamma = min_max_scaler.fit_transform(df_gamma)\n", 275 | " df_gamma = pd.DataFrame(df_gamma, columns = draft)\n", 276 | " df_gamma.to_csv(mypath + \"/\" + subject + \"_gamma.csv\", index=False, encoding='utf-8-sig')\n", 277 | " #---------------------------------------- All Band -----------------------------------------------------\n", 278 | " frames = [df_theta, df_alpha, df_beta, df_gamma]\n", 279 | " all_bands = pd.concat(frames, axis=1)\n", 280 | " all_bands.shape\n", 281 | " all_bands.to_csv(mypath + \"/\" + subject + \".csv\", index=False, encoding='utf-8-sig')" 282 | ], 283 | "execution_count": null, 284 | "outputs": [] 285 | }, 286 | { 287 | "cell_type": "code", 288 | "metadata": { 289 | "id": "lZehUFjMT-UP" 290 | }, 291 | "source": [ 292 | "subject_names = [\"s01\", \"s02\", \"s03\", \"s04\", \"s05\", \"s06\", \"s07\", \"s08\", \"s09\", \"s10\", \"s11\", \"s12\", \"s13\", \"s14\", \"s15\", \"s16\", \"s17\", \"s18\", \"s19\", \"s20\", \"s21\",\n", 293 | " \"s22\", \"s23\", \"s24\", \"s25\", \"s26\", \"s27\", \"s28\", \"s29\", \"s30\", \"s31\", \"s32\"]" 294 | ], 295 | "execution_count": null, 296 | "outputs": [] 297 | }, 298 | { 299 | "cell_type": "code", 300 | "metadata": { 301 | "id": "00R0E0kBcd0w" 302 | }, 303 | "source": [ 304 | "for subject in subject_names[1:]:\n", 305 | " eeg_channels = np.array([\"Fp1\", \"AF3\", \"F3\", \"F7\", \"FC5\", \"FC1\", \"C3\", \"T7\", \"CP5\", \"CP1\", \"P3\", \"P7\", \"PO3\", \"O1\", \"Oz\", \"Pz\", \"Fp2\", \"AF4\", \"Fz\", \"F4\", \"F8\", \"FC6\", \"FC2\", \"Cz\", \"C4\", \"T8\", \"CP6\", \"CP2\", \"P4\", \"P8\", \"PO4\", \"O2\"])\n", 306 | " with open('/content/drive/MyDrive/Deap/' + subject + '.dat', 'rb') as f:\n", 307 | " raw_data = pickle.load(f, encoding = 'latin1')\n", 308 | " data = raw_data['data']\n", 309 | " reduced_eeg_data = data[0:40, 0:32, 384:8064]\n", 310 | " filter_data = signal_pro(data)\n", 311 | " get_csf_file(subject, filter_data)" 312 | ], 313 | "execution_count": null, 314 | "outputs": [] 315 | }, 316 | { 317 | "cell_type": "code", 318 | "metadata": { 319 | "id": "M1wqMXLl0u36" 320 | }, 321 | "source": [ 322 | "" 323 | ], 324 | "execution_count": null, 325 | "outputs": [] 326 | } 327 | ] 328 | } -------------------------------------------------------------------------------- /Copy_of_channel_selection_and_feature_selection_BCI_arousal.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "Copy of channel selection and feature selection BCI arousal", 7 | "provenance": [], 8 | "collapsed_sections": [], 9 | "include_colab_link": true 10 | }, 11 | "kernelspec": { 12 | "display_name": "Python 3", 13 | "name": "python3" 14 | }, 15 | "language_info": { 16 | "name": "python" 17 | } 18 | }, 19 | "cells": [ 20 | { 21 | "cell_type": "markdown", 22 | "metadata": { 23 | "id": "view-in-github", 24 | "colab_type": "text" 25 | }, 26 | "source": [ 27 | "\"Open" 28 | ] 29 | }, 30 | { 31 | "cell_type": "markdown", 32 | "metadata": { 33 | "id": "q7tNC6EX54Fm" 34 | }, 35 | "source": [ 36 | "#**1. Data Preprocessing**#" 37 | ] 38 | }, 39 | { 40 | "cell_type": "code", 41 | "metadata": { 42 | "id": "q5UDY40xrsZF" 43 | }, 44 | "source": [ 45 | "import pandas as pd\n", 46 | "import numpy as np\n", 47 | "\n", 48 | "import matplotlib.pyplot as plt\n", 49 | "import seaborn as sns\n", 50 | "%matplotlib inline\n", 51 | "\n", 52 | "from sklearn.model_selection import train_test_split\n", 53 | "\n", 54 | "from sklearn.feature_selection import chi2\n", 55 | "from sklearn.feature_selection import SelectKBest, SelectPercentile\n", 56 | "import warnings\n", 57 | "warnings.filterwarnings(\"ignore\")" 58 | ], 59 | "execution_count": null, 60 | "outputs": [] 61 | }, 62 | { 63 | "cell_type": "code", 64 | "metadata": { 65 | "colab": { 66 | "base_uri": "https://localhost:8080/" 67 | }, 68 | "id": "Azg9wbOhz1XJ", 69 | "outputId": "f98d59ca-a412-40dc-f2ae-5b67d41b4f47" 70 | }, 71 | "source": [ 72 | "from google.colab import drive\n", 73 | "import pickle \n", 74 | "drive._mount('/content/drive')\n", 75 | "drive.mount('/content/drive', force_remount=True)" 76 | ], 77 | "execution_count": null, 78 | "outputs": [ 79 | { 80 | "output_type": "stream", 81 | "name": "stdout", 82 | "text": [ 83 | "Mounted at /content/drive\n", 84 | "Mounted at /content/drive\n" 85 | ] 86 | } 87 | ] 88 | }, 89 | { 90 | "cell_type": "code", 91 | "metadata": { 92 | "id": "XpDYOiyPQ28F" 93 | }, 94 | "source": [ 95 | "with open('/content/drive/MyDrive/Deap/s01.dat', 'rb') as f:\n", 96 | " raw_data = pickle.load(f, encoding='latin1')" 97 | ], 98 | "execution_count": null, 99 | "outputs": [] 100 | }, 101 | { 102 | "cell_type": "code", 103 | "metadata": { 104 | "colab": { 105 | "base_uri": "https://localhost:8080/" 106 | }, 107 | "id": "Smqczw7Rtm8k", 108 | "outputId": "ec80b7bd-31e6-4445-d536-b86ebc28b68c" 109 | }, 110 | "source": [ 111 | "pip install skfeature-chappers" 112 | ], 113 | "execution_count": null, 114 | "outputs": [ 115 | { 116 | "output_type": "stream", 117 | "name": "stdout", 118 | "text": [ 119 | "Collecting skfeature-chappers\n", 120 | " Downloading skfeature_chappers-1.1.0-py3-none-any.whl (66 kB)\n", 121 | "\u001b[?25l\r\u001b[K |█████ | 10 kB 21.1 MB/s eta 0:00:01\r\u001b[K |█████████▉ | 20 kB 26.5 MB/s eta 0:00:01\r\u001b[K |██████████████▉ | 30 kB 12.9 MB/s eta 0:00:01\r\u001b[K |███████████████████▊ | 40 kB 9.6 MB/s eta 0:00:01\r\u001b[K |████████████████████████▊ | 51 kB 5.1 MB/s eta 0:00:01\r\u001b[K |█████████████████████████████▋ | 61 kB 5.3 MB/s eta 0:00:01\r\u001b[K |████████████████████████████████| 66 kB 2.6 MB/s \n", 122 | "\u001b[?25hRequirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from skfeature-chappers) (1.19.5)\n", 123 | "Requirement already satisfied: scikit-learn in /usr/local/lib/python3.7/dist-packages (from skfeature-chappers) (1.0.1)\n", 124 | "Requirement already satisfied: pandas in /usr/local/lib/python3.7/dist-packages (from skfeature-chappers) (1.1.5)\n", 125 | "Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.7/dist-packages (from pandas->skfeature-chappers) (2.8.2)\n", 126 | "Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.7/dist-packages (from pandas->skfeature-chappers) (2018.9)\n", 127 | "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.7.3->pandas->skfeature-chappers) (1.15.0)\n", 128 | "Requirement already satisfied: scipy>=1.1.0 in /usr/local/lib/python3.7/dist-packages (from scikit-learn->skfeature-chappers) (1.4.1)\n", 129 | "Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.7/dist-packages (from scikit-learn->skfeature-chappers) (3.0.0)\n", 130 | "Requirement already satisfied: joblib>=0.11 in /usr/local/lib/python3.7/dist-packages (from scikit-learn->skfeature-chappers) (1.1.0)\n", 131 | "Installing collected packages: skfeature-chappers\n", 132 | "Successfully installed skfeature-chappers-1.1.0\n" 133 | ] 134 | } 135 | ] 136 | }, 137 | { 138 | "cell_type": "code", 139 | "metadata": { 140 | "id": "kxJTyBtEeqHy" 141 | }, 142 | "source": [ 143 | "import numpy as np\n", 144 | "from skfeature.utility.construct_W import construct_W\n", 145 | "from scipy.sparse import diags\n", 146 | "\n", 147 | "def fisher_score(X, y):\n", 148 | " \"\"\"\n", 149 | " This function implements the fisher score feature selection, steps are as follows:\n", 150 | " 1. Construct the affinity matrix W in fisher score way\n", 151 | " 2. For the r-th feature, we define fr = X(:,r), D = diag(W*ones), ones = [1,...,1]', L = D - W\n", 152 | " 3. Let fr_hat = fr - (fr'*D*ones)*ones/(ones'*D*ones)\n", 153 | " 4. Fisher score for the r-th feature is score = (fr_hat'*D*fr_hat)/(fr_hat'*L*fr_hat)-1\n", 154 | " Input\n", 155 | " -----\n", 156 | " X: {numpy array}, shape (n_samples, n_features)\n", 157 | " input data\n", 158 | " y: {numpy array}, shape (n_samples,)\n", 159 | " input class labels\n", 160 | " Output\n", 161 | " ------\n", 162 | " score: {numpy array}, shape (n_features,)\n", 163 | " fisher score for each feature\n", 164 | " Reference\n", 165 | " ---------\n", 166 | " He, Xiaofei et al. \"Laplacian Score for Feature Selection.\" NIPS 2005.\n", 167 | " Duda, Richard et al. \"Pattern classification.\" John Wiley & Sons, 2012.\n", 168 | " \"\"\"\n", 169 | "\n", 170 | " # Construct weight matrix W in a fisherScore way\n", 171 | " kwargs = {\"neighbor_mode\": \"supervised\", \"fisher_score\": True, 'y': y}\n", 172 | " W = construct_W(X, **kwargs)\n", 173 | "\n", 174 | " # build the diagonal D matrix from affinity matrix W\n", 175 | " D = np.array(W.sum(axis=1))\n", 176 | " L = W\n", 177 | " tmp = np.dot(np.transpose(D), X)\n", 178 | " D = diags(np.transpose(D), [0])\n", 179 | " Xt = np.transpose(X)\n", 180 | " t1 = np.transpose(np.dot(Xt, D.todense()))\n", 181 | " t2 = np.transpose(np.dot(Xt, L.todense()))\n", 182 | " # compute the numerator of Lr\n", 183 | " D_prime = np.sum(np.multiply(t1, X), 0) - np.multiply(tmp, tmp)/D.sum()\n", 184 | " # compute the denominator of Lr\n", 185 | " L_prime = np.sum(np.multiply(t2, X), 0) - np.multiply(tmp, tmp)/D.sum()\n", 186 | " # avoid the denominator of Lr to be 0\n", 187 | " D_prime[D_prime < 1e-12] = 10000\n", 188 | " lap_score = 1 - np.array(np.multiply(L_prime, 1/D_prime))[0, :]\n", 189 | "\n", 190 | " # compute fisher score from laplacian score, where fisher_score = 1/lap_score - 1\n", 191 | " score = 1.0/lap_score - 1\n", 192 | " return np.transpose(score)\n", 193 | "\n", 194 | "\n", 195 | "def feature_ranking(score):\n", 196 | " \"\"\"\n", 197 | " Rank features in descending order according to fisher score, the larger the fisher score, the more important the\n", 198 | " feature is\n", 199 | " \"\"\"\n", 200 | " idx = np.argsort(score, 0)\n", 201 | " return idx[::-1]" 202 | ], 203 | "execution_count": null, 204 | "outputs": [] 205 | }, 206 | { 207 | "cell_type": "code", 208 | "metadata": { 209 | "colab": { 210 | "base_uri": "https://localhost:8080/" 211 | }, 212 | "id": "EpI-gFzRjgGT", 213 | "outputId": "95339fda-f57f-4936-d5fd-c5522d399db5" 214 | }, 215 | "source": [ 216 | "data = raw_data['data']\n", 217 | "labels = raw_data['labels']\n", 218 | "\n", 219 | "print(\"Labels: \", labels.shape) # trial x label\n", 220 | "print(\"Data: \", data.shape) # trial x channel x data" 221 | ], 222 | "execution_count": null, 223 | "outputs": [ 224 | { 225 | "output_type": "stream", 226 | "name": "stdout", 227 | "text": [ 228 | "Labels: (40, 4)\n", 229 | "Data: (40, 40, 8064)\n" 230 | ] 231 | } 232 | ] 233 | }, 234 | { 235 | "cell_type": "code", 236 | "metadata": { 237 | "id": "FTfibgB5c63Y" 238 | }, 239 | "source": [ 240 | "\"\"\"\n", 241 | "em_labels = []\n", 242 | "for i in range(0, labels.shape[0]):\n", 243 | "\tif (labels[i][0]>5): #high valence\n", 244 | "\t\tif(labels[i][1]>5): # high arousal\n", 245 | "\t\t\tem_labels.append(1) # HVHA\n", 246 | "\t\telse:\n", 247 | "\t\t\tem_labels.append(0) # HVLA\n", 248 | "\telse: # low valence\n", 249 | "\t\tif(labels[i][1]>5): # high arousal\n", 250 | "\t\t\tem_labels.append(2) #LVHA\n", 251 | "\t\telse:\n", 252 | "\t\t\tem_labels.append(3) # LVLA\n", 253 | "\"\"\"\n", 254 | "em_labels = []\n", 255 | "for i in range(0, labels.shape[0]):\n", 256 | "\tif (labels[i][1]>5): #high valence\n", 257 | "\t\t\tem_labels.append(0) # HVHA\n", 258 | "\telse: # low valence\n", 259 | "\t\t\tem_labels.append(1)" 260 | ], 261 | "execution_count": null, 262 | "outputs": [] 263 | }, 264 | { 265 | "cell_type": "code", 266 | "metadata": { 267 | "colab": { 268 | "base_uri": "https://localhost:8080/" 269 | }, 270 | "id": "3jCP0SMBc9iu", 271 | "outputId": "edd7af9d-7af0-4dbc-9c30-4da0583d840f" 272 | }, 273 | "source": [ 274 | "print(em_labels)" 275 | ], 276 | "execution_count": null, 277 | "outputs": [ 278 | { 279 | "output_type": "stream", 280 | "name": "stdout", 281 | "text": [ 282 | "[0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]\n" 283 | ] 284 | } 285 | ] 286 | }, 287 | { 288 | "cell_type": "markdown", 289 | "metadata": { 290 | "id": "eQlRP4LrOMlk" 291 | }, 292 | "source": [ 293 | "# Fisher's Score for Theta Band" 294 | ] 295 | }, 296 | { 297 | "cell_type": "code", 298 | "metadata": { 299 | "id": "Na1SqsWbr2y1" 300 | }, 301 | "source": [ 302 | "# load dataset\n", 303 | "data_theta = pd.read_csv('/content/drive/MyDrive/1df_theta.csv')\n", 304 | "# features from all the channels from the theta band only\n", 305 | "data_theta.shape\n", 306 | "data_theta['videos'] = em_labels\n", 307 | "data_theta['videos'].unique()\n", 308 | "X = data_theta[['Fp1',\t'AF3',\t'F3',\t'F7',\t'FC5',\t'FC1',\t'C3',\t'T7',\t'CP5',\t'CP1',\t'P3',\t'P7',\t'PO3',\t'O1',\t'Oz',\t'Pz',\t'Fp2',\t'AF4',\t'Fz',\t'F4',\t'F8',\t'FC6',\t'FC2',\t'Cz',\t'C4',\t'T8',\t'CP6',\t'CP2',\t'P4',\t'P8',\t'PO4',\t'O2']]\n", 309 | "# taking only first 32 channels (EEG signals)\n", 310 | "y = data_theta['videos']\n", 311 | "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state = 0)\n", 312 | "X_train = np.array(X_train)\n", 313 | "y_train = np.array(y_train)\n", 314 | "f_score_theta = fisher_score(X_train, y_train)" 315 | ], 316 | "execution_count": null, 317 | "outputs": [] 318 | }, 319 | { 320 | "cell_type": "markdown", 321 | "metadata": { 322 | "id": "6jeXnumcG2JB" 323 | }, 324 | "source": [ 325 | "# Fisher Score for Alpha Band" 326 | ] 327 | }, 328 | { 329 | "cell_type": "code", 330 | "metadata": { 331 | "id": "C7fJ9fMdGVbQ" 332 | }, 333 | "source": [ 334 | "# load dataset\n", 335 | "data_alpha = pd.read_csv('/content/drive/MyDrive/2df_alpha.csv')\n", 336 | "# features from all the channels from the theta band only\n", 337 | "data_alpha.shape\n", 338 | "data_alpha['videos'] = em_labels\n", 339 | "data_alpha['videos'].unique()\n", 340 | "X = data_alpha[['Fp1',\t'AF3',\t'F3',\t'F7',\t'FC5',\t'FC1',\t'C3',\t'T7',\t'CP5',\t'CP1',\t'P3',\t'P7',\t'PO3',\t'O1',\t'Oz',\t'Pz',\t'Fp2',\t'AF4',\t'Fz',\t'F4',\t'F8',\t'FC6',\t'FC2',\t'Cz',\t'C4',\t'T8',\t'CP6',\t'CP2',\t'P4',\t'P8',\t'PO4',\t'O2']]\n", 341 | "# taking only first 32 channels (EEG signals)\n", 342 | "y = data_alpha['videos']\n", 343 | "y.head()\n", 344 | "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state = 0)\n", 345 | "X_train = np.array(X_train)\n", 346 | "y_train = np.array(y_train)\n", 347 | "f_score_alpha = fisher_score(X_train, y_train)" 348 | ], 349 | "execution_count": null, 350 | "outputs": [] 351 | }, 352 | { 353 | "cell_type": "markdown", 354 | "metadata": { 355 | "id": "Np4pvMpaWAhN" 356 | }, 357 | "source": [ 358 | "# Fisher Score for Beta Band" 359 | ] 360 | }, 361 | { 362 | "cell_type": "code", 363 | "metadata": { 364 | "id": "9LA2tAAslnGK" 365 | }, 366 | "source": [ 367 | "# load dataset\n", 368 | "data_beta = pd.read_csv('/content/drive/MyDrive/3df_beta.csv')\n", 369 | "# features from all the channels from the theta band only\n", 370 | "data_beta.shape\n", 371 | "data_beta['videos'] = em_labels\n", 372 | "data_beta['videos'].unique()\n", 373 | "X = data_beta[['Fp1',\t'AF3',\t'F3',\t'F7',\t'FC5',\t'FC1',\t'C3',\t'T7',\t'CP5',\t'CP1',\t'P3',\t'P7',\t'PO3',\t'O1',\t'Oz',\t'Pz',\t'Fp2',\t'AF4',\t'Fz',\t'F4',\t'F8',\t'FC6',\t'FC2',\t'Cz',\t'C4',\t'T8',\t'CP6',\t'CP2',\t'P4',\t'P8',\t'PO4',\t'O2']]\n", 374 | "# taking only first 32 channels (EEG signals)\n", 375 | "y = data_beta['videos']\n", 376 | "X_train = np.array(X_train)\n", 377 | "y_train = np.array(y_train)\n", 378 | "f_score_beta = fisher_score(X_train, y_train)" 379 | ], 380 | "execution_count": null, 381 | "outputs": [] 382 | }, 383 | { 384 | "cell_type": "markdown", 385 | "metadata": { 386 | "id": "uxn9t3hDWEBw" 387 | }, 388 | "source": [ 389 | "# Fisher Score for Gamma Band" 390 | ] 391 | }, 392 | { 393 | "cell_type": "code", 394 | "metadata": { 395 | "id": "7Q0uOFsDWEBx" 396 | }, 397 | "source": [ 398 | "# load dataset\n", 399 | "data_gamma = pd.read_csv('/content/drive/MyDrive/4df_gamma.csv')\n", 400 | "# features from all the channels from the theta band only\n", 401 | "data_gamma.shape\n", 402 | "data_gamma['videos'] = em_labels\n", 403 | "data_gamma['videos'].unique()\n", 404 | "X = data_gamma[['Fp1',\t'AF3',\t'F3',\t'F7',\t'FC5',\t'FC1',\t'C3',\t'T7',\t'CP5',\t'CP1',\t'P3',\t'P7',\t'PO3',\t'O1',\t'Oz',\t'Pz',\t'Fp2',\t'AF4',\t'Fz',\t'F4',\t'F8',\t'FC6',\t'FC2',\t'Cz',\t'C4',\t'T8',\t'CP6',\t'CP2',\t'P4',\t'P8',\t'PO4',\t'O2']]\n", 405 | "# taking only first 32 channels (EEG signals)\n", 406 | "y = data_gamma['videos']\n", 407 | "y.head()\n", 408 | "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state = 0)\n", 409 | "X_train = np.array(X_train)\n", 410 | "y_train = np.array(y_train)\n", 411 | "f_score_gamma = fisher_score(X_train, y_train)" 412 | ], 413 | "execution_count": null, 414 | "outputs": [] 415 | }, 416 | { 417 | "cell_type": "markdown", 418 | "metadata": { 419 | "id": "sUoClL1YB5aW" 420 | }, 421 | "source": [ 422 | "# Total Avearge F-Score(Theta,Alpha,Beta,Gamma)" 423 | ] 424 | }, 425 | { 426 | "cell_type": "code", 427 | "metadata": { 428 | "id": "LCtwrlPCB5C1" 429 | }, 430 | "source": [ 431 | "final_f_score = (f_score_theta + f_score_alpha + f_score_beta + f_score_gamma)/4" 432 | ], 433 | "execution_count": null, 434 | "outputs": [] 435 | }, 436 | { 437 | "cell_type": "code", 438 | "metadata": { 439 | "colab": { 440 | "base_uri": "https://localhost:8080/" 441 | }, 442 | "id": "GB2MaoDXJC0O", 443 | "outputId": "66e2e79e-7c0c-452f-b069-fbd3d2796ccc" 444 | }, 445 | "source": [ 446 | "fvalues = pd.Series(final_f_score)\n", 447 | "X_train = pd.DataFrame(X_train)\n", 448 | "fvalues.index = X.columns\n", 449 | "fvalues.sort_values(ascending=False)\n", 450 | "fvalues.to_csv('fscore_final.csv')\n", 451 | "print(fvalues)" 452 | ], 453 | "execution_count": null, 454 | "outputs": [ 455 | { 456 | "output_type": "stream", 457 | "name": "stdout", 458 | "text": [ 459 | "Fp1 0.169451\n", 460 | "AF3 0.232807\n", 461 | "F3 0.257078\n", 462 | "F7 0.079412\n", 463 | "FC5 0.203454\n", 464 | "FC1 0.196043\n", 465 | "C3 0.187472\n", 466 | "T7 0.140773\n", 467 | "CP5 0.215465\n", 468 | "CP1 0.201009\n", 469 | "P3 0.285845\n", 470 | "P7 0.325079\n", 471 | "PO3 0.249167\n", 472 | "O1 0.169598\n", 473 | "Oz 0.180071\n", 474 | "Pz 0.285443\n", 475 | "Fp2 0.202628\n", 476 | "AF4 0.162624\n", 477 | "Fz 0.147973\n", 478 | "F4 0.110062\n", 479 | "F8 0.114605\n", 480 | "FC6 0.130890\n", 481 | "FC2 0.130900\n", 482 | "Cz 0.005788\n", 483 | "C4 0.151903\n", 484 | "T8 0.195630\n", 485 | "CP6 0.149990\n", 486 | "CP2 0.140019\n", 487 | "P4 0.209854\n", 488 | "P8 0.130032\n", 489 | "PO4 0.184067\n", 490 | "O2 0.118841\n", 491 | "dtype: float64\n" 492 | ] 493 | } 494 | ] 495 | }, 496 | { 497 | "cell_type": "code", 498 | "metadata": { 499 | "colab": { 500 | "base_uri": "https://localhost:8080/", 501 | "height": 510 502 | }, 503 | "id": "4JomiwHHuhE8", 504 | "outputId": "98607323-28b7-4b57-931d-94e9f044f711" 505 | }, 506 | "source": [ 507 | "fvalues.sort_values(ascending = False).plot.bar(figsize=(10,8))" 508 | ], 509 | "execution_count": null, 510 | "outputs": [ 511 | { 512 | "output_type": "execute_result", 513 | "data": { 514 | "text/plain": [ 515 | "" 516 | ] 517 | }, 518 | "metadata": {}, 519 | "execution_count": 15 520 | }, 521 | { 522 | "output_type": "display_data", 523 | "data": { 524 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlkAAAHcCAYAAADlbb+xAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3de7hld1kn+O9LyoBcVJQaHHOhIsTW0AhKEXq8KyCxo4RWbIOieI0ijNqM08ZRoY2XieC04wUdULAR2w43tUsTRB6gtW0eIOEiGOy0IQSSqE0EWlRoIOGdP9Yq2BxP5ex9zvpVnSo+n+c5T6291vq99dt7r7X2d6/bru4OAADLutOJ7gAAwKlIyAIAGEDIAgAYQMgCABhAyAIAGEDIAgAY4MCJ7sBW97rXvfrQoUMnuhsAADt63ete9zfdfXC7afsuZB06dCjXXHPNie4GAMCOqurtx5rmcCEAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwAAHTnQH1nHo0it3nOfGyy88Dj0BAFiPPVkAAAMIWQAAAwhZAAADCFkAAAMIWQAAAwhZAAADCFkAAAMIWQAAAwhZAAADCFkAAAMIWQAAAwhZAAADCFkAAAMIWQAAAwhZAAADCFkAAAMIWQAAAwhZAAADCFkAAAMIWQAAAwhZAAADCFkAAAMIWQAAAwhZAAADCFkAAAMIWQAAAwhZAAADrBWyquqCqrquqq6vqku3mf49VfXmqnpjVf1JVZ23Mu2H53bXVdUjl+w8AMB+tWPIqqrTkjwjyVclOS/JY1dD1Oy3uvsB3f2gJE9L8m/ntucluTjJ/ZNckOSX53oAAKe0dfZknZ/k+u6+obs/mOSKJBetztDd7115eLckPQ9flOSK7v5Ad78tyfVzPQCAU9qBNeY5I8lNK49vTvLQrTNV1ROTPDnJ6Um+YqXtq7e0PWNXPQUAOIksduJ7dz+ju++b5IeS/Ogmbavqkqq6pqquufXWW5fqEgDACbNOyLolyVkrj8+cxx3LFUkevUnb7n5Wdx/u7sMHDx5co0sAAPvbOiHr6iTnVtU5VXV6phPZj6zOUFXnrjy8MMlfzMNHklxcVXeuqnOSnJvktXvvNgDA/rbjOVndfVtVPSnJS5OcluQ53X1tVV2W5JruPpLkSVX18CQfSvKeJI+f215bVS9I8pYktyV5YnffPui5AADsG+uc+J7uvirJVVvGPWVl+PvvoO1PJfmp3XYQAOBk5I7vAAADCFkAAAMIWQAAAwhZAAADCFkAAAMIWQAAAwhZAAADCFkAAAMIWQAAAwhZAAADCFkAAAMIWQAAAwhZAAADHDjRHTheDl165Y7z3Hj5hXuus04NAODUZ08WAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwAAHTnQHPh4duvTKHee58fILj0NPAIBR7MkCABhAyAIAGEDIAgAYQMgCABhAyAIAGGCtkFVVF1TVdVV1fVVdus30J1fVW6rqTVX18qq6z8q026vqjfPfkSU7DwCwX+14C4eqOi3JM5I8IsnNSa6uqiPd/ZaV2d6Q5HB3v6+qnpDkaUm+YZ72/u5+0ML9BgDY19bZk3V+kuu7+4bu/mCSK5JctDpDd7+yu983P3x1kjOX7SYAwMllnZB1RpKbVh7fPI87lu9I8pKVx3epqmuq6tVV9ejtGlTVJfM819x6661rdAkAYH9b9I7vVfW4JIeTfOnK6Pt09y1V9ZlJXlFVb+7ut6626+5nJXlWkhw+fLiX7NOpbKc7x7trPACcOOvsybolyVkrj8+cx32Mqnp4kh9J8qju/sDR8d19y/zvDUn+U5LP20N/AQBOCuuErKuTnFtV51TV6UkuTvIxVwlW1ecleWamgPXOlfH3rKo7z8P3SvKFSVZPmAcAOCXteLiwu2+rqicleWmS05I8p7uvrarLklzT3UeSPD3J3ZO8sKqS5B3d/agkn5PkmVX14UyB7vItVyUCAJyS1jonq7uvSnLVlnFPWRl++DHavSrJA/bSQQCAk5E7vgMADCBkAQAMIGQBAAwgZAEADCBkAQAMIGQBAAwgZAEADCBkAQAMIGQBAAwgZAEADCBkAQAMIGQBAAwgZAEADCBkAQAMIGQBAAwgZAEADHDgRHeAE+vQpVfuOM+Nl194HHoCAKcWe7IAAAYQsgAABhCyAAAGELIAAAYQsgAABhCyAAAGELIAAAYQsgAABhCyAAAGELIAAAYQsgAABhCyAAAGELIAAAYQsgAABhCyAAAGELIAAAYQsgAABhCyAAAGELIAAAYQsgAABhCyAAAGOHCiO8DJ79ClV+44z42XX3gcegIA+4c9WQAAAwhZAAADCFkAAAMIWQAAAwhZAAADCFkAAAO4hQP7hltBAHAqsScLAGAAIQsAYAAhCwBgACELAGAAIQsAYAAhCwBgACELAGAAIQsAYIC1bkZaVRck+fkkpyX5te6+fMv0Jyf5ziS3Jbk1ybd399vnaY9P8qPzrD/Z3c9dqO/wj7ihKQD7xY4hq6pOS/KMJI9IcnOSq6vqSHe/ZWW2NyQ53N3vq6onJHlakm+oqk9N8tQkh5N0ktfNbd+z9BOBJe0U1gQ1AHayzuHC85Nc3903dPcHk1yR5KLVGbr7ld39vvnhq5OcOQ8/MsnLuvvdc7B6WZILluk6AMD+tc7hwjOS3LTy+OYkD72D+b8jyUvuoO0Zm3QQTlYOXQJ8fFv0B6Kr6nGZDg1+6YbtLklySZKcffbZS3YJAOCEWOdw4S1Jzlp5fOY87mNU1cOT/EiSR3X3BzZp293P6u7D3X344MGD6/YdAGDfWidkXZ3k3Ko6p6pOT3JxkiOrM1TV5yV5ZqaA9c6VSS9N8pVVdc+qumeSr5zHAQCc0nY8XNjdt1XVkzKFo9OSPKe7r62qy5Jc091Hkjw9yd2TvLCqkuQd3f2o7n53Vf1EpqCWJJd197uHPBMAgH1krXOyuvuqJFdtGfeUleGH30Hb5yR5zm47CABwMlr0xHdgee7ZBXByErLg44DbSQAcf367EABgACELAGAAIQsAYAAhCwBgACELAGAAIQsAYAAhCwBgACELAGAAIQsAYAB3fAfW4q7xAJuxJwsAYAAhCwBgACELAGAA52QBx5Vzu4CPF/ZkAQAMIGQBAAwgZAEADCBkAQAM4MR34KTj5HngZGBPFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAAdOdAcATpRDl1654zw3Xn7h8BrAqcmeLACAAYQsAIABhCwAgAGELACAAYQsAIABhCwAgAGELACAAYQsAIAB3IwUYB/Y6aambmgKJx97sgAABhCyAAAGELIAAAYQsgAABhCyAAAGELIAAAYQsgAABhCyAAAGELIAAAYQsgAABhCyAAAGWCtkVdUFVXVdVV1fVZduM/1Lqur1VXVbVT1my7Tbq+qN89+RpToOALCf7fgD0VV1WpJnJHlEkpuTXF1VR7r7LSuzvSPJtyb5wW1KvL+7H7RAXwG4Azv9yHTih6bheNoxZCU5P8n13X1DklTVFUkuSvKRkNXdN87TPjygjwAAJ511DheekeSmlcc3z+PWdZequqaqXl1Vj96odwAAJ6l19mTt1X26+5aq+swkr6iqN3f3W1dnqKpLklySJGefffZx6BIAx7LTYUeHHGE96+zJuiXJWSuPz5zHraW7b5n/vSHJf0ryedvM86zuPtzdhw8ePLhuaQCAfWudPVlXJzm3qs7JFK4uTvKN6xSvqnsmeV93f6Cq7pXkC5M8bbedBeDk4CR8WGNPVnffluRJSV6a5M+TvKC7r62qy6rqUUlSVQ+pqpuTfH2SZ1bVtXPzz0lyTVX9aZJXJrl8y1WJAACnpLXOyeruq5JctWXcU1aGr850GHFru1clecAe+wgAcNJxx3cAgAGELACAAYQsAIABhCwAgAGELACAAYQsAIABjsfP6gDAxtzQlJOdkAXAKU1Y40RxuBAAYAAhCwBgACELAGAAIQsAYAAhCwBgACELAGAAIQsAYAAhCwBgACELAGAAIQsAYAAhCwBgAL9dCAA7WOr3D3eq4zcUTy1CFgCcRPzg9cnD4UIAgAGELACAAYQsAIABhCwAgAGELACAAYQsAIABhCwAgAGELACAAYQsAIABhCwAgAGELACAAYQsAIABhCwAgAEOnOgOAADH36FLr7zD6TdefuFx6smpy54sAIABhCwAgAGELACAAYQsAIABhCwAgAFcXQgA7MpOVygmH99XKdqTBQAwgJAFADCAkAUAMICQBQAwgJAFADCAqwsBgBPmVL5C0Z4sAIABhCwAgAGELACAAYQsAIABhCwAgAGELACAAYQsAIABhCwAgAHWCllVdUFVXVdV11fVpdtM/5Kqen1V3VZVj9ky7fFV9Rfz3+OX6jgAwH62Y8iqqtOSPCPJVyU5L8ljq+q8LbO9I8m3JvmtLW0/NclTkzw0yflJnlpV99x7twEA9rd19mSdn+T67r6huz+Y5IokF63O0N03dvebknx4S9tHJnlZd7+7u9+T5GVJLlig3wAA+9o6IeuMJDetPL55HreOtdpW1SVVdU1VXXPrrbeuWRoAYP/aFye+d/ezuvtwdx8+ePDgie4OAMCerROybkly1srjM+dx69hLWwCAk9Y6IevqJOdW1TlVdXqSi5McWbP+S5N8ZVXdcz7h/SvncQAAp7QdQ1Z335bkSZnC0Z8neUF3X1tVl1XVo5Kkqh5SVTcn+fokz6yqa+e2707yE5mC2tVJLpvHAQCc0g6sM1N3X5Xkqi3jnrIyfHWmQ4HbtX1OkufsoY8AACedfXHiOwDAqUbIAgAYQMgCABhAyAIAGEDIAgAYQMgCABhAyAIAGEDIAgAYQMgCABhAyAIAGEDIAgAYQMgCABhAyAIAGEDIAgAYQMgCABhAyAIAGEDIAgAYQMgCABhAyAIAGEDIAgAYQMgCABjgwInuAADAXh269Mod57nx8guPQ08+yp4sAIABhCwAgAGELACAAYQsAIABhCwAgAGELACAAYQsAIABhCwAgAGELACAAYQsAIABhCwAgAGELACAAYQsAIABhCwAgAGELACAAYQsAIABhCwAgAGELACAAYQsAIABhCwAgAGELACAAYQsAIABhCwAgAGELACAAYQsAIABhCwAgAGELACAAYQsAIABhCwAgAGELACAAYQsAIABhCwAgAHWCllVdUFVXVdV11fVpdtMv3NVPX+e/pqqOjSPP1RV76+qN85//9+y3QcA2J8O7DRDVZ2W5BlJHpHk5iRXV9WR7n7LymzfkeQ93X2/qro4yc8k+YZ52lu7+0EL9xsAYF9bZ0/W+Umu7+4buvuDSa5IctGWeS5K8tx5+EVJHlZVtVw3AQBOLuuErDOS3LTy+OZ53LbzdPdtSf42yafN086pqjdU1R9V1Rfvsb8AACeFHQ8X7tFfJTm7u99VVQ9O8rtVdf/ufu/qTFV1SZJLkuTss88e3CUAgPHW2ZN1S5KzVh6fOY/bdp6qOpDkk5O8q7s/0N3vSpLufl2Styb5rK3/QXc/q7sPd/fhgwcPbv4sAAD2mXVC1tVJzq2qc6rq9CQXJzmyZZ4jSR4/Dz8mySu6u6vq4HzifKrqM5Ocm+SGZboOALB/7Xi4sLtvq6onJXlpktOSPKe7r62qy5Jc091Hkjw7yfOq6vok784UxJLkS5JcVlUfSvLhJN/T3e8e8UQAAPaTtc7J6u6rkly1ZdxTVob/Z5Kv36bdi5O8eI99BAA46bjjOwDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwABCFgDAAEIWAMAAQhYAwAAHTnQHAAD2g0OXXrnjPDdefuHa9ezJAgAYQMgCABhAyAIAGGCtkFVVF1TVdVV1fVVdus30O1fV8+fpr6mqQyvTfngef11VPXK5rgMA7F87hqyqOi3JM5J8VZLzkjy2qs7bMtt3JHlPd98vyc8l+Zm57XlJLk5y/yQXJPnluR4AwCltnT1Z5ye5vrtv6O4PJrkiyUVb5rkoyXPn4RcleVhV1Tz+iu7+QHe/Lcn1cz0AgFPaOiHrjCQ3rTy+eR637TzdfVuSv03yaWu2BQA45VR33/EMVY9JckF3f+f8+JuTPLS7n7Qyz5/N89w8P35rkocm+TdJXt3dvzmPf3aSl3T3i7b8H5ckuWR++E+SXLdDv++V5G/WeYLHoc5+qaEv+nK8a+jL/u/LqfZ89GX/9+VUez7r1LlPdx/cbsI6NyO9JclZK4/PnMdtN8/NVXUgyScnedeabdPdz0ryrDX6kiSpqmu6+/C684+ss19q6Iu+HO8a+rL/+3KqPR992f99OdWez17rrHO48Ook51bVOVV1eqYT2Y9smedIksfPw49J8oqedpEdSXLxfPXhOUnOTfLa3XQUAOBksuOerO6+raqelOSlSU5L8pzuvraqLktyTXcfSfLsJM+rquuTvDtTEMs83wuSvCXJbUme2N23D3ouAAD7xlq/XdjdVyW5asu4p6wM/88kX3+Mtj+V5Kf20MftrH1o8TjU2S81lqqjL+NqLFVnv9RYqo6+7O8aS9XRl3E1lqqzX2osVeeE92XHE98BANicn9UBABhAyAIAGEDIglNYVZ1eVd9SVQ+fH39jVf1SVT2xqj7hRPcPjqWqvq+qztp5Tti/9n3IWnJFq6rzq+oh8/B5VfXkqvrnu6jz8q3tqmqT+3zdqaruNA+fXlWfX1Wfuot+LFJnpd6u267UOKeqvraqPnuBWr+x1xpznd28tp9dVQ+rqrtvGX/BAv15xF5rzHXuvvNc+fUkFyb5/qp6XqYLVF6T5CFJfm3D/+/Tq+rT5+GD8/t8/w27vV3d791lux/bum2Yb2y8Z0ssv3Odb9tlu0ct9P//9Ibzn11Vd5mHq6q+rap+saqeMN8DcdP/fy/v0U8keU1V/eeq+t6q2vZmj2v245Oq6r7bjP/c3dZcQlXdr6q+rv7x7wHv1G6RL0/bzVtV99qwL2dX1afMw4eq6jFV9U83qXGMuhttF5Z8L6vq2VX1oC3j/s2uinX3vv7L9BM9f5nkPyf53iQHd1nnqUleneSaJP93klck+bEkf5zkRzasdUOSP0ry1JVxr1+z7aOT/Pckf5Xptx1fk+TlmX5y6Gs26MOe6iT5wiR/nuTaTHfnf1mSt2b6GaT/bYN+/O7K8EVJ3pbpg/26JN+6QZ0jW/5+L8nfH328QZ0fXRk+L8l/m/t0Y6ZfKlinxvfN/f/dud1Fm77PO9R/x15rrFsnyZvmfw/My8tp8+M6Om3N/+u7V17HJ8zL27Pn1+k7Nqjz5C1//0emOyk/OcmTN3z+75yX3y9f8v05Ae/R1275+7okf3308Qb/1y9s+fvFJP/j6OM1a/xZkrvOwz+T6bdoH5fkOZlu37Pp89/1e5TkDZl2BHzlvKzdmuQPMt2T8R4b9OFfZvoMeePcl4fsZnlJ8oBMnyE3Zbra7J4r0167Zo1XJrnXPPzN8/bp15K8Ocn/vkFf/n2S52faTj4vye/M9f5dkueu0f7LM31W/E2SP0xyaJevyaXzduG/JvnO+d9nz6/z2uvzEtuFJLcn+YtM4fy8TZfVLbVuTvKnSb5lN6/L6t/G30xOgBuSPDjJw5N8Q5Ifr6rXJfkPSX67u/9uzTqPSfKgJHfOtAE7s7vfW1U/m+kDY5PbTPyPJA9L8gtV9XuZNkLremqSByb5xExv4kO6+7qquk+SF2daaY5HnZ/LtPG5e5Irkzy6u/+kqj4/08b5C9fsx31Whn8oyVd099vmb0Mvz7TSr+PMTPdT+7UknSkEHE7y/6zZ/qivTfKT8/DTk3x/d7+kqs5P8v8m+YI1anxXkgd3999X1aEkL6qqQ93983O/dlRVW2/Y+5FJmX7Xcy1V9eQ7qLPOnqw7zTcRvluSu2b6NYZ3Z1oPNjlc+KQk98+0vL09yf26+6+r6p6ZPjievWadH890O5hr89HX8rQk99igL0fdkinYv7CqXtTdT8+a70+SVNUvHGtSkk/ZoM6b7qDOvdco8fxM9yF8Zz7a/7sl+ZpM68Jvr9mVf5Hpy98frtS5OMnr1myfJHfq7vfNww/PtF35cJLfrKo/3aDOUXt5j3r+v/8wyR/Oe12+Ksljk/xsknX3bP1fmdbnv5q3A8+rqh/u7t/ZoC9J8iuZfyouU6D4k6p6VHe/NeuvSwe7++jPs3xfpi+076qqu851f3HNOg/o7s+d9y7ekuQzuvv2qvrNTJ8HO3lakkf2dC/LxyR5WVV9c3e/Opu9Jt+c6cvsXTN9AfvM7r61qu6W6XP1365ZZ4ntwpvm/jw2yZGq+odMOeGK7r5xgzrJtC5+eabl/qFJvj+bvS4fcTKErKVWtNt6uhHq+6rqrd393rn4+6vqwxv2qXr6IezvrapvTfInSe65buPu/uskqap3dPd187i3Hz30d5zqfEJ3v3luf2t3/8nc/vVV9YmbdGNl+EB3v22u8zcbvq6HMy3IP5Lk/+zuN1bV+7v7jzaosdVndPdL5v68doPndafu/vu53Y1V9WWZgtZ9sv6K9sWZwvffbxlfSc5fs0aS/HSmsHjbdv1co/1vZPp2eVqm1/aFVXVDkn+W5IoN+nHb/OF7dP356yTp7vdU1Sb3gbl/puB8tyQ/3t3vq6rHd/ePb1DjI7r7HVX1pUl+papemCkEruvbMn1j/sA20x67QZ17J3lkkvdsGV9JXrVG+y9IcnmSq7v7V5Kkqr6suzc91Hhepm/xFyT5we7+y6p6anc/d4MaN1XVV3T3KzJ9aJ6V5O1VtfYXg6328B6dvqXOhzLv2Z5DybpO6+6/mmu8tqq+PMnvz4cxN1l279HdfzAP/+z8Zf8Pavo933XrfKiqzujuWzJtG/5hHv+BTOvouvb65en07r42Sbr7RVX150l+u6p+KJu9JrfPn6EfTPL+TD+nl+7+h6qNMskS24Xu7j/LtJ37kTlQX5wpDL+ju9f5gn1UdfffJvma+TDhKzO9xpvbyy614/GX5A13MO2uG9R5TT66G/xOK+M/ORvuBkzy3VsePzhr7krPvAt8Hj5/ZfxpSf5sk9dlL3WS/OnK8KO3TNukH7cneW+Sv0vywST/6zz+9GxwOGql3plJXpjkl7KLQzaZ9jIePdx46+oysu7zynQo+UFbxh3IFFhuX7PGS7JyiGTLtD/e4Pm8KtO38O2m3bRG+9cn+YxMgTOZ9tA8ZnWZWbMfr8sUzJNpL/DR8XdZXZY2qHdRkv8y9+WGTdvPNX4tyT+d/+6S6XSCtWvN7/MXHGPa2zao8+wkX3SMab+1Zo07ZfqS8cpMIXxXr8lc68FznR9McuOGbc+a2/7xvA69Z378hiQP20VffnXL4yeu+9yS/MNuX4MtdV6V5L5bxt0j0572D2xQ50+TfPKWcZ+b6RDVu9as8WWZ9tZcNm/jXpXpqMTLMgXjdfvyrzId5Xl7pj1iL0/yq5kOOz51jfbXJPn0LePOzHRI9e826Me/S/JbSf5jpr1Gz0vyTfM68YJdvFe73i7kGFkh05edL12zxv2SfFGmoLc6/seSvHxXy98SC/HIvySftVCdOx9j/L0y7Xpdp8ZdkvzAvHJ8d6Y9N5v24yFJ7rLN+ENJHne86iR5VLYJqUnum+RfL/B6f0o2OLdrm/YXJvnpXbT70i1/d5/H3zvTzzqtU+PMrRuglWlfuNfXZsPn808yn8OxzbR7r9F+qXOUviTJF28z/ouywTlZW9reLdNeurVD59zuQKbDHX+TKfy9PlOgfnrmILhmnU/NtFflLlkJa8fz/d2mT2ckecGmHzBz2/sdXT7nD5YnJvnNTIf+77thrc+ZP/C+LtM5m3fasP3ZC7wWx/yCvWGdB2Y6vL11/Cck+aYN6nxjkn+23XPNljC5Q51PznRe489lOjz4Q0k+exfPa9dfnjIdCn7g1mV/7tva5yjP6+JjM+0xOpBpr+wvJfnXSe62y/fr7rvcLnzjAsvK72ebPJDpfLzf203NfX/H9/lKl+/JtAF5c5Jn93So7rjXqarnJ/lQppPwvyrJ27v7+zescXZ3v2OTNjvUu0um55Qk1/f0E0frtDuwm9fxGLUePffhTd39h7ussfr+vCnTnsHdvs/36O5bt4w/mOkb2lqvz0q7z88UJDrJf+nu12/Q9ujr8ubufukm/+9KjT09n6q6OXdwXkR3r3XORFX9fpIf7vkQ88r4B2QKw1+zTp2Vdrtabue2P5dpT8S/6vmczKr6pEynD7yvu39gzToHMh2O/fZMewQq056cX8/0QfOhdfu0UnPj5WWpdXGp92ih5fb13f358/CLu/vrdlFjkWV3rnXC18WlaqzU2fXn2XzazU9lj8v+Up9nS9RZqMbV3f2QY0x7c3c/YNOa+/4WDkmem+l8nTdnCjabngi9ZJ3zuvtx3f3MTN8avngXNX736EBVvXgX7Y+2PVBVT8t0FcRzMx3KuqmqnlbrXcL72pVa655suV0/fiXTrutPS/KTVfVju03vqdsAAAXaSURBVCy1+v7880wfmLvxC9n+ffmiTN8c11ZVT5n79WmZ9nj+elX96JptV1+Xn9jD67LX53Napm+G9zjG37ruvfXDO0nmcYfWLbLAcpskX53ku3rlopeezrF8QqY9oOt6eqa9Wed094PnUHDfTHsFNl7+9rC8LLIuZoH3qKp+Ocsst6sn5HzmLmsssuwu+JyW2LYstX3a6+fZ0zKdR7zdsv/0Deos8nm2UJ0latzRBS+bnO/5UXvdvTb6L9M3j9Vdk7s6/LFEna1tdlnjDdsN76LOz2U6J+UeK+M+KdOlxT+/YT92fUgp0yXfR28LcNckrzvB7/Mx//8k125Y67qsHD6aV7LrjvPrsqfns5f3dkudv7iDaddvUGdPy+08/3/bzbTtnlOmE1y3jj/tjp7v0svLguvint+jBZfb1283vNsae/nbL+viUjXmefe0vVxq2V/w82zPdRaq8R8yfYHbOv47kzx/NzVPhqsLP7Lbsrtv2/CKhaXrPLCq3jsPV5JPnB/XVLY/aY0afYzhTX11pvPVPlKjp1tSPCHT1WQ7HcZc6jjxB3u6ajM9XRGy2zdoqff5jq462nTP7V9mOk/h6C78O2e6XHodS70ue30+u34ht7imqr6ru3/1Y4pXfWc2u0XAXpfbJHlLVX1Ld3/MzWqr6nFzjXX1aj9WRt6+4RWTR+12eVlqXVziPVpquX3gyrbxE7dsN9fdVi617O6XdXGpGsnet5dLLftLfZ4tUWeJGj+Q5Heq6pvy0XXmcKYLuf7FbgqeDCFriWCzSJ3u3uQS2536sZeNz9ydPa0kn13T/X0qyX3ro/f6qSQf7u4HrtmPz97SdrVWunvdu/Au9T6/s6rO7+7Xro6s6U7/tx6jzbH8bZJrq+plmVbaRyR5bc33V+ru77uDtku9Lnt9Pg9b8//ZyVIbnyU27k/MdLn5t2/pyydu2JelwtpRu11elloXl3iPFlluF9pWLrXs7pd1cakayd63l0st+0t9ni1RZ881uvu/J/mCmm7zcfSu9Vf2dEuTXdn3J76zvar63Uw3Y91uJfmX3X2HP8tR0z2f/tHoTCc//nB3r/VzQ1V1bqYr927aMumsJH/d3devU2cpNd0b5QWZLi1e/aD5liQXd/drNqj1+Dua3ndw/6GlXpcln88Stmx8rt1047PX5XZLm6/IdH+dJHlLd798w76ckelGn+/PNmGtp3sZbVJvV8vLUuviSr1dv0f7bX1ewn5aF/fL+rz0ss+xCVknqSVXkqr6vEyXJ399pp9IeHF3/9KabRe96mwJVfW/ZNrb8ZEPmiS/1N3vXLP9ElepLPa67PX57Cf7ceO+QFhb7IrhvayLC/3/+2593qv9ti7up/V5r8s+OxOyTnK7XUmq6rMy3d/ksZnuN/T8TDfD2+5b9R3VWfyS171YKCAtcfn5Iq/Lkh/g+8mptHHf6/Ky1Lq4hP22Pi9hP62Lp+r6zLGdDLdwYBtVdZeq+oFMv9X3wSS/suEH1X9N8hVJvrq7v6i7fzHT3ds3tfwlr3uzxGW8S1x+vtTrstQl0vvCAsvtfrTX5WWpdXEJ+219XsJ+WhdPqfWZnQlZJ6+t90nZ9L4+X5vkr5K8sqp+taoelt1dzXNNVX3X1pG1+VVnS1kiIC1xlcpSr8sSz2c/2etyux/tdXlZal1cwn5bn5ewn9bFU219ZgcOF56kVndz13Tn6tcePWSxYZ27Zfr5jMdm+jb9G0l+p9e8c3tV3TvJ72TaK/GPrmjq+YeEj5cth25ev8vX5PZMP9xamb7pvu/opKx5lcpSr8sSz2c/WWq53U+WWF7mOntaF5ew39bnJeyndfFUW5/ZmZB1ktq6gi6xwlbVPTOdcPsN3b3R5dN7vepsKUt94C3Yn71ejbevns9ejVhuT0V7WRcX+v/3xfq8pP2wLp5q6zM7E7JOUisra/KxK6yVlX3Lcgt8PBGyAAAGcOI7AMAAQhYAwABCFgDAAEIWAMAAQhYAwAD/P5LG9ZNMgC/HAAAAAElFTkSuQmCC\n", 525 | "text/plain": [ 526 | "
" 527 | ] 528 | }, 529 | "metadata": { 530 | "needs_background": "light" 531 | } 532 | } 533 | ] 534 | }, 535 | { 536 | "cell_type": "markdown", 537 | "metadata": { 538 | "id": "GJHHjtp-rOo_" 539 | }, 540 | "source": [ 541 | "# Classification" 542 | ] 543 | }, 544 | { 545 | "cell_type": "code", 546 | "metadata": { 547 | "id": "5PhZZyG55qSM" 548 | }, 549 | "source": [ 550 | "import numpy as np\n", 551 | "import pandas as pd\n", 552 | "from sklearn.model_selection import train_test_split\n", 553 | "from sklearn import svm\n", 554 | "from sklearn.metrics import accuracy_score" 555 | ], 556 | "execution_count": null, 557 | "outputs": [] 558 | }, 559 | { 560 | "cell_type": "code", 561 | "metadata": { 562 | "id": "RyDSZVATz2Pw" 563 | }, 564 | "source": [ 565 | "all_data = pd.read_csv(\"/content/drive/MyDrive/7AllMerged.csv\")\n", 566 | "data = all_data.drop('videos', axis = 1)" 567 | ], 568 | "execution_count": null, 569 | "outputs": [] 570 | }, 571 | { 572 | "cell_type": "code", 573 | "metadata": { 574 | "id": "rxoQsqyl-sC-" 575 | }, 576 | "source": [ 577 | "import pandas as pd\n", 578 | "from sklearn.model_selection import KFold \n", 579 | "from sklearn.neural_network import MLPClassifier\n", 580 | "from sklearn.metrics import accuracy_score\n", 581 | "\n", 582 | "#Loading the dataset\n", 583 | "def svmclassifier(channel_name):\n", 584 | " channel_names = []\n", 585 | " for i in range(0, len(channel_name)):\n", 586 | " draft = channel_name[i]\n", 587 | " channel_names.append(draft + \"Alpha\")\n", 588 | " channel_names.append(draft + \"Beta\")\n", 589 | " channel_names.append(draft + \"Gamma\")\n", 590 | " channel_names.append(draft + \"Theta\")\n", 591 | " x = data[channel_names]\n", 592 | " y = np.array(em_labels)\n", 593 | "\n", 594 | " # Implementing cross validation\n", 595 | " k = 10\n", 596 | " kf = KFold(n_splits = k)\n", 597 | "\n", 598 | " model = svm.SVC(kernel='poly')\n", 599 | " acc_score = []\n", 600 | "\n", 601 | " for train_index , test_index in kf.split(x):\n", 602 | " x_train , x_test = x.iloc[train_index,:],x.iloc[test_index,:]\n", 603 | " y_train , y_test = y[train_index] , y[test_index]\n", 604 | " model.fit(x_train, y_train)\n", 605 | " pred_values = model.predict(x_test)\n", 606 | " acc = accuracy_score(pred_values , y_test)\n", 607 | " acc_score.append(acc)\n", 608 | "\n", 609 | " avg_acc_score = sum(acc_score)/k\n", 610 | " #print('accuracy of each fold - {}'.format(acc_score))\n", 611 | " print('Avg accuracy : {}'.format(avg_acc_score))" 612 | ], 613 | "execution_count": null, 614 | "outputs": [] 615 | }, 616 | { 617 | "cell_type": "code", 618 | "metadata": { 619 | "colab": { 620 | "base_uri": "https://localhost:8080/" 621 | }, 622 | "id": "dVWbJk9d6nXf", 623 | "outputId": "8270f940-dc53-4c99-9efc-26ae06038b93" 624 | }, 625 | "source": [ 626 | "svmclassifier([\"P7\"])" 627 | ], 628 | "execution_count": null, 629 | "outputs": [ 630 | { 631 | "output_type": "stream", 632 | "name": "stdout", 633 | "text": [ 634 | "Avg accuracy : 0.575\n" 635 | ] 636 | } 637 | ] 638 | }, 639 | { 640 | "cell_type": "code", 641 | "metadata": { 642 | "colab": { 643 | "base_uri": "https://localhost:8080/" 644 | }, 645 | "id": "sRWJudTJ7Gf9", 646 | "outputId": "05e57b13-bf9e-494c-80d1-3b581c24a940" 647 | }, 648 | "source": [ 649 | "svmclassifier([\"P7\", \"P3\"])" 650 | ], 651 | "execution_count": null, 652 | "outputs": [ 653 | { 654 | "output_type": "stream", 655 | "name": "stdout", 656 | "text": [ 657 | "Avg accuracy : 0.625\n" 658 | ] 659 | } 660 | ] 661 | }, 662 | { 663 | "cell_type": "code", 664 | "metadata": { 665 | "colab": { 666 | "base_uri": "https://localhost:8080/" 667 | }, 668 | "id": "SNPc-UdF7V3z", 669 | "outputId": "2b0f3891-aec5-4c95-a3c4-554bd3abb63a" 670 | }, 671 | "source": [ 672 | "svmclassifier([\"P7\", \"P3\", \"F3\"])" 673 | ], 674 | "execution_count": null, 675 | "outputs": [ 676 | { 677 | "output_type": "stream", 678 | "name": "stdout", 679 | "text": [ 680 | "Avg accuracy : 0.65\n" 681 | ] 682 | } 683 | ] 684 | }, 685 | { 686 | "cell_type": "code", 687 | "metadata": { 688 | "colab": { 689 | "base_uri": "https://localhost:8080/" 690 | }, 691 | "id": "p2lIplKV7pz0", 692 | "outputId": "0a6c4f3c-f507-4f93-c118-6bcbd7342bb1" 693 | }, 694 | "source": [ 695 | "svmclassifier([\"P7\", \"P3\", \"F3\", \"AF3\"])" 696 | ], 697 | "execution_count": null, 698 | "outputs": [ 699 | { 700 | "output_type": "stream", 701 | "name": "stdout", 702 | "text": [ 703 | "Avg accuracy : 0.7\n" 704 | ] 705 | } 706 | ] 707 | }, 708 | { 709 | "cell_type": "code", 710 | "metadata": { 711 | "colab": { 712 | "base_uri": "https://localhost:8080/" 713 | }, 714 | "id": "n-zfq7Cw7qYZ", 715 | "outputId": "12f8ba79-9f39-41c2-ef3a-80948872b1ac" 716 | }, 717 | "source": [ 718 | "svmclassifier([\"P7\", \"P3\", \"F3\", \"AF3\", \"Fp2\"])" 719 | ], 720 | "execution_count": null, 721 | "outputs": [ 722 | { 723 | "output_type": "stream", 724 | "name": "stdout", 725 | "text": [ 726 | "Avg accuracy : 0.7\n" 727 | ] 728 | } 729 | ] 730 | }, 731 | { 732 | "cell_type": "code", 733 | "metadata": { 734 | "colab": { 735 | "base_uri": "https://localhost:8080/" 736 | }, 737 | "id": "hpXC6LNZ7qbz", 738 | "outputId": "e1d97fb9-4443-47f0-e659-5cd0bf3f51be" 739 | }, 740 | "source": [ 741 | "svmclassifier([\"P7\", \"P3\", \"F3\", \"AF3\", \"Fp2\", \"AF4\"])" 742 | ], 743 | "execution_count": null, 744 | "outputs": [ 745 | { 746 | "output_type": "stream", 747 | "name": "stdout", 748 | "text": [ 749 | "Avg accuracy : 0.7\n" 750 | ] 751 | } 752 | ] 753 | }, 754 | { 755 | "cell_type": "code", 756 | "metadata": { 757 | "colab": { 758 | "base_uri": "https://localhost:8080/" 759 | }, 760 | "id": "1UEVteo47qd8", 761 | "outputId": "8e50043f-95d9-479a-fc3d-124f89d67c6f" 762 | }, 763 | "source": [ 764 | "svmclassifier([\"P7\", \"P3\", \"F3\", \"AF3\", \"Fp2\", \"AF4\", \"C4\"])" 765 | ], 766 | "execution_count": null, 767 | "outputs": [ 768 | { 769 | "output_type": "stream", 770 | "name": "stdout", 771 | "text": [ 772 | "Avg accuracy : 0.7\n" 773 | ] 774 | } 775 | ] 776 | } 777 | ] 778 | } -------------------------------------------------------------------------------- /Participant_1_,Arousal,80_20.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "Participant-1 ,Arousal,80-20", 7 | "provenance": [], 8 | "collapsed_sections": [], 9 | "include_colab_link": true 10 | }, 11 | "kernelspec": { 12 | "display_name": "Python 3", 13 | "name": "python3" 14 | }, 15 | "language_info": { 16 | "name": "python" 17 | } 18 | }, 19 | "cells": [ 20 | { 21 | "cell_type": "markdown", 22 | "metadata": { 23 | "id": "view-in-github", 24 | "colab_type": "text" 25 | }, 26 | "source": [ 27 | "\"Open" 28 | ] 29 | }, 30 | { 31 | "cell_type": "markdown", 32 | "metadata": { 33 | "id": "q7tNC6EX54Fm" 34 | }, 35 | "source": [ 36 | "#**1. Data Preprocessing**#" 37 | ] 38 | }, 39 | { 40 | "cell_type": "code", 41 | "metadata": { 42 | "id": "q5UDY40xrsZF" 43 | }, 44 | "source": [ 45 | "import pandas as pd\n", 46 | "import numpy as np\n", 47 | "\n", 48 | "import matplotlib.pyplot as plt\n", 49 | "import seaborn as sns\n", 50 | "%matplotlib inline\n", 51 | "\n", 52 | "from sklearn.model_selection import train_test_split\n", 53 | "\n", 54 | "from sklearn.feature_selection import chi2\n", 55 | "from sklearn.feature_selection import SelectKBest, SelectPercentile\n", 56 | "import warnings\n", 57 | "warnings.filterwarnings(\"ignore\")" 58 | ], 59 | "execution_count": null, 60 | "outputs": [] 61 | }, 62 | { 63 | "cell_type": "code", 64 | "metadata": { 65 | "colab": { 66 | "base_uri": "https://localhost:8080/" 67 | }, 68 | "id": "Azg9wbOhz1XJ", 69 | "outputId": "a6f7589f-d8df-45e7-c9d8-298846281a6e" 70 | }, 71 | "source": [ 72 | "from google.colab import drive\n", 73 | "import pickle \n", 74 | "drive._mount('/content/drive')\n", 75 | "drive.mount('/content/drive', force_remount=True)" 76 | ], 77 | "execution_count": null, 78 | "outputs": [ 79 | { 80 | "output_type": "stream", 81 | "name": "stdout", 82 | "text": [ 83 | "Mounted at /content/drive\n", 84 | "Mounted at /content/drive\n" 85 | ] 86 | } 87 | ] 88 | }, 89 | { 90 | "cell_type": "code", 91 | "metadata": { 92 | "id": "XpDYOiyPQ28F" 93 | }, 94 | "source": [ 95 | "with open('/content/drive/MyDrive/Deap/s01.dat', 'rb') as f:\n", 96 | " raw_data = pickle.load(f, encoding='latin1')" 97 | ], 98 | "execution_count": null, 99 | "outputs": [] 100 | }, 101 | { 102 | "cell_type": "code", 103 | "metadata": { 104 | "id": "Smqczw7Rtm8k" 105 | }, 106 | "source": [ 107 | "pip install skfeature-chappers" 108 | ], 109 | "execution_count": null, 110 | "outputs": [] 111 | }, 112 | { 113 | "cell_type": "code", 114 | "metadata": { 115 | "id": "kxJTyBtEeqHy" 116 | }, 117 | "source": [ 118 | "import numpy as np\n", 119 | "from skfeature.utility.construct_W import construct_W\n", 120 | "from scipy.sparse import diags\n", 121 | "\n", 122 | "def fisher_score(X, y):\n", 123 | " \"\"\"\n", 124 | " This function implements the fisher score feature selection, steps are as follows:\n", 125 | " 1. Construct the affinity matrix W in fisher score way\n", 126 | " 2. For the r-th feature, we define fr = X(:,r), D = diag(W*ones), ones = [1,...,1]', L = D - W\n", 127 | " 3. Let fr_hat = fr - (fr'*D*ones)*ones/(ones'*D*ones)\n", 128 | " 4. Fisher score for the r-th feature is score = (fr_hat'*D*fr_hat)/(fr_hat'*L*fr_hat)-1\n", 129 | " Input\n", 130 | " -----\n", 131 | " X: {numpy array}, shape (n_samples, n_features)\n", 132 | " input data\n", 133 | " y: {numpy array}, shape (n_samples,)\n", 134 | " input class labels\n", 135 | " Output\n", 136 | " ------\n", 137 | " score: {numpy array}, shape (n_features,)\n", 138 | " fisher score for each feature\n", 139 | " Reference\n", 140 | " ---------\n", 141 | " He, Xiaofei et al. \"Laplacian Score for Feature Selection.\" NIPS 2005.\n", 142 | " Duda, Richard et al. \"Pattern classification.\" John Wiley & Sons, 2012.\n", 143 | " \"\"\"\n", 144 | "\n", 145 | " # Construct weight matrix W in a fisherScore way\n", 146 | " kwargs = {\"neighbor_mode\": \"supervised\", \"fisher_score\": True, 'y': y}\n", 147 | " W = construct_W(X, **kwargs)\n", 148 | "\n", 149 | " # build the diagonal D matrix from affinity matrix W\n", 150 | " D = np.array(W.sum(axis=1))\n", 151 | " L = W\n", 152 | " tmp = np.dot(np.transpose(D), X)\n", 153 | " D = diags(np.transpose(D), [0])\n", 154 | " Xt = np.transpose(X)\n", 155 | " t1 = np.transpose(np.dot(Xt, D.todense()))\n", 156 | " t2 = np.transpose(np.dot(Xt, L.todense()))\n", 157 | " # compute the numerator of Lr\n", 158 | " D_prime = np.sum(np.multiply(t1, X), 0) - np.multiply(tmp, tmp)/D.sum()\n", 159 | " # compute the denominator of Lr\n", 160 | " L_prime = np.sum(np.multiply(t2, X), 0) - np.multiply(tmp, tmp)/D.sum()\n", 161 | " # avoid the denominator of Lr to be 0\n", 162 | " D_prime[D_prime < 1e-12] = 10000\n", 163 | " lap_score = 1 - np.array(np.multiply(L_prime, 1/D_prime))[0, :]\n", 164 | "\n", 165 | " # compute fisher score from laplacian score, where fisher_score = 1/lap_score - 1\n", 166 | " score = 1.0/lap_score - 1\n", 167 | " return np.transpose(score)\n", 168 | "\n", 169 | "\n", 170 | "def feature_ranking(score):\n", 171 | " \"\"\"\n", 172 | " Rank features in descending order according to fisher score, the larger the fisher score, the more important the\n", 173 | " feature is\n", 174 | " \"\"\"\n", 175 | " idx = np.argsort(score, 0)\n", 176 | " return idx[::-1]" 177 | ], 178 | "execution_count": null, 179 | "outputs": [] 180 | }, 181 | { 182 | "cell_type": "code", 183 | "metadata": { 184 | "colab": { 185 | "base_uri": "https://localhost:8080/" 186 | }, 187 | "id": "EpI-gFzRjgGT", 188 | "outputId": "bcc3bdef-57c0-4cc1-900b-1da4e9835f68" 189 | }, 190 | "source": [ 191 | "data = raw_data['data']\n", 192 | "labels = raw_data['labels']\n", 193 | "\n", 194 | "print(\"Labels: \", labels.shape) # trial x label\n", 195 | "print(\"Data: \", data.shape) # trial x channel x data" 196 | ], 197 | "execution_count": null, 198 | "outputs": [ 199 | { 200 | "output_type": "stream", 201 | "name": "stdout", 202 | "text": [ 203 | "Labels: (40, 4)\n", 204 | "Data: (40, 40, 8064)\n" 205 | ] 206 | } 207 | ] 208 | }, 209 | { 210 | "cell_type": "code", 211 | "metadata": { 212 | "id": "FTfibgB5c63Y" 213 | }, 214 | "source": [ 215 | "\"\"\"\n", 216 | "em_labels = []\n", 217 | "for i in range(0, labels.shape[0]):\n", 218 | "\tif (labels[i][0]>5): #high valence\n", 219 | "\t\tif(labels[i][1]>5): # high arousal\n", 220 | "\t\t\tem_labels.append(1) # HVHA\n", 221 | "\t\telse:\n", 222 | "\t\t\tem_labels.append(0) # HVLA\n", 223 | "\telse: # low valence\n", 224 | "\t\tif(labels[i][1]>5): # high arousal\n", 225 | "\t\t\tem_labels.append(2) #LVHA\n", 226 | "\t\telse:\n", 227 | "\t\t\tem_labels.append(3) # LVLA\n", 228 | "\"\"\"\n", 229 | "em_labels = []\n", 230 | "for i in range(0, labels.shape[0]):\n", 231 | "\tif (labels[i][1]>5): #high arousal\n", 232 | "\t\t\tem_labels.append(0) # HVHA\n", 233 | "\telse: # low arousal\n", 234 | "\t\t\tem_labels.append(1)" 235 | ], 236 | "execution_count": null, 237 | "outputs": [] 238 | }, 239 | { 240 | "cell_type": "code", 241 | "metadata": { 242 | "colab": { 243 | "base_uri": "https://localhost:8080/" 244 | }, 245 | "id": "3jCP0SMBc9iu", 246 | "outputId": "d1d1800a-ce18-419a-c42a-8c129a4fbcd9" 247 | }, 248 | "source": [ 249 | "print(em_labels)" 250 | ], 251 | "execution_count": null, 252 | "outputs": [ 253 | { 254 | "output_type": "stream", 255 | "name": "stdout", 256 | "text": [ 257 | "[0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]\n" 258 | ] 259 | } 260 | ] 261 | }, 262 | { 263 | "cell_type": "markdown", 264 | "metadata": { 265 | "id": "eQlRP4LrOMlk" 266 | }, 267 | "source": [ 268 | "# Fisher's Score for Theta Band" 269 | ] 270 | }, 271 | { 272 | "cell_type": "code", 273 | "metadata": { 274 | "id": "Na1SqsWbr2y1" 275 | }, 276 | "source": [ 277 | "# load dataset\n", 278 | "data_theta = pd.read_csv('/content/drive/MyDrive/1df_theta.csv')\n", 279 | "# features from all the channels from the theta band only\n", 280 | "data_theta.shape\n", 281 | "data_theta['videos'] = em_labels\n", 282 | "data_theta['videos'].unique()\n", 283 | "X = data_theta[['Fp1',\t'AF3',\t'F3',\t'F7',\t'FC5',\t'FC1',\t'C3',\t'T7',\t'CP5',\t'CP1',\t'P3',\t'P7',\t'PO3',\t'O1',\t'Oz',\t'Pz',\t'Fp2',\t'AF4',\t'Fz',\t'F4',\t'F8',\t'FC6',\t'FC2',\t'Cz',\t'C4',\t'T8',\t'CP6',\t'CP2',\t'P4',\t'P8',\t'PO4',\t'O2']]\n", 284 | "# taking only first 32 channels (EEG signals)\n", 285 | "y = data_theta['videos']\n", 286 | "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state = 0)\n", 287 | "X_train = np.array(X_train)\n", 288 | "y_train = np.array(y_train)\n", 289 | "f_score_theta = fisher_score(X_train, y_train)" 290 | ], 291 | "execution_count": null, 292 | "outputs": [] 293 | }, 294 | { 295 | "cell_type": "markdown", 296 | "metadata": { 297 | "id": "6jeXnumcG2JB" 298 | }, 299 | "source": [ 300 | "# Fisher Score for Alpha Band" 301 | ] 302 | }, 303 | { 304 | "cell_type": "code", 305 | "metadata": { 306 | "id": "C7fJ9fMdGVbQ" 307 | }, 308 | "source": [ 309 | "# load dataset\n", 310 | "data_alpha = pd.read_csv('/content/drive/MyDrive/2df_alpha.csv')\n", 311 | "# features from all the channels from the theta band only\n", 312 | "data_alpha.shape\n", 313 | "data_alpha['videos'] = em_labels\n", 314 | "data_alpha['videos'].unique()\n", 315 | "X = data_alpha[['Fp1',\t'AF3',\t'F3',\t'F7',\t'FC5',\t'FC1',\t'C3',\t'T7',\t'CP5',\t'CP1',\t'P3',\t'P7',\t'PO3',\t'O1',\t'Oz',\t'Pz',\t'Fp2',\t'AF4',\t'Fz',\t'F4',\t'F8',\t'FC6',\t'FC2',\t'Cz',\t'C4',\t'T8',\t'CP6',\t'CP2',\t'P4',\t'P8',\t'PO4',\t'O2']]\n", 316 | "# taking only first 32 channels (EEG signals)\n", 317 | "y = data_alpha['videos']\n", 318 | "y.head()\n", 319 | "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state = 0)\n", 320 | "X_train = np.array(X_train)\n", 321 | "y_train = np.array(y_train)\n", 322 | "f_score_alpha = fisher_score(X_train, y_train)" 323 | ], 324 | "execution_count": null, 325 | "outputs": [] 326 | }, 327 | { 328 | "cell_type": "markdown", 329 | "metadata": { 330 | "id": "Np4pvMpaWAhN" 331 | }, 332 | "source": [ 333 | "# Fisher Score for Beta Band" 334 | ] 335 | }, 336 | { 337 | "cell_type": "code", 338 | "metadata": { 339 | "id": "9LA2tAAslnGK" 340 | }, 341 | "source": [ 342 | "# load dataset\n", 343 | "data_beta = pd.read_csv('/content/drive/MyDrive/3df_beta.csv')\n", 344 | "# features from all the channels from the theta band only\n", 345 | "data_beta.shape\n", 346 | "data_beta['videos'] = em_labels\n", 347 | "data_beta['videos'].unique()\n", 348 | "X = data_beta[['Fp1',\t'AF3',\t'F3',\t'F7',\t'FC5',\t'FC1',\t'C3',\t'T7',\t'CP5',\t'CP1',\t'P3',\t'P7',\t'PO3',\t'O1',\t'Oz',\t'Pz',\t'Fp2',\t'AF4',\t'Fz',\t'F4',\t'F8',\t'FC6',\t'FC2',\t'Cz',\t'C4',\t'T8',\t'CP6',\t'CP2',\t'P4',\t'P8',\t'PO4',\t'O2']]\n", 349 | "# taking only first 32 channels (EEG signals)\n", 350 | "y = data_beta['videos']\n", 351 | "X_train = np.array(X_train)\n", 352 | "y_train = np.array(y_train)\n", 353 | "f_score_beta = fisher_score(X_train, y_train)" 354 | ], 355 | "execution_count": null, 356 | "outputs": [] 357 | }, 358 | { 359 | "cell_type": "markdown", 360 | "metadata": { 361 | "id": "uxn9t3hDWEBw" 362 | }, 363 | "source": [ 364 | "# Fisher Score for Gamma Band" 365 | ] 366 | }, 367 | { 368 | "cell_type": "code", 369 | "metadata": { 370 | "id": "7Q0uOFsDWEBx" 371 | }, 372 | "source": [ 373 | "# load dataset\n", 374 | "data_gamma = pd.read_csv('/content/drive/MyDrive/4df_gamma.csv')\n", 375 | "# features from all the channels from the theta band only\n", 376 | "data_gamma.shape\n", 377 | "data_gamma['videos'] = em_labels\n", 378 | "data_gamma['videos'].unique()\n", 379 | "X = data_gamma[['Fp1',\t'AF3',\t'F3',\t'F7',\t'FC5',\t'FC1',\t'C3',\t'T7',\t'CP5',\t'CP1',\t'P3',\t'P7',\t'PO3',\t'O1',\t'Oz',\t'Pz',\t'Fp2',\t'AF4',\t'Fz',\t'F4',\t'F8',\t'FC6',\t'FC2',\t'Cz',\t'C4',\t'T8',\t'CP6',\t'CP2',\t'P4',\t'P8',\t'PO4',\t'O2']]\n", 380 | "# taking only first 32 channels (EEG signals)\n", 381 | "y = data_gamma['videos']\n", 382 | "y.head()\n", 383 | "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state = 0)\n", 384 | "X_train = np.array(X_train)\n", 385 | "y_train = np.array(y_train)\n", 386 | "f_score_gamma = fisher_score(X_train, y_train)" 387 | ], 388 | "execution_count": null, 389 | "outputs": [] 390 | }, 391 | { 392 | "cell_type": "markdown", 393 | "metadata": { 394 | "id": "sUoClL1YB5aW" 395 | }, 396 | "source": [ 397 | "# Total Avearge F-Score(Theta,Alpha,Beta,Gamma)" 398 | ] 399 | }, 400 | { 401 | "cell_type": "code", 402 | "metadata": { 403 | "id": "LCtwrlPCB5C1" 404 | }, 405 | "source": [ 406 | "final_f_score = (f_score_theta + f_score_alpha + f_score_beta + f_score_gamma)/4" 407 | ], 408 | "execution_count": null, 409 | "outputs": [] 410 | }, 411 | { 412 | "cell_type": "code", 413 | "metadata": { 414 | "colab": { 415 | "base_uri": "https://localhost:8080/" 416 | }, 417 | "id": "GB2MaoDXJC0O", 418 | "outputId": "9a5fef7e-ddff-49b0-82b6-13eabe5ba89a" 419 | }, 420 | "source": [ 421 | "fvalues = pd.Series(final_f_score)\n", 422 | "X_train = pd.DataFrame(X_train)\n", 423 | "fvalues.index = X.columns\n", 424 | "fvalues.sort_values(ascending=False)\n", 425 | "fvalues.to_csv('fscore_final.csv')\n", 426 | "print(fvalues)" 427 | ], 428 | "execution_count": null, 429 | "outputs": [ 430 | { 431 | "output_type": "stream", 432 | "name": "stdout", 433 | "text": [ 434 | "Fp1 0.169451\n", 435 | "AF3 0.232807\n", 436 | "F3 0.257078\n", 437 | "F7 0.079412\n", 438 | "FC5 0.203454\n", 439 | "FC1 0.196043\n", 440 | "C3 0.187472\n", 441 | "T7 0.140773\n", 442 | "CP5 0.215465\n", 443 | "CP1 0.201009\n", 444 | "P3 0.285845\n", 445 | "P7 0.325079\n", 446 | "PO3 0.249167\n", 447 | "O1 0.169598\n", 448 | "Oz 0.180071\n", 449 | "Pz 0.285443\n", 450 | "Fp2 0.202628\n", 451 | "AF4 0.162624\n", 452 | "Fz 0.147973\n", 453 | "F4 0.110062\n", 454 | "F8 0.114605\n", 455 | "FC6 0.130890\n", 456 | "FC2 0.130900\n", 457 | "Cz 0.005788\n", 458 | "C4 0.151903\n", 459 | "T8 0.195630\n", 460 | "CP6 0.149990\n", 461 | "CP2 0.140019\n", 462 | "P4 0.209854\n", 463 | "P8 0.130032\n", 464 | "PO4 0.184067\n", 465 | "O2 0.118841\n", 466 | "dtype: float64\n" 467 | ] 468 | } 469 | ] 470 | }, 471 | { 472 | "cell_type": "code", 473 | "metadata": { 474 | "colab": { 475 | "base_uri": "https://localhost:8080/", 476 | "height": 510 477 | }, 478 | "id": "4JomiwHHuhE8", 479 | "outputId": "6e0dd584-b289-4ea6-d274-d88904c14af4" 480 | }, 481 | "source": [ 482 | "fvalues.sort_values(ascending = False).plot.bar(figsize=(10,8))" 483 | ], 484 | "execution_count": null, 485 | "outputs": [ 486 | { 487 | "output_type": "execute_result", 488 | "data": { 489 | "text/plain": [ 490 | "" 491 | ] 492 | }, 493 | "metadata": {}, 494 | "execution_count": 16 495 | }, 496 | { 497 | "output_type": "display_data", 498 | "data": { 499 | "image/png": "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\n", 500 | "text/plain": [ 501 | "
" 502 | ] 503 | }, 504 | "metadata": { 505 | "needs_background": "light" 506 | } 507 | } 508 | ] 509 | }, 510 | { 511 | "cell_type": "code", 512 | "metadata": { 513 | "colab": { 514 | "base_uri": "https://localhost:8080/" 515 | }, 516 | "id": "4InNTnkPUZwn", 517 | "outputId": "2b187341-ff29-4e4e-8b2c-21500bd38410" 518 | }, 519 | "source": [ 520 | "shyam = fvalues.sort_values(ascending = False)\n", 521 | "da = pd.DataFrame(shyam)\n", 522 | "da.to_csv(\"channel_rank.csv\")\n", 523 | "cr = pd.read_csv(\"channel_rank.csv\")\n", 524 | "list(cr[\"Unnamed: 0\"])" 525 | ], 526 | "execution_count": null, 527 | "outputs": [ 528 | { 529 | "output_type": "execute_result", 530 | "data": { 531 | "text/plain": [ 532 | "['P7',\n", 533 | " 'P3',\n", 534 | " 'Pz',\n", 535 | " 'F3',\n", 536 | " 'PO3',\n", 537 | " 'AF3',\n", 538 | " 'CP5',\n", 539 | " 'P4',\n", 540 | " 'FC5',\n", 541 | " 'Fp2',\n", 542 | " 'CP1',\n", 543 | " 'FC1',\n", 544 | " 'T8',\n", 545 | " 'C3',\n", 546 | " 'PO4',\n", 547 | " 'Oz',\n", 548 | " 'O1',\n", 549 | " 'Fp1',\n", 550 | " 'AF4',\n", 551 | " 'C4',\n", 552 | " 'CP6',\n", 553 | " 'Fz',\n", 554 | " 'T7',\n", 555 | " 'CP2',\n", 556 | " 'FC2',\n", 557 | " 'FC6',\n", 558 | " 'P8',\n", 559 | " 'O2',\n", 560 | " 'F8',\n", 561 | " 'F4',\n", 562 | " 'F7',\n", 563 | " 'Cz']" 564 | ] 565 | }, 566 | "metadata": {}, 567 | "execution_count": 23 568 | } 569 | ] 570 | }, 571 | { 572 | "cell_type": "markdown", 573 | "metadata": { 574 | "id": "GJHHjtp-rOo_" 575 | }, 576 | "source": [ 577 | "# Classification" 578 | ] 579 | }, 580 | { 581 | "cell_type": "code", 582 | "metadata": { 583 | "id": "5PhZZyG55qSM" 584 | }, 585 | "source": [ 586 | "import numpy as np\n", 587 | "import pandas as pd\n", 588 | "from sklearn.model_selection import train_test_split\n", 589 | "from sklearn import svm\n", 590 | "from sklearn.metrics import accuracy_score" 591 | ], 592 | "execution_count": null, 593 | "outputs": [] 594 | }, 595 | { 596 | "cell_type": "code", 597 | "metadata": { 598 | "id": "RyDSZVATz2Pw" 599 | }, 600 | "source": [ 601 | "all_data = pd.read_csv(\"/content/drive/MyDrive/7AllMerged.csv\")\n", 602 | "data = all_data.drop('videos', axis = 1)" 603 | ], 604 | "execution_count": null, 605 | "outputs": [] 606 | }, 607 | { 608 | "cell_type": "code", 609 | "metadata": { 610 | "id": "rxoQsqyl-sC-" 611 | }, 612 | "source": [ 613 | "import pandas as pd\n", 614 | "from sklearn.model_selection import KFold \n", 615 | "from sklearn.neural_network import MLPClassifier\n", 616 | "from sklearn.metrics import accuracy_score\n", 617 | "\n", 618 | "#Loading the dataset\n", 619 | "def svmclassifier(channel_name):\n", 620 | " channel_names = []\n", 621 | " for i in range(0, len(channel_name)):\n", 622 | " draft = channel_name[i]\n", 623 | " channel_names.append(draft + \"Alpha\")\n", 624 | " channel_names.append(draft + \"Beta\")\n", 625 | " channel_names.append(draft + \"Gamma\")\n", 626 | " channel_names.append(draft + \"Theta\")\n", 627 | " x = data[channel_names]\n", 628 | " y = np.array(em_labels)\n", 629 | " x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, random_state = 0)\n", 630 | " classifier = svm.SVC(kernel = 'poly')\n", 631 | " classifier.fit(x_train, y_train)\n", 632 | " x_train_prediction = classifier.predict(x_train)\n", 633 | " training_data_accuray = accuracy_score(x_train_prediction, y_train)\n", 634 | " print('Accuracy on training data : ', training_data_accuray)\n", 635 | " x_test_prediction = classifier.predict(x_test)\n", 636 | " test_data_accuray = accuracy_score(x_test_prediction, y_test)\n", 637 | " print('Accuracy on test data : ', test_data_accuray)" 638 | ], 639 | "execution_count": null, 640 | "outputs": [] 641 | }, 642 | { 643 | "cell_type": "code", 644 | "metadata": { 645 | "colab": { 646 | "base_uri": "https://localhost:8080/" 647 | }, 648 | "id": "dVWbJk9d6nXf", 649 | "outputId": "8869c4eb-4576-44c3-8748-de744042998e" 650 | }, 651 | "source": [ 652 | "svmclassifier([\"P7\"])" 653 | ], 654 | "execution_count": null, 655 | "outputs": [ 656 | { 657 | "output_type": "stream", 658 | "name": "stdout", 659 | "text": [ 660 | "Accuracy on training data : 0.78125\n", 661 | "Accuracy on test data : 0.5\n" 662 | ] 663 | } 664 | ] 665 | }, 666 | { 667 | "cell_type": "code", 668 | "metadata": { 669 | "colab": { 670 | "base_uri": "https://localhost:8080/" 671 | }, 672 | "id": "e_TW8u-SU6bo", 673 | "outputId": "9ed0ed09-2f7b-4157-f3a1-89697dadd9a5" 674 | }, 675 | "source": [ 676 | "svmclassifier(['P7', 'Pz', 'PO3', 'AF3']) #, 'CP5', 'P4', 'FC5', 'Fp2', 'CP1', 'FC1', 'T8', 'C3', 'PO4', 'Oz', 'O1', 'Fp1', 'AF4', 'C4', 'CP6', 'Fz', 'T7', 'CP2', 'FC2', 'FC6', 'P8', 'O2', 'F8', 'F4', 'F7','Cz'])" 677 | ], 678 | "execution_count": null, 679 | "outputs": [ 680 | { 681 | "output_type": "stream", 682 | "name": "stdout", 683 | "text": [ 684 | "Accuracy on training data : 0.75\n", 685 | "Accuracy on test data : 0.5\n" 686 | ] 687 | } 688 | ] 689 | }, 690 | { 691 | "cell_type": "code", 692 | "metadata": { 693 | "colab": { 694 | "base_uri": "https://localhost:8080/" 695 | }, 696 | "id": "UNnX0xq4ViuP", 697 | "outputId": "23350c38-5c76-4ead-b1ea-d4d03a97b9ab" 698 | }, 699 | "source": [ 700 | "svmclassifier(['P7', 'Pz', 'PO3', 'AF3', 'CP5'])#, 'P4', 'FC5', 'Fp2', 'CP1', 'FC1', 'T8', 'C3', 'PO4', 'Oz', 'O1', 'Fp1', 'AF4', 'C4', 'CP6', 'Fz', 'T7', 'CP2', 'FC2', 'FC6', 'P8', 'O2', 'F8', 'F4', 'F7','Cz'])" 701 | ], 702 | "execution_count": null, 703 | "outputs": [ 704 | { 705 | "output_type": "stream", 706 | "name": "stdout", 707 | "text": [ 708 | "Accuracy on training data : 0.78125\n", 709 | "Accuracy on test data : 0.5\n" 710 | ] 711 | } 712 | ] 713 | }, 714 | { 715 | "cell_type": "code", 716 | "metadata": { 717 | "colab": { 718 | "base_uri": "https://localhost:8080/" 719 | }, 720 | "id": "ORhgOGo2Vixa", 721 | "outputId": "c61f95d0-561a-45b3-8132-c1308264f6bf" 722 | }, 723 | "source": [ 724 | "svmclassifier(['P7', 'Pz', 'PO3', 'AF3', 'CP5', 'Fp2', 'PO4', 'O1', 'AF4', 'C4','FC2', 'FC6'])" 725 | ], 726 | "execution_count": null, 727 | "outputs": [ 728 | { 729 | "output_type": "stream", 730 | "name": "stdout", 731 | "text": [ 732 | "Accuracy on training data : 0.875\n", 733 | "Accuracy on test data : 0.625\n" 734 | ] 735 | } 736 | ] 737 | }, 738 | { 739 | "cell_type": "code", 740 | "metadata": { 741 | "id": "HP9PD4_yVpgv" 742 | }, 743 | "source": [ 744 | "" 745 | ], 746 | "execution_count": null, 747 | "outputs": [] 748 | }, 749 | { 750 | "cell_type": "code", 751 | "metadata": { 752 | "id": "r0c0WUZsVpj6" 753 | }, 754 | "source": [ 755 | "" 756 | ], 757 | "execution_count": null, 758 | "outputs": [] 759 | }, 760 | { 761 | "cell_type": "code", 762 | "metadata": { 763 | "id": "yxmYLEp_jz18" 764 | }, 765 | "source": [ 766 | "" 767 | ], 768 | "execution_count": null, 769 | "outputs": [] 770 | }, 771 | { 772 | "cell_type": "code", 773 | "metadata": { 774 | "id": "-K3GuIzCjyQH" 775 | }, 776 | "source": [ 777 | "" 778 | ], 779 | "execution_count": null, 780 | "outputs": [] 781 | }, 782 | { 783 | "cell_type": "code", 784 | "metadata": { 785 | "colab": { 786 | "base_uri": "https://localhost:8080/" 787 | }, 788 | "id": "sRWJudTJ7Gf9", 789 | "outputId": "7273df65-9eff-4906-ff8e-634aed61128f" 790 | }, 791 | "source": [ 792 | "svmclassifier(['P7', 'P3', 'Pz', 'F3', 'PO3', 'AF3', 'CP5', 'P4', 'FC5', 'Fp2', 'CP1', 'FC1', 'T8', 'C3', 'PO4', 'Oz', 'O1', 'Fp1', 'AF4',\\\n", 793 | " 'C4', 'CP6', 'Fz', 'T7', 'CP2', 'FC2', 'FC6', 'P8', 'O2', 'F8', 'F4', 'F7','Cz'])" 794 | ], 795 | "execution_count": null, 796 | "outputs": [ 797 | { 798 | "output_type": "stream", 799 | "name": "stdout", 800 | "text": [ 801 | "Accuracy on training data : 0.875\n", 802 | "Accuracy on test data : 0.25\n" 803 | ] 804 | } 805 | ] 806 | }, 807 | { 808 | "cell_type": "code", 809 | "metadata": { 810 | "colab": { 811 | "base_uri": "https://localhost:8080/" 812 | }, 813 | "id": "SNPc-UdF7V3z", 814 | "outputId": "e9928fb8-3e55-47ae-b7e4-79c231fd8f73" 815 | }, 816 | "source": [ 817 | "svmclassifier([\"P7\", \"P3\", \"F3\"])" 818 | ], 819 | "execution_count": null, 820 | "outputs": [ 821 | { 822 | "output_type": "stream", 823 | "name": "stdout", 824 | "text": [ 825 | "Avg accuracy : 0.65\n" 826 | ] 827 | } 828 | ] 829 | }, 830 | { 831 | "cell_type": "code", 832 | "metadata": { 833 | "colab": { 834 | "base_uri": "https://localhost:8080/" 835 | }, 836 | "id": "p2lIplKV7pz0", 837 | "outputId": "b7590573-30e8-4ed5-d97e-3cf2d3e43a3b" 838 | }, 839 | "source": [ 840 | "svmclassifier([\"P7\", \"P3\", \"F3\", \"AF3\"])" 841 | ], 842 | "execution_count": null, 843 | "outputs": [ 844 | { 845 | "output_type": "stream", 846 | "name": "stdout", 847 | "text": [ 848 | "Avg accuracy : 0.7\n" 849 | ] 850 | } 851 | ] 852 | }, 853 | { 854 | "cell_type": "code", 855 | "metadata": { 856 | "colab": { 857 | "base_uri": "https://localhost:8080/" 858 | }, 859 | "id": "n-zfq7Cw7qYZ", 860 | "outputId": "55b3d0a6-5bbd-4d4c-e397-22910658a42f" 861 | }, 862 | "source": [ 863 | "svmclassifier([\"P7\", \"P3\", \"F3\", \"AF3\", \"Fp2\"])" 864 | ], 865 | "execution_count": null, 866 | "outputs": [ 867 | { 868 | "output_type": "stream", 869 | "name": "stdout", 870 | "text": [ 871 | "Avg accuracy : 0.7\n" 872 | ] 873 | } 874 | ] 875 | }, 876 | { 877 | "cell_type": "code", 878 | "metadata": { 879 | "colab": { 880 | "base_uri": "https://localhost:8080/" 881 | }, 882 | "id": "hpXC6LNZ7qbz", 883 | "outputId": "e1c73adc-4ec0-47ae-c636-53feb5a0dd42" 884 | }, 885 | "source": [ 886 | "svmclassifier([\"P7\", \"P3\", \"F3\", \"AF3\", \"Fp2\", \"AF4\"])" 887 | ], 888 | "execution_count": null, 889 | "outputs": [ 890 | { 891 | "output_type": "stream", 892 | "name": "stdout", 893 | "text": [ 894 | "Avg accuracy : 0.7\n" 895 | ] 896 | } 897 | ] 898 | }, 899 | { 900 | "cell_type": "code", 901 | "metadata": { 902 | "colab": { 903 | "base_uri": "https://localhost:8080/" 904 | }, 905 | "id": "1UEVteo47qd8", 906 | "outputId": "f4bcbd71-4641-47c4-e9d0-212fc82f6dc6" 907 | }, 908 | "source": [ 909 | "svmclassifier([\"P7\", \"P3\", \"F3\", \"AF3\", \"Fp2\", \"AF4\", \"C4\"]) # this set" 910 | ], 911 | "execution_count": null, 912 | "outputs": [ 913 | { 914 | "output_type": "stream", 915 | "name": "stdout", 916 | "text": [ 917 | "Avg accuracy : 0.7\n" 918 | ] 919 | } 920 | ] 921 | }, 922 | { 923 | "cell_type": "code", 924 | "metadata": { 925 | "colab": { 926 | "base_uri": "https://localhost:8080/" 927 | }, 928 | "id": "q67hvpRUGiGL", 929 | "outputId": "b7d36096-fda3-4391-80dc-a1fbc21b995e" 930 | }, 931 | "source": [ 932 | "svmclassifier([\"P7\", \"F3\", \"AF3\", \"Fp2\", \"AF4\", \"C4\"]) # remove one by onethis set \n", 933 | "# back the channel\n", 934 | "# Now this [\"P7\", \"F3\", \"AF3\", \"Fp2\", \"AF4\", \"C4\"] set is my optimal solution" 935 | ], 936 | "execution_count": null, 937 | "outputs": [ 938 | { 939 | "output_type": "stream", 940 | "name": "stdout", 941 | "text": [ 942 | "Avg accuracy : 0.725\n" 943 | ] 944 | } 945 | ] 946 | }, 947 | { 948 | "cell_type": "code", 949 | "metadata": { 950 | "colab": { 951 | "base_uri": "https://localhost:8080/" 952 | }, 953 | "id": "t0KN9lzbG0x4", 954 | "outputId": "ba8f5cdb-88e0-496d-b48b-4ad685a488a3" 955 | }, 956 | "source": [ 957 | "svmclassifier([\"P7\", \"F3\", \"AF3\", \"Fp2\", \"AF4\", \"C4\"]) # this is optimal solution" 958 | ], 959 | "execution_count": null, 960 | "outputs": [ 961 | { 962 | "output_type": "stream", 963 | "name": "stdout", 964 | "text": [ 965 | "Avg accuracy : 0.7\n" 966 | ] 967 | } 968 | ] 969 | }, 970 | { 971 | "cell_type": "code", 972 | "metadata": { 973 | "colab": { 974 | "base_uri": "https://localhost:8080/" 975 | }, 976 | "id": "ZgXsIaxXEFRI", 977 | "outputId": "f662e5ef-4244-4d01-d93f-17d7ac787b89" 978 | }, 979 | "source": [ 980 | "svmclassifier([\"P7\", \"F3\", \"AF3\", \"Fp2\", \"AF4\", \"C4\"])" 981 | ], 982 | "execution_count": null, 983 | "outputs": [ 984 | { 985 | "output_type": "stream", 986 | "name": "stdout", 987 | "text": [ 988 | "Avg accuracy : 0.725\n" 989 | ] 990 | } 991 | ] 992 | }, 993 | { 994 | "cell_type": "code", 995 | "metadata": { 996 | "id": "J3kHmoT6GFPH" 997 | }, 998 | "source": [ 999 | "" 1000 | ], 1001 | "execution_count": null, 1002 | "outputs": [] 1003 | } 1004 | ] 1005 | } -------------------------------------------------------------------------------- /Copy_of_channel_selection_and_feature_selection_BCI.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "Copy of channel selection and feature selection BCI", 7 | "provenance": [], 8 | "collapsed_sections": [], 9 | "include_colab_link": true 10 | }, 11 | "kernelspec": { 12 | "display_name": "Python 3", 13 | "name": "python3" 14 | }, 15 | "language_info": { 16 | "name": "python" 17 | } 18 | }, 19 | "cells": [ 20 | { 21 | "cell_type": "markdown", 22 | "metadata": { 23 | "id": "view-in-github", 24 | "colab_type": "text" 25 | }, 26 | "source": [ 27 | "\"Open" 28 | ] 29 | }, 30 | { 31 | "cell_type": "markdown", 32 | "metadata": { 33 | "id": "q7tNC6EX54Fm" 34 | }, 35 | "source": [ 36 | "#**1. Data Preprocessing**#" 37 | ] 38 | }, 39 | { 40 | "cell_type": "code", 41 | "metadata": { 42 | "id": "q5UDY40xrsZF" 43 | }, 44 | "source": [ 45 | "import pandas as pd\n", 46 | "import numpy as np\n", 47 | "\n", 48 | "import matplotlib.pyplot as plt\n", 49 | "import seaborn as sns\n", 50 | "%matplotlib inline\n", 51 | "\n", 52 | "from sklearn.model_selection import train_test_split\n", 53 | "\n", 54 | "from sklearn.feature_selection import chi2\n", 55 | "from sklearn.feature_selection import SelectKBest, SelectPercentile\n", 56 | "import warnings\n", 57 | "warnings.filterwarnings(\"ignore\")" 58 | ], 59 | "execution_count": null, 60 | "outputs": [] 61 | }, 62 | { 63 | "cell_type": "code", 64 | "metadata": { 65 | "colab": { 66 | "base_uri": "https://localhost:8080/" 67 | }, 68 | "id": "Azg9wbOhz1XJ", 69 | "outputId": "d51191c5-1533-49b5-c233-ebef6cf9c66a" 70 | }, 71 | "source": [ 72 | "from google.colab import drive\n", 73 | "import pickle \n", 74 | "drive._mount('/content/drive')\n", 75 | "drive.mount('/content/drive', force_remount=True)" 76 | ], 77 | "execution_count": null, 78 | "outputs": [ 79 | { 80 | "output_type": "stream", 81 | "name": "stdout", 82 | "text": [ 83 | "Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount(\"/content/drive\", force_remount=True).\n", 84 | "Mounted at /content/drive\n" 85 | ] 86 | } 87 | ] 88 | }, 89 | { 90 | "cell_type": "code", 91 | "metadata": { 92 | "id": "XpDYOiyPQ28F" 93 | }, 94 | "source": [ 95 | "with open('/content/drive/MyDrive/s01.dat', 'rb') as f:\n", 96 | " raw_data = pickle.load(f, encoding='latin1')" 97 | ], 98 | "execution_count": null, 99 | "outputs": [] 100 | }, 101 | { 102 | "cell_type": "code", 103 | "metadata": { 104 | "id": "kxJTyBtEeqHy" 105 | }, 106 | "source": [ 107 | "import numpy as np\n", 108 | "from skfeature.utility.construct_W import construct_W\n", 109 | "\n", 110 | "def fisher_score(X, y):\n", 111 | " \"\"\"\n", 112 | " This function implements the fisher score feature selection, steps are as follows:\n", 113 | " 1. Construct the affinity matrix W in fisher score way\n", 114 | " 2. For the r-th feature, we define fr = X(:,r), D = diag(W*ones), ones = [1,...,1]', L = D - W\n", 115 | " 3. Let fr_hat = fr - (fr'*D*ones)*ones/(ones'*D*ones)\n", 116 | " 4. Fisher score for the r-th feature is score = (fr_hat'*D*fr_hat)/(fr_hat'*L*fr_hat)-1\n", 117 | " Input\n", 118 | " -----\n", 119 | " X: {numpy array}, shape (n_samples, n_features)\n", 120 | " input data\n", 121 | " y: {numpy array}, shape (n_samples,)\n", 122 | " input class labels\n", 123 | " Output\n", 124 | " ------\n", 125 | " score: {numpy array}, shape (n_features,)\n", 126 | " fisher score for each feature\n", 127 | " Reference\n", 128 | " ---------\n", 129 | " He, Xiaofei et al. \"Laplacian Score for Feature Selection.\" NIPS 2005.\n", 130 | " Duda, Richard et al. \"Pattern classification.\" John Wiley & Sons, 2012.\n", 131 | " \"\"\"\n", 132 | "\n", 133 | " # Construct weight matrix W in a fisherScore way\n", 134 | " kwargs = {\"neighbor_mode\": \"supervised\", \"fisher_score\": True, 'y': y}\n", 135 | " W = construct_W(X, **kwargs)\n", 136 | "\n", 137 | " # build the diagonal D matrix from affinity matrix W\n", 138 | " D = np.array(W.sum(axis=1))\n", 139 | " L = W\n", 140 | " tmp = np.dot(np.transpose(D), X)\n", 141 | " D = diags(np.transpose(D), [0])\n", 142 | " Xt = np.transpose(X)\n", 143 | " t1 = np.transpose(np.dot(Xt, D.todense()))\n", 144 | " t2 = np.transpose(np.dot(Xt, L.todense()))\n", 145 | " # compute the numerator of Lr\n", 146 | " D_prime = np.sum(np.multiply(t1, X), 0) - np.multiply(tmp, tmp)/D.sum()\n", 147 | " # compute the denominator of Lr\n", 148 | " L_prime = np.sum(np.multiply(t2, X), 0) - np.multiply(tmp, tmp)/D.sum()\n", 149 | " # avoid the denominator of Lr to be 0\n", 150 | " D_prime[D_prime < 1e-12] = 10000\n", 151 | " lap_score = 1 - np.array(np.multiply(L_prime, 1/D_prime))[0, :]\n", 152 | "\n", 153 | " # compute fisher score from laplacian score, where fisher_score = 1/lap_score - 1\n", 154 | " score = 1.0/lap_score - 1\n", 155 | " return np.transpose(score)\n", 156 | "\n", 157 | "\n", 158 | "def feature_ranking(score):\n", 159 | " \"\"\"\n", 160 | " Rank features in descending order according to fisher score, the larger the fisher score, the more important the\n", 161 | " feature is\n", 162 | " \"\"\"\n", 163 | " idx = np.argsort(score, 0)\n", 164 | " return idx[::-1]" 165 | ], 166 | "execution_count": null, 167 | "outputs": [] 168 | }, 169 | { 170 | "cell_type": "code", 171 | "metadata": { 172 | "colab": { 173 | "base_uri": "https://localhost:8080/" 174 | }, 175 | "id": "EpI-gFzRjgGT", 176 | "outputId": "d3738964-eb13-496c-d2f0-ad1821741871" 177 | }, 178 | "source": [ 179 | "data = raw_data['data']\n", 180 | "labels = raw_data['labels']\n", 181 | "\n", 182 | "print(\"Labels: \", labels.shape) # trial x label\n", 183 | "print(\"Data: \", data.shape) # trial x channel x data" 184 | ], 185 | "execution_count": null, 186 | "outputs": [ 187 | { 188 | "output_type": "stream", 189 | "name": "stdout", 190 | "text": [ 191 | "Labels: (40, 4)\n", 192 | "Data: (40, 40, 8064)\n" 193 | ] 194 | } 195 | ] 196 | }, 197 | { 198 | "cell_type": "code", 199 | "metadata": { 200 | "id": "FTfibgB5c63Y" 201 | }, 202 | "source": [ 203 | "\"\"\"\n", 204 | "em_labels = []\n", 205 | "for i in range(0, labels.shape[0]):\n", 206 | "\tif (labels[i][0]>5): #high valence\n", 207 | "\t\tif(labels[i][1]>5): # high arousal\n", 208 | "\t\t\tem_labels.append(1) # HVHA\n", 209 | "\t\telse:\n", 210 | "\t\t\tem_labels.append(0) # HVLA\n", 211 | "\telse: # low valence\n", 212 | "\t\tif(labels[i][1]>5): # high arousal\n", 213 | "\t\t\tem_labels.append(2) #LVHA\n", 214 | "\t\telse:\n", 215 | "\t\t\tem_labels.append(3) # LVLA\n", 216 | "\"\"\"\n", 217 | "em_labels = []\n", 218 | "for i in range(0, labels.shape[0]):\n", 219 | "\tif (labels[i][0]>5): #high valence\n", 220 | "\t\t\tem_labels.append(0) # HVHA\n", 221 | "\telse: # low valence\n", 222 | "\t\t\tem_labels.append(1)" 223 | ], 224 | "execution_count": null, 225 | "outputs": [] 226 | }, 227 | { 228 | "cell_type": "code", 229 | "metadata": { 230 | "colab": { 231 | "base_uri": "https://localhost:8080/" 232 | }, 233 | "id": "3jCP0SMBc9iu", 234 | "outputId": "8a955e55-13a1-4f83-e774-5aaedc0d2e1f" 235 | }, 236 | "source": [ 237 | "print(em_labels)" 238 | ], 239 | "execution_count": null, 240 | "outputs": [ 241 | { 242 | "output_type": "stream", 243 | "name": "stdout", 244 | "text": [ 245 | "[0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0]\n" 246 | ] 247 | } 248 | ] 249 | }, 250 | { 251 | "cell_type": "markdown", 252 | "metadata": { 253 | "id": "eQlRP4LrOMlk" 254 | }, 255 | "source": [ 256 | "# Fisher's Score for Theta Band" 257 | ] 258 | }, 259 | { 260 | "cell_type": "code", 261 | "metadata": { 262 | "id": "Na1SqsWbr2y1" 263 | }, 264 | "source": [ 265 | "# load dataset\n", 266 | "data_theta = pd.read_csv('/content/drive/MyDrive/1df_theta.csv')\n", 267 | "# features from all the channels from the theta band only\n", 268 | "data_theta.shape\n", 269 | "data_theta['videos'] = em_labels\n", 270 | "data_theta['videos'].unique()\n", 271 | "X = data_theta[['Fp1',\t'AF3',\t'F3',\t'F7',\t'FC5',\t'FC1',\t'C3',\t'T7',\t'CP5',\t'CP1',\t'P3',\t'P7',\t'PO3',\t'O1',\t'Oz',\t'Pz',\t'Fp2',\t'AF4',\t'Fz',\t'F4',\t'F8',\t'FC6',\t'FC2',\t'Cz',\t'C4',\t'T8',\t'CP6',\t'CP2',\t'P4',\t'P8',\t'PO4',\t'O2']]\n", 272 | "# taking only first 32 channels (EEG signals)\n", 273 | "y = data_theta['videos']\n", 274 | "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state = 0)\n", 275 | "X_train = np.array(X_train)\n", 276 | "y_train = np.array(y_train)\n", 277 | "f_score_theta = fisher_score(X_train, y_train)" 278 | ], 279 | "execution_count": null, 280 | "outputs": [] 281 | }, 282 | { 283 | "cell_type": "markdown", 284 | "metadata": { 285 | "id": "6jeXnumcG2JB" 286 | }, 287 | "source": [ 288 | "# Fisher Score for Alpha Band" 289 | ] 290 | }, 291 | { 292 | "cell_type": "code", 293 | "metadata": { 294 | "id": "C7fJ9fMdGVbQ" 295 | }, 296 | "source": [ 297 | "# load dataset\n", 298 | "data_alpha = pd.read_csv('/content/drive/MyDrive/2df_alpha.csv')\n", 299 | "# features from all the channels from the theta band only\n", 300 | "data_alpha.shape\n", 301 | "data_alpha['videos'] = em_labels\n", 302 | "data_alpha['videos'].unique()\n", 303 | "X = data_alpha[['Fp1',\t'AF3',\t'F3',\t'F7',\t'FC5',\t'FC1',\t'C3',\t'T7',\t'CP5',\t'CP1',\t'P3',\t'P7',\t'PO3',\t'O1',\t'Oz',\t'Pz',\t'Fp2',\t'AF4',\t'Fz',\t'F4',\t'F8',\t'FC6',\t'FC2',\t'Cz',\t'C4',\t'T8',\t'CP6',\t'CP2',\t'P4',\t'P8',\t'PO4',\t'O2']]\n", 304 | "# taking only first 32 channels (EEG signals)\n", 305 | "y = data_alpha['videos']\n", 306 | "y.head()\n", 307 | "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state = 0)\n", 308 | "X_train = np.array(X_train)\n", 309 | "y_train = np.array(y_train)\n", 310 | "f_score_alpha = fisher_score(X_train, y_train)" 311 | ], 312 | "execution_count": null, 313 | "outputs": [] 314 | }, 315 | { 316 | "cell_type": "markdown", 317 | "metadata": { 318 | "id": "Np4pvMpaWAhN" 319 | }, 320 | "source": [ 321 | "# Fisher Score for Beta Band" 322 | ] 323 | }, 324 | { 325 | "cell_type": "code", 326 | "metadata": { 327 | "id": "9LA2tAAslnGK" 328 | }, 329 | "source": [ 330 | "# load dataset\n", 331 | "data_beta = pd.read_csv('/content/drive/MyDrive/3df_beta.csv')\n", 332 | "# features from all the channels from the theta band only\n", 333 | "data_beta.shape\n", 334 | "data_beta['videos'] = em_labels\n", 335 | "data_beta['videos'].unique()\n", 336 | "X = data_beta[['Fp1',\t'AF3',\t'F3',\t'F7',\t'FC5',\t'FC1',\t'C3',\t'T7',\t'CP5',\t'CP1',\t'P3',\t'P7',\t'PO3',\t'O1',\t'Oz',\t'Pz',\t'Fp2',\t'AF4',\t'Fz',\t'F4',\t'F8',\t'FC6',\t'FC2',\t'Cz',\t'C4',\t'T8',\t'CP6',\t'CP2',\t'P4',\t'P8',\t'PO4',\t'O2']]\n", 337 | "# taking only first 32 channels (EEG signals)\n", 338 | "y = data_beta['videos']\n", 339 | "X_train = np.array(X_train)\n", 340 | "y_train = np.array(y_train)\n", 341 | "f_score_beta = fisher_score(X_train, y_train)" 342 | ], 343 | "execution_count": null, 344 | "outputs": [] 345 | }, 346 | { 347 | "cell_type": "markdown", 348 | "metadata": { 349 | "id": "uxn9t3hDWEBw" 350 | }, 351 | "source": [ 352 | "# Fisher Score for Gamma Band" 353 | ] 354 | }, 355 | { 356 | "cell_type": "code", 357 | "metadata": { 358 | "id": "7Q0uOFsDWEBx" 359 | }, 360 | "source": [ 361 | "# load dataset\n", 362 | "data_gamma = pd.read_csv('/content/drive/MyDrive/4df_gamma.csv')\n", 363 | "# features from all the channels from the theta band only\n", 364 | "data_gamma.shape\n", 365 | "data_gamma['videos'] = em_labels\n", 366 | "data_gamma['videos'].unique()\n", 367 | "X = data_gamma[['Fp1',\t'AF3',\t'F3',\t'F7',\t'FC5',\t'FC1',\t'C3',\t'T7',\t'CP5',\t'CP1',\t'P3',\t'P7',\t'PO3',\t'O1',\t'Oz',\t'Pz',\t'Fp2',\t'AF4',\t'Fz',\t'F4',\t'F8',\t'FC6',\t'FC2',\t'Cz',\t'C4',\t'T8',\t'CP6',\t'CP2',\t'P4',\t'P8',\t'PO4',\t'O2']]\n", 368 | "# taking only first 32 channels (EEG signals)\n", 369 | "y = data_gamma['videos']\n", 370 | "y.head()\n", 371 | "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state = 0)\n", 372 | "X_train = np.array(X_train)\n", 373 | "y_train = np.array(y_train)\n", 374 | "f_score_gamma = fisher_score(X_train, y_train)" 375 | ], 376 | "execution_count": null, 377 | "outputs": [] 378 | }, 379 | { 380 | "cell_type": "markdown", 381 | "metadata": { 382 | "id": "sUoClL1YB5aW" 383 | }, 384 | "source": [ 385 | "# Total Avearge F-Score(Theta,Alpha,Beta,Gamma)" 386 | ] 387 | }, 388 | { 389 | "cell_type": "code", 390 | "metadata": { 391 | "id": "LCtwrlPCB5C1" 392 | }, 393 | "source": [ 394 | "final_f_score = (f_score_theta + f_score_alpha + f_score_beta + f_score_gamma)/4" 395 | ], 396 | "execution_count": null, 397 | "outputs": [] 398 | }, 399 | { 400 | "cell_type": "code", 401 | "metadata": { 402 | "colab": { 403 | "base_uri": "https://localhost:8080/" 404 | }, 405 | "id": "GB2MaoDXJC0O", 406 | "outputId": "a3316bbd-3001-4e4b-cba7-1999f6c14d7d" 407 | }, 408 | "source": [ 409 | "fvalues = pd.Series(final_f_score)\n", 410 | "X_train = pd.DataFrame(X_train)\n", 411 | "fvalues.index = X.columns\n", 412 | "fvalues.sort_values(ascending=False)\n", 413 | "fvalues.to_csv('fscore_final.csv')\n", 414 | "print(fvalues)" 415 | ], 416 | "execution_count": null, 417 | "outputs": [ 418 | { 419 | "output_type": "stream", 420 | "name": "stdout", 421 | "text": [ 422 | "Fp1 0.001774\n", 423 | "AF3 0.005493\n", 424 | "F3 0.003601\n", 425 | "F7 0.006026\n", 426 | "FC5 0.010173\n", 427 | "FC1 0.007053\n", 428 | "C3 0.019712\n", 429 | "T7 0.020898\n", 430 | "CP5 0.014118\n", 431 | "CP1 0.007893\n", 432 | "P3 0.007443\n", 433 | "P7 0.018133\n", 434 | "PO3 0.001538\n", 435 | "O1 0.002034\n", 436 | "Oz 0.000358\n", 437 | "Pz 0.005698\n", 438 | "Fp2 0.007796\n", 439 | "AF4 0.016211\n", 440 | "Fz 0.055144\n", 441 | "F4 0.025343\n", 442 | "F8 0.005955\n", 443 | "FC6 0.010683\n", 444 | "FC2 0.052024\n", 445 | "Cz 0.002295\n", 446 | "C4 0.029237\n", 447 | "T8 0.017139\n", 448 | "CP6 0.024783\n", 449 | "CP2 0.007043\n", 450 | "P4 0.013315\n", 451 | "P8 0.004628\n", 452 | "PO4 0.008457\n", 453 | "O2 0.002314\n", 454 | "dtype: float64\n" 455 | ] 456 | } 457 | ] 458 | }, 459 | { 460 | "cell_type": "code", 461 | "metadata": { 462 | "colab": { 463 | "base_uri": "https://localhost:8080/", 464 | "height": 510 465 | }, 466 | "id": "4JomiwHHuhE8", 467 | "outputId": "f9559df8-c158-44c9-9dee-882427f5dcd6" 468 | }, 469 | "source": [ 470 | "fvalues.sort_values(ascending = False).plot.bar(figsize=(10,8))" 471 | ], 472 | "execution_count": null, 473 | "outputs": [ 474 | { 475 | "output_type": "execute_result", 476 | "data": { 477 | "text/plain": [ 478 | "" 479 | ] 480 | }, 481 | "metadata": {}, 482 | "execution_count": 136 483 | }, 484 | { 485 | "output_type": "display_data", 486 | "data": { 487 | "image/png": "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\n", 488 | "text/plain": [ 489 | "
" 490 | ] 491 | }, 492 | "metadata": { 493 | "needs_background": "light" 494 | } 495 | } 496 | ] 497 | }, 498 | { 499 | "cell_type": "markdown", 500 | "metadata": { 501 | "id": "GJHHjtp-rOo_" 502 | }, 503 | "source": [ 504 | "# Classification" 505 | ] 506 | }, 507 | { 508 | "cell_type": "markdown", 509 | "metadata": { 510 | "id": "Wt54ccMkHIIV" 511 | }, 512 | "source": [ 513 | "##Taking 'Fz' Feature(Highest Score)" 514 | ] 515 | }, 516 | { 517 | "cell_type": "code", 518 | "metadata": { 519 | "id": "5PhZZyG55qSM" 520 | }, 521 | "source": [ 522 | "import numpy as np\n", 523 | "import pandas as pd\n", 524 | "from sklearn.model_selection import train_test_split\n", 525 | "from sklearn import svm\n", 526 | "from sklearn.metrics import accuracy_score" 527 | ], 528 | "execution_count": null, 529 | "outputs": [] 530 | }, 531 | { 532 | "cell_type": "code", 533 | "metadata": { 534 | "id": "RyDSZVATz2Pw" 535 | }, 536 | "source": [ 537 | "all_data = pd.read_csv(\"/content/drive/MyDrive/7AllMerged.csv\")\n", 538 | "data = all_data.drop('videos', axis = 1)\n", 539 | "x = data[[\"FzTheta\",\"FzAlpha\",\"FzBeta\",\"FzGamma\"]]\n", 540 | "y = np.array(em_labels)" 541 | ], 542 | "execution_count": null, 543 | "outputs": [] 544 | }, 545 | { 546 | "cell_type": "code", 547 | "metadata": { 548 | "id": "xsyfwE3cZ0Wv" 549 | }, 550 | "source": [ 551 | "feature_name = all_data.columns\n", 552 | "feature_name = np.array(feature_name)" 553 | ], 554 | "execution_count": null, 555 | "outputs": [] 556 | }, 557 | { 558 | "cell_type": "code", 559 | "metadata": { 560 | "id": "33lHLy5X6G4b" 561 | }, 562 | "source": [ 563 | "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, random_state = 0)" 564 | ], 565 | "execution_count": null, 566 | "outputs": [] 567 | }, 568 | { 569 | "cell_type": "code", 570 | "metadata": { 571 | "id": "7-s0QaD8SYlR", 572 | "colab": { 573 | "base_uri": "https://localhost:8080/" 574 | }, 575 | "outputId": "7a30562b-aa19-4db1-a7c2-699a57ac87aa" 576 | }, 577 | "source": [ 578 | "classifier = svm.SVC(kernel='poly')\n", 579 | "classifier.fit(x_train, y_train)\n", 580 | "x_train_prediction = classifier.predict(x_train)\n", 581 | "training_data_accuray = accuracy_score(x_train_prediction,y_train)\n", 582 | "print('Accuracy on training data : ', training_data_accuray)\n", 583 | "x_test_prediction = classifier.predict(x_test)\n", 584 | "test_data_accuray = accuracy_score(x_test_prediction,y_test)\n", 585 | "print('Accuracy on test data : ', test_data_accuray)" 586 | ], 587 | "execution_count": null, 588 | "outputs": [ 589 | { 590 | "output_type": "stream", 591 | "name": "stdout", 592 | "text": [ 593 | "Accuracy on training data : 0.6875\n", 594 | "Accuracy on test data : 0.75\n" 595 | ] 596 | } 597 | ] 598 | }, 599 | { 600 | "cell_type": "markdown", 601 | "metadata": { 602 | "id": "WDsIxFnVHbvI" 603 | }, 604 | "source": [ 605 | "##Taking Fz and Fc2 Feature" 606 | ] 607 | }, 608 | { 609 | "cell_type": "code", 610 | "metadata": { 611 | "id": "2rKDoB6kHcsy", 612 | "colab": { 613 | "base_uri": "https://localhost:8080/" 614 | }, 615 | "outputId": "32c3ab48-8831-4f7f-f2bf-b3d1abac5a44" 616 | }, 617 | "source": [ 618 | "data = all_data.drop('videos', axis = 1)\n", 619 | "x = data[[\"FzTheta\",\"FzAlpha\",\"FzBeta\",\"FzGamma\", \"FC2Theta\",\"FC2Alpha\",\"FC2Beta\",\"FC2Gamma\"]]\n", 620 | "y = np.array(em_labels)\n", 621 | "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, random_state = 0)\n", 622 | "classifier = svm.SVC(kernel='poly')\n", 623 | "classifier.fit(x_train,y_train)\n", 624 | "x_train_prediction = classifier.predict(x_train)\n", 625 | "training_data_accuray = accuracy_score(x_train_prediction,y_train)\n", 626 | "print('Accuracy on training data : ', training_data_accuray)\n", 627 | "x_test_prediction = classifier.predict(x_test)\n", 628 | "test_data_accuray = accuracy_score(x_test_prediction,y_test)\n", 629 | "print('Accuracy on test data : ', test_data_accuray)" 630 | ], 631 | "execution_count": null, 632 | "outputs": [ 633 | { 634 | "output_type": "stream", 635 | "name": "stdout", 636 | "text": [ 637 | "Accuracy on training data : 0.6875\n", 638 | "Accuracy on test data : 0.75\n" 639 | ] 640 | } 641 | ] 642 | }, 643 | { 644 | "cell_type": "markdown", 645 | "metadata": { 646 | "id": "fu0jhQw9bWiB" 647 | }, 648 | "source": [ 649 | "##Taking Fz and Fc2, F4 Feature" 650 | ] 651 | }, 652 | { 653 | "cell_type": "code", 654 | "metadata": { 655 | "id": "csYgHSlEbVCA", 656 | "colab": { 657 | "base_uri": "https://localhost:8080/" 658 | }, 659 | "outputId": "2b0fad71-7f81-43d9-d975-05074b7dbfe4" 660 | }, 661 | "source": [ 662 | "data = all_data.drop('videos', axis = 1)\n", 663 | "x = data[[\"FzTheta\",\"FzAlpha\",\"FzBeta\",\"FzGamma\", \"FC2Theta\",\"FC2Alpha\",\"FC2Beta\",\"FC2Gamma\", \"F4Theta\",\"F4Alpha\",\"F4Beta\",\"F4Gamma\"]]\n", 664 | "y = np.array(em_labels)\n", 665 | "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, random_state = 0)\n", 666 | "classifier = svm.SVC(kernel='poly')\n", 667 | "classifier.fit(x_train,y_train)\n", 668 | "x_train_prediction = classifier.predict(x_train)\n", 669 | "training_data_accuray = accuracy_score(x_train_prediction,y_train)\n", 670 | "print('Accuracy on training data : ', training_data_accuray)\n", 671 | "x_test_prediction = classifier.predict(x_test)\n", 672 | "test_data_accuray = accuracy_score(x_test_prediction,y_test)\n", 673 | "print('Accuracy on test data : ', test_data_accuray)" 674 | ], 675 | "execution_count": null, 676 | "outputs": [ 677 | { 678 | "output_type": "stream", 679 | "name": "stdout", 680 | "text": [ 681 | "Accuracy on training data : 0.65625\n", 682 | "Accuracy on test data : 0.875\n" 683 | ] 684 | } 685 | ] 686 | }, 687 | { 688 | "cell_type": "markdown", 689 | "metadata": { 690 | "id": "4cQmHxXnkzX2" 691 | }, 692 | "source": [ 693 | "##Taking Fz and Fc2, F4, CP6 Feature" 694 | ] 695 | }, 696 | { 697 | "cell_type": "code", 698 | "metadata": { 699 | "id": "3xM5zXPok0Iv", 700 | "colab": { 701 | "base_uri": "https://localhost:8080/" 702 | }, 703 | "outputId": "d8c9d1cc-eaf4-4e99-f185-8ac36a1c4fd2" 704 | }, 705 | "source": [ 706 | "data = all_data.drop('videos', axis = 1)\n", 707 | "x = data[[\"FzTheta\",\"FzAlpha\",\"FzBeta\",\"FzGamma\", \"FC2Theta\",\"FC2Alpha\",\"FC2Beta\",\"FC2Gamma\",\\\n", 708 | " \"F4Theta\",\"F4Alpha\",\"F4Beta\",\"F4Gamma\", \"CP6Theta\",\"CP6Alpha\",\"CP6Beta\",\"CP6Gamma\"]]\n", 709 | "y = np.array(em_labels)\n", 710 | "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, random_state = 0)\n", 711 | "classifier = svm.SVC(kernel='poly')\n", 712 | "classifier.fit(x_train,y_train)\n", 713 | "x_train_prediction = classifier.predict(x_train)\n", 714 | "training_data_accuray = accuracy_score(x_train_prediction,y_train)\n", 715 | "print('Accuracy on training data : ', training_data_accuray)\n", 716 | "x_test_prediction = classifier.predict(x_test)\n", 717 | "test_data_accuray = accuracy_score(x_test_prediction,y_test)\n", 718 | "print('Accuracy on test data : ', test_data_accuray)" 719 | ], 720 | "execution_count": null, 721 | "outputs": [ 722 | { 723 | "output_type": "stream", 724 | "name": "stdout", 725 | "text": [ 726 | "Accuracy on training data : 0.65625\n", 727 | "Accuracy on test data : 0.875\n" 728 | ] 729 | } 730 | ] 731 | }, 732 | { 733 | "cell_type": "markdown", 734 | "metadata": { 735 | "id": "LWvyfxP0fjkD" 736 | }, 737 | "source": [ 738 | "##Taking Fz and Fc2, F4, CP6, AF4 Feature" 739 | ] 740 | }, 741 | { 742 | "cell_type": "code", 743 | "metadata": { 744 | "id": "NK0tszlNfjkD", 745 | "colab": { 746 | "base_uri": "https://localhost:8080/" 747 | }, 748 | "outputId": "f4f6eb43-a506-43ea-f49f-d754dd513c77" 749 | }, 750 | "source": [ 751 | "data = all_data.drop('videos', axis = 1)\n", 752 | "x = data[[\"FzTheta\",\"FzAlpha\",\"FzBeta\",\"FzGamma\", \"FC2Theta\",\"FC2Alpha\",\"FC2Beta\",\"FC2Gamma\"\\\n", 753 | " ,\"F4Theta\",\"F4Alpha\",\"F4Beta\",\"F4Gamma\", \"CP6Theta\",\"CP6Alpha\",\"CP6Beta\",\"CP6Gamma\"\\\n", 754 | " ,\"AF4Theta\",\"AF4Alpha\",\"AF4Beta\",\"AF4Gamma\"]]\n", 755 | "y = np.array(em_labels)\n", 756 | "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, random_state = 0)\n", 757 | "classifier = svm.SVC(kernel='poly')\n", 758 | "classifier.fit(x_train,y_train)\n", 759 | "x_train_prediction = classifier.predict(x_train)\n", 760 | "training_data_accuray = accuracy_score(x_train_prediction,y_train)\n", 761 | "print('Accuracy on training data : ', training_data_accuray)\n", 762 | "x_test_prediction = classifier.predict(x_test)\n", 763 | "test_data_accuray = accuracy_score(x_test_prediction,y_test)\n", 764 | "print('Accuracy on test data : ', test_data_accuray)" 765 | ], 766 | "execution_count": null, 767 | "outputs": [ 768 | { 769 | "output_type": "stream", 770 | "name": "stdout", 771 | "text": [ 772 | "Accuracy on training data : 0.625\n", 773 | "Accuracy on test data : 0.875\n" 774 | ] 775 | } 776 | ] 777 | }, 778 | { 779 | "cell_type": "markdown", 780 | "metadata": { 781 | "id": "F3I-Eaa5nZxR" 782 | }, 783 | "source": [ 784 | "##Taking Fz and Fc2, F4, CP6, AF4, CP1 Feature" 785 | ] 786 | }, 787 | { 788 | "cell_type": "code", 789 | "metadata": { 790 | "colab": { 791 | "base_uri": "https://localhost:8080/" 792 | }, 793 | "id": "PNn69PIhmrw3", 794 | "outputId": "7edca0d2-18cc-4d5e-f177-c19abd8159c9" 795 | }, 796 | "source": [ 797 | "data = all_data.drop('videos', axis = 1)\n", 798 | "x = data[[\"FzTheta\",\"FzAlpha\",\"FzBeta\",\"FzGamma\", \"FC2Theta\",\"FC2Alpha\",\"FC2Beta\",\"FC2Gamma\"\\\n", 799 | " ,\"F4Theta\",\"F4Alpha\",\"F4Beta\",\"F4Gamma\", \"CP6Theta\",\"CP6Alpha\",\"CP6Beta\",\"CP6Gamma\"\\\n", 800 | " ,\"AF4Theta\",\"AF4Alpha\",\"AF4Beta\",\"AF4Gamma\", \"CP1Theta\",\"CP1Alpha\",\"CP1Beta\",\"CP1Gamma\"]]\n", 801 | "y = np.array(em_labels)\n", 802 | "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, random_state = 0)\n", 803 | "classifier = svm.SVC(kernel='poly')\n", 804 | "classifier.fit(x_train,y_train)\n", 805 | "x_train_prediction = classifier.predict(x_train)\n", 806 | "training_data_accuray = accuracy_score(x_train_prediction,y_train)\n", 807 | "print('Accuracy on training data : ', training_data_accuray)\n", 808 | "x_test_prediction = classifier.predict(x_test)\n", 809 | "test_data_accuray = accuracy_score(x_test_prediction,y_test)\n", 810 | "print('Accuracy on test data : ', test_data_accuray)" 811 | ], 812 | "execution_count": null, 813 | "outputs": [ 814 | { 815 | "output_type": "stream", 816 | "name": "stdout", 817 | "text": [ 818 | "Accuracy on training data : 0.65625\n", 819 | "Accuracy on test data : 0.875\n" 820 | ] 821 | } 822 | ] 823 | }, 824 | { 825 | "cell_type": "markdown", 826 | "metadata": { 827 | "id": "TbPfS-zQoH6J" 828 | }, 829 | "source": [ 830 | "##Taking Fz and Fc2, F4, CP6, AF4, CP1, FC1 Feature" 831 | ] 832 | }, 833 | { 834 | "cell_type": "code", 835 | "metadata": { 836 | "colab": { 837 | "base_uri": "https://localhost:8080/" 838 | }, 839 | "id": "mewHyapnn5Vi", 840 | "outputId": "19e888ab-eb00-4da8-fced-ab1ebb3d3b20" 841 | }, 842 | "source": [ 843 | "data = all_data.drop('videos', axis = 1)\n", 844 | "x = data[[\"FzTheta\",\"FzAlpha\",\"FzBeta\",\"FzGamma\", \"FC2Theta\",\"FC2Alpha\",\"FC2Beta\",\"FC2Gamma\"\\\n", 845 | " ,\"F4Theta\",\"F4Alpha\",\"F4Beta\",\"F4Gamma\", \"CP6Theta\",\"CP6Alpha\",\"CP6Beta\",\"CP6Gamma\"\\\n", 846 | " ,\"AF4Theta\",\"AF4Alpha\",\"AF4Beta\",\"AF4Gamma\", \"CP1Theta\",\"CP1Alpha\",\"CP1Beta\",\"CP1Gamma\",\n", 847 | " \"FC1Theta\",\"FC1Alpha\",\"FC1Beta\",\"FC1Gamma\"]]\n", 848 | "y = np.array(em_labels)\n", 849 | "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, random_state = 0)\n", 850 | "classifier = svm.SVC(kernel='poly')\n", 851 | "classifier.fit(x_train,y_train)\n", 852 | "x_train_prediction = classifier.predict(x_train)\n", 853 | "training_data_accuray = accuracy_score(x_train_prediction,y_train)\n", 854 | "print('Accuracy on training data : ', training_data_accuray)\n", 855 | "x_test_prediction = classifier.predict(x_test)\n", 856 | "test_data_accuray = accuracy_score(x_test_prediction,y_test)\n", 857 | "print('Accuracy on test data : ', test_data_accuray)" 858 | ], 859 | "execution_count": null, 860 | "outputs": [ 861 | { 862 | "output_type": "stream", 863 | "name": "stdout", 864 | "text": [ 865 | "Accuracy on training data : 0.65625\n", 866 | "Accuracy on test data : 0.875\n" 867 | ] 868 | } 869 | ] 870 | }, 871 | { 872 | "cell_type": "markdown", 873 | "metadata": { 874 | "id": "ufo7iueIol43" 875 | }, 876 | "source": [ 877 | "##Taking Fz and Fc2, F4, CP6, AF4, CP1, FC1, CP2 Feature" 878 | ] 879 | }, 880 | { 881 | "cell_type": "code", 882 | "metadata": { 883 | "colab": { 884 | "base_uri": "https://localhost:8080/" 885 | }, 886 | "id": "FDqF62INoR-t", 887 | "outputId": "fa26dd39-ddbb-404a-f189-74e31fa235f0" 888 | }, 889 | "source": [ 890 | "data = all_data.drop('videos', axis = 1)\n", 891 | "x = data[[\"FzTheta\",\"FzAlpha\",\"FzBeta\",\"FzGamma\", \"FC2Theta\",\"FC2Alpha\",\"FC2Beta\",\"FC2Gamma\"\\\n", 892 | " ,\"F4Theta\",\"F4Alpha\",\"F4Beta\",\"F4Gamma\", \"CP6Theta\",\"CP6Alpha\",\"CP6Beta\",\"CP6Gamma\"\\\n", 893 | " ,\"AF4Theta\",\"AF4Alpha\",\"AF4Beta\",\"AF4Gamma\", \"CP1Theta\",\"CP1Alpha\",\"CP1Beta\",\"CP1Gamma\",\n", 894 | " \"FC1Theta\",\"FC1Alpha\",\"FC1Beta\",\"FC1Gamma\", \"CP2Theta\",\"CP2Alpha\",\"CP2Beta\",\"CP2Gamma\"]]\n", 895 | "y = np.array(em_labels)\n", 896 | "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, random_state = 0)\n", 897 | "classifier = svm.SVC(kernel='poly')\n", 898 | "classifier.fit(x_train,y_train)\n", 899 | "x_train_prediction = classifier.predict(x_train)\n", 900 | "training_data_accuray = accuracy_score(x_train_prediction,y_train)\n", 901 | "print('Accuracy on training data : ', training_data_accuray)\n", 902 | "x_test_prediction = classifier.predict(x_test)\n", 903 | "test_data_accuray = accuracy_score(x_test_prediction,y_test)\n", 904 | "print('Accuracy on test data : ', test_data_accuray)" 905 | ], 906 | "execution_count": null, 907 | "outputs": [ 908 | { 909 | "output_type": "stream", 910 | "name": "stdout", 911 | "text": [ 912 | "Accuracy on training data : 0.65625\n", 913 | "Accuracy on test data : 0.875\n" 914 | ] 915 | } 916 | ] 917 | }, 918 | { 919 | "cell_type": "code", 920 | "metadata": { 921 | "colab": { 922 | "base_uri": "https://localhost:8080/" 923 | }, 924 | "id": "LGJk4O81oy9n", 925 | "outputId": "572ec827-ef53-40c6-dc8a-0b4ccc618131" 926 | }, 927 | "source": [ 928 | "data = all_data.drop('videos', axis = 1)\n", 929 | "x = data[[\"FzTheta\",\"FzAlpha\",\"FzBeta\",\"FzGamma\", \"FC2Theta\",\"FC2Alpha\",\"FC2Beta\",\"FC2Gamma\"\\\n", 930 | " ,\"F4Theta\",\"F4Alpha\",\"F4Beta\",\"F4Gamma\", \"CP6Theta\",\"CP6Alpha\",\"CP6Beta\",\"CP6Gamma\"\\\n", 931 | " ,\"AF4Theta\",\"AF4Alpha\",\"AF4Beta\",\"AF4Gamma\", \"CP1Theta\",\"CP1Alpha\",\"CP1Beta\",\"CP1Gamma\"\\\n", 932 | " ,\"FC1Theta\",\"FC1Alpha\",\"FC1Beta\",\"FC1Gamma\", \"CP2Theta\",\"CP2Alpha\",\"CP2Beta\",\"CP2Gamma\"]]\n", 933 | "y = np.array(em_labels)\n", 934 | "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, random_state = 0)\n", 935 | "classifier = svm.SVC(kernel='poly')\n", 936 | "classifier.fit(x_train,y_train)\n", 937 | "x_train_prediction = classifier.predict(x_train)\n", 938 | "training_data_accuray = accuracy_score(x_train_prediction,y_train)\n", 939 | "print('Accuracy on training data : ', training_data_accuray)\n", 940 | "x_test_prediction = classifier.predict(x_test)\n", 941 | "test_data_accuray = accuracy_score(x_test_prediction,y_test)\n", 942 | "print('Accuracy on test data : ', test_data_accuray)" 943 | ], 944 | "execution_count": null, 945 | "outputs": [ 946 | { 947 | "output_type": "stream", 948 | "name": "stdout", 949 | "text": [ 950 | "Accuracy on training data : 0.65625\n", 951 | "Accuracy on test data : 0.875\n" 952 | ] 953 | } 954 | ] 955 | }, 956 | { 957 | "cell_type": "code", 958 | "metadata": { 959 | "colab": { 960 | "base_uri": "https://localhost:8080/" 961 | }, 962 | "id": "dxdmG9gppgOS", 963 | "outputId": "8f1305f5-de08-47d8-de0a-285a86433065" 964 | }, 965 | "source": [ 966 | "#Loading the dataset\n", 967 | "data = all_data.drop('videos', axis = 1)\n", 968 | "x = data[[\"FzTheta\",\"FzAlpha\",\"FzBeta\",\"FzGamma\"]]\n", 969 | "\"\"\"\n", 970 | "x = data[[\"FzTheta\",\"FzAlpha\",\"FzBeta\",\"FzGamma\", \"FC2Theta\",\"FC2Alpha\",\"FC2Beta\",\"FC2Gamma\"\\\n", 971 | " ,\"F4Theta\",\"F4Alpha\",\"F4Beta\",\"F4Gamma\", \"CP6Theta\",\"CP6Alpha\",\"CP6Beta\",\"CP6Gamma\"\\\n", 972 | " ,\"AF4Theta\",\"AF4Alpha\",\"AF4Beta\",\"AF4Gamma\", \"CP1Theta\",\"CP1Alpha\",\"CP1Beta\",\"CP1Gamma\"\\\n", 973 | " ,\"FC1Theta\",\"FC1Alpha\",\"FC1Beta\",\"FC1Gamma\", \"CP2Theta\",\"CP2Alpha\",\"CP2Beta\",\"CP2Gamma\"]]\n", 974 | "\"\"\"\n", 975 | "y = np.array(em_labels)\n", 976 | "\n", 977 | "#Implementing cross validation\n", 978 | "from sklearn.model_selection import KFold\n", 979 | "k = 10\n", 980 | "kf = KFold(n_splits=k, random_state=None)\n", 981 | "#model = LogisticRegression(solver= 'liblinear')\n", 982 | "model = svm.SVC(kernel='poly')\n", 983 | "\n", 984 | "acc_score = []\n", 985 | "\n", 986 | "for train_index , test_index in kf.split(x):\n", 987 | " x_train , x_test = x.iloc[train_index,:],x.iloc[test_index,:]\n", 988 | " y_train , y_test = y[train_index] , y[test_index]\n", 989 | " \n", 990 | " model.fit(x_train,y_train)\n", 991 | " pred_values = model.predict(x_test)\n", 992 | " \n", 993 | " acc = accuracy_score(pred_values , y_test)\n", 994 | " acc_score.append(acc)\n", 995 | " \n", 996 | "avg_acc_score = sum(acc_score)/k\n", 997 | "\n", 998 | "print('accuracy of each fold - {}'.format(acc_score))\n", 999 | "print('Avg accuracy : {}'.format(avg_acc_score))" 1000 | ], 1001 | "execution_count": null, 1002 | "outputs": [ 1003 | { 1004 | "output_type": "stream", 1005 | "name": "stdout", 1006 | "text": [ 1007 | "accuracy of each fold - [1.0, 0.75, 0.25, 0.5, 0.75, 0.75, 0.0, 0.25, 0.5, 0.5]\n", 1008 | "Avg accuracy : 0.525\n" 1009 | ] 1010 | } 1011 | ] 1012 | }, 1013 | { 1014 | "cell_type": "code", 1015 | "metadata": { 1016 | "id": "04LrRu6IqS38" 1017 | }, 1018 | "source": [ 1019 | "#Importing required libraries\n", 1020 | "#from sklearn.datasets import load_breast_cancer\n", 1021 | "import pandas as pd\n", 1022 | "from sklearn.model_selection import KFold \n", 1023 | "from sklearn.neural_network import MLPClassifier\n", 1024 | "from sklearn.metrics import accuracy_score\n", 1025 | "\n", 1026 | "#Loading the dataset\n", 1027 | "def mlpclassifier(mystr):\n", 1028 | " data = all_data.drop('videos', axis = 1)\n", 1029 | " #x = data[[\"FzTheta\",\"FzAlpha\",\"FzBeta\",\"FzGamma\"]]\n", 1030 | " x = data[mystr]\n", 1031 | " y = np.array(em_labels)\n", 1032 | "\n", 1033 | " #Implementing cross validation\n", 1034 | "\n", 1035 | " k = 10\n", 1036 | " kf = KFold(n_splits=k, random_state=None)\n", 1037 | " model = MLPClassifier(alpha=1e-5,hidden_layer_sizes=(100, ), random_state=1)\n", 1038 | " \n", 1039 | " acc_score = []\n", 1040 | "\n", 1041 | " for train_index , test_index in kf.split(x):\n", 1042 | " x_train , x_test = x.iloc[train_index,:],x.iloc[test_index,:]\n", 1043 | " y_train , y_test = y[train_index] , y[test_index]\n", 1044 | " \n", 1045 | " model.fit(x_train,y_train)\n", 1046 | " pred_values = model.predict(x_test)\n", 1047 | " print(\"Train accuracy: \", )\n", 1048 | " \n", 1049 | " acc = accuracy_score(pred_values , y_test)\n", 1050 | " acc_score.append(acc)\n", 1051 | " \n", 1052 | " avg_acc_score = sum(acc_score)/k\n", 1053 | "\n", 1054 | " print('accuracy of each fold - {}'.format(acc_score))\n", 1055 | " print('Avg accuracy : {}'.format(avg_acc_score))" 1056 | ], 1057 | "execution_count": null, 1058 | "outputs": [] 1059 | }, 1060 | { 1061 | "cell_type": "code", 1062 | "metadata": { 1063 | "colab": { 1064 | "base_uri": "https://localhost:8080/" 1065 | }, 1066 | "id": "T_r3TeRRrUY_", 1067 | "outputId": "5f5d7a7a-cd38-40ae-bdcd-5231bed9001b" 1068 | }, 1069 | "source": [ 1070 | "mlpclassifier([\"FzTheta\",\"FzAlpha\",\"FzBeta\",\"FzGamma\", \"FC2Theta\",\"FC2Alpha\",\"FC2Beta\",\"FC2Gamma\"])" 1071 | ], 1072 | "execution_count": null, 1073 | "outputs": [ 1074 | { 1075 | "output_type": "stream", 1076 | "name": "stdout", 1077 | "text": [ 1078 | "accuracy of each fold - [0.25, 0.0, 1.0, 0.75, 0.25, 0.0, 0.25, 0.75, 1.0, 0.75]\n", 1079 | "Avg accuracy : 0.5\n" 1080 | ] 1081 | } 1082 | ] 1083 | }, 1084 | { 1085 | "cell_type": "code", 1086 | "metadata": { 1087 | "colab": { 1088 | "base_uri": "https://localhost:8080/" 1089 | }, 1090 | "id": "5M7I6VtStFmV", 1091 | "outputId": "5603bcbc-fc28-40c0-9506-8a6e949ba9b0" 1092 | }, 1093 | "source": [ 1094 | "mlpclassifier([\"FzTheta\",\"FzAlpha\",\"FzBeta\",\"FzGamma\", \"FC2Theta\",\"FC2Alpha\",\"FC2Beta\",\"FC2Gamma\", \"F4Theta\",\"F4Alpha\",\"F4Beta\",\"F4Gamma\"])" 1095 | ], 1096 | "execution_count": null, 1097 | "outputs": [ 1098 | { 1099 | "output_type": "stream", 1100 | "name": "stdout", 1101 | "text": [ 1102 | "accuracy of each fold - [0.5, 0.75, 0.5, 0.5, 0.75, 1.0, 0.25, 0.5, 0.75, 0.5]\n", 1103 | "Avg accuracy : 0.6\n" 1104 | ] 1105 | } 1106 | ] 1107 | }, 1108 | { 1109 | "cell_type": "code", 1110 | "metadata": { 1111 | "colab": { 1112 | "base_uri": "https://localhost:8080/" 1113 | }, 1114 | "id": "V160V7tBtUO4", 1115 | "outputId": "52292219-dbfb-4c39-c518-f26e4e1a0fe9" 1116 | }, 1117 | "source": [ 1118 | "mlpclassifier([\"FzTheta\",\"FzAlpha\",\"FzBeta\",\"FzGamma\", \"FC2Theta\",\"FC2Alpha\",\"FC2Beta\",\"FC2Gamma\"\\\n", 1119 | " ,\"F4Theta\",\"F4Alpha\",\"F4Beta\",\"F4Gamma\"])" 1120 | ], 1121 | "execution_count": null, 1122 | "outputs": [ 1123 | { 1124 | "output_type": "stream", 1125 | "name": "stdout", 1126 | "text": [ 1127 | "accuracy of each fold - [0.5, 0.75, 0.5, 0.5, 0.75, 1.0, 0.25, 0.5, 0.75, 0.5]\n", 1128 | "Avg accuracy : 0.6\n" 1129 | ] 1130 | } 1131 | ] 1132 | }, 1133 | { 1134 | "cell_type": "code", 1135 | "metadata": { 1136 | "id": "jQLRi_01tpB5" 1137 | }, 1138 | "source": [ 1139 | "" 1140 | ], 1141 | "execution_count": null, 1142 | "outputs": [] 1143 | } 1144 | ] 1145 | } --------------------------------------------------------------------------------