From 77a84d0b27b6a5135e91917152f726667cc42d4e Mon Sep 17 00:00:00 2001 From: abhay Date: Mon, 24 Jun 2024 18:25:38 +0530 Subject: [PATCH] Added Exercise File --- .../Bank_Churn_Modelling_Using_Sampling.ipynb | 5381 +++++++++++++++++ 1 file changed, 5381 insertions(+) create mode 100644 14_imbalanced/Handling Imbalanced Data In Customer Churn Using ANN/Bank_Churn_Modelling_Using_Sampling.ipynb diff --git a/14_imbalanced/Handling Imbalanced Data In Customer Churn Using ANN/Bank_Churn_Modelling_Using_Sampling.ipynb b/14_imbalanced/Handling Imbalanced Data In Customer Churn Using ANN/Bank_Churn_Modelling_Using_Sampling.ipynb new file mode 100644 index 0000000..033e959 --- /dev/null +++ b/14_imbalanced/Handling Imbalanced Data In Customer Churn Using ANN/Bank_Churn_Modelling_Using_Sampling.ipynb @@ -0,0 +1,5381 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0c9a92f8", + "metadata": {}, + "source": [ + "# Bank Customer Churn Prediction" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "3222f53d", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import tensorflow as tf\n", + "from tensorflow import keras\n", + "import warnings\n", + "warnings.filterwarnings(\"ignore\")" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "c02146ba", + "metadata": {}, + "outputs": [], + "source": [ + "df=pd.read_csv('Churn_Modelling.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "2fba4e16", + "metadata": {}, + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + "
RowNumberCustomerIdSurnameCreditScoreGeographyGenderAgeTenureBalanceNumOfProductsHasCrCardIsActiveMemberEstimatedSalaryExited
0115634602Hargrave619FranceFemale4220.00111101348.881
1215647311Hill608SpainFemale41183807.86101112542.580
2315619304Onio502FranceFemale428159660.80310113931.571
3415701354Boni699FranceFemale3910.0020093826.630
4515737888Mitchell850SpainFemale432125510.8211179084.100
.............................................
9995999615606229Obijiaku771FranceMale3950.0021096270.640
9996999715569892Johnstone516FranceMale351057369.61111101699.770
9997999815584532Liu709FranceFemale3670.0010142085.581
9998999915682355Sabbatini772GermanyMale42375075.3121092888.521
99991000015628319Walker792FranceFemale284130142.7911038190.780
\n", + "

10000 rows × 14 columns

\n", + "
" + ], + "text/plain": [ + " RowNumber CustomerId Surname CreditScore Geography Gender Age \\\n", + "0 1 15634602 Hargrave 619 France Female 42 \n", + "1 2 15647311 Hill 608 Spain Female 41 \n", + "2 3 15619304 Onio 502 France Female 42 \n", + "3 4 15701354 Boni 699 France Female 39 \n", + "4 5 15737888 Mitchell 850 Spain Female 43 \n", + "... ... ... ... ... ... ... ... \n", + "9995 9996 15606229 Obijiaku 771 France Male 39 \n", + "9996 9997 15569892 Johnstone 516 France Male 35 \n", + "9997 9998 15584532 Liu 709 France Female 36 \n", + "9998 9999 15682355 Sabbatini 772 Germany Male 42 \n", + "9999 10000 15628319 Walker 792 France Female 28 \n", + "\n", + " Tenure Balance NumOfProducts HasCrCard IsActiveMember \\\n", + "0 2 0.00 1 1 1 \n", + "1 1 83807.86 1 0 1 \n", + "2 8 159660.80 3 1 0 \n", + "3 1 0.00 2 0 0 \n", + "4 2 125510.82 1 1 1 \n", + "... ... ... ... ... ... \n", + "9995 5 0.00 2 1 0 \n", + "9996 10 57369.61 1 1 1 \n", + "9997 7 0.00 1 0 1 \n", + "9998 3 75075.31 2 1 0 \n", + "9999 4 130142.79 1 1 0 \n", + "\n", + " EstimatedSalary Exited \n", + "0 101348.88 1 \n", + "1 112542.58 0 \n", + "2 113931.57 1 \n", + "3 93826.63 0 \n", + "4 79084.10 0 \n", + "... ... ... \n", + "9995 96270.64 0 \n", + "9996 101699.77 0 \n", + "9997 42085.58 1 \n", + "9998 92888.52 1 \n", + "9999 38190.78 0 \n", + "\n", + "[10000 rows x 14 columns]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "3c900477", + "metadata": {}, + "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", + " \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", + " \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", + "
RowNumberCustomerIdSurnameCreditScoreGeographyGenderAgeTenureBalanceNumOfProductsHasCrCardIsActiveMemberEstimatedSalaryExited
9995999615606229Obijiaku771FranceMale3950.0021096270.640
9996999715569892Johnstone516FranceMale351057369.61111101699.770
9997999815584532Liu709FranceFemale3670.0010142085.581
9998999915682355Sabbatini772GermanyMale42375075.3121092888.521
99991000015628319Walker792FranceFemale284130142.7911038190.780
\n", + "
" + ], + "text/plain": [ + " RowNumber CustomerId Surname CreditScore Geography Gender Age \\\n", + "9995 9996 15606229 Obijiaku 771 France Male 39 \n", + "9996 9997 15569892 Johnstone 516 France Male 35 \n", + "9997 9998 15584532 Liu 709 France Female 36 \n", + "9998 9999 15682355 Sabbatini 772 Germany Male 42 \n", + "9999 10000 15628319 Walker 792 France Female 28 \n", + "\n", + " Tenure Balance NumOfProducts HasCrCard IsActiveMember \\\n", + "9995 5 0.00 2 1 0 \n", + "9996 10 57369.61 1 1 1 \n", + "9997 7 0.00 1 0 1 \n", + "9998 3 75075.31 2 1 0 \n", + "9999 4 130142.79 1 1 0 \n", + "\n", + " EstimatedSalary Exited \n", + "9995 96270.64 0 \n", + "9996 101699.77 0 \n", + "9997 42085.58 1 \n", + "9998 92888.52 1 \n", + "9999 38190.78 0 " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.tail()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "1cfe8250", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['RowNumber', 'CustomerId', 'Surname', 'CreditScore', 'Geography',\n", + " 'Gender', 'Age', 'Tenure', 'Balance', 'NumOfProducts', 'HasCrCard',\n", + " 'IsActiveMember', 'EstimatedSalary', 'Exited'],\n", + " dtype='object')" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "de72c6db", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "RowNumber\n", + "1 1\n", + "6671 1\n", + "6664 1\n", + "6665 1\n", + "6666 1\n", + " ..\n", + "3334 1\n", + "3335 1\n", + "3336 1\n", + "3337 1\n", + "10000 1\n", + "Name: count, Length: 10000, dtype: int64\n", + "\n", + "\n", + "CustomerId\n", + "15634602 1\n", + "15667932 1\n", + "15766185 1\n", + "15667632 1\n", + "15599024 1\n", + " ..\n", + "15599078 1\n", + "15702300 1\n", + "15660735 1\n", + "15671390 1\n", + "15628319 1\n", + "Name: count, Length: 10000, dtype: int64\n", + "\n", + "\n", + "Surname\n", + "Smith 32\n", + "Scott 29\n", + "Martin 29\n", + "Walker 28\n", + "Brown 26\n", + " ..\n", + "Izmailov 1\n", + "Bold 1\n", + "Bonham 1\n", + "Poninski 1\n", + "Burbidge 1\n", + "Name: count, Length: 2932, dtype: int64\n", + "\n", + "\n", + "CreditScore\n", + "850 233\n", + "678 63\n", + "655 54\n", + "705 53\n", + "667 53\n", + " ... \n", + "404 1\n", + "351 1\n", + "365 1\n", + "417 1\n", + "419 1\n", + "Name: count, Length: 460, dtype: int64\n", + "\n", + "\n", + "Geography\n", + "France 5014\n", + "Germany 2509\n", + "Spain 2477\n", + "Name: count, dtype: int64\n", + "\n", + "\n", + "Gender\n", + "Male 5457\n", + "Female 4543\n", + "Name: count, dtype: int64\n", + "\n", + "\n", + "Age\n", + "37 478\n", + "38 477\n", + "35 474\n", + "36 456\n", + "34 447\n", + " ... \n", + "92 2\n", + "82 1\n", + "88 1\n", + "85 1\n", + "83 1\n", + "Name: count, Length: 70, dtype: int64\n", + "\n", + "\n", + "Tenure\n", + "2 1048\n", + "1 1035\n", + "7 1028\n", + "8 1025\n", + "5 1012\n", + "3 1009\n", + "4 989\n", + "9 984\n", + "6 967\n", + "10 490\n", + "0 413\n", + "Name: count, dtype: int64\n", + "\n", + "\n", + "Balance\n", + "0.00 3617\n", + "130170.82 2\n", + "105473.74 2\n", + "85304.27 1\n", + "159397.75 1\n", + " ... \n", + "81556.89 1\n", + "112687.69 1\n", + "108698.96 1\n", + "238387.56 1\n", + "130142.79 1\n", + "Name: count, Length: 6382, dtype: int64\n", + "\n", + "\n", + "NumOfProducts\n", + "1 5084\n", + "2 4590\n", + "3 266\n", + "4 60\n", + "Name: count, dtype: int64\n", + "\n", + "\n", + "HasCrCard\n", + "1 7055\n", + "0 2945\n", + "Name: count, dtype: int64\n", + "\n", + "\n", + "IsActiveMember\n", + "1 5151\n", + "0 4849\n", + "Name: count, dtype: int64\n", + "\n", + "\n", + "EstimatedSalary\n", + "24924.92 2\n", + "101348.88 1\n", + "55313.44 1\n", + "72500.68 1\n", + "182692.80 1\n", + " ..\n", + "120893.07 1\n", + "188377.21 1\n", + "55902.93 1\n", + "4523.74 1\n", + "38190.78 1\n", + "Name: count, Length: 9999, dtype: int64\n", + "\n", + "\n", + "Exited\n", + "0 7963\n", + "1 2037\n", + "Name: count, dtype: int64\n", + "\n", + "\n" + ] + } + ], + "source": [ + "def find_value_counts(df):\n", + " for i in df.columns:\n", + " print(f'{df[i].value_counts()}')\n", + " print(\"\\n\")\n", + "find_value_counts(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "f905b89f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "RowNumber 10000\n", + "CustomerId 10000\n", + "Surname 2932\n", + "CreditScore 460\n", + "Geography 3\n", + "Gender 2\n", + "Age 70\n", + "Tenure 11\n", + "Balance 6382\n", + "NumOfProducts 4\n", + "HasCrCard 2\n", + "IsActiveMember 2\n", + "EstimatedSalary 9999\n", + "Exited 2\n", + "dtype: int64" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.nunique()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "84b03be2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "RowNumber 0\n", + "CustomerId 0\n", + "Surname 0\n", + "CreditScore 0\n", + "Geography 0\n", + "Gender 0\n", + "Age 0\n", + "Tenure 0\n", + "Balance 0\n", + "NumOfProducts 0\n", + "HasCrCard 0\n", + "IsActiveMember 0\n", + "EstimatedSalary 0\n", + "Exited 0\n", + "dtype: int64" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.isnull().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "7891afc9", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "RowNumber int64\n", + "CustomerId int64\n", + "Surname object\n", + "CreditScore int64\n", + "Geography object\n", + "Gender object\n", + "Age int64\n", + "Tenure int64\n", + "Balance float64\n", + "NumOfProducts int64\n", + "HasCrCard int64\n", + "IsActiveMember int64\n", + "EstimatedSalary float64\n", + "Exited int64\n", + "dtype: object" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.dtypes" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "6471d362", + "metadata": {}, + "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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
RowNumberCustomerIdCreditScoreAgeTenureBalanceNumOfProductsHasCrCardIsActiveMemberEstimatedSalaryExited
count10000.000001.000000e+0410000.00000010000.00000010000.00000010000.00000010000.00000010000.0000010000.00000010000.00000010000.000000
mean5000.500001.569094e+07650.52880038.9218005.01280076485.8892881.5302000.705500.515100100090.2398810.203700
std2886.895687.193619e+0496.65329910.4878062.89217462397.4052020.5816540.455840.49979757510.4928180.402769
min1.000001.556570e+07350.00000018.0000000.0000000.0000001.0000000.000000.00000011.5800000.000000
25%2500.750001.562853e+07584.00000032.0000003.0000000.0000001.0000000.000000.00000051002.1100000.000000
50%5000.500001.569074e+07652.00000037.0000005.00000097198.5400001.0000001.000001.000000100193.9150000.000000
75%7500.250001.575323e+07718.00000044.0000007.000000127644.2400002.0000001.000001.000000149388.2475000.000000
max10000.000001.581569e+07850.00000092.00000010.000000250898.0900004.0000001.000001.000000199992.4800001.000000
\n", + "
" + ], + "text/plain": [ + " RowNumber CustomerId CreditScore Age Tenure \\\n", + "count 10000.00000 1.000000e+04 10000.000000 10000.000000 10000.000000 \n", + "mean 5000.50000 1.569094e+07 650.528800 38.921800 5.012800 \n", + "std 2886.89568 7.193619e+04 96.653299 10.487806 2.892174 \n", + "min 1.00000 1.556570e+07 350.000000 18.000000 0.000000 \n", + "25% 2500.75000 1.562853e+07 584.000000 32.000000 3.000000 \n", + "50% 5000.50000 1.569074e+07 652.000000 37.000000 5.000000 \n", + "75% 7500.25000 1.575323e+07 718.000000 44.000000 7.000000 \n", + "max 10000.00000 1.581569e+07 850.000000 92.000000 10.000000 \n", + "\n", + " Balance NumOfProducts HasCrCard IsActiveMember \\\n", + "count 10000.000000 10000.000000 10000.00000 10000.000000 \n", + "mean 76485.889288 1.530200 0.70550 0.515100 \n", + "std 62397.405202 0.581654 0.45584 0.499797 \n", + "min 0.000000 1.000000 0.00000 0.000000 \n", + "25% 0.000000 1.000000 0.00000 0.000000 \n", + "50% 97198.540000 1.000000 1.00000 1.000000 \n", + "75% 127644.240000 2.000000 1.00000 1.000000 \n", + "max 250898.090000 4.000000 1.00000 1.000000 \n", + "\n", + " EstimatedSalary Exited \n", + "count 10000.000000 10000.000000 \n", + "mean 100090.239881 0.203700 \n", + "std 57510.492818 0.402769 \n", + "min 11.580000 0.000000 \n", + "25% 51002.110000 0.000000 \n", + "50% 100193.915000 0.000000 \n", + "75% 149388.247500 0.000000 \n", + "max 199992.480000 1.000000 " + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "36d8b7b3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 10000 entries, 0 to 9999\n", + "Data columns (total 14 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 RowNumber 10000 non-null int64 \n", + " 1 CustomerId 10000 non-null int64 \n", + " 2 Surname 10000 non-null object \n", + " 3 CreditScore 10000 non-null int64 \n", + " 4 Geography 10000 non-null object \n", + " 5 Gender 10000 non-null object \n", + " 6 Age 10000 non-null int64 \n", + " 7 Tenure 10000 non-null int64 \n", + " 8 Balance 10000 non-null float64\n", + " 9 NumOfProducts 10000 non-null int64 \n", + " 10 HasCrCard 10000 non-null int64 \n", + " 11 IsActiveMember 10000 non-null int64 \n", + " 12 EstimatedSalary 10000 non-null float64\n", + " 13 Exited 10000 non-null int64 \n", + "dtypes: float64(2), int64(9), object(3)\n", + "memory usage: 1.1+ MB\n" + ] + } + ], + "source": [ + "df.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "374968cc", + "metadata": {}, + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + "
RowNumberCustomerIdSurnameCreditScoreGeographyGenderAgeTenureBalanceNumOfProductsHasCrCardIsActiveMemberEstimatedSalaryExited
0115634602Hargrave619FranceFemale4220.00111101348.881
1215647311Hill608SpainFemale41183807.86101112542.580
2315619304Onio502FranceFemale428159660.80310113931.571
3415701354Boni699FranceFemale3910.0020093826.630
4515737888Mitchell850SpainFemale432125510.8211179084.100
.............................................
9995999615606229Obijiaku771FranceMale3950.0021096270.640
9996999715569892Johnstone516FranceMale351057369.61111101699.770
9997999815584532Liu709FranceFemale3670.0010142085.581
9998999915682355Sabbatini772GermanyMale42375075.3121092888.521
99991000015628319Walker792FranceFemale284130142.7911038190.780
\n", + "

10000 rows × 14 columns

\n", + "
" + ], + "text/plain": [ + " RowNumber CustomerId Surname CreditScore Geography Gender Age \\\n", + "0 1 15634602 Hargrave 619 France Female 42 \n", + "1 2 15647311 Hill 608 Spain Female 41 \n", + "2 3 15619304 Onio 502 France Female 42 \n", + "3 4 15701354 Boni 699 France Female 39 \n", + "4 5 15737888 Mitchell 850 Spain Female 43 \n", + "... ... ... ... ... ... ... ... \n", + "9995 9996 15606229 Obijiaku 771 France Male 39 \n", + "9996 9997 15569892 Johnstone 516 France Male 35 \n", + "9997 9998 15584532 Liu 709 France Female 36 \n", + "9998 9999 15682355 Sabbatini 772 Germany Male 42 \n", + "9999 10000 15628319 Walker 792 France Female 28 \n", + "\n", + " Tenure Balance NumOfProducts HasCrCard IsActiveMember \\\n", + "0 2 0.00 1 1 1 \n", + "1 1 83807.86 1 0 1 \n", + "2 8 159660.80 3 1 0 \n", + "3 1 0.00 2 0 0 \n", + "4 2 125510.82 1 1 1 \n", + "... ... ... ... ... ... \n", + "9995 5 0.00 2 1 0 \n", + "9996 10 57369.61 1 1 1 \n", + "9997 7 0.00 1 0 1 \n", + "9998 3 75075.31 2 1 0 \n", + "9999 4 130142.79 1 1 0 \n", + "\n", + " EstimatedSalary Exited \n", + "0 101348.88 1 \n", + "1 112542.58 0 \n", + "2 113931.57 1 \n", + "3 93826.63 0 \n", + "4 79084.10 0 \n", + "... ... ... \n", + "9995 96270.64 0 \n", + "9996 101699.77 0 \n", + "9997 42085.58 1 \n", + "9998 92888.52 1 \n", + "9999 38190.78 0 \n", + "\n", + "[10000 rows x 14 columns]" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "6e15636d", + "metadata": {}, + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + "
RowNumberCustomerIdSurnameCreditScoreGeographyGenderAgeTenureBalanceNumOfProductsHasCrCardIsActiveMemberEstimatedSalaryExited
0115634602Hargrave619France14220.00111101348.881
1215647311Hill608Spain141183807.86101112542.580
2315619304Onio502France1428159660.80310113931.571
3415701354Boni699France13910.0020093826.630
4515737888Mitchell850Spain1432125510.8211179084.100
.............................................
9995999615606229Obijiaku771France03950.0021096270.640
9996999715569892Johnstone516France0351057369.61111101699.770
9997999815584532Liu709France13670.0010142085.581
9998999915682355Sabbatini772Germany042375075.3121092888.521
99991000015628319Walker792France1284130142.7911038190.780
\n", + "

10000 rows × 14 columns

\n", + "
" + ], + "text/plain": [ + " RowNumber CustomerId Surname CreditScore Geography Gender Age \\\n", + "0 1 15634602 Hargrave 619 France 1 42 \n", + "1 2 15647311 Hill 608 Spain 1 41 \n", + "2 3 15619304 Onio 502 France 1 42 \n", + "3 4 15701354 Boni 699 France 1 39 \n", + "4 5 15737888 Mitchell 850 Spain 1 43 \n", + "... ... ... ... ... ... ... ... \n", + "9995 9996 15606229 Obijiaku 771 France 0 39 \n", + "9996 9997 15569892 Johnstone 516 France 0 35 \n", + "9997 9998 15584532 Liu 709 France 1 36 \n", + "9998 9999 15682355 Sabbatini 772 Germany 0 42 \n", + "9999 10000 15628319 Walker 792 France 1 28 \n", + "\n", + " Tenure Balance NumOfProducts HasCrCard IsActiveMember \\\n", + "0 2 0.00 1 1 1 \n", + "1 1 83807.86 1 0 1 \n", + "2 8 159660.80 3 1 0 \n", + "3 1 0.00 2 0 0 \n", + "4 2 125510.82 1 1 1 \n", + "... ... ... ... ... ... \n", + "9995 5 0.00 2 1 0 \n", + "9996 10 57369.61 1 1 1 \n", + "9997 7 0.00 1 0 1 \n", + "9998 3 75075.31 2 1 0 \n", + "9999 4 130142.79 1 1 0 \n", + "\n", + " EstimatedSalary Exited \n", + "0 101348.88 1 \n", + "1 112542.58 0 \n", + "2 113931.57 1 \n", + "3 93826.63 0 \n", + "4 79084.10 0 \n", + "... ... ... \n", + "9995 96270.64 0 \n", + "9996 101699.77 0 \n", + "9997 42085.58 1 \n", + "9998 92888.52 1 \n", + "9999 38190.78 0 \n", + "\n", + "[10000 rows x 14 columns]" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['Gender'].replace({'Female':1,'Male':0},inplace=True)\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "85d6b922", + "metadata": {}, + "outputs": [], + "source": [ + "df=pd.get_dummies(df,columns=['Geography'],dtype='int')" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "46df7662", + "metadata": {}, + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
RowNumberCustomerIdSurnameCreditScoreGenderAgeTenureBalanceNumOfProductsHasCrCardIsActiveMemberEstimatedSalaryExitedGeography_FranceGeography_GermanyGeography_Spain
0115634602Hargrave61914220.00111101348.881100
1215647311Hill608141183807.86101112542.580001
2315619304Onio5021428159660.80310113931.571100
3415701354Boni69913910.0020093826.630100
4515737888Mitchell8501432125510.8211179084.100001
...................................................
9995999615606229Obijiaku77103950.0021096270.640100
9996999715569892Johnstone5160351057369.61111101699.770100
9997999815584532Liu70913670.0010142085.581100
9998999915682355Sabbatini772042375075.3121092888.521010
99991000015628319Walker7921284130142.7911038190.780100
\n", + "

10000 rows × 16 columns

\n", + "
" + ], + "text/plain": [ + " RowNumber CustomerId Surname CreditScore Gender Age Tenure \\\n", + "0 1 15634602 Hargrave 619 1 42 2 \n", + "1 2 15647311 Hill 608 1 41 1 \n", + "2 3 15619304 Onio 502 1 42 8 \n", + "3 4 15701354 Boni 699 1 39 1 \n", + "4 5 15737888 Mitchell 850 1 43 2 \n", + "... ... ... ... ... ... ... ... \n", + "9995 9996 15606229 Obijiaku 771 0 39 5 \n", + "9996 9997 15569892 Johnstone 516 0 35 10 \n", + "9997 9998 15584532 Liu 709 1 36 7 \n", + "9998 9999 15682355 Sabbatini 772 0 42 3 \n", + "9999 10000 15628319 Walker 792 1 28 4 \n", + "\n", + " Balance NumOfProducts HasCrCard IsActiveMember EstimatedSalary \\\n", + "0 0.00 1 1 1 101348.88 \n", + "1 83807.86 1 0 1 112542.58 \n", + "2 159660.80 3 1 0 113931.57 \n", + "3 0.00 2 0 0 93826.63 \n", + "4 125510.82 1 1 1 79084.10 \n", + "... ... ... ... ... ... \n", + "9995 0.00 2 1 0 96270.64 \n", + "9996 57369.61 1 1 1 101699.77 \n", + "9997 0.00 1 0 1 42085.58 \n", + "9998 75075.31 2 1 0 92888.52 \n", + "9999 130142.79 1 1 0 38190.78 \n", + "\n", + " Exited Geography_France Geography_Germany Geography_Spain \n", + "0 1 1 0 0 \n", + "1 0 0 0 1 \n", + "2 1 1 0 0 \n", + "3 0 1 0 0 \n", + "4 0 0 0 1 \n", + "... ... ... ... ... \n", + "9995 0 1 0 0 \n", + "9996 0 1 0 0 \n", + "9997 1 1 0 0 \n", + "9998 1 0 1 0 \n", + "9999 0 1 0 0 \n", + "\n", + "[10000 rows x 16 columns]" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "e6e7f833", + "metadata": {}, + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
RowNumberCustomerIdSurnameCreditScoreGenderAgeTenureBalanceNumOfProductsHasCrCardIsActiveMemberEstimatedSalaryExitedGeography_FranceGeography_GermanyGeography_Spain
0115634602Hargrave0.53810.3243240.20.0000001110.5067351100
1215647311Hill0.51610.3108110.10.3340311010.5627090001
2315619304Onio0.30410.3243240.80.6363573100.5696541100
3415701354Boni0.69810.2837840.10.0000002000.4691200100
4515737888Mitchell1.00010.3378380.20.5002461110.3954000001
...................................................
9995999615606229Obijiaku0.84200.2837840.50.0000002100.4813410100
9996999715569892Johnstone0.33200.2297301.00.2286571110.5084900100
9997999815584532Liu0.71810.2432430.70.0000001010.2103901100
9998999915682355Sabbatini0.84400.3243240.30.2992262100.4644291010
99991000015628319Walker0.88410.1351350.40.5187081100.1909140100
\n", + "

10000 rows × 16 columns

\n", + "
" + ], + "text/plain": [ + " RowNumber CustomerId Surname CreditScore Gender Age Tenure \\\n", + "0 1 15634602 Hargrave 0.538 1 0.324324 0.2 \n", + "1 2 15647311 Hill 0.516 1 0.310811 0.1 \n", + "2 3 15619304 Onio 0.304 1 0.324324 0.8 \n", + "3 4 15701354 Boni 0.698 1 0.283784 0.1 \n", + "4 5 15737888 Mitchell 1.000 1 0.337838 0.2 \n", + "... ... ... ... ... ... ... ... \n", + "9995 9996 15606229 Obijiaku 0.842 0 0.283784 0.5 \n", + "9996 9997 15569892 Johnstone 0.332 0 0.229730 1.0 \n", + "9997 9998 15584532 Liu 0.718 1 0.243243 0.7 \n", + "9998 9999 15682355 Sabbatini 0.844 0 0.324324 0.3 \n", + "9999 10000 15628319 Walker 0.884 1 0.135135 0.4 \n", + "\n", + " Balance NumOfProducts HasCrCard IsActiveMember EstimatedSalary \\\n", + "0 0.000000 1 1 1 0.506735 \n", + "1 0.334031 1 0 1 0.562709 \n", + "2 0.636357 3 1 0 0.569654 \n", + "3 0.000000 2 0 0 0.469120 \n", + "4 0.500246 1 1 1 0.395400 \n", + "... ... ... ... ... ... \n", + "9995 0.000000 2 1 0 0.481341 \n", + "9996 0.228657 1 1 1 0.508490 \n", + "9997 0.000000 1 0 1 0.210390 \n", + "9998 0.299226 2 1 0 0.464429 \n", + "9999 0.518708 1 1 0 0.190914 \n", + "\n", + " Exited Geography_France Geography_Germany Geography_Spain \n", + "0 1 1 0 0 \n", + "1 0 0 0 1 \n", + "2 1 1 0 0 \n", + "3 0 1 0 0 \n", + "4 0 0 0 1 \n", + "... ... ... ... ... \n", + "9995 0 1 0 0 \n", + "9996 0 1 0 0 \n", + "9997 1 1 0 0 \n", + "9998 1 0 1 0 \n", + "9999 0 1 0 0 \n", + "\n", + "[10000 rows x 16 columns]" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.preprocessing import MinMaxScaler\n", + "scaler=MinMaxScaler()\n", + "columns=['CreditScore','Age','Tenure','Balance','EstimatedSalary']\n", + "df[columns]=scaler.fit_transform(df[columns])\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "220d6961", + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "NumOfProducts\n", + "1 5084\n", + "2 4590\n", + "3 266\n", + "4 60\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['NumOfProducts'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "1958d1c2", + "metadata": {}, + "outputs": [], + "source": [ + "df['NumOfProducts'].replace({1:0,2:1,3:1,4:1},inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "d9e4cddd", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "NumOfProducts\n", + "0 5084\n", + "1 4916\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['NumOfProducts'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "ac2b68d6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Exited\n", + "0 7963\n", + "1 2037\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.Exited.value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "6a61a2d3", + "metadata": {}, + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
RowNumberCustomerIdSurnameCreditScoreGenderAgeTenureBalanceNumOfProductsHasCrCardIsActiveMemberEstimatedSalaryExitedGeography_FranceGeography_GermanyGeography_Spain
0115634602Hargrave0.53810.3243240.20.0000000110.5067351100
2315619304Onio0.30410.3243240.80.6363571100.5696541100
5615574012Chu0.59000.3513510.80.4533941100.7487971001
7815656148Obinna0.05210.1486490.40.4585401100.5967331010
161715737452Romeo0.60600.5405410.10.5285130100.0254331010
...................................................
7924792515613337Gallo0.96600.3918920.20.0000001110.9112680100
4131413215738634Yuan0.36600.3918920.90.3321960110.6884890100
3928392915609545Azubuike0.39600.1486490.50.3325770010.8851140100
2887288815604314Webb0.70610.1081080.10.3879310100.3185600010
1374137515774738Campa0.56400.3513510.30.4295160100.9283690100
\n", + "

4074 rows × 16 columns

\n", + "
" + ], + "text/plain": [ + " RowNumber CustomerId Surname CreditScore Gender Age Tenure \\\n", + "0 1 15634602 Hargrave 0.538 1 0.324324 0.2 \n", + "2 3 15619304 Onio 0.304 1 0.324324 0.8 \n", + "5 6 15574012 Chu 0.590 0 0.351351 0.8 \n", + "7 8 15656148 Obinna 0.052 1 0.148649 0.4 \n", + "16 17 15737452 Romeo 0.606 0 0.540541 0.1 \n", + "... ... ... ... ... ... ... ... \n", + "7924 7925 15613337 Gallo 0.966 0 0.391892 0.2 \n", + "4131 4132 15738634 Yuan 0.366 0 0.391892 0.9 \n", + "3928 3929 15609545 Azubuike 0.396 0 0.148649 0.5 \n", + "2887 2888 15604314 Webb 0.706 1 0.108108 0.1 \n", + "1374 1375 15774738 Campa 0.564 0 0.351351 0.3 \n", + "\n", + " Balance NumOfProducts HasCrCard IsActiveMember EstimatedSalary \\\n", + "0 0.000000 0 1 1 0.506735 \n", + "2 0.636357 1 1 0 0.569654 \n", + "5 0.453394 1 1 0 0.748797 \n", + "7 0.458540 1 1 0 0.596733 \n", + "16 0.528513 0 1 0 0.025433 \n", + "... ... ... ... ... ... \n", + "7924 0.000000 1 1 1 0.911268 \n", + "4131 0.332196 0 1 1 0.688489 \n", + "3928 0.332577 0 0 1 0.885114 \n", + "2887 0.387931 0 1 0 0.318560 \n", + "1374 0.429516 0 1 0 0.928369 \n", + "\n", + " Exited Geography_France Geography_Germany Geography_Spain \n", + "0 1 1 0 0 \n", + "2 1 1 0 0 \n", + "5 1 0 0 1 \n", + "7 1 0 1 0 \n", + "16 1 0 1 0 \n", + "... ... ... ... ... \n", + "7924 0 1 0 0 \n", + "4131 0 1 0 0 \n", + "3928 0 1 0 0 \n", + "2887 0 0 1 0 \n", + "1374 0 1 0 0 \n", + "\n", + "[4074 rows x 16 columns]" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# doing undersampling\n", + "df_churn_yes=df[df['Exited']==1]\n", + "df_churn_no=df[df['Exited']==0]\n", + "df_churn_no=df_churn_no.sample(n=2037)\n", + "df_new=pd.concat([df_churn_yes,df_churn_no],axis=0)\n", + "df_new" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "54552652", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Exited\n", + "1 2037\n", + "0 2037\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_new['Exited'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "b99c725d", + "metadata": {}, + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
RowNumberCustomerIdSurnameCreditScoreGenderAgeTenureBalanceNumOfProductsHasCrCardIsActiveMemberEstimatedSalaryExitedGeography_FranceGeography_GermanyGeography_Spain
0115634602Hargrave0.53810.3243240.20.0000000110.5067351100
2315619304Onio0.30410.3243240.80.6363571100.5696541100
5615574012Chu0.59000.3513510.80.4533941100.7487971001
7815656148Obinna0.05210.1486490.40.4585401100.5967331010
161715737452Romeo0.60600.5405410.10.5285130100.0254331010
...................................................
7924792515613337Gallo0.96600.3918920.20.0000001110.9112680100
4131413215738634Yuan0.36600.3918920.90.3321960110.6884890100
3928392915609545Azubuike0.39600.1486490.50.3325770010.8851140100
2887288815604314Webb0.70610.1081080.10.3879310100.3185600010
1374137515774738Campa0.56400.3513510.30.4295160100.9283690100
\n", + "

4074 rows × 16 columns

\n", + "
" + ], + "text/plain": [ + " RowNumber CustomerId Surname CreditScore Gender Age Tenure \\\n", + "0 1 15634602 Hargrave 0.538 1 0.324324 0.2 \n", + "2 3 15619304 Onio 0.304 1 0.324324 0.8 \n", + "5 6 15574012 Chu 0.590 0 0.351351 0.8 \n", + "7 8 15656148 Obinna 0.052 1 0.148649 0.4 \n", + "16 17 15737452 Romeo 0.606 0 0.540541 0.1 \n", + "... ... ... ... ... ... ... ... \n", + "7924 7925 15613337 Gallo 0.966 0 0.391892 0.2 \n", + "4131 4132 15738634 Yuan 0.366 0 0.391892 0.9 \n", + "3928 3929 15609545 Azubuike 0.396 0 0.148649 0.5 \n", + "2887 2888 15604314 Webb 0.706 1 0.108108 0.1 \n", + "1374 1375 15774738 Campa 0.564 0 0.351351 0.3 \n", + "\n", + " Balance NumOfProducts HasCrCard IsActiveMember EstimatedSalary \\\n", + "0 0.000000 0 1 1 0.506735 \n", + "2 0.636357 1 1 0 0.569654 \n", + "5 0.453394 1 1 0 0.748797 \n", + "7 0.458540 1 1 0 0.596733 \n", + "16 0.528513 0 1 0 0.025433 \n", + "... ... ... ... ... ... \n", + "7924 0.000000 1 1 1 0.911268 \n", + "4131 0.332196 0 1 1 0.688489 \n", + "3928 0.332577 0 0 1 0.885114 \n", + "2887 0.387931 0 1 0 0.318560 \n", + "1374 0.429516 0 1 0 0.928369 \n", + "\n", + " Exited Geography_France Geography_Germany Geography_Spain \n", + "0 1 1 0 0 \n", + "2 1 1 0 0 \n", + "5 1 0 0 1 \n", + "7 1 0 1 0 \n", + "16 1 0 1 0 \n", + "... ... ... ... ... \n", + "7924 0 1 0 0 \n", + "4131 0 1 0 0 \n", + "3928 0 1 0 0 \n", + "2887 0 0 1 0 \n", + "1374 0 1 0 0 \n", + "\n", + "[4074 rows x 16 columns]" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_new" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "263a2972", + "metadata": {}, + "outputs": [], + "source": [ + "X=df_new.drop(columns=['RowNumber','CustomerId','Surname','Exited'])\n", + "Y=df_new['Exited']\n" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "e3154f9f", + "metadata": {}, + "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", + " \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", + " \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", + " \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", + " \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", + " \n", + " \n", + "
CreditScoreGenderAgeTenureBalanceNumOfProductsHasCrCardIsActiveMemberEstimatedSalaryGeography_FranceGeography_GermanyGeography_Spain
00.53810.3243240.20.0000000110.506735100
20.30410.3243240.80.6363571100.569654100
50.59000.3513510.80.4533941100.748797001
70.05210.1486490.40.4585401100.596733010
160.60600.5405410.10.5285130100.025433010
.......................................
79240.96600.3918920.20.0000001110.911268100
41310.36600.3918920.90.3321960110.688489100
39280.39600.1486490.50.3325770010.885114100
28870.70610.1081080.10.3879310100.318560010
13740.56400.3513510.30.4295160100.928369100
\n", + "

4074 rows × 12 columns

\n", + "
" + ], + "text/plain": [ + " CreditScore Gender Age Tenure Balance NumOfProducts \\\n", + "0 0.538 1 0.324324 0.2 0.000000 0 \n", + "2 0.304 1 0.324324 0.8 0.636357 1 \n", + "5 0.590 0 0.351351 0.8 0.453394 1 \n", + "7 0.052 1 0.148649 0.4 0.458540 1 \n", + "16 0.606 0 0.540541 0.1 0.528513 0 \n", + "... ... ... ... ... ... ... \n", + "7924 0.966 0 0.391892 0.2 0.000000 1 \n", + "4131 0.366 0 0.391892 0.9 0.332196 0 \n", + "3928 0.396 0 0.148649 0.5 0.332577 0 \n", + "2887 0.706 1 0.108108 0.1 0.387931 0 \n", + "1374 0.564 0 0.351351 0.3 0.429516 0 \n", + "\n", + " HasCrCard IsActiveMember EstimatedSalary Geography_France \\\n", + "0 1 1 0.506735 1 \n", + "2 1 0 0.569654 1 \n", + "5 1 0 0.748797 0 \n", + "7 1 0 0.596733 0 \n", + "16 1 0 0.025433 0 \n", + "... ... ... ... ... \n", + "7924 1 1 0.911268 1 \n", + "4131 1 1 0.688489 1 \n", + "3928 0 1 0.885114 1 \n", + "2887 1 0 0.318560 0 \n", + "1374 1 0 0.928369 1 \n", + "\n", + " Geography_Germany Geography_Spain \n", + "0 0 0 \n", + "2 0 0 \n", + "5 0 1 \n", + "7 1 0 \n", + "16 1 0 \n", + "... ... ... \n", + "7924 0 0 \n", + "4131 0 0 \n", + "3928 0 0 \n", + "2887 1 0 \n", + "1374 0 0 \n", + "\n", + "[4074 rows x 12 columns]" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "94e1b448", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 1\n", + "2 1\n", + "5 1\n", + "7 1\n", + "16 1\n", + " ..\n", + "7924 0\n", + "4131 0\n", + "3928 0\n", + "2887 0\n", + "1374 0\n", + "Name: Exited, Length: 4074, dtype: int64" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Y" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "662bfe16", + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "X_train,X_test,Y_train,Y_test=train_test_split(X,Y,test_size=0.2)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "b33573e1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(3259, 12) (815, 12)\n" + ] + } + ], + "source": [ + "print(X_train.shape,X_test.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "509a8f4a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.5816 - loss: 0.6746\n", + "Epoch 2/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.6460 - loss: 0.6389\n", + "Epoch 3/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.6494 - loss: 0.6270\n", + "Epoch 4/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.6631 - loss: 0.6136\n", + "Epoch 5/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.6731 - loss: 0.6059\n", + "Epoch 6/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 976us/step - accuracy: 0.6835 - loss: 0.5909\n", + "Epoch 7/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7024 - loss: 0.5845\n", + "Epoch 8/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.6803 - loss: 0.5999\n", + "Epoch 9/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.6747 - loss: 0.5960\n", + "Epoch 10/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 937us/step - accuracy: 0.6889 - loss: 0.5892\n", + "Epoch 11/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 989us/step - accuracy: 0.6938 - loss: 0.5814\n", + "Epoch 12/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 923us/step - accuracy: 0.7175 - loss: 0.5579\n", + "Epoch 13/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7110 - loss: 0.5653\n", + "Epoch 14/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.6946 - loss: 0.5816\n", + "Epoch 15/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7096 - loss: 0.5661\n", + "Epoch 16/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7135 - loss: 0.5589\n", + "Epoch 17/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7218 - loss: 0.5539\n", + "Epoch 18/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7057 - loss: 0.5648\n", + "Epoch 19/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7079 - loss: 0.5622\n", + "Epoch 20/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7056 - loss: 0.5734\n", + "Epoch 21/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7176 - loss: 0.5626\n", + "Epoch 22/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7121 - loss: 0.5594\n", + "Epoch 23/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7241 - loss: 0.5481\n", + "Epoch 24/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7341 - loss: 0.5459\n", + "Epoch 25/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 988us/step - accuracy: 0.7122 - loss: 0.5635\n", + "Epoch 26/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7191 - loss: 0.5466\n", + "Epoch 27/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7255 - loss: 0.5451\n", + "Epoch 28/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7144 - loss: 0.5520\n", + "Epoch 29/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7233 - loss: 0.5473\n", + "Epoch 30/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7223 - loss: 0.5466\n", + "Epoch 31/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7163 - loss: 0.5457\n", + "Epoch 32/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7115 - loss: 0.5514\n", + "Epoch 33/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7034 - loss: 0.5622\n", + "Epoch 34/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7091 - loss: 0.5620\n", + "Epoch 35/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7088 - loss: 0.5566\n", + "Epoch 36/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7192 - loss: 0.5565\n", + "Epoch 37/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7084 - loss: 0.5515\n", + "Epoch 38/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7185 - loss: 0.5470\n", + "Epoch 39/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7242 - loss: 0.5457\n", + "Epoch 40/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7145 - loss: 0.5495\n", + "Epoch 41/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7201 - loss: 0.5603\n", + "Epoch 42/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7181 - loss: 0.5458\n", + "Epoch 43/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7296 - loss: 0.5366\n", + "Epoch 44/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7079 - loss: 0.5603\n", + "Epoch 45/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7241 - loss: 0.5589\n", + "Epoch 46/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7282 - loss: 0.5474\n", + "Epoch 47/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7233 - loss: 0.5511\n", + "Epoch 48/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7239 - loss: 0.5465\n", + "Epoch 49/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7249 - loss: 0.5414\n", + "Epoch 50/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7270 - loss: 0.5497\n", + "Epoch 51/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7326 - loss: 0.5444\n", + "Epoch 52/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7255 - loss: 0.5472\n", + "Epoch 53/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7299 - loss: 0.5382\n", + "Epoch 54/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7189 - loss: 0.5462\n", + "Epoch 55/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7293 - loss: 0.5386\n", + "Epoch 56/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7317 - loss: 0.5372\n", + "Epoch 57/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7277 - loss: 0.5431\n", + "Epoch 58/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7187 - loss: 0.5560\n", + "Epoch 59/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7274 - loss: 0.5504\n", + "Epoch 60/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7233 - loss: 0.5402\n", + "Epoch 61/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 989us/step - accuracy: 0.7209 - loss: 0.5435\n", + "Epoch 62/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7278 - loss: 0.5412\n", + "Epoch 63/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7272 - loss: 0.5451\n", + "Epoch 64/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7241 - loss: 0.5462\n", + "Epoch 65/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7184 - loss: 0.5478\n", + "Epoch 66/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7391 - loss: 0.5403\n", + "Epoch 67/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7307 - loss: 0.5336\n", + "Epoch 68/100\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7329 - loss: 0.5396\n", + "Epoch 69/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7165 - loss: 0.5532\n", + "Epoch 70/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7178 - loss: 0.5536\n", + "Epoch 71/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7119 - loss: 0.5469\n", + "Epoch 72/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7389 - loss: 0.5380\n", + "Epoch 73/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7201 - loss: 0.5485\n", + "Epoch 74/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7230 - loss: 0.5474\n", + "Epoch 75/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7312 - loss: 0.5322\n", + "Epoch 76/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7365 - loss: 0.5405\n", + "Epoch 77/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7287 - loss: 0.5437\n", + "Epoch 78/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7346 - loss: 0.5366\n", + "Epoch 79/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7201 - loss: 0.5403\n", + "Epoch 80/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7279 - loss: 0.5375\n", + "Epoch 81/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7360 - loss: 0.5349\n", + "Epoch 82/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 980us/step - accuracy: 0.7132 - loss: 0.5401\n", + "Epoch 83/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7107 - loss: 0.5596\n", + "Epoch 84/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7387 - loss: 0.5294\n", + "Epoch 85/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7240 - loss: 0.5436\n", + "Epoch 86/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7379 - loss: 0.5309\n", + "Epoch 87/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7339 - loss: 0.5396\n", + "Epoch 88/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 926us/step - accuracy: 0.7224 - loss: 0.5324\n", + "Epoch 89/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7212 - loss: 0.5445\n", + "Epoch 90/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7298 - loss: 0.5426\n", + "Epoch 91/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7304 - loss: 0.5294\n", + "Epoch 92/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7306 - loss: 0.5325\n", + "Epoch 93/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7312 - loss: 0.5343\n", + "Epoch 94/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7259 - loss: 0.5371\n", + "Epoch 95/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7393 - loss: 0.5265\n", + "Epoch 96/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7318 - loss: 0.5444\n", + "Epoch 97/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7257 - loss: 0.5303\n", + "Epoch 98/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7170 - loss: 0.5440\n", + "Epoch 99/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7206 - loss: 0.5397\n", + "Epoch 100/100\n", + "\u001b[1m102/102\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7235 - loss: 0.5390\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model=keras.Sequential([\n", + " keras.layers.Dense(10,input_shape=(12,),activation='relu'),\n", + " keras.layers.Dense(1,activation='sigmoid'),\n", + "])\n", + "\n", + "model.compile(\n", + " optimizer='adam',\n", + " loss='binary_crossentropy',\n", + " metrics=['accuracy']\n", + ")\n", + "model.fit(X_train,Y_train,epochs=100)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "7e5ab5de", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7210 - loss: 0.5595 \n" + ] + }, + { + "data": { + "text/plain": [ + "[0.5702299475669861, 0.7116564512252808]" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model.evaluate(X_test,Y_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "1313ba8c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "868 1\n", + "3467 0\n", + "7701 1\n", + "8018 1\n", + "6051 0\n", + "Name: Exited, dtype: int64" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Y_test[0:5]" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "1f5653af", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 45ms/step\n" + ] + }, + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.argmax(model.predict(X_test[0:1]))" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "2017d99c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step \n" + ] + }, + { + "data": { + "text/plain": [ + "[1, 0, 0, 0, 1]" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "yp=model.predict(X_test)\n", + "y_pred=[]\n", + "for i in yp:\n", + " if (i>0.5):\n", + " y_pred.append(1)\n", + " else:\n", + " y_pred.append(0)\n", + "y_pred[:5]" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "65c95f6c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.76 0.68 0.72 441\n", + " 1 0.67 0.75 0.70 374\n", + "\n", + " accuracy 0.71 815\n", + " macro avg 0.71 0.71 0.71 815\n", + "weighted avg 0.72 0.71 0.71 815\n", + "\n" + ] + } + ], + "source": [ + "from sklearn.metrics import classification_report\n", + "print(classification_report(Y_test,y_pred))" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "0bc3e935", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[301, 140],\n", + " [ 95, 279]], dtype=int64)" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.metrics import confusion_matrix\n", + "cm=confusion_matrix(Y_test,y_pred)\n", + "cm" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "0fc61917", + "metadata": {}, + "outputs": [], + "source": [ + "def ANN(X_train,Y_train,X_test,Y_test,loss,weights):\n", + " \n", + " model=keras.Sequential([\n", + " keras.layers.Dense(12,input_shape=(12,),activation='relu'),\n", + " keras.layers.Dense(10,activation='relu'),\n", + " keras.layers.Dense(1,activation='sigmoid'),\n", + " ])\n", + "\n", + " model.compile(\n", + " optimizer='adam',\n", + " loss=loss,\n", + " metrics=['accuracy']\n", + " )\n", + " \n", + " if weights==-1:\n", + " model.fit(X_train,Y_train,epochs=100)\n", + " else:\n", + " model.fit(X_train,Y_train,epochs=100,class_weight=weights)\n", + " \n", + " y_preds=model.predict(X_test)\n", + " y_preds=np.round(y_preds)\n", + " print(\"Classification Report : \\n\",classification_report(Y_test,y_preds))\n", + " \n", + " return y_preds" + ] + }, + { + "cell_type": "markdown", + "id": "abe2f946", + "metadata": {}, + "source": [ + "## Improving the F1 Score using Sampling Techniques" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "id": "22e25f34", + "metadata": {}, + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
RowNumberCustomerIdSurnameCreditScoreGenderAgeTenureBalanceNumOfProductsHasCrCardIsActiveMemberEstimatedSalaryExitedGeography_FranceGeography_GermanyGeography_Spain
0115634602Hargrave0.53810.3243240.20.0000000110.5067351100
1215647311Hill0.51610.3108110.10.3340310010.5627090001
2315619304Onio0.30410.3243240.80.6363571100.5696541100
3415701354Boni0.69810.2837840.10.0000001000.4691200100
4515737888Mitchell1.00010.3378380.20.5002460110.3954000001
...................................................
9995999615606229Obijiaku0.84200.2837840.50.0000001100.4813410100
9996999715569892Johnstone0.33200.2297301.00.2286570110.5084900100
9997999815584532Liu0.71810.2432430.70.0000000010.2103901100
9998999915682355Sabbatini0.84400.3243240.30.2992261100.4644291010
99991000015628319Walker0.88410.1351350.40.5187080100.1909140100
\n", + "

10000 rows × 16 columns

\n", + "
" + ], + "text/plain": [ + " RowNumber CustomerId Surname CreditScore Gender Age Tenure \\\n", + "0 1 15634602 Hargrave 0.538 1 0.324324 0.2 \n", + "1 2 15647311 Hill 0.516 1 0.310811 0.1 \n", + "2 3 15619304 Onio 0.304 1 0.324324 0.8 \n", + "3 4 15701354 Boni 0.698 1 0.283784 0.1 \n", + "4 5 15737888 Mitchell 1.000 1 0.337838 0.2 \n", + "... ... ... ... ... ... ... ... \n", + "9995 9996 15606229 Obijiaku 0.842 0 0.283784 0.5 \n", + "9996 9997 15569892 Johnstone 0.332 0 0.229730 1.0 \n", + "9997 9998 15584532 Liu 0.718 1 0.243243 0.7 \n", + "9998 9999 15682355 Sabbatini 0.844 0 0.324324 0.3 \n", + "9999 10000 15628319 Walker 0.884 1 0.135135 0.4 \n", + "\n", + " Balance NumOfProducts HasCrCard IsActiveMember EstimatedSalary \\\n", + "0 0.000000 0 1 1 0.506735 \n", + "1 0.334031 0 0 1 0.562709 \n", + "2 0.636357 1 1 0 0.569654 \n", + "3 0.000000 1 0 0 0.469120 \n", + "4 0.500246 0 1 1 0.395400 \n", + "... ... ... ... ... ... \n", + "9995 0.000000 1 1 0 0.481341 \n", + "9996 0.228657 0 1 1 0.508490 \n", + "9997 0.000000 0 0 1 0.210390 \n", + "9998 0.299226 1 1 0 0.464429 \n", + "9999 0.518708 0 1 0 0.190914 \n", + "\n", + " Exited Geography_France Geography_Germany Geography_Spain \n", + "0 1 1 0 0 \n", + "1 0 0 0 1 \n", + "2 1 1 0 0 \n", + "3 0 1 0 0 \n", + "4 0 0 0 1 \n", + "... ... ... ... ... \n", + "9995 0 1 0 0 \n", + "9996 0 1 0 0 \n", + "9997 1 1 0 0 \n", + "9998 1 0 1 0 \n", + "9999 0 1 0 0 \n", + "\n", + "[10000 rows x 16 columns]" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "ab3c285c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Exited\n", + "0 7963\n", + "1 2037\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['Exited'].value_counts()" + ] + }, + { + "cell_type": "markdown", + "id": "bd44dcf7", + "metadata": {}, + "source": [ + "### 1st using Under sampling" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "id": "1897185c", + "metadata": {}, + "outputs": [], + "source": [ + "df_exited_0=df[df['Exited']==0]\n", + "df_exited_1=df[df['Exited']==1]" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "0c76a83e", + "metadata": {}, + "outputs": [], + "source": [ + "df_exited_0_under=df_exited_0.sample(n=2037)" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "47215e21", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Exited\n", + "0 2037\n", + "1 2037\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_new_under=pd.concat([df_exited_0_under,df_exited_1],axis=0)\n", + "df_new_under['Exited'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "ffba98b0", + "metadata": {}, + "outputs": [], + "source": [ + "X=df_new_under.drop(columns=['RowNumber','CustomerId','Surname','Exited'])\n", + "Y=df_new_under['Exited']" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "2c5677a0", + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "X_train,X_test,Y_train,Y_test=train_test_split(X,Y,test_size=0.2)" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "id": "a6f10879", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.6105 - loss: 0.6609\n", + "Epoch 2/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.6906 - loss: 0.5978\n", + "Epoch 3/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7071 - loss: 0.5670\n", + "Epoch 4/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7166 - loss: 0.5587\n", + "Epoch 5/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7151 - loss: 0.5602\n", + "Epoch 6/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7307 - loss: 0.5425\n", + "Epoch 7/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7209 - loss: 0.5484\n", + "Epoch 8/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7235 - loss: 0.5453\n", + "Epoch 9/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 990us/step - accuracy: 0.7230 - loss: 0.5417\n", + "Epoch 10/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7245 - loss: 0.5391\n", + "Epoch 11/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7215 - loss: 0.5383\n", + "Epoch 12/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7306 - loss: 0.5291\n", + "Epoch 13/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7315 - loss: 0.5333\n", + "Epoch 14/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7341 - loss: 0.5263\n", + "Epoch 15/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7371 - loss: 0.5282\n", + "Epoch 16/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7384 - loss: 0.5265\n", + "Epoch 17/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 959us/step - accuracy: 0.7430 - loss: 0.5123\n", + "Epoch 18/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7423 - loss: 0.5210\n", + "Epoch 19/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7393 - loss: 0.5249\n", + "Epoch 20/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 962us/step - accuracy: 0.7523 - loss: 0.5124\n", + "Epoch 21/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 986us/step - accuracy: 0.7443 - loss: 0.5174\n", + "Epoch 22/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 993us/step - accuracy: 0.7418 - loss: 0.5219\n", + "Epoch 23/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7433 - loss: 0.5145\n", + "Epoch 24/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7545 - loss: 0.5075\n", + "Epoch 25/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7421 - loss: 0.5180\n", + "Epoch 26/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7439 - loss: 0.5127\n", + "Epoch 27/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7508 - loss: 0.5097\n", + "Epoch 28/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7490 - loss: 0.5090\n", + "Epoch 29/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7531 - loss: 0.5019\n", + "Epoch 30/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7536 - loss: 0.5066\n", + "Epoch 31/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7521 - loss: 0.5020\n", + "Epoch 32/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7534 - loss: 0.5059\n", + "Epoch 33/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7508 - loss: 0.5034\n", + "Epoch 34/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7512 - loss: 0.5012\n", + "Epoch 35/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7479 - loss: 0.5124\n", + "Epoch 36/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7521 - loss: 0.4978\n", + "Epoch 37/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7543 - loss: 0.5042\n", + "Epoch 38/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 971us/step - accuracy: 0.7507 - loss: 0.5016\n", + "Epoch 39/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7526 - loss: 0.5024\n", + "Epoch 40/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7523 - loss: 0.5022\n", + "Epoch 41/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7565 - loss: 0.4971\n", + "Epoch 42/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7543 - loss: 0.5066\n", + "Epoch 43/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7491 - loss: 0.5020\n", + "Epoch 44/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7547 - loss: 0.4960\n", + "Epoch 45/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7523 - loss: 0.5024\n", + "Epoch 46/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7577 - loss: 0.4949\n", + "Epoch 47/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7519 - loss: 0.5037\n", + "Epoch 48/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7533 - loss: 0.4994\n", + "Epoch 49/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7487 - loss: 0.5049\n", + "Epoch 50/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7539 - loss: 0.4974\n", + "Epoch 51/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7522 - loss: 0.5002\n", + "Epoch 52/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7541 - loss: 0.4983\n", + "Epoch 53/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7588 - loss: 0.4932\n", + "Epoch 54/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7549 - loss: 0.4944\n", + "Epoch 55/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7563 - loss: 0.4963\n", + "Epoch 56/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7464 - loss: 0.5006\n", + "Epoch 57/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7578 - loss: 0.4940\n", + "Epoch 58/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7609 - loss: 0.4910\n", + "Epoch 59/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7497 - loss: 0.4981\n", + "Epoch 60/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7505 - loss: 0.5026\n", + "Epoch 61/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7604 - loss: 0.4874\n", + "Epoch 62/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7558 - loss: 0.4971\n", + "Epoch 63/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 989us/step - accuracy: 0.7548 - loss: 0.4943\n", + "Epoch 64/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7586 - loss: 0.4922\n", + "Epoch 65/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7616 - loss: 0.4854\n", + "Epoch 66/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7621 - loss: 0.4872\n", + "Epoch 67/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7557 - loss: 0.4960\n", + "Epoch 68/100\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7562 - loss: 0.4941\n", + "Epoch 69/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7561 - loss: 0.4937\n", + "Epoch 70/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7498 - loss: 0.5007\n", + "Epoch 71/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7638 - loss: 0.4855\n", + "Epoch 72/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7525 - loss: 0.4912\n", + "Epoch 73/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7585 - loss: 0.4922\n", + "Epoch 74/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7542 - loss: 0.4958\n", + "Epoch 75/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7572 - loss: 0.4926\n", + "Epoch 76/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7538 - loss: 0.4971\n", + "Epoch 77/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7603 - loss: 0.4869\n", + "Epoch 78/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7508 - loss: 0.4976\n", + "Epoch 79/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7567 - loss: 0.4892\n", + "Epoch 80/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 967us/step - accuracy: 0.7598 - loss: 0.4865\n", + "Epoch 81/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7569 - loss: 0.4939\n", + "Epoch 82/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7622 - loss: 0.4878\n", + "Epoch 83/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7603 - loss: 0.4916\n", + "Epoch 84/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7585 - loss: 0.4861\n", + "Epoch 85/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7603 - loss: 0.4840\n", + "Epoch 86/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7624 - loss: 0.4849\n", + "Epoch 87/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7600 - loss: 0.4860\n", + "Epoch 88/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7618 - loss: 0.4858\n", + "Epoch 89/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7591 - loss: 0.4842\n", + "Epoch 90/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7625 - loss: 0.4866\n", + "Epoch 91/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7579 - loss: 0.4904\n", + "Epoch 92/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7581 - loss: 0.4908\n", + "Epoch 93/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7651 - loss: 0.4862\n", + "Epoch 94/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7646 - loss: 0.4787\n", + "Epoch 95/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7551 - loss: 0.4924\n", + "Epoch 96/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7613 - loss: 0.4864\n", + "Epoch 97/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7583 - loss: 0.4915\n", + "Epoch 98/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7573 - loss: 0.4908\n", + "Epoch 99/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7631 - loss: 0.4871\n", + "Epoch 100/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 997us/step - accuracy: 0.7612 - loss: 0.4906\n", + "\u001b[1m100/100\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step\n", + " precision recall f1-score support\n", + "\n", + " 0 0.76 0.74 0.75 1588\n", + " 1 0.75 0.77 0.76 1598\n", + "\n", + " accuracy 0.75 3186\n", + " macro avg 0.75 0.75 0.75 3186\n", + "weighted avg 0.75 0.75 0.75 3186\n", + "\n", + "Classification Report : \n", + " None\n" + ] + } + ], + "source": [ + "y_pred=ANN(X_train,Y_train,X_test,Y_test,'binary_crossentropy',-1)" + ] + }, + { + "cell_type": "markdown", + "id": "ec8e7387", + "metadata": {}, + "source": [ + "### 2nd using Over Sampling" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "id": "33cad1d3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Exited\n", + "0 7963\n", + "1 7963\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_exited_1_over=df_exited_1.sample(7963,replace=True)\n", + "df_new_over=pd.concat([df_exited_0,df_exited_1_over],axis=0)\n", + "df_new_over['Exited'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "id": "96c6531b", + "metadata": {}, + "outputs": [], + "source": [ + "X=df_new_over.drop(columns=['RowNumber','CustomerId','Surname','Exited'])\n", + "Y=df_new_over['Exited']" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "id": "133fcf76", + "metadata": {}, + "outputs": [], + "source": [ + "X_train,X_test,Y_train,Y_test=train_test_split(X,Y,test_size=0.2)" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "id": "70457fc4", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.5868 - loss: 0.6665\n", + "Epoch 2/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 996us/step - accuracy: 0.6839 - loss: 0.5896\n", + "Epoch 3/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7129 - loss: 0.5507\n", + "Epoch 4/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7210 - loss: 0.5469\n", + "Epoch 5/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7357 - loss: 0.5340\n", + "Epoch 6/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7321 - loss: 0.5340\n", + "Epoch 7/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7391 - loss: 0.5285\n", + "Epoch 8/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 970us/step - accuracy: 0.7347 - loss: 0.5250\n", + "Epoch 9/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7366 - loss: 0.5278\n", + "Epoch 10/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7389 - loss: 0.5239\n", + "Epoch 11/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7415 - loss: 0.5173\n", + "Epoch 12/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 995us/step - accuracy: 0.7397 - loss: 0.5161\n", + "Epoch 13/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 988us/step - accuracy: 0.7450 - loss: 0.5086\n", + "Epoch 14/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7406 - loss: 0.5171\n", + "Epoch 15/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7449 - loss: 0.5158\n", + "Epoch 16/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7390 - loss: 0.5161\n", + "Epoch 17/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7464 - loss: 0.5104\n", + "Epoch 18/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7397 - loss: 0.5166\n", + "Epoch 19/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7435 - loss: 0.5091\n", + "Epoch 20/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7487 - loss: 0.5036\n", + "Epoch 21/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 993us/step - accuracy: 0.7451 - loss: 0.5093\n", + "Epoch 22/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7436 - loss: 0.5097\n", + "Epoch 23/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7492 - loss: 0.5083\n", + "Epoch 24/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 975us/step - accuracy: 0.7525 - loss: 0.5020\n", + "Epoch 25/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7454 - loss: 0.5097\n", + "Epoch 26/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7607 - loss: 0.4936\n", + "Epoch 27/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7600 - loss: 0.4967\n", + "Epoch 28/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7551 - loss: 0.4956\n", + "Epoch 29/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7548 - loss: 0.4991\n", + "Epoch 30/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7581 - loss: 0.4969\n", + "Epoch 31/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7594 - loss: 0.4947\n", + "Epoch 32/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7554 - loss: 0.4950\n", + "Epoch 33/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7642 - loss: 0.4859\n", + "Epoch 34/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7597 - loss: 0.4904\n", + "Epoch 35/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7617 - loss: 0.4908\n", + "Epoch 36/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7532 - loss: 0.4950\n", + "Epoch 37/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7585 - loss: 0.4984\n", + "Epoch 38/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7610 - loss: 0.4916\n", + "Epoch 39/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7615 - loss: 0.4930\n", + "Epoch 40/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7656 - loss: 0.4892\n", + "Epoch 41/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7655 - loss: 0.4857\n", + "Epoch 42/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7563 - loss: 0.4924\n", + "Epoch 43/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7578 - loss: 0.4941\n", + "Epoch 44/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7566 - loss: 0.4927\n", + "Epoch 45/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7674 - loss: 0.4845\n", + "Epoch 46/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7617 - loss: 0.4910\n", + "Epoch 47/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7634 - loss: 0.4850\n", + "Epoch 48/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7629 - loss: 0.4876\n", + "Epoch 49/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7610 - loss: 0.4871\n", + "Epoch 50/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7673 - loss: 0.4815\n", + "Epoch 51/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7583 - loss: 0.4923\n", + "Epoch 52/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7633 - loss: 0.4850\n", + "Epoch 53/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7581 - loss: 0.4914\n", + "Epoch 54/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7640 - loss: 0.4871\n", + "Epoch 55/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7665 - loss: 0.4853\n", + "Epoch 56/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7641 - loss: 0.4869\n", + "Epoch 57/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7612 - loss: 0.4890\n", + "Epoch 58/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7580 - loss: 0.4925\n", + "Epoch 59/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7581 - loss: 0.4900\n", + "Epoch 60/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7617 - loss: 0.4895\n", + "Epoch 61/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 978us/step - accuracy: 0.7692 - loss: 0.4825\n", + "Epoch 62/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7637 - loss: 0.4840\n", + "Epoch 63/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7627 - loss: 0.4871\n", + "Epoch 64/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7589 - loss: 0.4848\n", + "Epoch 65/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 971us/step - accuracy: 0.7570 - loss: 0.4875\n", + "Epoch 66/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7661 - loss: 0.4823\n", + "Epoch 67/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7588 - loss: 0.4897\n", + "Epoch 68/100\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7657 - loss: 0.4824\n", + "Epoch 69/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7662 - loss: 0.4889\n", + "Epoch 70/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 954us/step - accuracy: 0.7603 - loss: 0.4900\n", + "Epoch 71/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 954us/step - accuracy: 0.7702 - loss: 0.4783\n", + "Epoch 72/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 992us/step - accuracy: 0.7616 - loss: 0.4927\n", + "Epoch 73/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7680 - loss: 0.4793\n", + "Epoch 74/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7581 - loss: 0.4863\n", + "Epoch 75/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7648 - loss: 0.4880\n", + "Epoch 76/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7676 - loss: 0.4837\n", + "Epoch 77/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7738 - loss: 0.4784\n", + "Epoch 78/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 972us/step - accuracy: 0.7653 - loss: 0.4787\n", + "Epoch 79/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7638 - loss: 0.4864\n", + "Epoch 80/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7707 - loss: 0.4741\n", + "Epoch 81/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7688 - loss: 0.4812\n", + "Epoch 82/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7690 - loss: 0.4809\n", + "Epoch 83/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7686 - loss: 0.4800\n", + "Epoch 84/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7590 - loss: 0.4859\n", + "Epoch 85/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7612 - loss: 0.4828\n", + "Epoch 86/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7699 - loss: 0.4770\n", + "Epoch 87/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 981us/step - accuracy: 0.7672 - loss: 0.4819\n", + "Epoch 88/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7612 - loss: 0.4869\n", + "Epoch 89/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7609 - loss: 0.4817\n", + "Epoch 90/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7622 - loss: 0.4860\n", + "Epoch 91/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7604 - loss: 0.4844\n", + "Epoch 92/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 950us/step - accuracy: 0.7667 - loss: 0.4809\n", + "Epoch 93/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7663 - loss: 0.4758\n", + "Epoch 94/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7700 - loss: 0.4765\n", + "Epoch 95/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 975us/step - accuracy: 0.7710 - loss: 0.4773\n", + "Epoch 96/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7649 - loss: 0.4839\n", + "Epoch 97/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7696 - loss: 0.4756\n", + "Epoch 98/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7667 - loss: 0.4790\n", + "Epoch 99/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7593 - loss: 0.4861\n", + "Epoch 100/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 949us/step - accuracy: 0.7653 - loss: 0.4800\n", + "\u001b[1m100/100\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step\n", + " precision recall f1-score support\n", + "\n", + " 0 0.74 0.76 0.75 1551\n", + " 1 0.77 0.74 0.76 1635\n", + "\n", + " accuracy 0.75 3186\n", + " macro avg 0.75 0.75 0.75 3186\n", + "weighted avg 0.75 0.75 0.75 3186\n", + "\n", + "Classification Report : \n", + " None\n" + ] + } + ], + "source": [ + "y_pred=ANN(X_train,Y_train,X_test,Y_test,'binary_crossentropy',-1)" + ] + }, + { + "cell_type": "markdown", + "id": "1b94c81f", + "metadata": {}, + "source": [ + "### 3rd using SMOTE" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "id": "3d18564f", + "metadata": {}, + "outputs": [], + "source": [ + "from imblearn.over_sampling import SMOTE" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "id": "6eae80cf", + "metadata": {}, + "outputs": [], + "source": [ + "smote=SMOTE(sampling_strategy='minority')" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "id": "5d9c467f", + "metadata": {}, + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
RowNumberCustomerIdSurnameCreditScoreGenderAgeTenureBalanceNumOfProductsHasCrCardIsActiveMemberEstimatedSalaryExitedGeography_FranceGeography_GermanyGeography_Spain
0115634602Hargrave0.53810.3243240.20.0000000110.5067351100
1215647311Hill0.51610.3108110.10.3340310010.5627090001
2315619304Onio0.30410.3243240.80.6363571100.5696541100
3415701354Boni0.69810.2837840.10.0000001000.4691200100
4515737888Mitchell1.00010.3378380.20.5002460110.3954000001
...................................................
9995999615606229Obijiaku0.84200.2837840.50.0000001100.4813410100
9996999715569892Johnstone0.33200.2297301.00.2286570110.5084900100
9997999815584532Liu0.71810.2432430.70.0000000010.2103901100
9998999915682355Sabbatini0.84400.3243240.30.2992261100.4644291010
99991000015628319Walker0.88410.1351350.40.5187080100.1909140100
\n", + "

10000 rows × 16 columns

\n", + "
" + ], + "text/plain": [ + " RowNumber CustomerId Surname CreditScore Gender Age Tenure \\\n", + "0 1 15634602 Hargrave 0.538 1 0.324324 0.2 \n", + "1 2 15647311 Hill 0.516 1 0.310811 0.1 \n", + "2 3 15619304 Onio 0.304 1 0.324324 0.8 \n", + "3 4 15701354 Boni 0.698 1 0.283784 0.1 \n", + "4 5 15737888 Mitchell 1.000 1 0.337838 0.2 \n", + "... ... ... ... ... ... ... ... \n", + "9995 9996 15606229 Obijiaku 0.842 0 0.283784 0.5 \n", + "9996 9997 15569892 Johnstone 0.332 0 0.229730 1.0 \n", + "9997 9998 15584532 Liu 0.718 1 0.243243 0.7 \n", + "9998 9999 15682355 Sabbatini 0.844 0 0.324324 0.3 \n", + "9999 10000 15628319 Walker 0.884 1 0.135135 0.4 \n", + "\n", + " Balance NumOfProducts HasCrCard IsActiveMember EstimatedSalary \\\n", + "0 0.000000 0 1 1 0.506735 \n", + "1 0.334031 0 0 1 0.562709 \n", + "2 0.636357 1 1 0 0.569654 \n", + "3 0.000000 1 0 0 0.469120 \n", + "4 0.500246 0 1 1 0.395400 \n", + "... ... ... ... ... ... \n", + "9995 0.000000 1 1 0 0.481341 \n", + "9996 0.228657 0 1 1 0.508490 \n", + "9997 0.000000 0 0 1 0.210390 \n", + "9998 0.299226 1 1 0 0.464429 \n", + "9999 0.518708 0 1 0 0.190914 \n", + "\n", + " Exited Geography_France Geography_Germany Geography_Spain \n", + "0 1 1 0 0 \n", + "1 0 0 0 1 \n", + "2 1 1 0 0 \n", + "3 0 1 0 0 \n", + "4 0 0 0 1 \n", + "... ... ... ... ... \n", + "9995 0 1 0 0 \n", + "9996 0 1 0 0 \n", + "9997 1 1 0 0 \n", + "9998 1 0 1 0 \n", + "9999 0 1 0 0 \n", + "\n", + "[10000 rows x 16 columns]" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "id": "c183b5b0", + "metadata": {}, + "outputs": [], + "source": [ + "X=df.drop(columns=['RowNumber','CustomerId','Surname','Exited'])\n", + "Y=df['Exited']" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "id": "ec6bd5d8", + "metadata": {}, + "outputs": [], + "source": [ + "X_sm,Y_sm=smote.fit_resample(X,Y)" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "id": "0935af14", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Exited\n", + "1 7963\n", + "0 7963\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 68, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Y_sm.value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "id": "9b499a47", + "metadata": {}, + "outputs": [], + "source": [ + "X_train,X_test,Y_train,Y_test=train_test_split(X_sm,Y_sm,test_size=0.2,stratify=Y_sm)" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "id": "774dabfc", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.5786 - loss: 0.6752\n", + "Epoch 2/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.6902 - loss: 0.5963\n", + "Epoch 3/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7004 - loss: 0.5731\n", + "Epoch 4/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7202 - loss: 0.5557\n", + "Epoch 5/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 970us/step - accuracy: 0.7274 - loss: 0.5405\n", + "Epoch 6/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7241 - loss: 0.5459\n", + "Epoch 7/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7347 - loss: 0.5384\n", + "Epoch 8/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7355 - loss: 0.5310\n", + "Epoch 9/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 996us/step - accuracy: 0.7382 - loss: 0.5222\n", + "Epoch 10/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7415 - loss: 0.5298\n", + "Epoch 11/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 974us/step - accuracy: 0.7310 - loss: 0.5352\n", + "Epoch 12/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 982us/step - accuracy: 0.7415 - loss: 0.5180\n", + "Epoch 13/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7445 - loss: 0.5163\n", + "Epoch 14/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7391 - loss: 0.5188\n", + "Epoch 15/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7399 - loss: 0.5222\n", + "Epoch 16/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 993us/step - accuracy: 0.7397 - loss: 0.5211\n", + "Epoch 17/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7409 - loss: 0.5185\n", + "Epoch 18/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7432 - loss: 0.5149\n", + "Epoch 19/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7526 - loss: 0.5092\n", + "Epoch 20/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7412 - loss: 0.5203\n", + "Epoch 21/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7482 - loss: 0.5100\n", + "Epoch 22/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7448 - loss: 0.5132\n", + "Epoch 23/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7539 - loss: 0.5019\n", + "Epoch 24/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7437 - loss: 0.5078\n", + "Epoch 25/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7418 - loss: 0.5176\n", + "Epoch 26/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7502 - loss: 0.5027\n", + "Epoch 27/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7545 - loss: 0.4977\n", + "Epoch 28/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 982us/step - accuracy: 0.7458 - loss: 0.5097\n", + "Epoch 29/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7518 - loss: 0.5082\n", + "Epoch 30/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7508 - loss: 0.5004\n", + "Epoch 31/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7516 - loss: 0.5029\n", + "Epoch 32/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7526 - loss: 0.5013\n", + "Epoch 33/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7525 - loss: 0.5068\n", + "Epoch 34/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7594 - loss: 0.4911\n", + "Epoch 35/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7578 - loss: 0.4951\n", + "Epoch 36/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7590 - loss: 0.4925\n", + "Epoch 37/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7552 - loss: 0.5036\n", + "Epoch 38/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7563 - loss: 0.4938\n", + "Epoch 39/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7660 - loss: 0.4871\n", + "Epoch 40/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7561 - loss: 0.4980\n", + "Epoch 41/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7583 - loss: 0.4915\n", + "Epoch 42/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7589 - loss: 0.4940\n", + "Epoch 43/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7644 - loss: 0.4879\n", + "Epoch 44/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7615 - loss: 0.4932\n", + "Epoch 45/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7659 - loss: 0.4822\n", + "Epoch 46/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7643 - loss: 0.4826\n", + "Epoch 47/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7605 - loss: 0.4930\n", + "Epoch 48/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 959us/step - accuracy: 0.7581 - loss: 0.4929\n", + "Epoch 49/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7667 - loss: 0.4867\n", + "Epoch 50/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7570 - loss: 0.4950\n", + "Epoch 51/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7603 - loss: 0.4885\n", + "Epoch 52/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7633 - loss: 0.4871\n", + "Epoch 53/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7659 - loss: 0.4871\n", + "Epoch 54/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7642 - loss: 0.4843\n", + "Epoch 55/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7602 - loss: 0.4882\n", + "Epoch 56/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7669 - loss: 0.4841\n", + "Epoch 57/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7547 - loss: 0.4861\n", + "Epoch 58/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7602 - loss: 0.4871\n", + "Epoch 59/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7593 - loss: 0.4917\n", + "Epoch 60/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7645 - loss: 0.4912\n", + "Epoch 61/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7634 - loss: 0.4866\n", + "Epoch 62/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7720 - loss: 0.4793\n", + "Epoch 63/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7675 - loss: 0.4789 \n", + "Epoch 64/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7690 - loss: 0.4801\n", + "Epoch 65/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7660 - loss: 0.4780\n", + "Epoch 66/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7712 - loss: 0.4827\n", + "Epoch 67/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7690 - loss: 0.4833\n", + "Epoch 68/100\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7637 - loss: 0.4795\n", + "Epoch 69/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7687 - loss: 0.4830\n", + "Epoch 70/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7593 - loss: 0.4920\n", + "Epoch 71/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7664 - loss: 0.4811\n", + "Epoch 72/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7651 - loss: 0.4828\n", + "Epoch 73/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7708 - loss: 0.4762\n", + "Epoch 74/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7657 - loss: 0.4792\n", + "Epoch 75/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7663 - loss: 0.4895\n", + "Epoch 76/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7686 - loss: 0.4727\n", + "Epoch 77/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7668 - loss: 0.4825\n", + "Epoch 78/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7635 - loss: 0.4815\n", + "Epoch 79/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 957us/step - accuracy: 0.7712 - loss: 0.4712\n", + "Epoch 80/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 968us/step - accuracy: 0.7738 - loss: 0.4791\n", + "Epoch 81/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 975us/step - accuracy: 0.7662 - loss: 0.4800\n", + "Epoch 82/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7669 - loss: 0.4811\n", + "Epoch 83/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 954us/step - accuracy: 0.7643 - loss: 0.4789\n", + "Epoch 84/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7680 - loss: 0.4770\n", + "Epoch 85/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7701 - loss: 0.4791\n", + "Epoch 86/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7705 - loss: 0.4755\n", + "Epoch 87/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7685 - loss: 0.4787\n", + "Epoch 88/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7700 - loss: 0.4769\n", + "Epoch 89/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7699 - loss: 0.4816\n", + "Epoch 90/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - accuracy: 0.7737 - loss: 0.4742\n", + "Epoch 91/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7677 - loss: 0.4829\n", + "Epoch 92/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7647 - loss: 0.4836\n", + "Epoch 93/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7638 - loss: 0.4811\n", + "Epoch 94/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7716 - loss: 0.4747\n", + "Epoch 95/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7677 - loss: 0.4808\n", + "Epoch 96/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7712 - loss: 0.4795\n", + "Epoch 97/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.7733 - loss: 0.4708\n", + "Epoch 98/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7743 - loss: 0.4761\n", + "Epoch 99/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7758 - loss: 0.4717\n", + "Epoch 100/100\n", + "\u001b[1m399/399\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 1ms/step - accuracy: 0.7806 - loss: 0.4610\n", + "\u001b[1m100/100\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step\n", + " precision recall f1-score support\n", + "\n", + " 0 0.75 0.80 0.77 1593\n", + " 1 0.78 0.74 0.76 1593\n", + "\n", + " accuracy 0.77 3186\n", + " macro avg 0.77 0.77 0.77 3186\n", + "weighted avg 0.77 0.77 0.77 3186\n", + "\n", + "Classification Report : \n", + " None\n" + ] + } + ], + "source": [ + "y_preds=ANN(X_train,Y_train,X_test,Y_test,'binary_crossentropy',-1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9449b9d1", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.4" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}