From a57ce5898344b3e221965d72c17a4ff3c53a23d9 Mon Sep 17 00:00:00 2001 From: Sajil C K Date: Thu, 3 Aug 2023 09:10:07 +0530 Subject: [PATCH] Delete speech_music_classification.ipynb --- speech_music_classification.ipynb | 923 ------------------------------ 1 file changed, 923 deletions(-) delete mode 100644 speech_music_classification.ipynb diff --git a/speech_music_classification.ipynb b/speech_music_classification.ipynb deleted file mode 100644 index 102db1c..0000000 --- a/speech_music_classification.ipynb +++ /dev/null @@ -1,923 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "8a520e7d", - "metadata": { - "execution": { - "iopub.execute_input": "2023-06-06T12:39:12.689478Z", - "iopub.status.busy": "2023-06-06T12:39:12.689158Z", - "iopub.status.idle": "2023-06-06T12:39:24.633117Z", - "shell.execute_reply": "2023-06-06T12:39:24.631238Z" - }, - "papermill": { - "duration": 11.955954, - "end_time": "2023-06-06T12:39:24.635887", - "exception": false, - "start_time": "2023-06-06T12:39:12.679933", - "status": "completed" - }, - "tags": [] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/conda/lib/python3.10/site-packages/tensorflow_io/python/ops/__init__.py:98: UserWarning: unable to load libtensorflow_io_plugins.so: unable to open file: libtensorflow_io_plugins.so, from paths: ['/opt/conda/lib/python3.10/site-packages/tensorflow_io/python/ops/libtensorflow_io_plugins.so']\n", - "caused by: ['/opt/conda/lib/python3.10/site-packages/tensorflow_io/python/ops/libtensorflow_io_plugins.so: undefined symbol: _ZN3tsl6StatusC1EN10tensorflow5error4CodeESt17basic_string_viewIcSt11char_traitsIcEENS_14SourceLocationE']\n", - " warnings.warn(f\"unable to load libtensorflow_io_plugins.so: {e}\")\n", - "/opt/conda/lib/python3.10/site-packages/tensorflow_io/python/ops/__init__.py:104: UserWarning: file system plugins are not loaded: unable to open file: libtensorflow_io.so, from paths: ['/opt/conda/lib/python3.10/site-packages/tensorflow_io/python/ops/libtensorflow_io.so']\n", - "caused by: ['/opt/conda/lib/python3.10/site-packages/tensorflow_io/python/ops/libtensorflow_io.so: undefined symbol: _ZTVN10tensorflow13GcsFileSystemE']\n", - " warnings.warn(f\"file system plugins are not loaded: {e}\")\n" - ] - } - ], - "source": [ - "import librosa\n", - "import numpy as np\n", - "import pandas as pd\n", - "from tqdm import tqdm\n", - "import tensorflow as tf\n", - "from os.path import join\n", - "from keras.layers import Dense\n", - "import matplotlib.pyplot as plt\n", - "from prettytable import PrettyTable\n", - "from keras.models import Sequential\n", - "from sklearn.metrics import f1_score\n", - "from sklearn.metrics import recall_score\n", - "from sklearn.metrics import accuracy_score\n", - "from sklearn.metrics import precision_score\n", - "from sklearn.metrics import confusion_matrix\n", - "from tensorflow.keras.optimizers import Adam\n", - "from tensorflow.keras.regularizers import l2\n", - "from tensorflow.keras.callbacks import Callback\n", - "from tensorflow.keras.callbacks import TensorBoard\n", - "from sklearn.model_selection import train_test_split\n", - "from tensorflow.keras.callbacks import ModelCheckpoint\n", - "from tensorflow.keras.initializers import RandomUniform" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "19f55f9f", - "metadata": { - "execution": { - "iopub.execute_input": "2023-06-06T12:39:24.649951Z", - "iopub.status.busy": "2023-06-06T12:39:24.649251Z", - "iopub.status.idle": "2023-06-06T12:39:24.671701Z", - "shell.execute_reply": "2023-06-06T12:39:24.670950Z" - }, - "papermill": { - "duration": 0.03233, - "end_time": "2023-06-06T12:39:24.673945", - "exception": false, - "start_time": "2023-06-06T12:39:24.641615", - "status": "completed" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "data_path = \"/kaggle/input/datagtzan-music-speech-collection/\"\n", - "basic_data = pd.read_csv(data_path+\"BasicData.csv\")" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "7eb96741", - "metadata": { - "execution": { - "iopub.execute_input": "2023-06-06T12:39:24.688539Z", - "iopub.status.busy": "2023-06-06T12:39:24.686866Z", - "iopub.status.idle": "2023-06-06T12:39:24.720980Z", - "shell.execute_reply": "2023-06-06T12:39:24.720011Z" - }, - "papermill": { - "duration": 0.044009, - "end_time": "2023-06-06T12:39:24.723484", - "exception": false, - "start_time": "2023-06-06T12:39:24.679475", - "status": "completed" - }, - "tags": [] - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
FilenameLabel
0acomic.wavSpeech
1ballad.wavMusic
2acomic2.wavSpeech
3allison.wavSpeech
4amal.wavSpeech
\n", - "
" - ], - "text/plain": [ - " Filename Label\n", - "0 acomic.wav Speech\n", - "1 ballad.wav Music\n", - "2 acomic2.wav Speech\n", - "3 allison.wav Speech\n", - "4 amal.wav Speech" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "basic_data.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "d046be09", - "metadata": { - "execution": { - "iopub.execute_input": "2023-06-06T12:39:24.737273Z", - "iopub.status.busy": "2023-06-06T12:39:24.736649Z", - "iopub.status.idle": "2023-06-06T12:39:24.742004Z", - "shell.execute_reply": "2023-06-06T12:39:24.740905Z" - }, - "papermill": { - "duration": 0.015178, - "end_time": "2023-06-06T12:39:24.744509", - "exception": false, - "start_time": "2023-06-06T12:39:24.729331", - "status": "completed" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "VALIDATION_SIZE = 0.25\n", - "NUM_CLASSES = 2\n", - "LEARNING_RATE = 0.001\n", - "ACCURACY_THRESHOLD = 0.9851\n", - "BATCH_SIZE = 64\n", - "EPOCHS = 20" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "9042c373", - "metadata": { - "execution": { - "iopub.execute_input": "2023-06-06T12:39:24.760343Z", - "iopub.status.busy": "2023-06-06T12:39:24.759939Z", - "iopub.status.idle": "2023-06-06T12:39:24.767630Z", - "shell.execute_reply": "2023-06-06T12:39:24.765399Z" - }, - "papermill": { - "duration": 0.017185, - "end_time": "2023-06-06T12:39:24.770101", - "exception": false, - "start_time": "2023-06-06T12:39:24.752916", - "status": "completed" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "def strided_app(a, L, S):\n", - " \"\"\"\n", - " Function to split audio as overlapping segments\n", - " L : Window length\n", - " S : Stride (L/stepsize)\n", - " \"\"\"\n", - " nrows = ((a.size-L)//S)+1\n", - " n = a.strides[0]\n", - " return np.lib.stride_tricks.as_strided(\n", - " a, shape=(nrows, L), strides=(S*n, n))" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "5c19425c", - "metadata": { - "execution": { - "iopub.execute_input": "2023-06-06T12:39:24.783625Z", - "iopub.status.busy": "2023-06-06T12:39:24.783274Z", - "iopub.status.idle": "2023-06-06T12:39:24.791042Z", - "shell.execute_reply": "2023-06-06T12:39:24.790094Z" - }, - "papermill": { - "duration": 0.016617, - "end_time": "2023-06-06T12:39:24.792824", - "exception": false, - "start_time": "2023-06-06T12:39:24.776207", - "status": "completed" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "def generateDNNData(basic_data, frameS, offset):\n", - " \"\"\"\n", - " A function to create 1D-DNN features for training the model\n", - " \"\"\"\n", - " CorpusPath = \"/kaggle/input/datagtzan-music-speech-collection/Files/\"\n", - " Corpusfiles = basic_data['Filename'].values\n", - " spectrumData = np.empty((0, frameS), int)\n", - " spectrumCol = ['S'+str(i) for i in range(frameS)]\n", - " i = 0\n", - " Fcol = []\n", - "\n", - " for file in tqdm(Corpusfiles):\n", - " i += 1\n", - " x, Fs = librosa.load(CorpusPath+file)\n", - " segments = strided_app(x, L=frameS, S=offset)\n", - " for _ in range(64):\n", - " ids = np.random.randint(10, size=2)\n", - " for segment in segments[ids, :]:\n", - " Fcol.append(file)\n", - " row = np.abs(np.fft.fft(segment)) # 256d vector\n", - " spectrumData = np.vstack([spectrumData, row])\n", - " spectrumDF = pd.DataFrame(spectrumData, columns=spectrumCol)\n", - " spectrumDF['Filename'] = Fcol\n", - "\n", - " master_data = pd.merge(basic_data, spectrumDF, on='Filename')\n", - " master_data.to_csv(\"master_data.csv\", index=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "c9290085", - "metadata": { - "execution": { - "iopub.execute_input": "2023-06-06T12:39:24.808834Z", - "iopub.status.busy": "2023-06-06T12:39:24.806904Z", - "iopub.status.idle": "2023-06-06T12:40:31.551738Z", - "shell.execute_reply": "2023-06-06T12:40:31.550724Z" - }, - "papermill": { - "duration": 66.755108, - "end_time": "2023-06-06T12:40:31.554026", - "exception": false, - "start_time": "2023-06-06T12:39:24.798918", - "status": "completed" - }, - "tags": [] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "100%|██████████| 128/128 [01:01<00:00, 2.07it/s]\n" - ] - } - ], - "source": [ - "generateDNNData(basic_data, frameS=256, offset=64)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "3d091135", - "metadata": { - "execution": { - "iopub.execute_input": "2023-06-06T12:40:31.579358Z", - "iopub.status.busy": "2023-06-06T12:40:31.578979Z", - "iopub.status.idle": "2023-06-06T12:40:32.243725Z", - "shell.execute_reply": "2023-06-06T12:40:32.242555Z" - }, - "papermill": { - "duration": 0.679911, - "end_time": "2023-06-06T12:40:32.245806", - "exception": false, - "start_time": "2023-06-06T12:40:31.565895", - "status": "completed" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "data = pd.read_csv(\"master_data.csv\").dropna()\n", - "data = data.replace({'Speech': 0, 'Music': 1})\n", - "X = data.drop(['Filename', 'Label'], axis=1).values\n", - "y = data.loc[:, ['Label']].values" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "7d922ab0", - "metadata": { - "execution": { - "iopub.execute_input": "2023-06-06T12:40:32.270722Z", - "iopub.status.busy": "2023-06-06T12:40:32.270400Z", - "iopub.status.idle": "2023-06-06T12:40:32.482367Z", - "shell.execute_reply": "2023-06-06T12:40:32.480670Z" - }, - "papermill": { - "duration": 0.227342, - "end_time": "2023-06-06T12:40:32.484749", - "exception": false, - "start_time": "2023-06-06T12:40:32.257407", - "status": "completed" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=VALIDATION_SIZE,\n", - " shuffle=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "bb6677b4", - "metadata": { - "execution": { - "iopub.execute_input": "2023-06-06T12:40:32.512418Z", - "iopub.status.busy": "2023-06-06T12:40:32.512030Z", - "iopub.status.idle": "2023-06-06T12:40:32.523148Z", - "shell.execute_reply": "2023-06-06T12:40:32.521705Z" - }, - "papermill": { - "duration": 0.027894, - "end_time": "2023-06-06T12:40:32.525485", - "exception": false, - "start_time": "2023-06-06T12:40:32.497591", - "status": "completed" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "def myDNN(in_shape):\n", - " \"\"\"\n", - " A function to create a Deep Neural Network model with custom \n", - " architecture for speech-music classification\n", - " \"\"\"\n", - " model = Sequential()\n", - "\n", - " model.add(Dense(32, activation='relu', input_shape=in_shape))\n", - "\n", - " model.add(Dense(64, activation='relu', input_shape=in_shape))\n", - "\n", - " model.add(Dense(128, kernel_initializer=RandomUniform(minval=-0.05,\n", - " maxval=0.05), kernel_regularizer=l2(0.001),\n", - " activation='relu'))\n", - "\n", - " model.add(Dense(256, kernel_initializer=RandomUniform(minval=-0.05,\n", - " maxval=0.05), kernel_regularizer=l2(0.001), \n", - " activation='relu'))\n", - "\n", - " model.add(Dense(512, kernel_initializer=RandomUniform(minval=-0.05,\n", - " maxval=0.05), kernel_regularizer=l2(0.001), \n", - " activation='relu'))\n", - "\n", - " model.add(Dense(256, activation='relu', kernel_regularizer=l2(0.001)))\n", - "\n", - " model.add(Dense(128, activation='relu', kernel_regularizer=l2(0.001)))\n", - "\n", - " model.add(tf.keras.layers.Dropout(0.5))\n", - "\n", - " model.add(Dense(64, activation='relu', kernel_regularizer=l2(0.001)))\n", - "\n", - " model.add(Dense(NUM_CLASSES, kernel_initializer=RandomUniform(minval=-0.05,\n", - " maxval=0.05), kernel_regularizer=l2(0.001),\n", - " activation='softmax'))\n", - "\n", - " model.compile(optimizer='Adam',\n", - " loss='sparse_categorical_crossentropy', metrics=['accuracy'])\n", - " return model" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "80ddd2c5", - "metadata": { - "execution": { - "iopub.execute_input": "2023-06-06T12:40:32.551336Z", - "iopub.status.busy": "2023-06-06T12:40:32.550849Z", - "iopub.status.idle": "2023-06-06T12:40:32.851453Z", - "shell.execute_reply": "2023-06-06T12:40:32.850141Z" - }, - "papermill": { - "duration": 0.316165, - "end_time": "2023-06-06T12:40:32.853797", - "exception": false, - "start_time": "2023-06-06T12:40:32.537632", - "status": "completed" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "dnn_model = myDNN(X_train[0].shape)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "a9b88180", - "metadata": { - "execution": { - "iopub.execute_input": "2023-06-06T12:40:32.878940Z", - "iopub.status.busy": "2023-06-06T12:40:32.878596Z", - "iopub.status.idle": "2023-06-06T12:40:32.884707Z", - "shell.execute_reply": "2023-06-06T12:40:32.883521Z" - }, - "papermill": { - "duration": 0.021636, - "end_time": "2023-06-06T12:40:32.887259", - "exception": false, - "start_time": "2023-06-06T12:40:32.865623", - "status": "completed" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "class EarlyStopper(Callback):\n", - " \"\"\"\n", - " A class for early stopper callback for validation accuracy\n", - " \"\"\"\n", - " def __init__(self, target):\n", - " super(EarlyStopper, self).__init__()\n", - " self.target = target\n", - "\n", - " def on_epoch_end(self, epoch, logs={}):\n", - " acc = logs['val_accuracy']\n", - " if acc >= self.target:\n", - " self.model.stop_training = True" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "b842bd94", - "metadata": { - "execution": { - "iopub.execute_input": "2023-06-06T12:40:32.913033Z", - "iopub.status.busy": "2023-06-06T12:40:32.912370Z", - "iopub.status.idle": "2023-06-06T12:40:32.918551Z", - "shell.execute_reply": "2023-06-06T12:40:32.917169Z" - }, - "papermill": { - "duration": 0.021431, - "end_time": "2023-06-06T12:40:32.920750", - "exception": false, - "start_time": "2023-06-06T12:40:32.899319", - "status": "completed" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "class microf1_callback(Callback):\n", - " def __init__(self,validation_data):\n", - " self.x_test = validation_data[0]\n", - " self.y_test= validation_data[1]\n", - " \n", - " def on_epoch_end(self, epoch, logs):\n", - " ypred = self.model.predict(self.x_test)\n", - " ylabel_pred = np.argmax(ypred, axis=1)\n", - " y_test_arg = self.y_test\n", - " score = f1_score(y_test_arg, ylabel_pred, average=\"binary\")\n", - " print(' validation f1-score : ', np.round(score, 4))" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "78de199f", - "metadata": { - "execution": { - "iopub.execute_input": "2023-06-06T12:40:32.946994Z", - "iopub.status.busy": "2023-06-06T12:40:32.946610Z", - "iopub.status.idle": "2023-06-06T12:40:32.952434Z", - "shell.execute_reply": "2023-06-06T12:40:32.951481Z" - }, - "papermill": { - "duration": 0.021766, - "end_time": "2023-06-06T12:40:32.954797", - "exception": false, - "start_time": "2023-06-06T12:40:32.933031", - "status": "completed" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "file_path = \"dnn_best_model.hdf5\"\n", - "checkpoint_callback_1 = ModelCheckpoint(filepath=file_path,\n", - " monitor=\"val_accuracy\",\n", - " verbose=1,\n", - " save_best_only=True,\n", - " mode=\"auto\")\n", - "\n", - "early_stopper_callback = EarlyStopper(ACCURACY_THRESHOLD)\n", - "f1_history_1 = microf1_callback(validation_data=(X_test, y_test))\n", - "\n", - "log_dir_1 = join(\"logs\", \"fits\", \"dnn_model\")\n", - "tensorboard_callback_1 = TensorBoard(log_dir=log_dir_1, \n", - " histogram_freq=1,\n", - " write_graph=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "38ab3db7", - "metadata": { - "execution": { - "iopub.execute_input": "2023-06-06T12:40:32.980456Z", - "iopub.status.busy": "2023-06-06T12:40:32.980060Z", - "iopub.status.idle": "2023-06-06T12:40:32.988590Z", - "shell.execute_reply": "2023-06-06T12:40:32.987152Z" - }, - "papermill": { - "duration": 0.0243, - "end_time": "2023-06-06T12:40:32.991261", - "exception": false, - "start_time": "2023-06-06T12:40:32.966961", - "status": "completed" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "adam_optimizer_1 = Adam(learning_rate=LEARNING_RATE)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "b1d3471a", - "metadata": { - "execution": { - "iopub.execute_input": "2023-06-06T12:40:33.016294Z", - "iopub.status.busy": "2023-06-06T12:40:33.015951Z", - "iopub.status.idle": "2023-06-06T12:40:33.024892Z", - "shell.execute_reply": "2023-06-06T12:40:33.023747Z" - }, - "papermill": { - "duration": 0.024007, - "end_time": "2023-06-06T12:40:33.027143", - "exception": false, - "start_time": "2023-06-06T12:40:33.003136", - "status": "completed" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "dnn_model.compile(optimizer=adam_optimizer_1,\n", - " loss='sparse_categorical_crossentropy', \n", - " metrics=['accuracy'])" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "aa180b11", - "metadata": { - "execution": { - "iopub.execute_input": "2023-06-06T12:40:33.052843Z", - "iopub.status.busy": "2023-06-06T12:40:33.052399Z", - "iopub.status.idle": "2023-06-06T12:40:43.062791Z", - "shell.execute_reply": "2023-06-06T12:40:43.061247Z" - }, - "papermill": { - "duration": 10.026275, - "end_time": "2023-06-06T12:40:43.065489", - "exception": false, - "start_time": "2023-06-06T12:40:33.039214", - "status": "completed" - }, - "tags": [] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/20\n", - "190/192 [============================>.] - ETA: 0s - loss: 0.6480 - accuracy: 0.7394\n", - "Epoch 1: val_accuracy improved from -inf to 0.91016, saving model to dnn_best_model.hdf5\n", - "192/192 [==============================] - 4s 12ms/step - loss: 0.6443 - accuracy: 0.7410 - val_loss: 0.2778 - val_accuracy: 0.9102\n", - "Epoch 2/20\n", - "186/192 [============================>.] - ETA: 0s - loss: 0.1814 - accuracy: 0.9482\n", - "Epoch 2: val_accuracy improved from 0.91016 to 0.97778, saving model to dnn_best_model.hdf5\n", - "192/192 [==============================] - 2s 10ms/step - loss: 0.1806 - accuracy: 0.9484 - val_loss: 0.1061 - val_accuracy: 0.9778\n", - "Epoch 3/20\n", - "192/192 [==============================] - ETA: 0s - loss: 0.0950 - accuracy: 0.9810\n", - "Epoch 3: val_accuracy improved from 0.97778 to 0.98242, saving model to dnn_best_model.hdf5\n", - "192/192 [==============================] - 2s 10ms/step - loss: 0.0950 - accuracy: 0.9810 - val_loss: 0.0813 - val_accuracy: 0.9824\n", - "Epoch 4/20\n", - "191/192 [============================>.] - ETA: 0s - loss: 0.0693 - accuracy: 0.9892\n", - "Epoch 4: val_accuracy improved from 0.98242 to 0.99683, saving model to dnn_best_model.hdf5\n", - "192/192 [==============================] - 2s 10ms/step - loss: 0.0692 - accuracy: 0.9892 - val_loss: 0.0465 - val_accuracy: 0.9968\n" - ] - } - ], - "source": [ - "history_1 = dnn_model.fit(x=X_train, \n", - " y=y_train, \n", - " batch_size=BATCH_SIZE,\n", - " epochs=EPOCHS,\n", - " steps_per_epoch=int(np.ceil(X_train.shape[0]/BATCH_SIZE)),\n", - " validation_data=(X_test, y_test),\n", - " callbacks=[checkpoint_callback_1, \n", - " early_stopper_callback,\n", - " tensorboard_callback_1])" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "1b2500c9", - "metadata": { - "execution": { - "iopub.execute_input": "2023-06-06T12:40:43.105835Z", - "iopub.status.busy": "2023-06-06T12:40:43.105472Z", - "iopub.status.idle": "2023-06-06T12:40:43.480361Z", - "shell.execute_reply": "2023-06-06T12:40:43.479543Z" - }, - "papermill": { - "duration": 0.396782, - "end_time": "2023-06-06T12:40:43.482053", - "exception": false, - "start_time": "2023-06-06T12:40:43.085271", - "status": "completed" - }, - "tags": [] - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1cAAAKnCAYAAABqJ7ddAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACvW0lEQVR4nOzdeVhUZf8G8HtmgBl2FRRQVkPFXQFRIEszUSuTbEErFHNNzcj6VWZW2lu2mWYqZSpouZCaVm9W4pvmgqYo4m4uIC4gAsIgywzMnN8fA6MjiIwOnBm4P9c1V8w5Z875TtN0cfM8z/dIBEEQQERERERERPdFKnYBREREREREjQHDFRERERERkQkwXBEREREREZkAwxUREREREZEJMFwRERERERGZAMMVERERERGRCTBcERERERERmQDDFRERERERkQlYiV2AOdJqtbhy5QocHR0hkUjELoeIiIiIiEQiCAKKiorQunVrSKW1j00xXNXgypUr8PLyErsMIiIiIiIyExcvXoSnp2etxzBc1cDR0RGA7l+gk5OTyNUQEREREZFYlEolvLy89BmhNgxXNaiaCujk5MRwRUREREREdVouxIYWREREREREJsBwRUREREREZAKihqudO3di6NChaN26NSQSCTZv3nzX1/z9998ICgqCQqFA27Zt8c0331Q7ZuPGjejUqRPkcjk6deqETZs21UP1REREREREN4karoqLi9G9e3csWrSoTsenp6fjscceQ9++fZGamop33nkH06ZNw8aNG/XH7N27F1FRUYiOjkZaWhqio6Px3HPP4Z9//qmvt0FERERERASJIAiC2EUAugVimzZtQmRk5B2Peeutt/DLL7/g5MmT+m2TJk1CWloa9u7dCwCIioqCUqnE77//rj9m8ODBaN68OdauXVunWpRKJZydnVFYWMiGFkRERERETZgx2cCi1lzt3bsXERERBtsGDRqElJQUlJeX13pMcnLyHc+rUqmgVCoNHkRERERERMawqHCVnZ0NNzc3g21ubm6oqKhAbm5urcdkZ2ff8bxz586Fs7Oz/sEbCBMRERERkbEsKlwB1fvLV81qvHV7TcfU1pd+xowZKCws1D8uXrxowoqJiIiIiKgpsKibCLu7u1cbgcrJyYGVlRVcXFxqPeb20axbyeVyyOVy0xdMRERERESGNBWASgmUFQBlSqCs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AAAg3q655ho9+eSTUa+5XK4E9QYAMFgwcgUASDsul0vDhg2LOvLz8yWZU/aWLVumOXPmKDMzU6WlpVqxYkXU9Vu3btWVV16pzMxMDR06VLfddpuampqizvnd736nKVOmyOVyafjw4brzzjuj2uvq6nT99dcrKytLEyZM0Msvv9y/PzQAIOEIVwCAQed73/uebrjhBn344Yf60pe+pC984Qv6+OOPJUnNzc265pprlJ+frw8++EArVqzQm2++GRWeli1bpjvuuEO33Xabtm7dqpdfflnjx4+P+h4PPfSQPv/5z2vLli2aO3eubrrpJh0/fnxAf04AwMCyGIZhJLoTAADEyy233KJnnnlGGRkZUa/ff//9+t73vieLxaKFCxdq2bJlHW0XXnihpk+frqVLl+qxxx7T/fffr4MHD8rtdkuSVq1apc985jM6cuSISkpKNHLkSH3lK1/RD3/4w077YLFY9K//+q/693//d0mSx+NRTk6OVq1axdovAEhjrLkCAKSdK664Iio8SVJBQUHH55WVlVFtlZWV2rx5syTp448/1rnnntsRrCTp4osvVjAYVFVVlSwWi44cOaJZs2Z124dzzjmn43O3262cnBzV1NT09UcCAKQAwhUAIO243e7TpumdicVikSQZhtHxeWfnZGZm9uj9HA7HadcGg8Fe9QkAkFpYcwUAGHTef//9076eNGmSJGny5MnavHmzPB5PR/t7770nq9WqiRMnKicnR+PGjdNbb701oH0GACQ/Rq4AAGnH6/Xq6NGjUa/Z7XYVFhZKklasWKGZM2fqkksu0bPPPqu//e1veuKJJyRJN910k37wgx9owYIFevDBB1VbW6u77rpLN998s0pKSiRJDz74oBYuXKji4mLNmTNHjY2Neu+993TXXXcN7A8KAEgqhCsAQNp57bXXNHz48KjXKioqtH37dklmJb/nn39eX//61zVs2DA9++yzmjx5siQpKytLr7/+uu655x6df/75ysrK0g033KBf/vKXHe+1YMECtba2asmSJfrWt76lwsJCfe5znxu4HxAAkJSoFggAGFQsFoteeuklzZ8/P9FdAQCkGdZcAQAAAEAcEK4AAAAAIA5YcwUAGFSYDQ8A6C+MXAEAAABAHBCuAAAAACAOCFcAAAAAEAeEKwAAAACIA8IVAAAAAMQB4QoAAAAA4oBwBQAAAABxQLgCAAAAgDggXAEAAABAHPx/NUn6mx2eKh4AAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(10, 8))\n", - "plt.subplot(211) \n", - "plt.plot(history_1.history[\"accuracy\"])\n", - "plt.plot(history_1.history[\"val_accuracy\"])\n", - "plt.ylabel(\"Accuracy\")\n", - "plt.xlabel(\"Epochs\")\n", - "plt.legend([\"Train\", \"Validation\"], loc=\"lower right\")\n", - "\n", - "plt.subplot(212) \n", - "plt.plot(history_1.history['loss'], label='Train')\n", - "plt.plot(history_1.history['val_loss'], label='Test')\n", - "plt.ylabel('Loss')\n", - "plt.xlabel('Epoch')\n", - "plt.legend([\"Train\", \"Validation\"], loc=\"upper right\")\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "d975e09f", - "metadata": { - "execution": { - "iopub.execute_input": "2023-06-06T12:40:43.524829Z", - "iopub.status.busy": "2023-06-06T12:40:43.523734Z", - "iopub.status.idle": "2023-06-06T12:40:43.529372Z", - "shell.execute_reply": "2023-06-06T12:40:43.528141Z" - }, - "papermill": { - "duration": 0.030963, - "end_time": "2023-06-06T12:40:43.532317", - "exception": false, - "start_time": "2023-06-06T12:40:43.501354", - "status": "completed" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "output_table = PrettyTable([\"Model\",\"Accuracy\", \"Precision\", \"Recall\", \"F1-score\"])" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "5b21fd2e", - "metadata": { - "execution": { - "iopub.execute_input": "2023-06-06T12:40:43.573743Z", - "iopub.status.busy": "2023-06-06T12:40:43.573408Z", - "iopub.status.idle": "2023-06-06T12:40:43.580487Z", - "shell.execute_reply": "2023-06-06T12:40:43.579269Z" - }, - "papermill": { - "duration": 0.030247, - "end_time": "2023-06-06T12:40:43.582514", - "exception": false, - "start_time": "2023-06-06T12:40:43.552267", - "status": "completed" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "def predict_with_model(model, X_test, y_test):\n", - " \"\"\"Function to return train and test scores \"\"\"\n", - " \n", - " y_test_pred = model.predict(X_test)\n", - " y_test_pred = np.argmax(y_test_pred, axis=1)\n", - " \n", - " test_acc = np.round(accuracy_score(y_test, y_test_pred),4)\n", - " conf_matrix = np.round(confusion_matrix(y_test, y_test_pred),4)\n", - " precision = np.round(precision_score(y_test, y_test_pred, average='binary'),4)\n", - " recall = np.round(recall_score(y_test, y_test_pred, average='binary'),4)\n", - " f1score = np.round(f1_score(y_test, y_test_pred, average='binary'),4)\n", - " \n", - " return test_acc, conf_matrix, precision, recall, f1score" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "55cc0f73", - "metadata": { - "execution": { - "iopub.execute_input": "2023-06-06T12:40:43.624060Z", - "iopub.status.busy": "2023-06-06T12:40:43.623740Z", - "iopub.status.idle": "2023-06-06T12:40:44.182596Z", - "shell.execute_reply": "2023-06-06T12:40:44.180791Z" - }, - "papermill": { - "duration": 0.583386, - "end_time": "2023-06-06T12:40:44.185965", - "exception": false, - "start_time": "2023-06-06T12:40:43.602579", - "status": "completed" - }, - "tags": [] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "128/128 [==============================] - 0s 3ms/step\n" - ] - } - ], - "source": [ - "acc1, cnf1, pre1, recl1, f11 = predict_with_model(dnn_model,\n", - " X_test,\n", - " y_test)\n", - "output_table.add_row([\"DNN Model\",acc1, pre1, recl1, f11])" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "6543aaf1", - "metadata": { - "execution": { - "iopub.execute_input": "2023-06-06T12:40:44.228685Z", - "iopub.status.busy": "2023-06-06T12:40:44.228308Z", - "iopub.status.idle": "2023-06-06T12:40:44.234011Z", - "shell.execute_reply": "2023-06-06T12:40:44.233049Z" - }, - "papermill": { - "duration": 0.029932, - "end_time": "2023-06-06T12:40:44.236684", - "exception": false, - "start_time": "2023-06-06T12:40:44.206752", - "status": "completed" - }, - "tags": [] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "+-----------+----------+-----------+--------+----------+\n", - "| Model | Accuracy | Precision | Recall | F1-score |\n", - "+-----------+----------+-----------+--------+----------+\n", - "| DNN Model | 0.9968 | 0.9956 | 0.9981 | 0.9968 |\n", - "+-----------+----------+-----------+--------+----------+\n" - ] - } - ], - "source": [ - "print(output_table)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d27fb70e", - "metadata": { - "papermill": { - "duration": 0.021362, - "end_time": "2023-06-06T12:40:44.279598", - "exception": false, - "start_time": "2023-06-06T12:40:44.258236", - "status": "completed" - }, - "tags": [] - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.10" - }, - "papermill": { - "default_parameters": {}, - "duration": 104.48449, - "end_time": "2023-06-06T12:40:46.925313", - "environment_variables": {}, - "exception": null, - "input_path": "__notebook__.ipynb", - "output_path": "__notebook__.ipynb", - "parameters": {}, - "start_time": "2023-06-06T12:39:02.440823", - "version": "2.4.0" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -}