{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":59093,"databundleVersionId":7469972,"sourceType":"competition"}],"dockerImageVersionId":30732,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"## **Importing the Libraries**","metadata":{}},{"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom scipy.signal import spectrogram\nimport tensorflow as tf\nfrom tensorflow.keras.models import Sequential\nfrom tensorflow.keras.layers import Conv2D, MaxPooling2D, Dropout, Flatten, Dense\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.preprocessing import StandardScaler\nimport os\nfrom glob import glob","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## **Loading the Data**","metadata":{}},{"cell_type":"code","source":"#Path to the dataset\ntrain_dir = '/kaggle/input/hms-harmful-brain-activity-classification/train_eegs'\n\n#Loading and combining data\ntrain_files = glob(os.path.join(train_dir,'*.parquet'))\ntrain_data = []\nlabels =[]\n\nfor file in train_files:\n    df=pd.read_parquet(file)\n    train_data.append(df.drop(columns=['label']).values)\n    labels.append(df['label'].values)\n  #here label refers to the target value column which needs to be identified  \n    \nX = np.vstack(train_data)\ny = np.concatenate(labels)\n\nprint(f\"Loaded {len(train_files)} files with shape: {X.shape}\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## **Preprocessing The Data**","metadata":{}},{"cell_type":"code","source":"#Standardizing the data\nscaler = StandardScaler()\nX_scaled = scaler.fit_transform(X)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## **Computing Spectrograms**","metadata":{}},{"cell_type":"code","source":"def compute_spectrogram(eeg_signal, fs=200):\n    freq, times,power_spectral_density = spectrogram(eeg_signal,fs)\n    return power_spectral_density\n\n#Computing Spectrograms\nspectrograms = []\nfor i in range(X_scaled.shape[0]):\n    spectrogram_list = []\n    for channel_data in X_scaled[i,:]:\n        power_spectral_density = compute_spectrogram(channel_data)\n        spectrogram_list.append(power_spectral_density)\n    spectrogramns.append(np.array(spectrogram_list))\n    \nspectrograms = np.array(spectrograms)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(spectrograms)","metadata":{"trusted":true},"execution_count":null,"outputs":[]}]}