diff --git a/Breast_Cancer_Classification_ueing_Neural_Network.ipynb b/Breast_Cancer_Classification_ueing_Neural_Network.ipynb new file mode 100644 index 00000000..1de6685e --- /dev/null +++ b/Breast_Cancer_Classification_ueing_Neural_Network.ipynb @@ -0,0 +1,3256 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [], + "authorship_tag": "ABX9TyNd3jP5HcwJSesVQ0jh9ClI", + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "source": [ + "## **Importing the Dependencies**" + ], + "metadata": { + "id": "E8zRUcqtiMOY" + } + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "id": "oOiX8ojWiA5B" + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import sklearn.datasets\n", + "from sklearn.model_selection import train_test_split" + ] + }, + { + "cell_type": "markdown", + "source": [ + "##**Data Collection & Processing**" + ], + "metadata": { + "id": "3qnTVfnvp7V-" + } + }, + { + "cell_type": "code", + "source": [ + "#loading the data from sklearn\n", + "breast_cancer_dataset=sklearn.datasets.load_breast_cancer()" + ], + "metadata": { + "id": "QXM_di5VqANh" + }, + "execution_count": 3, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "print(breast_cancer_dataset)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "cZftaZOLrWvU", + "outputId": "afa210cb-60c4-4f84-bfc1-52df1f082638" + }, + "execution_count": 4, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "{'data': array([[1.799e+01, 1.038e+01, 1.228e+02, ..., 2.654e-01, 4.601e-01,\n", + " 1.189e-01],\n", + " [2.057e+01, 1.777e+01, 1.329e+02, ..., 1.860e-01, 2.750e-01,\n", + " 8.902e-02],\n", + " [1.969e+01, 2.125e+01, 1.300e+02, ..., 2.430e-01, 3.613e-01,\n", + " 8.758e-02],\n", + " ...,\n", + " [1.660e+01, 2.808e+01, 1.083e+02, ..., 1.418e-01, 2.218e-01,\n", + " 7.820e-02],\n", + " [2.060e+01, 2.933e+01, 1.401e+02, ..., 2.650e-01, 4.087e-01,\n", + " 1.240e-01],\n", + " [7.760e+00, 2.454e+01, 4.792e+01, ..., 0.000e+00, 2.871e-01,\n", + " 7.039e-02]]), 'target': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,\n", + " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,\n", + " 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0,\n", + " 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0,\n", + " 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1,\n", + " 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0,\n", + " 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,\n", + " 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1,\n", + " 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0,\n", + " 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0,\n", + " 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1,\n", + " 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", + " 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1,\n", + " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1,\n", + " 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0,\n", + " 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0,\n", + " 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0,\n", + " 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1,\n", + " 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0,\n", + " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1,\n", + " 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,\n", + " 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,\n", + " 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1,\n", + " 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,\n", + " 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", + " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1]), 'frame': None, 'target_names': array(['malignant', 'benign'], dtype='\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
mean radiusmean texturemean perimetermean areamean smoothnessmean compactnessmean concavitymean concave pointsmean symmetrymean fractal dimension...worst radiusworst textureworst perimeterworst areaworst smoothnessworst compactnessworst concavityworst concave pointsworst symmetryworst fractal dimension
017.9910.38122.801001.00.118400.277600.30010.147100.24190.07871...25.3817.33184.602019.00.16220.66560.71190.26540.46010.11890
120.5717.77132.901326.00.084740.078640.08690.070170.18120.05667...24.9923.41158.801956.00.12380.18660.24160.18600.27500.08902
219.6921.25130.001203.00.109600.159900.19740.127900.20690.05999...23.5725.53152.501709.00.14440.42450.45040.24300.36130.08758
311.4220.3877.58386.10.142500.283900.24140.105200.25970.09744...14.9126.5098.87567.70.20980.86630.68690.25750.66380.17300
420.2914.34135.101297.00.100300.132800.19800.104300.18090.05883...22.5416.67152.201575.00.13740.20500.40000.16250.23640.07678
\n", + "

5 rows × 30 columns

\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + " \n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "df" + } + }, + "metadata": {}, + "execution_count": 6 + } + ] + }, + { + "cell_type": "code", + "source": [ + "# adding the 'target' column to the data frame\n", + "df['label']=breast_cancer_dataset.target" + ], + "metadata": { + "id": "Vpl_HsMhsxjm" + }, + "execution_count": 7, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# print las 5 rows from the dataframe\n", + "df.tail()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 290 + }, + "id": "7btJtVpvtZgc", + "outputId": "62c4fc60-7e9d-49b4-a55a-8c6b669e4ce9" + }, + "execution_count": 8, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " mean radius mean texture mean perimeter mean area mean smoothness \\\n", + "564 21.56 22.39 142.00 1479.0 0.11100 \n", + "565 20.13 28.25 131.20 1261.0 0.09780 \n", + "566 16.60 28.08 108.30 858.1 0.08455 \n", + "567 20.60 29.33 140.10 1265.0 0.11780 \n", + "568 7.76 24.54 47.92 181.0 0.05263 \n", + "\n", + " mean compactness mean concavity mean concave points mean symmetry \\\n", + "564 0.11590 0.24390 0.13890 0.1726 \n", + "565 0.10340 0.14400 0.09791 0.1752 \n", + "566 0.10230 0.09251 0.05302 0.1590 \n", + "567 0.27700 0.35140 0.15200 0.2397 \n", + "568 0.04362 0.00000 0.00000 0.1587 \n", + "\n", + " mean fractal dimension ... worst texture worst perimeter worst area \\\n", + "564 0.05623 ... 26.40 166.10 2027.0 \n", + "565 0.05533 ... 38.25 155.00 1731.0 \n", + "566 0.05648 ... 34.12 126.70 1124.0 \n", + "567 0.07016 ... 39.42 184.60 1821.0 \n", + "568 0.05884 ... 30.37 59.16 268.6 \n", + "\n", + " worst smoothness worst compactness worst concavity \\\n", + "564 0.14100 0.21130 0.4107 \n", + "565 0.11660 0.19220 0.3215 \n", + "566 0.11390 0.30940 0.3403 \n", + "567 0.16500 0.86810 0.9387 \n", + "568 0.08996 0.06444 0.0000 \n", + "\n", + " worst concave points worst symmetry worst fractal dimension label \n", + "564 0.2216 0.2060 0.07115 0 \n", + "565 0.1628 0.2572 0.06637 0 \n", + "566 0.1418 0.2218 0.07820 0 \n", + "567 0.2650 0.4087 0.12400 0 \n", + "568 0.0000 0.2871 0.07039 1 \n", + "\n", + "[5 rows x 31 columns]" + ], + "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", + "
mean radiusmean texturemean perimetermean areamean smoothnessmean compactnessmean concavitymean concave pointsmean symmetrymean fractal dimension...worst textureworst perimeterworst areaworst smoothnessworst compactnessworst concavityworst concave pointsworst symmetryworst fractal dimensionlabel
56421.5622.39142.001479.00.111000.115900.243900.138900.17260.05623...26.40166.102027.00.141000.211300.41070.22160.20600.071150
56520.1328.25131.201261.00.097800.103400.144000.097910.17520.05533...38.25155.001731.00.116600.192200.32150.16280.25720.066370
56616.6028.08108.30858.10.084550.102300.092510.053020.15900.05648...34.12126.701124.00.113900.309400.34030.14180.22180.078200
56720.6029.33140.101265.00.117800.277000.351400.152000.23970.07016...39.42184.601821.00.165000.868100.93870.26500.40870.124000
5687.7624.5447.92181.00.052630.043620.000000.000000.15870.05884...30.3759.16268.60.089960.064440.00000.00000.28710.070391
\n", + "

5 rows × 31 columns

\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe" + } + }, + "metadata": {}, + "execution_count": 8 + } + ] + }, + { + "cell_type": "code", + "source": [ + "# number of rows and columns in the dataset\n", + "df.shape" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Yd4BbsOytrNG", + "outputId": "a7cf14ba-2ff7-41fd-efbd-2038ae8aebaa" + }, + "execution_count": 9, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(569, 31)" + ] + }, + "metadata": {}, + "execution_count": 9 + } + ] + }, + { + "cell_type": "code", + "source": [ + "# getting some information about the data\n", + "df.info()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "r0x-Q8L9t58I", + "outputId": "3477ee64-0df8-44b5-ecab-5ef31dd3865a" + }, + "execution_count": 10, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "RangeIndex: 569 entries, 0 to 568\n", + "Data columns (total 31 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 mean radius 569 non-null float64\n", + " 1 mean texture 569 non-null float64\n", + " 2 mean perimeter 569 non-null float64\n", + " 3 mean area 569 non-null float64\n", + " 4 mean smoothness 569 non-null float64\n", + " 5 mean compactness 569 non-null float64\n", + " 6 mean concavity 569 non-null float64\n", + " 7 mean concave points 569 non-null float64\n", + " 8 mean symmetry 569 non-null float64\n", + " 9 mean fractal dimension 569 non-null float64\n", + " 10 radius error 569 non-null float64\n", + " 11 texture error 569 non-null float64\n", + " 12 perimeter error 569 non-null float64\n", + " 13 area error 569 non-null float64\n", + " 14 smoothness error 569 non-null float64\n", + " 15 compactness error 569 non-null float64\n", + " 16 concavity error 569 non-null float64\n", + " 17 concave points error 569 non-null float64\n", + " 18 symmetry error 569 non-null float64\n", + " 19 fractal dimension error 569 non-null float64\n", + " 20 worst radius 569 non-null float64\n", + " 21 worst texture 569 non-null float64\n", + " 22 worst perimeter 569 non-null float64\n", + " 23 worst area 569 non-null float64\n", + " 24 worst smoothness 569 non-null float64\n", + " 25 worst compactness 569 non-null float64\n", + " 26 worst concavity 569 non-null float64\n", + " 27 worst concave points 569 non-null float64\n", + " 28 worst symmetry 569 non-null float64\n", + " 29 worst fractal dimension 569 non-null float64\n", + " 30 label 569 non-null int64 \n", + "dtypes: float64(30), int64(1)\n", + "memory usage: 137.9 KB\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# checking for missing values\n", + "df.isnull().sum()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "id": "y13eCoZZuN3a", + "outputId": "fb86fa4f-0763-4cb9-f2dd-13f1d907cd74" + }, + "execution_count": 11, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "mean radius 0\n", + "mean texture 0\n", + "mean perimeter 0\n", + "mean area 0\n", + "mean smoothness 0\n", + "mean compactness 0\n", + "mean concavity 0\n", + "mean concave points 0\n", + "mean symmetry 0\n", + "mean fractal dimension 0\n", + "radius error 0\n", + "texture error 0\n", + "perimeter error 0\n", + "area error 0\n", + "smoothness error 0\n", + "compactness error 0\n", + "concavity error 0\n", + "concave points error 0\n", + "symmetry error 0\n", + "fractal dimension error 0\n", + "worst radius 0\n", + "worst texture 0\n", + "worst perimeter 0\n", + "worst area 0\n", + "worst smoothness 0\n", + "worst compactness 0\n", + "worst concavity 0\n", + "worst concave points 0\n", + "worst symmetry 0\n", + "worst fractal dimension 0\n", + "label 0\n", + "dtype: int64" + ], + "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", + "
0
mean radius0
mean texture0
mean perimeter0
mean area0
mean smoothness0
mean compactness0
mean concavity0
mean concave points0
mean symmetry0
mean fractal dimension0
radius error0
texture error0
perimeter error0
area error0
smoothness error0
compactness error0
concavity error0
concave points error0
symmetry error0
fractal dimension error0
worst radius0
worst texture0
worst perimeter0
worst area0
worst smoothness0
worst compactness0
worst concavity0
worst concave points0
worst symmetry0
worst fractal dimension0
label0
\n", + "

" + ] + }, + "metadata": {}, + "execution_count": 11 + } + ] + }, + { + "cell_type": "code", + "source": [ + "# statistical measures about the data\n", + "df.describe()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 384 + }, + "id": "d7LX7wrGuasC", + "outputId": "4674c533-1db1-4b3f-e4de-b7efd2f9ed1a" + }, + "execution_count": 12, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " mean radius mean texture mean perimeter mean area \\\n", + "count 569.000000 569.000000 569.000000 569.000000 \n", + "mean 14.127292 19.289649 91.969033 654.889104 \n", + "std 3.524049 4.301036 24.298981 351.914129 \n", + "min 6.981000 9.710000 43.790000 143.500000 \n", + "25% 11.700000 16.170000 75.170000 420.300000 \n", + "50% 13.370000 18.840000 86.240000 551.100000 \n", + "75% 15.780000 21.800000 104.100000 782.700000 \n", + "max 28.110000 39.280000 188.500000 2501.000000 \n", + "\n", + " mean smoothness mean compactness mean concavity mean concave points \\\n", + "count 569.000000 569.000000 569.000000 569.000000 \n", + "mean 0.096360 0.104341 0.088799 0.048919 \n", + "std 0.014064 0.052813 0.079720 0.038803 \n", + "min 0.052630 0.019380 0.000000 0.000000 \n", + "25% 0.086370 0.064920 0.029560 0.020310 \n", + "50% 0.095870 0.092630 0.061540 0.033500 \n", + "75% 0.105300 0.130400 0.130700 0.074000 \n", + "max 0.163400 0.345400 0.426800 0.201200 \n", + "\n", + " mean symmetry mean fractal dimension ... worst texture \\\n", + "count 569.000000 569.000000 ... 569.000000 \n", + "mean 0.181162 0.062798 ... 25.677223 \n", + "std 0.027414 0.007060 ... 6.146258 \n", + "min 0.106000 0.049960 ... 12.020000 \n", + "25% 0.161900 0.057700 ... 21.080000 \n", + "50% 0.179200 0.061540 ... 25.410000 \n", + "75% 0.195700 0.066120 ... 29.720000 \n", + "max 0.304000 0.097440 ... 49.540000 \n", + "\n", + " worst perimeter worst area worst smoothness worst compactness \\\n", + "count 569.000000 569.000000 569.000000 569.000000 \n", + "mean 107.261213 880.583128 0.132369 0.254265 \n", + "std 33.602542 569.356993 0.022832 0.157336 \n", + "min 50.410000 185.200000 0.071170 0.027290 \n", + "25% 84.110000 515.300000 0.116600 0.147200 \n", + "50% 97.660000 686.500000 0.131300 0.211900 \n", + "75% 125.400000 1084.000000 0.146000 0.339100 \n", + "max 251.200000 4254.000000 0.222600 1.058000 \n", + "\n", + " worst concavity worst concave points worst symmetry \\\n", + "count 569.000000 569.000000 569.000000 \n", + "mean 0.272188 0.114606 0.290076 \n", + "std 0.208624 0.065732 0.061867 \n", + "min 0.000000 0.000000 0.156500 \n", + "25% 0.114500 0.064930 0.250400 \n", + "50% 0.226700 0.099930 0.282200 \n", + "75% 0.382900 0.161400 0.317900 \n", + "max 1.252000 0.291000 0.663800 \n", + "\n", + " worst fractal dimension label \n", + "count 569.000000 569.000000 \n", + "mean 0.083946 0.627417 \n", + "std 0.018061 0.483918 \n", + "min 0.055040 0.000000 \n", + "25% 0.071460 0.000000 \n", + "50% 0.080040 1.000000 \n", + "75% 0.092080 1.000000 \n", + "max 0.207500 1.000000 \n", + "\n", + "[8 rows x 31 columns]" + ], + "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", + "
mean radiusmean texturemean perimetermean areamean smoothnessmean compactnessmean concavitymean concave pointsmean symmetrymean fractal dimension...worst textureworst perimeterworst areaworst smoothnessworst compactnessworst concavityworst concave pointsworst symmetryworst fractal dimensionlabel
count569.000000569.000000569.000000569.000000569.000000569.000000569.000000569.000000569.000000569.000000...569.000000569.000000569.000000569.000000569.000000569.000000569.000000569.000000569.000000569.000000
mean14.12729219.28964991.969033654.8891040.0963600.1043410.0887990.0489190.1811620.062798...25.677223107.261213880.5831280.1323690.2542650.2721880.1146060.2900760.0839460.627417
std3.5240494.30103624.298981351.9141290.0140640.0528130.0797200.0388030.0274140.007060...6.14625833.602542569.3569930.0228320.1573360.2086240.0657320.0618670.0180610.483918
min6.9810009.71000043.790000143.5000000.0526300.0193800.0000000.0000000.1060000.049960...12.02000050.410000185.2000000.0711700.0272900.0000000.0000000.1565000.0550400.000000
25%11.70000016.17000075.170000420.3000000.0863700.0649200.0295600.0203100.1619000.057700...21.08000084.110000515.3000000.1166000.1472000.1145000.0649300.2504000.0714600.000000
50%13.37000018.84000086.240000551.1000000.0958700.0926300.0615400.0335000.1792000.061540...25.41000097.660000686.5000000.1313000.2119000.2267000.0999300.2822000.0800401.000000
75%15.78000021.800000104.100000782.7000000.1053000.1304000.1307000.0740000.1957000.066120...29.720000125.4000001084.0000000.1460000.3391000.3829000.1614000.3179000.0920801.000000
max28.11000039.280000188.5000002501.0000000.1634000.3454000.4268000.2012000.3040000.097440...49.540000251.2000004254.0000000.2226001.0580001.2520000.2910000.6638000.2075001.000000
\n", + "

8 rows × 31 columns

\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe" + } + }, + "metadata": {}, + "execution_count": 12 + } + ] + }, + { + "cell_type": "code", + "source": [ + "# checking the distribution of Target Varaibles\n", + "df['label'].value_counts()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 178 + }, + "id": "WsVmI1yqvH1j", + "outputId": "c59388ce-cf49-4929-a2dd-48df3ea0015b" + }, + "execution_count": 13, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "label\n", + "1 357\n", + "0 212\n", + "Name: count, dtype: int64" + ], + "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", + "
count
label
1357
0212
\n", + "

" + ] + }, + "metadata": {}, + "execution_count": 13 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "**1-> Benign\n", + "0-> Malignant**" + ], + "metadata": { + "id": "ggvuJcH5vcXN" + } + }, + { + "cell_type": "code", + "source": [ + "df.groupby('label').mean()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 227 + }, + "id": "xtTpxOfrviaT", + "outputId": "25c2e346-a239-4b82-a750-d121bf87b12b" + }, + "execution_count": 14, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " mean radius mean texture mean perimeter mean area mean smoothness \\\n", + "label \n", + "0 17.462830 21.604906 115.365377 978.376415 0.102898 \n", + "1 12.146524 17.914762 78.075406 462.790196 0.092478 \n", + "\n", + " mean compactness mean concavity mean concave points mean symmetry \\\n", + "label \n", + "0 0.145188 0.160775 0.087990 0.192909 \n", + "1 0.080085 0.046058 0.025717 0.174186 \n", + "\n", + " mean fractal dimension ... worst radius worst texture \\\n", + "label ... \n", + "0 0.062680 ... 21.134811 29.318208 \n", + "1 0.062867 ... 13.379801 23.515070 \n", + "\n", + " worst perimeter worst area worst smoothness worst compactness \\\n", + "label \n", + "0 141.370330 1422.286321 0.144845 0.374824 \n", + "1 87.005938 558.899440 0.124959 0.182673 \n", + "\n", + " worst concavity worst concave points worst symmetry \\\n", + "label \n", + "0 0.450606 0.182237 0.323468 \n", + "1 0.166238 0.074444 0.270246 \n", + "\n", + " worst fractal dimension \n", + "label \n", + "0 0.091530 \n", + "1 0.079442 \n", + "\n", + "[2 rows x 30 columns]" + ], + "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", + "
mean radiusmean texturemean perimetermean areamean smoothnessmean compactnessmean concavitymean concave pointsmean symmetrymean fractal dimension...worst radiusworst textureworst perimeterworst areaworst smoothnessworst compactnessworst concavityworst concave pointsworst symmetryworst fractal dimension
label
017.46283021.604906115.365377978.3764150.1028980.1451880.1607750.0879900.1929090.062680...21.13481129.318208141.3703301422.2863210.1448450.3748240.4506060.1822370.3234680.091530
112.14652417.91476278.075406462.7901960.0924780.0800850.0460580.0257170.1741860.062867...13.37980123.51507087.005938558.8994400.1249590.1826730.1662380.0744440.2702460.079442
\n", + "

2 rows × 30 columns

\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe" + } + }, + "metadata": {}, + "execution_count": 14 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "##**Seperating the features and target**" + ], + "metadata": { + "id": "_xax7xxQwaL4" + } + }, + { + "cell_type": "code", + "source": [ + "X=df.drop(columns='label',axis=1)\n", + "Y=df['label']" + ], + "metadata": { + "id": "7Za21RYlwZxK" + }, + "execution_count": 15, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "print(X)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "MyaUAQZMwso1", + "outputId": "57696704-b668-4dce-db24-4a0ebe941496" + }, + "execution_count": 16, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + " mean radius mean texture mean perimeter mean area mean smoothness \\\n", + "0 17.99 10.38 122.80 1001.0 0.11840 \n", + "1 20.57 17.77 132.90 1326.0 0.08474 \n", + "2 19.69 21.25 130.00 1203.0 0.10960 \n", + "3 11.42 20.38 77.58 386.1 0.14250 \n", + "4 20.29 14.34 135.10 1297.0 0.10030 \n", + ".. ... ... ... ... ... \n", + "564 21.56 22.39 142.00 1479.0 0.11100 \n", + "565 20.13 28.25 131.20 1261.0 0.09780 \n", + "566 16.60 28.08 108.30 858.1 0.08455 \n", + "567 20.60 29.33 140.10 1265.0 0.11780 \n", + "568 7.76 24.54 47.92 181.0 0.05263 \n", + "\n", + " mean compactness mean concavity mean concave points mean symmetry \\\n", + "0 0.27760 0.30010 0.14710 0.2419 \n", + "1 0.07864 0.08690 0.07017 0.1812 \n", + "2 0.15990 0.19740 0.12790 0.2069 \n", + "3 0.28390 0.24140 0.10520 0.2597 \n", + "4 0.13280 0.19800 0.10430 0.1809 \n", + ".. ... ... ... ... \n", + "564 0.11590 0.24390 0.13890 0.1726 \n", + "565 0.10340 0.14400 0.09791 0.1752 \n", + "566 0.10230 0.09251 0.05302 0.1590 \n", + "567 0.27700 0.35140 0.15200 0.2397 \n", + "568 0.04362 0.00000 0.00000 0.1587 \n", + "\n", + " mean fractal dimension ... worst radius worst texture \\\n", + "0 0.07871 ... 25.380 17.33 \n", + "1 0.05667 ... 24.990 23.41 \n", + "2 0.05999 ... 23.570 25.53 \n", + "3 0.09744 ... 14.910 26.50 \n", + "4 0.05883 ... 22.540 16.67 \n", + ".. ... ... ... ... \n", + "564 0.05623 ... 25.450 26.40 \n", + "565 0.05533 ... 23.690 38.25 \n", + "566 0.05648 ... 18.980 34.12 \n", + "567 0.07016 ... 25.740 39.42 \n", + "568 0.05884 ... 9.456 30.37 \n", + "\n", + " worst perimeter worst area worst smoothness worst compactness \\\n", + "0 184.60 2019.0 0.16220 0.66560 \n", + "1 158.80 1956.0 0.12380 0.18660 \n", + "2 152.50 1709.0 0.14440 0.42450 \n", + "3 98.87 567.7 0.20980 0.86630 \n", + "4 152.20 1575.0 0.13740 0.20500 \n", + ".. ... ... ... ... \n", + "564 166.10 2027.0 0.14100 0.21130 \n", + "565 155.00 1731.0 0.11660 0.19220 \n", + "566 126.70 1124.0 0.11390 0.30940 \n", + "567 184.60 1821.0 0.16500 0.86810 \n", + "568 59.16 268.6 0.08996 0.06444 \n", + "\n", + " worst concavity worst concave points worst symmetry \\\n", + "0 0.7119 0.2654 0.4601 \n", + "1 0.2416 0.1860 0.2750 \n", + "2 0.4504 0.2430 0.3613 \n", + "3 0.6869 0.2575 0.6638 \n", + "4 0.4000 0.1625 0.2364 \n", + ".. ... ... ... \n", + "564 0.4107 0.2216 0.2060 \n", + "565 0.3215 0.1628 0.2572 \n", + "566 0.3403 0.1418 0.2218 \n", + "567 0.9387 0.2650 0.4087 \n", + "568 0.0000 0.0000 0.2871 \n", + "\n", + " worst fractal dimension \n", + "0 0.11890 \n", + "1 0.08902 \n", + "2 0.08758 \n", + "3 0.17300 \n", + "4 0.07678 \n", + ".. ... \n", + "564 0.07115 \n", + "565 0.06637 \n", + "566 0.07820 \n", + "567 0.12400 \n", + "568 0.07039 \n", + "\n", + "[569 rows x 30 columns]\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "print(Y)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "OepIQmtdw_B7", + "outputId": "46cd8682-2c96-4ff2-8db6-e403f4cae5af" + }, + "execution_count": 17, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "0 0\n", + "1 0\n", + "2 0\n", + "3 0\n", + "4 0\n", + " ..\n", + "564 0\n", + "565 0\n", + "566 0\n", + "567 0\n", + "568 1\n", + "Name: label, Length: 569, dtype: int64\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "Splitting the data into training data & testing data" + ], + "metadata": { + "id": "NzOB9_ixxHSO" + } + }, + { + "cell_type": "code", + "source": [ + "X_train,X_test,Y_train,Y_test=train_test_split(X,Y,test_size=0.2,random_state=2)" + ], + "metadata": { + "id": "YAn9ZAbPxRqO" + }, + "execution_count": 18, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "print(X.shape,X_train.shape,X_test.shape)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "ZorMWSzdxs0Z", + "outputId": "e71acd9d-2d3c-4358-daf4-74ac3afe00dc" + }, + "execution_count": 19, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "(569, 30) (455, 30) (114, 30)\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "Standardize the data" + ], + "metadata": { + "id": "BkZZNyBGBGJd" + } + }, + { + "cell_type": "code", + "source": [ + "from sklearn.preprocessing import StandardScaler" + ], + "metadata": { + "id": "k4zq5GX8A-DO" + }, + "execution_count": 20, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "scaler=StandardScaler()\n", + "\n", + "X_train_std=scaler.fit_transform(X_train)\n", + "\n", + "X_test_std=scaler.transform(X_test)" + ], + "metadata": { + "id": "mgbv9nzqBZn9" + }, + "execution_count": 21, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "print(X_train_std)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "r97XLcgOB_S6", + "outputId": "4588a5e5-596c-48f5-a11b-2f6b83551673" + }, + "execution_count": 22, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[[-0.01330339 1.7757658 -0.01491962 ... -0.13236958 -1.08014517\n", + " -0.03527943]\n", + " [-0.8448276 -0.6284278 -0.87702746 ... -1.11552632 -0.85773964\n", + " -0.72098905]\n", + " [ 1.44755936 0.71180168 1.47428816 ... 0.87583964 0.4967602\n", + " 0.46321706]\n", + " ...\n", + " [-0.46608541 -1.49375484 -0.53234924 ... -1.32388956 -1.02997851\n", + " -0.75145272]\n", + " [-0.50025764 -1.62161319 -0.527814 ... -0.0987626 0.35796577\n", + " -0.43906159]\n", + " [ 0.96060511 1.21181916 1.00427242 ... 0.8956983 -1.23064515\n", + " 0.50697397]]\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "##**Building the Neural Network** \n", + "\n", + "![neural network.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADQCAYAAABC3S5oAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAFgbSURBVHhe7Z0HeBRV18evUkR6F0G6IKIgVtTPih1fGyLKa3tFBV+xvBbsvSF27F2aoCAgTTrSpPdO6AQIJRAg1CRwv/s7mQuTzezu7CbAsuz/eebJzuzsZmfmnnva/5x7XLFixXTBggVVAgdRuHBhxT3ZtWuXcyS+UK5cObV582ZnL4Fg2L17tzqub9+++tZbb3UOJQAyMzPVvn37VJEiRZwj8YWtW7eq0qVLO3sJBMN//vMfdbzzOgEXChQoIBokXhGvgn8okBAQD6A9srKynL34w969e51XCYRDQkA8cPzxx8sWr0j4nP6REJAgOO6445xXCRzLSAiIB/bv3y9mVryCIEQC/pAQEA9gghDqjVcUK1bMeZVAOCQExAM46BkZGc5e/GHnzp3OqwTCISEgHkg46QlYJATEA/ggbPGKeA5h5zcSAuIBIljxHMVKROj8IyEgHsC8IpserzjhhBOcVwmEQ0JAPBDvmfQ9e/Y4rxIIh4SAeADtUahQIWcv/nDiiSc6rxIIh4SAeAANEs/JNGjcCfhDQkA8kHDSE7BICMgxiISA+EdCQDygtZYtXhHPOZ78RkJAPOCHi7Vp0ya1YMECZy8bqampzquDSElJcV7FDhJcLP+ISkD69OkjkZDu3bs7RyLHqlWrnFfZmD17tjr99NNV27ZtnSNHDm4u1iuvvKIuuugiGegLFy6Ueu6//vpLrVixQv39999yDti4caO64447nL1stG/fXg0YMMDZC4+JEyeqqlWrqk8//dQ5cmgQCRdrzZo1cg941q+++qrcg2DgXD9AO7snDu7d3XffrS677DLPSeZIIioBadasmdixd911l1xsenq62rJlywGzhIo19m20hNdg+/bt0ghhzpw5ImRuQuBZZ52lrr76anXhhRc6Rw6Cz3MupgGvieMTZdqxY4e8T4013w04j/+fl4YL7kQhD41Be/LJJ4sAk2S7/PLLVf369dW1114r5xD1QutUqVJF9gG/6eyzz3b2sq+dY4Dfzj1LS0uTfQsE8bzzzlOXXnqpcyQb3Feu2+Zn7P1wXyfH7P3gPe59sHyHX6Yyv/Pf//63euedd+Tv22+/rZ588kn5bvvbuSb+zz///KOGDRsmv4/fZJ8TsOfyl2NjxoyRycXmmipWrKjuvPNOVaNGDVW+fHk5ZsE1WYHm89w3+xrwW/hfgPvEtW/btk328wN5MrH4Qc8++6x67733RAPwlxvFTJqcnKyeeuoptW7dOvXwww/L+fPnz5ebzexBVw0/g/jnn38WbcMNZID83//9n1q7dq2YNzNmzFDjx49XQ4YMEc0zaNAgRQOKl156SfXt29f5hsjBdbntdP7fn3/+KZt96DwUrpeB/9FHH8n1Ivjgm2++UUlJSWratGmyz+/s16+fateunUwMTCy9e/eW3813hsPnn3+uFi9erO677z4Rijp16sigmTRpktwbrpsBd88996jhw4erK6+8Ur388suikbzAffSDsWPHqgoVKjh72TjjjDPUb7/9plq1aiX748aNU19++aVavXq1PFM0Dc+b+/HAAw/I/bn//vvl3JEjR6offvhBrVy5UjRFuFA6961///7yPPkMAvrVV1/J7+/Ro4eMrS5dusj/R+tyf/nfaLz8Qp4EBC3CDeOB81B4YAzgMmXKiEZg0HIhZcuWlfOrV68uf0uVKqVOOeUUX501WrRoITeeGYPkHQLWs2dPeSDM7h07dpQZ9/3331dXXHGFzEYff/yxqOxogYCwWaAZEDw22/AArQK4vpYtW8r1nn/++TJwlyxZoi644ALVpEkTOYffyOs33nhDXXPNNapSpUoy2NFADLBwuPfee0UgEVT8h9dee01MNwYZWg0BQvMyeLgXJ510kvrkk0/kmXjBr4CUKFEiV8SLZ8Hz5BmCmjVryl/2eb5cX7Vq1eR+ICADBw6U7wH23JIlS8rrcAnLc845R74LrcHE8Mwzz6hRo0apRYsWqeuuu07uPff5wQcfFCE888wz1RNPPKG++OIL5xvyjkPqpPMA3SZTpPbl77//LrMiDx31C2677TY1YsSIA7MzD3D58uXyEJiR8wORcLGKFy8uE4MFn0VA3GBAMJszceC/RII//vhDHv71118v3wMee+wx9d133x0wLbivDCBMJzRIOPg1sRh8mEG2hxbmDkJ60003yT4I9UwJZJx77rnOXmTPn2f8wQcfiDDzOwATFSYok2Ht2rXFHPv111/leF4shlAoYGb/N+rVq+fs+sPgwYPlZmGPoyaxQ7HBGRg33HCDqDsG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)" + ], + "metadata": { + "id": "11V_7aD3ypwk" + } + }, + { + "cell_type": "code", + "source": [ + "# importing tensorflow and keras\n", + "import tensorflow as tf\n", + "tf.random.set_seed(3)\n", + "from tensorflow import keras" + ], + "metadata": { + "id": "4gFqwyb5zk4F" + }, + "execution_count": 23, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# setting up the layers for my neural network\n", + "model=keras.Sequential([\n", + " keras.layers.Flatten(input_shape=(30,)),\n", + " keras.layers.Dense(20,activation='relu'),\n", + " keras.layers.Dense(2,activation='sigmoid')\n", + "])" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "3CQ4PsbI2Rts", + "outputId": "8f75d7b7-fe03-4bdc-cf88-668d113097ee" + }, + "execution_count": 24, + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "/usr/local/lib/python3.10/dist-packages/keras/src/layers/reshaping/flatten.py:37: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.\n", + " super().__init__(**kwargs)\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# compiling the nerual network\n", + "model.compile(optimizer='adam',\n", + " loss='sparse_categorical_crossentropy',\n", + " metrics=['accuracy'])" + ], + "metadata": { + "id": "2aecDJHe9YhD" + }, + "execution_count": 25, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# training the neural network\n", + "\n", + "history=model.fit(X_train_std,Y_train,validation_split=0.1,epochs=10)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "SKhajeU-_WTi", + "outputId": "9dc5a6f7-1fa7-4df0-e21e-ff1b0a1f1f4c" + }, + "execution_count": 26, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Epoch 1/10\n", + "\u001b[1m13/13\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 30ms/step - accuracy: 0.3608 - loss: 1.0537 - val_accuracy: 0.5652 - val_loss: 0.6574\n", + "Epoch 2/10\n", + "\u001b[1m13/13\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.6294 - loss: 0.6775 - val_accuracy: 0.7609 - val_loss: 0.4467\n", + "Epoch 3/10\n", + "\u001b[1m13/13\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 6ms/step - accuracy: 0.8020 - loss: 0.4507 - val_accuracy: 0.9130 - val_loss: 0.3312\n", + "Epoch 4/10\n", + "\u001b[1m13/13\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.8936 - loss: 0.3233 - val_accuracy: 0.9348 - val_loss: 0.2647\n", + "Epoch 5/10\n", + "\u001b[1m13/13\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - accuracy: 0.9204 - loss: 0.2509 - val_accuracy: 0.9348 - val_loss: 0.2237\n", + "Epoch 6/10\n", + "\u001b[1m13/13\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9397 - loss: 0.2069 - val_accuracy: 0.9565 - val_loss: 0.1959\n", + "Epoch 7/10\n", + "\u001b[1m13/13\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - accuracy: 0.9506 - loss: 0.1781 - val_accuracy: 0.9565 - val_loss: 0.1757\n", + "Epoch 8/10\n", + "\u001b[1m13/13\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - accuracy: 0.9551 - loss: 0.1579 - val_accuracy: 0.9565 - val_loss: 0.1603\n", + "Epoch 9/10\n", + "\u001b[1m13/13\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 8ms/step - accuracy: 0.9551 - loss: 0.1429 - val_accuracy: 0.9565 - val_loss: 0.1483\n", + "Epoch 10/10\n", + "\u001b[1m13/13\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9551 - loss: 0.1312 - val_accuracy: 0.9565 - val_loss: 0.1385\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "##**Visualising the accuracy and the loss**" + ], + "metadata": { + "id": "GEhDxgLtE0qF" + } + }, + { + "cell_type": "code", + "source": [ + "plt.plot(history.history['accuracy'])\n", + "plt.plot(history.history['val_accuracy'])\n", + "\n", + "plt.title('model-accuracy')\n", + "plt.ylabel('accuracy')\n", + "plt.xlabel('epoch')\n", + "\n", + "plt.legend(['training data','validation data'],loc='lower right')" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 489 + }, + "id": "1l-CU0h3FMvi", + "outputId": "fb7c6f1b-de71-47f5-8876-a255526fba74" + }, + "execution_count": 27, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 27 + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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5+mnn7bFtKdLteJcbAAzlGyhKfb777/zt7/9jc6dO/Puu+9SrVo1vL29+eijj/j888+vOacmTZoQFxfHp59+yuDBg/n000/x8fGhf//+13wvEXej4kZEbGrXrs3mzZuxWCwlWm+Ku3pq165t+5qUlERWVlaJ1ptdu3aVuF+dOnUAa9dWz549rymXwYMH06lTJ9v3xQXDkiVLSEtLY+7cuXTu3Nn2/IEDB0q8vm7dugBs3br1krGL89u6detlcwkLC7voTLDilqyr8c033+Dn58fChQvx9fW1nf/oo48uyNtisbB9+3ZatWp12XsOHjyYxMREkpOT+fzzz7n11lsJCwu76pxE3JW6pUTEpk+fPpw4cYI5c+bYzhUWFvL2228TFBREly5dbNcVFhby3nvv2a4zm828/fbbJe5XpUoVunbtyvvvv09ycvIF8f7c1fRXderUoWfPnrZHx44dgfOtT39ubcrPz+fdd98t8fo2bdoQGxvLlClTLihMil8bGRlJ586dmTlzJocPH77oNWAtONLT09m8ebPtXHJy8jXN9vL09MRkMpVo7Tl48CDfffddievuuOMOPDw8GD9+/AWtUH9tYbv33nsxmUw89thj7N+/X7OkRIqo5UZEbB566CHef/99hg4dyrp164iJieHrr79m+fLlTJkyheDgYAD69u1Lx44dGTNmDAcPHqRJkybMnTu3xNiRYu+88w6dOnWiefPmDB8+nDp16pCSksLKlSs5evQomzZtuqYcO3ToQFhYGEOGDGHUqFGYTCZmz559wQe/h4cH7733Hn379qVVq1YMGzaMatWqsXPnTrZt22abRv3WW2/RqVMn2rRpw0MPPURsbCwHDx5k3rx5bNy4EYB77rmHp59+mn79+jFq1ChycnJ47733aNCgQYnBwJdz6623MnnyZHr37s19993HyZMneeedd6hXr16JoqlevXo8++yzTJgwgRtvvJE777wTX19f1qxZQ/Xq1Zk4caLt2sjISHr37s1XX31FpUqVuPXWW6/pZynitlw3UUtEHKF4evKpU6dKnB8yZIgRGBh4wfVdunQxmjZtavs+JSXFGDZsmBEREWH4+PgYzZs3LzG1u1haWpoxaNAgIyQkxAgNDTUGDRpkbNiw4YKp4IZhGPv27TMGDx5sVK1a1fD29jZq1Khh3HbbbcbXX39tu+ZapoIvX77c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DxM3NVGXlIhIWTFw4EDmzZvHzJkzbQOJi9WvX5+5c+eyceNGNm3axH333XdNrRz33XcfJpOJ4cOHs337dubPn8+bb755QYy1a9eycOFCdu/ezfPPP8+aNWtKXBMTE8PmzZvZtWsXqampFBQUXBDrkUce4ciRIzz66KPs3LmT77//nhdeeIHExERbN1tpPPbYY7z66qt899137Ny5k0ceeYSzZ8/ang8LC6Ny5cp88MEH7N27l8WLF5OYmFjiHlWqVMHf358FCxaQkpJCenq67b3Pnj2bHTt2sGrVKgYOHIi/v3+pc71aKm7s5PDpHCKCfGlfpzJhgT6uTkdERIp0796d8PBwdu3axX333VfiucmTJxMWFkaHDh3o27cvvXr1KtGycyVBQUH873//Y8uWLbRu3Zpnn32W1157rcQ1//znP7nzzjsZMGAACQkJpKWllWjFARg+fDgNGzYkPj6eyMhIli9ffkGsGjVqMH/+fFavXk3Lli3517/+xYMPPshzzz13DT+NC/373/9m0KBBDBkyxNZtVtySBeDh4cEXX3zBunXraNasGU888QRvvPFGiXt4eXnx1ltv8f7771O9enVuv/12AGbMmMGZM2do06YNgwYNYtSoUVSp4vhlUkzGXyezu7mMjAxCQ0NJT08nJCTErvc2WwxOZ+cTGexr1/uKiLhabm4uBw4cIDY2tsTgWRF7utyfs2v5/FbLjR15ephU2IiIiLiYihsRERFxKypuRERExK2ouBERERG3ouJGRERE3IqKGxERuWoVbIKtOJm9/nypuBERkSvy9PQEcPiy+VKxFf/5Kv7zVlrafkFERK7Iy8uLgIAATp06hbe393WtiCtyMRaLhVOnThEQEICX1/WVJypuRETkikwmE9WqVePAgQMcOnTI1emIm/Lw8KBWrVoldj4vDRU3IiJyVXx8fKhfv766psRhfHx87NIqqOJGRESumoeHh7ZfkDJPnaYiIiLiVlTciIiIiFtRcSMiIiJupcKNuSleICgjI8PFmYiIiMjVKv7cvpqF/ipccZOZmQlAdHS0izMRERGRa5WZmUloaOhlrzEZFWwtbYvFwvHjxwkODr7uefR/lZGRQXR0NEeOHCEkJMSu95Zrp99H2aLfR9mi30fZo9/J5RmGQWZmJtWrV7/idPEK13Lj4eFBzZo1HRojJCREfzDLEP0+yhb9PsoW/T7KHv1OLu1KLTbFNKBYRERE3IqKGxEREXErKm7syNfXlxdeeAFfX19XpyLo91HW6PdRtuj3Ufbod2I/FW5AsYiIiLg3tdyIiIiIW1FxIyIiIm5FxY2IiIi4FRU3IiIi4lZU3NjJO++8Q0xMDH5+fiQkJLB69WpXp1RhTZw4kbZt2xIcHEyVKlW444472LVrl6vTkiKvvvoqJpOJxx9/3NWpVFjHjh3j/vvvp3Llyvj7+9O8eXPWrl3r6rQqJLPZzPPPP09sbCz+/v7UrVuXCRMmXNX+SXJpKm7sYM6cOSQmJvLCCy+wfv16WrZsSa9evTh58qSrU6uQfvvtN0aMGMEff/zBokWLKCgo4OabbyY7O9vVqVV4a9as4f3336dFixauTqXCOnPmDB07dsTb25uffvqJ7du3M2nSJMLCwlydWoX02muv8d577zFt2jR27NjBa6+9xuuvv87bb7/t6tTKNU0Ft4OEhATatm3LtGnTAOv+VdHR0Tz66KOMGTPGxdnJqVOnqFKlCr/99hudO3d2dToVVlZWFm3atOHdd9/l5ZdfplWrVkyZMsXVaVU4Y8aMYfny5fz++++uTkWA2267jaioKGbMmGE7d9ddd+Hv78+nn37qwszKN7XcXKf8/HzWrVtHz549bec8PDzo2bMnK1eudGFmUiw9PR2A8PBwF2dSsY0YMYJbb721xN8Vcb4ffviB+Ph47r77bqpUqULr1q358MMPXZ1WhdWhQweSkpLYvXs3AJs2bWLZsmXccsstLs6sfKtwG2faW2pqKmazmaioqBLno6Ki2Llzp4uykmIWi4XHH3+cjh070qxZM1enU2F98cUXrF+/njVr1rg6lQpv//79vPfeeyQmJvLMM8+wZs0aRo0ahY+PD0OGDHF1ehXOmDFjyMjIoFGjRnh6emI2m/nPf/7DwIEDXZ1auabiRtzaiBEj2Lp1K8uWLXN1KhXWkSNHeOyxx1i0aBF+fn6uTqfCs1gsxMfH88orrwDQunVrtm7dyvTp01XcuMCXX37JZ599xueff07Tpk3ZuHEjjz/+ONWrV9fv4zqouLlOEREReHp6kpKSUuJ8SkoKVatWdVFWAjBy5Eh+/PFHli5dSs2aNV2dToW1bt06Tp48SZs2bWznzGYzS5cuZdq0aeTl5eHp6enCDCuWatWq0aRJkxLnGjduzDfffOOijCq2J598kjFjxnDPPfcA0Lx5cw4dOsTEiRNV3FwHjbm5Tj4+PsTFxZGUlGQ7Z7FYSEpKon379i7MrOIyDIORI0fy7bffsnjxYmJjY12dUoXWo0cPtmzZwsaNG22P+Ph4Bg4cyMaNG1XYOFnHjh0vWBph9+7d1K5d20UZVWw5OTl4eJT8KPb09MRisbgoI/eglhs7SExMZMiQIcTHx9OuXTumTJlCdnY2w4YNc3VqFdKIESP4/PPP+f777wkODubEiRMAhIaG4u/v7+LsKp7g4OALxjsFBgZSuXJljYNygSeeeIIOHTrwyiuv0L9/f1avXs0HH3zABx984OrUKqS+ffvyn//8h1q1atG0aVM2bNjA5MmTeeCBB1ydWrmmqeB2Mm3aNN544w1OnDhBq1ateOutt0hISHB1WhWSyWS66PmPPvqIoUOHOjcZuaiuXbtqKrgL/fjjj4wdO5Y9e/YQGxtLYmIiw4cPd3VaFVJmZibPP/883377LSdPnqR69erce++9jBs3Dh8fH1enV26puBERERG3ojE3IiIi4lZU3IiIiIhbUXEjIiIibkXFjYiIiLgVFTciIiLiVlTciIiIiFtRcSMiIiJuRcWNiFR4S5YswWQycfbsWVenIiJ2oOJGRERE3IqKGxEREXErKm5ExOUsFgsTJ04kNjYWf39/WrZsyddffw2c7zKaN28eLVq0wM/PjxtuuIGtW7eWuMc333xD06ZN8fX1JSYmhkmTJpV4Pi8vj6effpro6Gh8fX2pV68eM2bMKHHNunXriI+PJyAggA4dOlywe7aIlA8qbkTE5SZOnMgnn3zC9OnT2bZtG0888QT3338/v/32m+2aJ598kkmTJrFmzRoiIyPp27cvBQUFgLUo6d+/P/fccw9btmzhxRdf5Pnnn2fWrFm21w8ePJj//ve/vPXWW+zYsYP333+foKCgEnk8++yzTJo0ibVr1+Ll5aWdmUXKKW2cKSIulZeXR3h4OL/88gvt27e3nf/HP/5BTk4ODz30EN26deOLL75gwIABAJw+fZqaNWsya9Ys+vfvz8CBAzl16hQ///yz7fVPPfUU8+bNY9u2bezevZuGDRuyaNEievbseUEOS5YsoVu3bvzyyy/06NEDgPnz53Prrbdy7tw5/Pz8HPxTEBF7UsuNiLjU3r17ycnJ4aabbiIoKMj2+OSTT9i3b5/tuj8XPuHh4TRs2JAdO3YAsGPHDjp27Fjivh07dmTPnj2YzWY2btyIp6cnXbp0uWwuLVq0sB1Xq1YNgJMnT173exQR5/JydQIiUrFlZWUBMG/ePGrUqFHiOV9f3xIFTmn5+/tf1XXe3t62Y5PJBFjHA4lI+aKWGxFxqSZNmuDr68vhw4epV69eiUd0dLTtuj/++MN2fObMGXbv3k3jxo0BaNy4McuXLy9x3+XLl9OgQQM8PT1p3rw5FoulxBgeEXFfarkREZcKDg5m9OjRPPHEE1gsFjp16kR6ejrLly8nJCSE2rVrAzB+/HgqV65MVFQUzz77LBEREdxxxx0A/Pvf/6Zt27ZMmDCBAQMGsHLlSqZNm8a7774LQExMDEOGDOGBBx7grbfeomXLlhw6dIiTJ0/Sv39/V711EXEQFTci4nITJkwgMjKSiRMnsn//fipVqkSbNm145plnbN1Cr776Ko899hh79uyhVatW/O9//8PHxweANm3a8OWXXzJu3DgmTJhAtWrVGD9+PEOHDrXFeO+993jmmWd45JFHSEtLo1atWjzzzDOueLsi4mCaLSUiZVrxTKYzZ85QqVIlV6cjIuWAxtyIiIiIW1FxIyIiIm5F3VIiIiLiVtRyIyIiIm5FxY2IiIi4FRU3IiIi4lZU3IiIiIhbUXEjIiIibkXFjYiIiLgVFTciIiLiVlTciIiIiFtRcSMiIiJu5f8DIkiHlRBFTGQAAAAASUVORK5CYII=\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "plt.plot(history.history['loss'])\n", + "plt.plot(history.history['val_loss'])\n", + "\n", + "plt.title('model-loss')\n", + "plt.ylabel('loss')\n", + "plt.xlabel('epoch')\n", + "\n", + "plt.legend(['training data','validation data'],loc='upper right')" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 489 + }, + "id": "M7OmXFtJKk2l", + "outputId": "6e212930-8899-4458-c372-e3266c4c0f5b" + }, + "execution_count": 28, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 28 + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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kKysrIt+7xdLZ24qUN/WsXy1+gDzNiYytk9TfKwWoyOJiFwaT1/HGRSjjl1KvXv3xm63M3fuXNq1a8fvv//O//3f/zm/P2zYMBYsWMCrr75K3bp18fHx4fbbbycvr+zmJfvqq68YNmwYkydPpkOHDgQEBPDKK6+wcuXKMjvG2Tw9PYs8NplM54w7uli9e/emZs2aTJ8+3TmOqWnTphf8cxowYABpaWm8/vrr1KxZEy8vLzp06FCmf77FUbmpQG1rViMuxIcDR0/w85Yk5+zFIiKVjslUqktDRvP29qZv37588cUX7Ny5kwYNGtC6dWvn95ctW8bAgQO59dZbAceZnL1795b69Rs1asRnn33GyZMnnWdvVqxYUWSfZcuW0bFjRx5++GHntrMH4wJYrVYKCwsveKyZM2dit9udZ2+WLVtGQEAAsbGxpc58tqCgIKKioli5ciVXX301AAUFBaxdu9b555SWlsa2bduYPn06V111FQBLly49Jz9wzntYtmwZb731Fr169QLgwIEDpKamXlLWi6HLUhXIbDbRt5XjL6BWChcRqRj9+vVj7ty5fPjhh86BxKfVq1ePWbNmsWHDBv7880/uvvvuizrLcffdd2MymRg8eDBbtmxh3rx5vPrqq+ccY82aNfz0009s376dkSNHsnr16iL7xMfH89dff7Ft2zZSU1PJz88/51gPP/wwBw4c4LHHHmPr1q189913jB49mqFDhzovs12Kxx9/nIkTJ/Ltt9+ydetWHn74YY4fP+78frVq1ahevTrvvfceO3fu5JdffmHo0KFFXiM8PBwfHx/mz59PcnIy6enpzvf+2WefkZCQwMqVK+nXrx8+Pj6XnLW0VG4qWN/WjrM1y3amkpR+0uA0IiLu77rrriMkJIRt27Zx9913F/nea6+9RrVq1ejYsSO9e/eme/fuRc7sXIi/vz/ff/89GzdupFWrVjz33HNMmjSpyD7/+te/6Nu3L3feeSft27cnLS2tyFkcgMGDB9OgQQPatm1LWFgYy5YtO+dYMTExzJs3j1WrVtGiRQv+/e9/c//99/P8889fxJ/Guf7zn/9w7733MmDAAOdls9NnsgDMZjNfffUVa9eupWnTpjz55JO88sorRV7Dw8ODN954g3fffZfo6Gj69OkDwAcffMCxY8do3bo19957L0OGDCE8PPyy8paGyf73D7O7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7riDf/7zn2zcuJExY8YwcuRIPv74Y+fz+/fvz3//+1/eeOMNEhISePfdd/H39y+S47nnnmPy5MmsWbMGDw8PrcwsUklp4UwRMVRubi4hISEsXLiQDh06OLc/8MAD5OTk8OCDD3Lttdfy1VdfceeddwJw9OhRYmNj+fjjj7njjjvo168fKSkp/Pzzz87nP/3008ydO5fNmzezfft2GjRowIIFC+jates5GRYvXsy1117LwoULuf766wGYN28eN954IydOnMDb27uc/xREpCzpzI2IGGrnzp3k5OTQrVs3/P39nbdPP/2UXbt2Ofc7u/iEhITQoEEDEhISAEhISKBTp05FXrdTp07s2LGDwsJCNmzYgMVi4ZprrikxS/PmzZ33o6KiADhy5Mhlv0cRqVgeRgcQkaotKysLgLlz5xITE1Pke15eXkUKzqXy8fEp1X6enp7O+yaTCXCMBxKRykVnbkTEUI0bN8bLy4v9+/dTt27dIre4uDjnfitWrHDeP3bsGNu3b6dRo0YANGrUiGXLlhV53WXLllG/fn0sFgvNmjXDZrMVGcMjIu5LZ25ExFABAQEMGzaMJ598EpvNRufOnUlPT2fZsmUEBgZSs2ZNAMaOHUv16tWJiIjgueeeIzQ0lFtuuQWA//znP7Rr145x48Zx5513snz5cqZOncpbb70FQHx8PAMGDOC+++7jjTfeoEWLFuzbt48jR45wxx13GPXWRaScqNyIiOHGjRtHWFgYEyZMYPfu3QQHB9O6dWueffZZ52WhiRMn8vjjj7Njxw5atmzJ999/j9VqBaB169Z88803jBo1inHjxhEVFcXYsWMZOHCg8xhvv/02zz77LA8//DBpaWnUqFGDZ5991oi3KyLlTJ+WEhGXdvqTTMeOHSM4ONjoOCJSCWjMjYiIiLgVlRsRERFxK7osJSIiIm5FZ25ERETErajciIiIiFtRuRERERG3onIjIiIibkXlRkRERNyKyo2IiIi4FZUbERERcSsqNyIiIuJWVG5ERETErfw/FSChDRblmLYAAAAASUVORK5CYII=\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "##**Accuracy of the model on test data**" + ], + "metadata": { + "id": "-vj7sV97L2-w" + } + }, + { + "cell_type": "code", + "source": [ + "loss,accuracy=model.evaluate(X_test_std,Y_test)\n", + "print(accuracy)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "96w6x0qtL5-w", + "outputId": "7dcb237d-dd5c-49ca-d81e-718866569cd3" + }, + "execution_count": 29, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\u001b[1m4/4\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9529 - loss: 0.1364 \n", + "0.9473684430122375\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "print(X_test_std.shape)\n", + "print(X_test_std[0])" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "RusDaCzqObG7", + "outputId": "1d6baa04-d162-47ad-dea1-a01d6ecc7bc2" + }, + "execution_count": 30, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "(114, 30)\n", + "[-0.04462793 -1.41612656 -0.05903514 -0.16234067 2.0202457 -0.11323672\n", + " 0.18500609 0.47102419 0.63336386 0.26335737 0.53209124 2.62763999\n", + " 0.62351167 0.11405261 1.01246781 0.41126289 0.63848593 2.88971815\n", + " -0.41675911 0.74270853 -0.32983699 -1.67435595 -0.36854552 -0.38767294\n", + " 0.32655007 -0.74858917 -0.54689089 -0.18278004 -1.23064515 -0.6268286 ]\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "Y_pred=model.predict(X_test_std)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "oEY126UrPiBQ", + "outputId": "f3f29157-3367-404f-fb29-9654a544413c" + }, + "execution_count": 31, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\u001b[1m4/4\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 12ms/step\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "print(Y_pred.shape)\n", + "print(Y_pred[0])" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "RsfqQF_DPvCH", + "outputId": "e8b4ee62-95a2-4cf1-a82e-df998113d032" + }, + "execution_count": 32, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "(114, 2)\n", + "[0.14741068 0.38797656]\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "print(X_test_std)\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "W-liSqxSQFcH", + "outputId": "fb72782c-9575-4545-8843-380a1bead062" + }, + "execution_count": 33, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[[-0.04462793 -1.41612656 -0.05903514 ... -0.18278004 -1.23064515\n", + " -0.6268286 ]\n", + " [ 0.24583601 -0.06219797 0.21802678 ... 0.54129749 0.11047691\n", + " 0.0483572 ]\n", + " [-1.26115925 -0.29051645 -1.26499659 ... -1.35138617 0.269338\n", + " -0.28231213]\n", + " ...\n", + " [ 0.72709489 0.45836817 0.75277276 ... 1.46701686 1.19909344\n", + " 0.65319961]\n", + " [ 0.25437907 1.33054477 0.15659489 ... -1.29043534 -2.22561725\n", + " -1.59557344]\n", + " [ 0.84100232 -0.06676434 0.8929529 ... 2.15137705 0.35629355\n", + " 0.37459546]]\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "print(Y_pred)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "zG1k9lnnQZGo", + "outputId": "a2915c69-f2de-470b-b3a0-6f4029fdee0e" + }, + "execution_count": 34, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[[1.47410676e-01 3.87976557e-01]\n", + " [3.56368840e-01 5.18990397e-01]\n", + " [8.17896351e-02 8.88861656e-01]\n", + " [9.79850113e-01 1.42635719e-04]\n", + " [4.96069491e-01 6.40939593e-01]\n", + " [8.14233422e-01 6.70213718e-03]\n", + " [3.58982205e-01 7.74345934e-01]\n", + " [5.15166633e-02 8.40561211e-01]\n", + " [1.74263716e-01 8.45038652e-01]\n", + " [6.91979751e-02 7.60101020e-01]\n", + " [3.42772096e-01 4.71939981e-01]\n", + " [1.95462808e-01 7.80927837e-01]\n", + " [1.25622064e-01 6.79924786e-01]\n", + " [2.36827940e-01 6.47520542e-01]\n", + " [1.73515439e-01 8.83262813e-01]\n", + " [4.54495728e-01 1.66123912e-01]\n", + " [7.14207590e-02 8.00487936e-01]\n", + " [6.75703362e-02 8.28172982e-01]\n", + " [2.72525311e-01 8.96298707e-01]\n", + " [7.55281687e-01 2.12847684e-02]\n", + " [1.47410437e-01 9.35346961e-01]\n", + " [9.94631127e-02 7.20759630e-01]\n", + " [4.91060726e-02 8.04541647e-01]\n", + " [8.06859136e-02 8.15190315e-01]\n", + " [2.09953293e-01 7.70186722e-01]\n", + " [6.55250907e-01 5.24848960e-02]\n", + " [2.43628517e-01 6.16564453e-01]\n", + " [4.06237453e-01 5.81755459e-01]\n", + " [5.53256810e-01 2.01370031e-01]\n", + " [6.15948796e-01 4.13672999e-02]\n", + " [1.16955131e-01 6.92455769e-01]\n", + " [1.51835799e-01 8.64175141e-01]\n", + " [1.24892898e-01 7.96837449e-01]\n", + " [9.04566705e-01 5.27114794e-03]\n", + " [8.14052641e-01 6.10142201e-03]\n", + " [1.88847557e-01 5.20085216e-01]\n", + " [1.81938075e-02 7.41403461e-01]\n", + " [1.32157281e-01 5.95606744e-01]\n", + " [5.96628413e-02 8.23325336e-01]\n", + " [1.47057727e-01 8.43396306e-01]\n", + " [9.35085654e-01 1.44123638e-04]\n", + " [5.91420591e-01 3.30836058e-01]\n", + " [1.11651914e-02 3.28211099e-01]\n", + " [1.45664781e-01 8.49537253e-01]\n", + " [7.84874499e-01 2.68248767e-01]\n", + " [1.06081858e-01 8.27520132e-01]\n", + " [1.39571577e-01 9.38089669e-01]\n", + " [7.81977326e-02 8.93882036e-01]\n", + " [7.27857172e-01 7.77330920e-02]\n", + " [6.97005391e-01 5.91000989e-02]\n", + " [8.95728841e-02 8.02264571e-01]\n", + " [5.06602407e-01 2.13011101e-01]\n", + " [2.15893194e-01 2.28696615e-01]\n", + " [1.61636800e-01 8.08854222e-01]\n", + " [1.56091899e-01 8.99078488e-01]\n", + " [4.92944956e-01 5.16029596e-01]\n", + " [6.48338497e-02 5.45135736e-01]\n", + " [1.78481624e-01 9.69128191e-01]\n", + " [9.21820045e-01 1.14284776e-01]\n", + " [2.61452436e-01 9.00870383e-01]\n", + " [4.22357112e-01 6.79449975e-01]\n", + " [6.07607543e-01 9.39280689e-02]\n", + " [8.62012133e-02 8.36352408e-01]\n", + " [8.70399535e-01 1.47698363e-02]\n", + " [5.99702358e-01 1.65063500e-01]\n", + " [4.22271132e-01 5.33653498e-01]\n", + " [7.64765203e-01 1.51314465e-02]\n", + " [7.66184628e-01 1.50238648e-01]\n", + " [1.09157279e-01 3.24450940e-01]\n", + " [7.32976854e-01 7.75116324e-01]\n", + " [3.81087363e-01 1.50774464e-01]\n", + " [8.12568367e-01 6.42300993e-02]\n", + " [1.74612567e-01 8.76205683e-01]\n", + " [6.64195657e-01 1.78310886e-01]\n", + " [7.17609152e-02 8.92448843e-01]\n", + " [7.36038983e-01 1.04945749e-01]\n", + " [1.13246948e-01 8.52887630e-01]\n", + " [1.04686759e-01 8.94683838e-01]\n", + " [3.51051062e-01 7.63631940e-01]\n", + " [6.78609431e-01 2.62374759e-01]\n", + " [6.50655091e-01 8.00860301e-03]\n", + " [6.48401082e-01 1.13665223e-01]\n", + " [8.12505901e-01 1.40899057e-02]\n", + " [2.30170950e-01 7.72276759e-01]\n", + " [1.94433168e-01 7.50467658e-01]\n", + " [2.81481236e-01 2.52196819e-01]\n", + " [8.14478621e-02 8.66267025e-01]\n", + " [1.68887153e-01 8.68300676e-01]\n", + " [2.58163542e-01 7.41350114e-01]\n", + " [9.00962114e-01 7.07493536e-03]\n", + " [1.71535254e-01 8.94580781e-01]\n", + " [8.60500559e-02 4.98417109e-01]\n", + " [7.70302266e-02 8.14002991e-01]\n", + " [2.99079001e-01 1.51752317e-02]\n", + " [4.85344589e-01 1.63270041e-01]\n", + " [3.15282047e-01 7.90184855e-01]\n", + " [7.73902416e-01 9.64527391e-03]\n", + " [8.32077622e-01 2.17362903e-02]\n", + " [9.52037871e-02 5.96800566e-01]\n", + " [7.02848956e-02 8.72986794e-01]\n", + " [3.64694707e-02 8.88887167e-01]\n", + " [6.98904574e-01 1.97382331e-01]\n", + " [7.88161755e-01 9.52440128e-03]\n", + " [9.00099695e-01 1.46035792e-03]\n", + " [9.61634889e-02 6.85296476e-01]\n", + " [6.86309040e-02 9.09845293e-01]\n", + " [4.61889878e-02 8.18597913e-01]\n", + " [9.97853130e-02 9.15630996e-01]\n", + " [1.42511884e-02 9.90459144e-01]\n", + " [2.43416041e-01 5.43159842e-01]\n", + " [5.98811209e-01 1.38111971e-02]\n", + " [9.04361248e-01 2.83507463e-02]\n", + " [2.89724588e-01 4.72831637e-01]\n", + " [7.61420429e-01 6.33765683e-02]]\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "model.predict() gives the prediction probability of each class for that datapoint" + ], + "metadata": { + "id": "tAJ2sU_bQld1" + } + }, + { + "cell_type": "code", + "source": [ + "# argmax function\n", + "my_list=[0.25,0.56]\n", + "\n", + "index_of_max_value=np.argmax(my_list)\n", + "print(my_list)\n", + "print(index_of_max_value)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Uinuyosl1bbV", + "outputId": "a20d7410-6efd-4568-f863-6934859723da" + }, + "execution_count": 38, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[0.25, 0.56]\n", + "1\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# converting the prediction probability to class labels\n", + "Y_pred_labels=[np.argmax(i) for i in Y_pred]\n", + "print(Y_pred_labels)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "9AmxrS7B3k6F", + "outputId": "8ff717c7-3c3d-4573-c8cb-c52346ac3c35" + }, + "execution_count": 40, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0]\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "##**Building the predictive system**" + ], + "metadata": { + "id": "FxbFQJt84j2K" + } + }, + { + "cell_type": "code", + "source": [ + "input_data=(11.76,21.6,74.72,427.9,0.08637,0.04966,0.01657,0.01115,0.1495,0.05888,0.4062,1.21,2.635,28.47,0.005857,0.009758,0.01168,0.007445,0.02406,0.001769,12.98,25.72,82.98,516.5,0.1085,0.08615,0.05523,0.03715,0.2433,0.06563)\n", + "\n", + "# change the input data to a numpy array\n", + "input_data_as_numpy_array=np.asarray(input_data)\n", + "\n", + "# reshape the numpy array as we are predicting for one data point\n", + "input_data_reshaped=input_data_as_numpy_array.reshape(1,-1)\n", + "\n", + "#standardizing the input data\n", + "input_data_std=scaler.transform(input_data_reshaped)\n", + "\n", + "prediction=model.predict(input_data_std)\n", + "print(prediction)\n", + "\n", + "prediction_label=[np.argmax(prediction)]\n", + "print(prediction_label)\n", + "\n", + "if(prediction_label[0]==0):\n", + " print('The tumor is Malignant')\n", + "else:\n", + " print('The tumor is Benign')" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "GoOQ6rOG4gs_", + "outputId": "a83949d0-158e-4ec8-e443-c9254ee2ca34" + }, + "execution_count": 41, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 40ms/step\n", + "[[0.09100164 0.721266 ]]\n", + "[1]\n", + "The tumor is Benign\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "/usr/local/lib/python3.10/dist-packages/sklearn/base.py:493: UserWarning: X does not have valid feature names, but StandardScaler was fitted with feature names\n", + " warnings.warn(\n" + ] + } + ] + } + ] +} \ No newline at end of file