├── Artificial Neural Network Workshop Study.ppt ├── ML_Study_Jam ├── ANN │ ├── moore.csv │ └── Linear_Regression_using_keras_and_tf.ipynb └── Computer_Vision │ └── Fashion_MNIST_with_CNN.ipynb └── README.md /Artificial Neural Network Workshop Study.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GDG-OnCampusTMSL/ML-Study-Jams-2023/HEAD/Artificial Neural Network Workshop Study.ppt -------------------------------------------------------------------------------- /ML_Study_Jam/ANN/moore.csv: -------------------------------------------------------------------------------- 1 | 1971,2300 2 | 1972,3500 3 | 1973,2500 4 | 1973,2500 5 | 1974,4100 6 | 1974,4500 7 | 1974,8000 8 | 1975,3510 9 | 1976,5000 10 | 1976,8500 11 | 1976,6500 12 | 1978,9000 13 | 1978,29000 14 | 1979,17500 15 | 1979,29000 16 | 1979,68000 17 | 1981,11500 18 | 1982,55000 19 | 1982,134000 20 | 1983,22000 21 | 1984,63000 22 | 1984,190000 23 | 1985,275000 24 | 1985,25000 25 | 1985,16000 26 | 1986,110000 27 | 1986,375000 28 | 1986,30000 29 | 1987,385000 30 | 1987,730000 31 | 1987,273000 32 | 1987,553000 33 | 1988,180000 34 | 1988,250000 35 | 1989,600000 36 | 1989,1000000 37 | 1989,1180235 38 | 1989,310000 39 | 1990,1200000 40 | 1991,1350000 41 | 1991,35000 42 | 1992,600000 43 | 1992,900000 44 | 1993,2800000 45 | 1993,3100000 46 | 1994,578977 47 | 1994,2500000 48 | 1995,2500000 49 | 1999,111000 50 | 1995,5500000 51 | 1996,4300000 52 | 1997,10000000 53 | 1997,7500000 54 | 1997,8800000 55 | 1998,7500000 56 | 1999,9500000 57 | 1999,13500000 58 | 2000,21000000 59 | 2000,21000000 60 | 1999,27400000 61 | 1999,21300000 62 | 1999,22000000 63 | 2000,42000000 64 | 2001,191000000 65 | 2001,45000000 66 | 2002,55000000 67 | 2004,112000000 68 | 2004,400000000 69 | 2005,169000000 70 | 2006,184000000 71 | 2005,228000000 72 | 2006,362000000 73 | 2007,540000000 74 | 2008,47000000 75 | 2003,54300000 76 | 2003,105900000 77 | 2002,220000000 78 | 2005,165000000 79 | 2005,250000000 80 | 2006,291000000 81 | 2007,169000000 82 | 2003,410000000 83 | 2008,600000000 84 | 2009,760000000 85 | 2011,1870000000 86 | 2012,432000000 87 | 2007,463000000 88 | 2007,26000000 89 | 2008,230000000 90 | 2004,592000000 91 | 2007,411000000 92 | 2008,731000000 93 | 2008,758000000 94 | 2007,789000000 95 | 2009,904000000 96 | 2010,1000000000 97 | 2012,2990000000 98 | 2013,1000000000 99 | 2011,1160000000 100 | 2010,1170000000 101 | 2010,1200000000 102 | 2012,1200000000 103 | 2012,1303000000 104 | 2010,1400000000 105 | 2012,1400000000 106 | 2014,1400000000 107 | 2006,1700000000 108 | 2015,1750000000 109 | 2013,1860000000 110 | 2015,1900000000 111 | 2008,1900000000 112 | 2010,2000000000 113 | 2014,2000000000 114 | 2015,2000000000 115 | 2015,3000000000 116 | 2012,2100000000 117 | 2011,2270000000 118 | 2010,2300000000 119 | 2014,2600000000 120 | 2011,2600000000 121 | 2012,2750000000 122 | 2014,3000000000 123 | 2016,3000000000 124 | 2017,5300000000 125 | 2017,5300000000 126 | 2018,8500000000 127 | 2012,3100000000 128 | 2016,3200000000 129 | 2016,3300000000 130 | 2015,3990000000 131 | 2013,4200000000 132 | 2017,4300000000 133 | 2014,4310000000 134 | 2017,4800000000 135 | 2017,4800000000 136 | 2017,4800000000 137 | 2012,5000000000 138 | 2013,5000000000 139 | 2014,5560000000 140 | 2017,6100000000 141 | 2018,6900000000 142 | 2016,4000000000 143 | 2018,6900000000 144 | 2017,5500000000 145 | 2018,5500000000 146 | 2017,7000000000 147 | 2015,7100000000 148 | 2017,8000000000 149 | 2016,7200000000 150 | 2017,8000000000 151 | 2016,8000000000 152 | 2017,9700000000 153 | 2017,250000000 154 | 2015,10000000000 155 | 2017,5450000000 156 | 2018,10000000000 157 | 2017,4300000000 158 | 2017,18000000000 159 | 2017,19200000000 160 | 2018,8876000000 161 | 2018,23600000000 162 | 2018,9000000000 163 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # :star: Welcome to GDSC-TMSL's ML Study Jams 2023! :star: 2 | 3 | Hello everyone! A very warm welcome to the ML Study Jams 2023. This is the repository for all the resources that we create and learn from during our ML Study Jams program. And this README is a guide for the students to get familiar with the material as well as use the GitHub website to access resources and ask doubts. 4 | 5 | 6 | Download or click on the pdf file to view the notes for the session. 7 | 8 | - [Day 01](https://github.com/GDSC-TMSL/ML-Study-Jams-2023) 9 | 10 | ## Roadmap 11 | 12 | The roadmap for the event is as follows: 13 | 14 | - Introduction to MACHINE LEARNING [Kaggle Course Link](https://www.kaggle.com/learn/intro-to-machine-learning) 15 | - Intermidiate machine learning [Kaggle Course Link](https://www.kaggle.com/learn/intermediate-machine-learning) 16 | - Introduction to deep learning [Kaggle Course Link](https://www.kaggle.com/learn/intro-to-deep-learning) 17 | - Computer vision [Kaggle Course Link](https://www.kaggle.com/learn/computer-vision) 18 | - Advanced SQL [Kaggle Course Link](https://www.kaggle.com/learn/advanced-sql) 19 | - Feature engineering [Kaggle Course Link](https://www.kaggle.com/learn/feature-engineering) 20 | - Time series [Kaggle Course Link](https://www.kaggle.com/learn/time-series) 21 | - Introduction to AI ethics [Kaggle Course Link](https://www.kaggle.com/learn/intro-to-ai-ethics) 22 | 23 |
24 | 25 | ###
COMPLETE ALL THE ABOVE 8 COURSES BY 30 APRIL 2023 TO RECEIVE A CERTIFICATE OF COMPLETION FROM GDSC TMSL
26 | 27 | 28 | 29 | 30 |
31 | 32 | ## Kaggle course links 33 | 34 | The Kaggle links are provided in the roadmap above. 35 | 36 | ## Creating a Kaggle account 37 | 38 | Here is a step by step guide on how to register an account and create a profile on Kaggle. Please remember that Kaggle only allows one profile per user. 39 | 40 | 1. Go to the Kaggle website and click on sign up section. 41 | 42 | 2. Setup your Kaggle profile by providing a brief bio, picture, location, title and current workplace. You can also add your LinkedIn, GitHub and Facebook accounts so people can contact you. 43 | 44 | Joining Kaggle is a straightforward process that requires very little time and effort. As a Kaggler, you have access to unlimited data sets, Kaggle competitions, and the Kaggle discussion forum. You can also follow strong Kaggle users to learn from. 45 | 46 | **P.S. You will have to create a Kaggle account to complete the free courses and at the end of the program, please share your Kaggle profiles in a Google form that will be shared later on to guarantee your GDSC certifications** 47 | 48 | 49 | ## FAQs 50 | 51 | **Q1. How long will this event last?** 52 | 53 | A. This event is planned to last 4 weeks. 54 | 55 | **Q2. How will I get my certificates?** 56 | 57 | A. After the completion of a course on Kaggle, 58 | 59 | For the Kaggle certificates, 60 | You can find your certificates by navigating to the Courses homepage: [https://www.kaggle.com/learn](https://www.kaggle.com/learn). 61 | 62 | - Click on the **[Your Completed]** tab. 63 | - Use the **[View Certificate]** button to get your certificate! 64 | 65 | If you'd like to share the certificate with your social network, you can begin by downloading the image with the **[Download certificate]** button that appears at the bottom of your certificate. 66 | 67 | You will get a certificate for each course that you complete and all the courses are free. 68 | 69 | **For the GDSC certificate**, after the completion of all four weeks, you will be asked to submit your Kaggle profile links in a Google form that will be shared later and you will get **a certificate** verifying your participation in the event. 70 | 71 | ------------ 72 | 73 | #### P.S. In case you use this repository and any material here is of some help to you, it is a kind request to star it as that will help us grow and reach out to a larger audience group. :heart: 74 | Thank you. Happy learning with GDSC TMSL :smiley: 75 | 76 | ----------- 77 | -------------------------------------------------------------------------------- /ML_Study_Jam/Computer_Vision/Fashion_MNIST_with_CNN.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "provenance": [] 7 | }, 8 | "kernelspec": { 9 | "name": "python3", 10 | "display_name": "Python 3" 11 | }, 12 | "language_info": { 13 | "name": "python" 14 | }, 15 | "accelerator": "GPU", 16 | "gpuClass": "standard" 17 | }, 18 | "cells": [ 19 | { 20 | "cell_type": "markdown", 21 | "source": [ 22 | "# **Multi-Class classification on fashion Mnist dataset using CNN model**\n", 23 | "\n", 24 | "Contributed by Sayak Bhattacharya\n", 25 | "\n", 26 | "Github [GDSC TMSL ML WORKSHOP 2023](https://github.com/GDSC-TMSL/ML-Study-Jams-2023/tree/main/ML_Study_Jam/Computer_Vision)" 27 | ], 28 | "metadata": { 29 | "id": "ikXIBK_dfqv3" 30 | } 31 | }, 32 | { 33 | "cell_type": "code", 34 | "execution_count": null, 35 | "metadata": { 36 | "id": "nsYflcz5-thG" 37 | }, 38 | "outputs": [], 39 | "source": [ 40 | "import tensorflow as tf\n", 41 | "import matplotlib.pyplot as plt\n", 42 | "import numpy as np\n", 43 | "import pandas as pd\n", 44 | "\n", 45 | "from tensorflow.keras.layers import Input, Conv2D, Dense, Flatten, Dropout\n", 46 | "from tensorflow.keras.models import Model" 47 | ] 48 | }, 49 | { 50 | "cell_type": "markdown", 51 | "source": [ 52 | "## **Classifying Fashion MNIST classes by building a DL model with Keras functional API**" 53 | ], 54 | "metadata": { 55 | "id": "v-nnoXKCAGyV" 56 | } 57 | }, 58 | { 59 | "cell_type": "code", 60 | "source": [ 61 | "#Loading in the data from Keras's datasets\n", 62 | "\n", 63 | "fashion_mnist = tf.keras.datasets.fashion_mnist\n", 64 | "\n", 65 | "(x_train, y_train), (x_test, y_test) = fashion_mnist.load_data()\n", 66 | "x_train, x_test = x_train / 255.0, x_test / 255.0\n", 67 | "print(\"Training Dataset size: \",x_train.shape)" 68 | ], 69 | "metadata": { 70 | "colab": { 71 | "base_uri": "https://localhost:8080/" 72 | }, 73 | "id": "L41KTmHaAghc", 74 | "outputId": "db3861f7-b3fb-435b-d2ca-a2bc7a281f8e" 75 | }, 76 | "execution_count": null, 77 | "outputs": [ 78 | { 79 | "output_type": "stream", 80 | "name": "stdout", 81 | "text": [ 82 | "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-labels-idx1-ubyte.gz\n", 83 | "29515/29515 [==============================] - 0s 0us/step\n", 84 | "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-images-idx3-ubyte.gz\n", 85 | "26421880/26421880 [==============================] - 0s 0us/step\n", 86 | "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-labels-idx1-ubyte.gz\n", 87 | "5148/5148 [==============================] - 0s 0us/step\n", 88 | "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-images-idx3-ubyte.gz\n", 89 | "4422102/4422102 [==============================] - 0s 0us/step\n", 90 | "Training Dataset size: (60000, 28, 28)\n" 91 | ] 92 | } 93 | ] 94 | }, 95 | { 96 | "cell_type": "markdown", 97 | "source": [ 98 | "### **As we can see from the above Training dataset dimensions, there are only 3 dimensions of the form N * W * H, but, for training a CNN, we need data of the dimension N * W * H * C (No. of training examples, Width, Height, Colour Channel)** " 99 | ], 100 | "metadata": { 101 | "id": "5hJGQc06CUjd" 102 | } 103 | }, 104 | { 105 | "cell_type": "code", 106 | "source": [ 107 | "# Adding 1 extra dimension in training and testing set\n", 108 | "\n", 109 | "x_train = np.expand_dims(x_train, -1)\n", 110 | "x_test = np.expand_dims(x_test, -1)\n", 111 | "print(x_train.shape)" 112 | ], 113 | "metadata": { 114 | "id": "q-T2parIDP5t", 115 | "colab": { 116 | "base_uri": "https://localhost:8080/" 117 | }, 118 | "outputId": "505c1a6f-2c0e-4bad-fa57-6b23ce5afd8e" 119 | }, 120 | "execution_count": null, 121 | "outputs": [ 122 | { 123 | "output_type": "stream", 124 | "name": "stdout", 125 | "text": [ 126 | "(60000, 28, 28, 1)\n" 127 | ] 128 | } 129 | ] 130 | }, 131 | { 132 | "cell_type": "code", 133 | "source": [ 134 | "# Calculating no. of classes\n", 135 | "\n", 136 | "K = len(set(y_train))\n", 137 | "print('No of classes in output set is: ',K)" 138 | ], 139 | "metadata": { 140 | "id": "0hNcTn1sDsPX", 141 | "colab": { 142 | "base_uri": "https://localhost:8080/" 143 | }, 144 | "outputId": "e3b8f32b-345d-4139-cbcf-d6e999186ba4" 145 | }, 146 | "execution_count": null, 147 | "outputs": [ 148 | { 149 | "output_type": "stream", 150 | "name": "stdout", 151 | "text": [ 152 | "No of classes in output set is: 10\n" 153 | ] 154 | } 155 | ] 156 | }, 157 | { 158 | "cell_type": "code", 159 | "source": [ 160 | "# Building the model using Keras functional API\n", 161 | "\n", 162 | "i = Input(shape=x_train[0].shape)\n", 163 | "x = Conv2D(32, kernel_size=(3,3), strides=2, activation='relu')(i)\n", 164 | "x = Conv2D(64, kernel_size=(3,3), strides=2, activation='relu')(x)\n", 165 | "x = Conv2D(128, kernel_size=(3,3), strides=2, activation='relu')(x)\n", 166 | "\n", 167 | "x = Flatten()(x)\n", 168 | "x = Dropout(0.2)(x)\n", 169 | "x = Dense(512, activation='relu')(x)\n", 170 | "x = Dropout(0.2)(x)\n", 171 | "x = Dense(K, activation='softmax')(x)\n", 172 | "\n", 173 | "model = Model(i,x)" 174 | ], 175 | "metadata": { 176 | "id": "cl3bQJTZD8Ju" 177 | }, 178 | "execution_count": null, 179 | "outputs": [] 180 | }, 181 | { 182 | "cell_type": "code", 183 | "source": [ 184 | "# Compiling and fitting the Model\n", 185 | "\n", 186 | "model.compile(optimizer = 'adam',\n", 187 | " loss = 'sparse_categorical_crossentropy',\n", 188 | " metrics=['accuracy'])\n", 189 | "r = model.fit(x_train, y_train, validation_data=(x_test, y_test), epochs=15)" 190 | ], 191 | "metadata": { 192 | "id": "ro41HEESE2Pn", 193 | "colab": { 194 | "base_uri": "https://localhost:8080/" 195 | }, 196 | "outputId": "f1e2f79e-515a-4bb0-b6a8-c449a0a1d45d" 197 | }, 198 | "execution_count": null, 199 | "outputs": [ 200 | { 201 | "output_type": "stream", 202 | "name": "stdout", 203 | "text": [ 204 | "Epoch 1/15\n", 205 | "1875/1875 [==============================] - 19s 4ms/step - loss: 0.5242 - accuracy: 0.8060 - val_loss: 0.4076 - val_accuracy: 0.8442\n", 206 | "Epoch 2/15\n", 207 | "1875/1875 [==============================] - 8s 4ms/step - loss: 0.3620 - accuracy: 0.8626 - val_loss: 0.3591 - val_accuracy: 0.8642\n", 208 | "Epoch 3/15\n", 209 | "1875/1875 [==============================] - 7s 4ms/step - loss: 0.3146 - accuracy: 0.8813 - val_loss: 0.3567 - val_accuracy: 0.8647\n", 210 | "Epoch 4/15\n", 211 | "1875/1875 [==============================] - 8s 4ms/step - loss: 0.2829 - accuracy: 0.8938 - val_loss: 0.3024 - val_accuracy: 0.8880\n", 212 | "Epoch 5/15\n", 213 | "1875/1875 [==============================] - 7s 4ms/step - loss: 0.2561 - accuracy: 0.9030 - val_loss: 0.2979 - val_accuracy: 0.8908\n", 214 | "Epoch 6/15\n", 215 | "1875/1875 [==============================] - 8s 4ms/step - loss: 0.2371 - accuracy: 0.9110 - val_loss: 0.3056 - val_accuracy: 0.8886\n", 216 | "Epoch 7/15\n", 217 | "1875/1875 [==============================] - 8s 4ms/step - loss: 0.2174 - accuracy: 0.9171 - val_loss: 0.2892 - val_accuracy: 0.8948\n", 218 | "Epoch 8/15\n", 219 | "1875/1875 [==============================] - 8s 4ms/step - loss: 0.2005 - accuracy: 0.9230 - val_loss: 0.2944 - val_accuracy: 0.8989\n", 220 | "Epoch 9/15\n", 221 | "1875/1875 [==============================] - 8s 4ms/step - loss: 0.1853 - accuracy: 0.9286 - val_loss: 0.3071 - val_accuracy: 0.8969\n", 222 | "Epoch 10/15\n", 223 | "1875/1875 [==============================] - 8s 4ms/step - loss: 0.1738 - accuracy: 0.9339 - val_loss: 0.3083 - val_accuracy: 0.8988\n", 224 | "Epoch 11/15\n", 225 | "1875/1875 [==============================] - 8s 4ms/step - loss: 0.1638 - accuracy: 0.9375 - val_loss: 0.3057 - val_accuracy: 0.9002\n", 226 | "Epoch 12/15\n", 227 | "1875/1875 [==============================] - 8s 4ms/step - loss: 0.1542 - accuracy: 0.9411 - val_loss: 0.3244 - val_accuracy: 0.8986\n", 228 | "Epoch 13/15\n", 229 | "1875/1875 [==============================] - 7s 4ms/step - loss: 0.1435 - accuracy: 0.9442 - val_loss: 0.3303 - val_accuracy: 0.9008\n", 230 | "Epoch 14/15\n", 231 | "1875/1875 [==============================] - 8s 4ms/step - loss: 0.1354 - accuracy: 0.9482 - val_loss: 0.3494 - val_accuracy: 0.8952\n", 232 | "Epoch 15/15\n", 233 | "1875/1875 [==============================] - 7s 4ms/step - loss: 0.1299 - accuracy: 0.9487 - val_loss: 0.3454 - val_accuracy: 0.8999\n" 234 | ] 235 | } 236 | ] 237 | }, 238 | { 239 | "cell_type": "code", 240 | "source": [ 241 | "# Plotting loss per iteration\n", 242 | "plt.plot(r.history['loss'],label='loss')\n", 243 | "plt.plot(r.history['val_loss'],label='val_loss')\n", 244 | "plt.legend()" 245 | ], 246 | "metadata": { 247 | "id": "b5JxwrHqFw7A", 248 | "colab": { 249 | "base_uri": "https://localhost:8080/", 250 | "height": 282 251 | }, 252 | "outputId": "30d5aee6-29d5-4e5a-ee22-a3910de5e16a" 253 | }, 254 | "execution_count": null, 255 | "outputs": [ 256 | { 257 | "output_type": "execute_result", 258 | "data": { 259 | "text/plain": [ 260 | "" 261 | ] 262 | }, 263 | "metadata": {}, 264 | "execution_count": 7 265 | }, 266 | { 267 | "output_type": "display_data", 268 | "data": { 269 | "text/plain": [ 270 | "
" 271 | ], 272 | "image/png": "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\n" 273 | }, 274 | "metadata": { 275 | "needs_background": "light" 276 | } 277 | } 278 | ] 279 | }, 280 | { 281 | "cell_type": "code", 282 | "source": [ 283 | "# Plotting accuracy per iteration\n", 284 | "plt.plot(r.history['accuracy'],label='accuracy')\n", 285 | "plt.plot(r.history['val_accuracy'],label='val_accuracy')\n", 286 | "plt.legend()" 287 | ], 288 | "metadata": { 289 | "id": "mAcOS2jGHv50", 290 | "colab": { 291 | "base_uri": "https://localhost:8080/", 292 | "height": 282 293 | }, 294 | "outputId": "dd3ca0b8-0746-4829-b85b-247cc32ebe9a" 295 | }, 296 | "execution_count": null, 297 | "outputs": [ 298 | { 299 | "output_type": "execute_result", 300 | "data": { 301 | "text/plain": [ 302 | "" 303 | ] 304 | }, 305 | "metadata": {}, 306 | "execution_count": 8 307 | }, 308 | { 309 | "output_type": "display_data", 310 | "data": { 311 | "text/plain": [ 312 | "
" 313 | ], 314 | "image/png": "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\n" 315 | }, 316 | "metadata": { 317 | "needs_background": "light" 318 | } 319 | } 320 | ] 321 | }, 322 | { 323 | "cell_type": "code", 324 | "source": [ 325 | "# Evaluating our model\n", 326 | "\n", 327 | "print(model.evaluate(x_test, y_test))" 328 | ], 329 | "metadata": { 330 | "id": "QmH8kno_JHcW", 331 | "colab": { 332 | "base_uri": "https://localhost:8080/" 333 | }, 334 | "outputId": "6c2308fa-7bca-4d82-86e4-8362da9dfdfa" 335 | }, 336 | "execution_count": null, 337 | "outputs": [ 338 | { 339 | "output_type": "stream", 340 | "name": "stdout", 341 | "text": [ 342 | "313/313 [==============================] - 1s 3ms/step - loss: 0.3454 - accuracy: 0.8999\n", 343 | "[0.34543880820274353, 0.8999000191688538]\n" 344 | ] 345 | } 346 | ] 347 | }, 348 | { 349 | "cell_type": "markdown", 350 | "source": [ 351 | "## **Plotting a Confusion Matrix for the classification**" 352 | ], 353 | "metadata": { 354 | "id": "NK6roObjIxWA" 355 | } 356 | }, 357 | { 358 | "cell_type": "code", 359 | "source": [ 360 | "from sklearn.metrics import confusion_matrix\n", 361 | "import itertools\n", 362 | "\n", 363 | "def plot_confusion_matrix(cm, classes, normalize='False', title='Confusion Matrix', cmap='spring'):\n", 364 | "\n", 365 | " # This function returns a confusion matrix. Normalization can be applied by setting normalize=True\n", 366 | "\n", 367 | " if normalize:\n", 368 | " cm = cm.astype('float') / cm.sum(axis=1)[:,np.newaxis] #astype() is used to convert a pandas object to a particular datatype\n", 369 | " print('Normalized Confusion Matrix')\n", 370 | " else:\n", 371 | " print('Confusion Matrix, without normalization')\n", 372 | " \n", 373 | " print(cm)\n", 374 | "\n", 375 | " #used when display resolution and image resolution are not same(Displays the exact image)\n", 376 | " plt.imshow(cm, interpolation='nearest', cmap=cmap) \n", 377 | "\n", 378 | " plt.title(title)\n", 379 | " plt.colorbar()\n", 380 | " tick_marks = np.arange(len(classes)) # No. of tick marks generated as per the no of classes\n", 381 | " plt.xticks(tick_marks, classes, rotation=45)\n", 382 | " plt.yticks(tick_marks, classes)\n", 383 | "\n", 384 | " fmt = '.2f' if normalize else 'd'\n", 385 | " thresh = cm.max()/2.0\n", 386 | " for i,j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):\n", 387 | " plt.text(j, i, format( cm[i, j], fmt), horizontalalignment = 'center', color = 'red' if cm[i,j] > thresh else 'black')\n", 388 | "\n", 389 | " plt.tight_layout()\n", 390 | " plt.ylabel('True Label')\n", 391 | " plt.xlabel('Predicted Label')\n", 392 | " plt.show()\n", 393 | "\n", 394 | "p_test = model.predict(x_test).argmax(axis=1)\n", 395 | "cm = confusion_matrix(y_test, p_test)\n", 396 | "plot_confusion_matrix(cm, list(range(10)), False) # Sending the confusion matrix and 10 class indexes to the plot function" 397 | ], 398 | "metadata": { 399 | "colab": { 400 | "base_uri": "https://localhost:8080/", 401 | "height": 519 402 | }, 403 | "id": "fIa12AF7JBG4", 404 | "outputId": "74a5741a-5ac8-4afd-891f-e2abd87f66f8" 405 | }, 406 | "execution_count": null, 407 | "outputs": [ 408 | { 409 | "output_type": "stream", 410 | "name": "stdout", 411 | "text": [ 412 | "313/313 [==============================] - 1s 2ms/step\n", 413 | "Confusion Matrix, without normalization\n", 414 | "[[836 1 23 22 2 2 106 0 8 0]\n", 415 | " [ 5 974 0 12 2 0 3 0 4 0]\n", 416 | " [ 24 0 879 10 27 1 57 0 2 0]\n", 417 | " [ 14 3 17 922 23 0 21 0 0 0]\n", 418 | " [ 0 1 103 27 775 0 92 0 2 0]\n", 419 | " [ 1 1 0 0 0 964 0 18 1 15]\n", 420 | " [103 0 63 27 56 0 744 0 7 0]\n", 421 | " [ 0 0 0 0 0 8 0 972 0 20]\n", 422 | " [ 3 0 5 4 2 2 3 2 978 1]\n", 423 | " [ 1 0 0 0 0 4 0 40 0 955]]\n" 424 | ] 425 | }, 426 | { 427 | "output_type": "display_data", 428 | "data": { 429 | "text/plain": [ 430 | "
" 431 | ], 432 | "image/png": "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\n" 433 | }, 434 | "metadata": { 435 | "needs_background": "light" 436 | } 437 | } 438 | ] 439 | }, 440 | { 441 | "cell_type": "markdown", 442 | "source": [ 443 | "## **Showing misclassified examples**" 444 | ], 445 | "metadata": { 446 | "id": "9GP0JUfvJYpA" 447 | } 448 | }, 449 | { 450 | "cell_type": "code", 451 | "source": [ 452 | "labels = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat', 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle Boot']\n", 453 | "\n", 454 | "misclassified_idx = np.where(p_test != y_test)[0]\n", 455 | "i = np.random.choice(misclassified_idx)\n", 456 | "plt.imshow(x_test[i].reshape(28,28), cmap='gray')\n", 457 | "plt.title(f'True Label:{labels[y_test[i]]} Predicted Label:{labels[p_test[i]]}')" 458 | ], 459 | "metadata": { 460 | "colab": { 461 | "base_uri": "https://localhost:8080/", 462 | "height": 298 463 | }, 464 | "id": "fZJBB08VJrxX", 465 | "outputId": "89971308-a73c-4e66-f672-18f57abd3998" 466 | }, 467 | "execution_count": null, 468 | "outputs": [ 469 | { 470 | "output_type": "execute_result", 471 | "data": { 472 | "text/plain": [ 473 | "Text(0.5, 1.0, 'True Label:Pullover Predicted Label:T-shirt/top')" 474 | ] 475 | }, 476 | "metadata": {}, 477 | "execution_count": 12 478 | }, 479 | { 480 | "output_type": "display_data", 481 | "data": { 482 | "text/plain": [ 483 | "
" 484 | ], 485 | "image/png": "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\n" 486 | }, 487 | "metadata": { 488 | "needs_background": "light" 489 | } 490 | } 491 | ] 492 | }, 493 | { 494 | "cell_type": "code", 495 | "source": [], 496 | "metadata": { 497 | "id": "nBgh7cI4KbAI" 498 | }, 499 | "execution_count": null, 500 | "outputs": [] 501 | } 502 | ] 503 | } -------------------------------------------------------------------------------- /ML_Study_Jam/ANN/Linear_Regression_using_keras_and_tf.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "provenance": [] 7 | }, 8 | "kernelspec": { 9 | "name": "python3", 10 | "display_name": "Python 3" 11 | }, 12 | "language_info": { 13 | "name": "python" 14 | } 15 | }, 16 | "cells": [ 17 | { 18 | "cell_type": "markdown", 19 | "source": [ 20 | "# **Linear Regression on Moore's Dataset using ANN**\n", 21 | "\n", 22 | "Contributed by Sayak Bhattacharya\n", 23 | "\n", 24 | "Github [GDSC TMSL ML WORKSHOP 2023](https://github.com/GDSC-TMSL/ML-Study-Jams-2023/tree/main/ML_Study_Jam/ANN)" 25 | ], 26 | "metadata": { 27 | "id": "rCuDEkadrD9O" 28 | } 29 | }, 30 | { 31 | "cell_type": "code", 32 | "execution_count": null, 33 | "metadata": { 34 | "id": "X1bbCEps1GBS" 35 | }, 36 | "outputs": [], 37 | "source": [ 38 | "import tensorflow as tf\n", 39 | "from tensorflow import keras\n", 40 | "import numpy as np\n", 41 | "import pandas as pd\n", 42 | "import matplotlib.pyplot as plt\n", 43 | "\n", 44 | "#We will verify Moore's Law using Linear Regression" 45 | ] 46 | }, 47 | { 48 | "cell_type": "code", 49 | "source": [ 50 | "print(tf.__version__)" 51 | ], 52 | "metadata": { 53 | "colab": { 54 | "base_uri": "https://localhost:8080/" 55 | }, 56 | "id": "SD-m7ytF2Qta", 57 | "outputId": "81debade-9b71-410e-90e1-2816dc615df5" 58 | }, 59 | "execution_count": null, 60 | "outputs": [ 61 | { 62 | "output_type": "stream", 63 | "name": "stdout", 64 | "text": [ 65 | "2.8.2\n" 66 | ] 67 | } 68 | ] 69 | }, 70 | { 71 | "cell_type": "code", 72 | "source": [ 73 | "#Getting the data for the regression model\n", 74 | "from google.colab import files\n", 75 | "uploaded = files.upload()" 76 | ], 77 | "metadata": { 78 | "colab": { 79 | "resources": { 80 | "http://localhost:8080/nbextensions/google.colab/files.js": { 81 | "data": "Ly8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwovLwovLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgovLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLy8KLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLy8KLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQovLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAovLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAovLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCi8qKgogKiBAZmlsZW92ZXJ2aWV3IEhlbHBlcnMgZm9yIGdvb2dsZS5jb2xhYiBQeXRob24gbW9kdWxlLgogKi8KKGZ1bmN0aW9uKHNjb3BlKSB7CmZ1bmN0aW9uIHNwYW4odGV4dCwgc3R5bGVBdHRyaWJ1dGVzID0ge30pIHsKICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0OwogIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHN0eWxlQXR0cmlidXRlcykpIHsKICAgIGVsZW1lbnQuc3R5bGVba2V5XSA9IHN0eWxlQXR0cmlidXRlc1trZXldOwogIH0KICByZXR1cm4gZWxlbWVudDsKfQoKLy8gTWF4IG51bWJlciBvZiBieXRlcyB3aGljaCB3aWxsIGJlIHVwbG9hZGVkIGF0IGEgdGltZS4KY29uc3QgTUFYX1BBWUxPQURfU0laRSA9IDEwMCAqIDEwMjQ7CgpmdW5jdGlvbiBfdXBsb2FkRmlsZXMoaW5wdXRJZCwgb3V0cHV0SWQpIHsKICBjb25zdCBzdGVwcyA9IHVwbG9hZEZpbGVzU3RlcChpbnB1dElkLCBvdXRwdXRJZCk7CiAgY29uc3Qgb3V0cHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG91dHB1dElkKTsKICAvLyBDYWNoZSBzdGVwcyBvbiB0aGUgb3V0cHV0RWxlbWVudCB0byBtYWtlIGl0IGF2YWlsYWJsZSBmb3IgdGhlIG5leHQgY2FsbAogIC8vIHRvIHVwbG9hZEZpbGVzQ29udGludWUgZnJvbSBQeXRob24uCiAgb3V0cHV0RWxlbWVudC5zdGVwcyA9IHN0ZXBzOwoKICByZXR1cm4gX3VwbG9hZEZpbGVzQ29udGludWUob3V0cHV0SWQpOwp9CgovLyBUaGlzIGlzIHJvdWdobHkgYW4gYXN5bmMgZ2VuZXJhdG9yIChub3Qgc3VwcG9ydGVkIGluIHRoZSBicm93c2VyIHlldCksCi8vIHdoZXJlIHRoZXJlIGFyZSBtdWx0aXBsZSBhc3luY2hyb25vdXMgc3RlcHMgYW5kIHRoZSBQeXRob24gc2lkZSBpcyBnb2luZwovLyB0byBwb2xsIGZvciBjb21wbGV0aW9uIG9mIGVhY2ggc3RlcC4KLy8gVGhpcyB1c2VzIGEgUHJvbWlzZSB0byBibG9jayB0aGUgcHl0aG9uIHNpZGUgb24gY29tcGxldGlvbiBvZiBlYWNoIHN0ZXAsCi8vIHRoZW4gcGFzc2VzIHRoZSByZXN1bHQgb2YgdGhlIHByZXZpb3VzIHN0ZXAgYXMgdGhlIGlucHV0IHRvIHRoZSBuZXh0IHN0ZXAuCmZ1bmN0aW9uIF91cGxvYWRGaWxlc0NvbnRpbnVlKG91dHB1dElkKSB7CiAgY29uc3Qgb3V0cHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG91dHB1dElkKTsKICBjb25zdCBzdGVwcyA9IG91dHB1dEVsZW1lbnQuc3RlcHM7CgogIGNvbnN0IG5leHQgPSBzdGVwcy5uZXh0KG91dHB1dEVsZW1lbnQubGFzdFByb21pc2VWYWx1ZSk7CiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShuZXh0LnZhbHVlLnByb21pc2UpLnRoZW4oKHZhbHVlKSA9PiB7CiAgICAvLyBDYWNoZSB0aGUgbGFzdCBwcm9taXNlIHZhbHVlIHRvIG1ha2UgaXQgYXZhaWxhYmxlIHRvIHRoZSBuZXh0CiAgICAvLyBzdGVwIG9mIHRoZSBnZW5lcmF0b3IuCiAgICBvdXRwdXRFbGVtZW50Lmxhc3RQcm9taXNlVmFsdWUgPSB2YWx1ZTsKICAgIHJldHVybiBuZXh0LnZhbHVlLnJlc3BvbnNlOwogIH0pOwp9CgovKioKICogR2VuZXJhdG9yIGZ1bmN0aW9uIHdoaWNoIGlzIGNhbGxlZCBiZXR3ZWVuIGVhY2ggYXN5bmMgc3RlcCBvZiB0aGUgdXBsb2FkCiAqIHByb2Nlc3MuCiAqIEBwYXJhbSB7c3RyaW5nfSBpbnB1dElkIEVsZW1lbnQgSUQgb2YgdGhlIGlucHV0IGZpbGUgcGlja2VyIGVsZW1lbnQuCiAqIEBwYXJhbSB7c3RyaW5nfSBvdXRwdXRJZCBFbGVtZW50IElEIG9mIHRoZSBvdXRwdXQgZGlzcGxheS4KICogQHJldHVybiB7IUl0ZXJhYmxlPCFPYmplY3Q+fSBJdGVyYWJsZSBvZiBuZXh0IHN0ZXBzLgogKi8KZnVuY3Rpb24qIHVwbG9hZEZpbGVzU3RlcChpbnB1dElkLCBvdXRwdXRJZCkgewogIGNvbnN0IGlucHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlucHV0SWQpOwogIGlucHV0RWxlbWVudC5kaXNhYmxlZCA9IGZhbHNlOwoKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIG91dHB1dEVsZW1lbnQuaW5uZXJIVE1MID0gJyc7CgogIGNvbnN0IHBpY2tlZFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgaW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIChlKSA9PiB7CiAgICAgIHJlc29sdmUoZS50YXJnZXQuZmlsZXMpOwogICAgfSk7CiAgfSk7CgogIGNvbnN0IGNhbmNlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOwogIGlucHV0RWxlbWVudC5wYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKGNhbmNlbCk7CiAgY2FuY2VsLnRleHRDb250ZW50ID0gJ0NhbmNlbCB1cGxvYWQnOwogIGNvbnN0IGNhbmNlbFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgY2FuY2VsLm9uY2xpY2sgPSAoKSA9PiB7CiAgICAgIHJlc29sdmUobnVsbCk7CiAgICB9OwogIH0pOwoKICAvLyBXYWl0IGZvciB0aGUgdXNlciB0byBwaWNrIHRoZSBmaWxlcy4KICBjb25zdCBmaWxlcyA9IHlpZWxkIHsKICAgIHByb21pc2U6IFByb21pc2UucmFjZShbcGlja2VkUHJvbWlzZSwgY2FuY2VsUHJvbWlzZV0pLAogICAgcmVzcG9uc2U6IHsKICAgICAgYWN0aW9uOiAnc3RhcnRpbmcnLAogICAgfQogIH07CgogIGNhbmNlbC5yZW1vdmUoKTsKCiAgLy8gRGlzYWJsZSB0aGUgaW5wdXQgZWxlbWVudCBzaW5jZSBmdXJ0aGVyIHBpY2tzIGFyZSBub3QgYWxsb3dlZC4KICBpbnB1dEVsZW1lbnQuZGlzYWJsZWQgPSB0cnVlOwoKICBpZiAoIWZpbGVzKSB7CiAgICByZXR1cm4gewogICAgICByZXNwb25zZTogewogICAgICAgIGFjdGlvbjogJ2NvbXBsZXRlJywKICAgICAgfQogICAgfTsKICB9CgogIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykgewogICAgY29uc3QgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOwogICAgbGkuYXBwZW5kKHNwYW4oZmlsZS5uYW1lLCB7Zm9udFdlaWdodDogJ2JvbGQnfSkpOwogICAgbGkuYXBwZW5kKHNwYW4oCiAgICAgICAgYCgke2ZpbGUudHlwZSB8fCAnbi9hJ30pIC0gJHtmaWxlLnNpemV9IGJ5dGVzLCBgICsKICAgICAgICBgbGFzdCBtb2RpZmllZDogJHsKICAgICAgICAgICAgZmlsZS5sYXN0TW9kaWZpZWREYXRlID8gZmlsZS5sYXN0TW9kaWZpZWREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ24vYSd9IC0gYCkpOwogICAgY29uc3QgcGVyY2VudCA9IHNwYW4oJzAlIGRvbmUnKTsKICAgIGxpLmFwcGVuZENoaWxkKHBlcmNlbnQpOwoKICAgIG91dHB1dEVsZW1lbnQuYXBwZW5kQ2hpbGQobGkpOwoKICAgIGNvbnN0IGZpbGVEYXRhUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CiAgICAgIHJlYWRlci5vbmxvYWQgPSAoZSkgPT4gewogICAgICAgIHJlc29sdmUoZS50YXJnZXQucmVzdWx0KTsKICAgICAgfTsKICAgICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGUpOwogICAgfSk7CiAgICAvLyBXYWl0IGZvciB0aGUgZGF0YSB0byBiZSByZWFkeS4KICAgIGxldCBmaWxlRGF0YSA9IHlpZWxkIHsKICAgICAgcHJvbWlzZTogZmlsZURhdGFQcm9taXNlLAogICAgICByZXNwb25zZTogewogICAgICAgIGFjdGlvbjogJ2NvbnRpbnVlJywKICAgICAgfQogICAgfTsKCiAgICAvLyBVc2UgYSBjaHVua2VkIHNlbmRpbmcgdG8gYXZvaWQgbWVzc2FnZSBzaXplIGxpbWl0cy4gU2VlIGIvNjIxMTU2NjAuCiAgICBsZXQgcG9zaXRpb24gPSAwOwogICAgZG8gewogICAgICBjb25zdCBsZW5ndGggPSBNYXRoLm1pbihmaWxlRGF0YS5ieXRlTGVuZ3RoIC0gcG9zaXRpb24sIE1BWF9QQVlMT0FEX1NJWkUpOwogICAgICBjb25zdCBjaHVuayA9IG5ldyBVaW50OEFycmF5KGZpbGVEYXRhLCBwb3NpdGlvbiwgbGVuZ3RoKTsKICAgICAgcG9zaXRpb24gKz0gbGVuZ3RoOwoKICAgICAgY29uc3QgYmFzZTY0ID0gYnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIGNodW5rKSk7CiAgICAgIHlpZWxkIHsKICAgICAgICByZXNwb25zZTogewogICAgICAgICAgYWN0aW9uOiAnYXBwZW5kJywKICAgICAgICAgIGZpbGU6IGZpbGUubmFtZSwKICAgICAgICAgIGRhdGE6IGJhc2U2NCwKICAgICAgICB9LAogICAgICB9OwoKICAgICAgbGV0IHBlcmNlbnREb25lID0gZmlsZURhdGEuYnl0ZUxlbmd0aCA9PT0gMCA/CiAgICAgICAgICAxMDAgOgogICAgICAgICAgTWF0aC5yb3VuZCgocG9zaXRpb24gLyBmaWxlRGF0YS5ieXRlTGVuZ3RoKSAqIDEwMCk7CiAgICAgIHBlcmNlbnQudGV4dENvbnRlbnQgPSBgJHtwZXJjZW50RG9uZX0lIGRvbmVgOwoKICAgIH0gd2hpbGUgKHBvc2l0aW9uIDwgZmlsZURhdGEuYnl0ZUxlbmd0aCk7CiAgfQoKICAvLyBBbGwgZG9uZS4KICB5aWVsZCB7CiAgICByZXNwb25zZTogewogICAgICBhY3Rpb246ICdjb21wbGV0ZScsCiAgICB9CiAgfTsKfQoKc2NvcGUuZ29vZ2xlID0gc2NvcGUuZ29vZ2xlIHx8IHt9OwpzY29wZS5nb29nbGUuY29sYWIgPSBzY29wZS5nb29nbGUuY29sYWIgfHwge307CnNjb3BlLmdvb2dsZS5jb2xhYi5fZmlsZXMgPSB7CiAgX3VwbG9hZEZpbGVzLAogIF91cGxvYWRGaWxlc0NvbnRpbnVlLAp9Owp9KShzZWxmKTsK", 82 | "ok": true, 83 | "headers": [ 84 | [ 85 | "content-type", 86 | "application/javascript" 87 | ] 88 | ], 89 | "status": 200, 90 | "status_text": "" 91 | } 92 | }, 93 | "base_uri": "https://localhost:8080/", 94 | "height": 38 95 | }, 96 | "id": "soQL49Zs2bB8", 97 | "outputId": "208b3290-beca-49aa-f2d7-698a5393329a" 98 | }, 99 | "execution_count": null, 100 | "outputs": [ 101 | { 102 | "output_type": "display_data", 103 | "data": { 104 | "text/plain": [ 105 | "" 106 | ], 107 | "text/html": [ 108 | "\n", 109 | " \n", 111 | " \n", 112 | " Upload widget is only available when the cell has been executed in the\n", 113 | " current browser session. Please rerun this cell to enable.\n", 114 | " \n", 115 | " " 116 | ] 117 | }, 118 | "metadata": {} 119 | } 120 | ] 121 | }, 122 | { 123 | "cell_type": "code", 124 | "source": [ 125 | "!ls" 126 | ], 127 | "metadata": { 128 | "colab": { 129 | "base_uri": "https://localhost:8080/" 130 | }, 131 | "id": "YK8lurRO5MPG", 132 | "outputId": "981c2deb-e858-4b5c-c471-67e74aac24a7" 133 | }, 134 | "execution_count": null, 135 | "outputs": [ 136 | { 137 | "output_type": "stream", 138 | "name": "stdout", 139 | "text": [ 140 | "moore.csv sample_data\n" 141 | ] 142 | } 143 | ] 144 | }, 145 | { 146 | "cell_type": "code", 147 | "source": [ 148 | "data = pd.read_csv('moore.csv',header=None)" 149 | ], 150 | "metadata": { 151 | "id": "HTMMFpy52puL" 152 | }, 153 | "execution_count": null, 154 | "outputs": [] 155 | }, 156 | { 157 | "cell_type": "code", 158 | "source": [ 159 | "data.head()" 160 | ], 161 | "metadata": { 162 | "colab": { 163 | "base_uri": "https://localhost:8080/", 164 | "height": 206 165 | }, 166 | "id": "BrPpVjbN3ZN2", 167 | "outputId": "c4031660-9a9c-4cd9-8a1c-c10d7e2adafa" 168 | }, 169 | "execution_count": null, 170 | "outputs": [ 171 | { 172 | "output_type": "execute_result", 173 | "data": { 174 | "text/plain": [ 175 | " 0 1\n", 176 | "0 1971 2300\n", 177 | "1 1972 3500\n", 178 | "2 1973 2500\n", 179 | "3 1973 2500\n", 180 | "4 1974 4100" 181 | ], 182 | "text/html": [ 183 | "\n", 184 | "
\n", 185 | "
\n", 186 | "
\n", 187 | "\n", 200 | "\n", 201 | " \n", 202 | " \n", 203 | " \n", 204 | " \n", 205 | " \n", 206 | " \n", 207 | " \n", 208 | " \n", 209 | " \n", 210 | " \n", 211 | " \n", 212 | " \n", 213 | " \n", 214 | " \n", 215 | " \n", 216 | " \n", 217 | " \n", 218 | " \n", 219 | " \n", 220 | " \n", 221 | " \n", 222 | " \n", 223 | " \n", 224 | " \n", 225 | " \n", 226 | " \n", 227 | " \n", 228 | " \n", 229 | " \n", 230 | " \n", 231 | " \n", 232 | " \n", 233 | " \n", 234 | " \n", 235 | "
01
019712300
119723500
219732500
319732500
419744100
\n", 236 | "
\n", 237 | " \n", 247 | " \n", 248 | " \n", 285 | "\n", 286 | " \n", 310 | "
\n", 311 | "
\n", 312 | " " 313 | ] 314 | }, 315 | "metadata": {}, 316 | "execution_count": 98 317 | } 318 | ] 319 | }, 320 | { 321 | "cell_type": "code", 322 | "source": [ 323 | "## Counting no.of null values in entire dataframe\n", 324 | "data.isna().sum().sum()" 325 | ], 326 | "metadata": { 327 | "colab": { 328 | "base_uri": "https://localhost:8080/" 329 | }, 330 | "id": "37FyNI4u6SSW", 331 | "outputId": "e92e0ad1-74ad-4242-b5ca-8646e61298de" 332 | }, 333 | "execution_count": null, 334 | "outputs": [ 335 | { 336 | "output_type": "execute_result", 337 | "data": { 338 | "text/plain": [ 339 | "0" 340 | ] 341 | }, 342 | "metadata": {}, 343 | "execution_count": 99 344 | } 345 | ] 346 | }, 347 | { 348 | "cell_type": "code", 349 | "source": [ 350 | "# Removing all null values from dataframe if any\n", 351 | "data = data.dropna(axis=0)" 352 | ], 353 | "metadata": { 354 | "id": "grj4bOJX67WL" 355 | }, 356 | "execution_count": null, 357 | "outputs": [] 358 | }, 359 | { 360 | "cell_type": "code", 361 | "source": [ 362 | "data.info()\n", 363 | "data.isna().sum().sum()" 364 | ], 365 | "metadata": { 366 | "colab": { 367 | "base_uri": "https://localhost:8080/" 368 | }, 369 | "id": "2QK3vuFB7FNu", 370 | "outputId": "6e81f1ad-88eb-485d-eb50-75fccc3629e0" 371 | }, 372 | "execution_count": null, 373 | "outputs": [ 374 | { 375 | "output_type": "stream", 376 | "name": "stdout", 377 | "text": [ 378 | "\n", 379 | "Int64Index: 162 entries, 0 to 161\n", 380 | "Data columns (total 2 columns):\n", 381 | " # Column Non-Null Count Dtype\n", 382 | "--- ------ -------------- -----\n", 383 | " 0 0 162 non-null int64\n", 384 | " 1 1 162 non-null int64\n", 385 | "dtypes: int64(2)\n", 386 | "memory usage: 3.8 KB\n" 387 | ] 388 | }, 389 | { 390 | "output_type": "execute_result", 391 | "data": { 392 | "text/plain": [ 393 | "0" 394 | ] 395 | }, 396 | "metadata": {}, 397 | "execution_count": 101 398 | } 399 | ] 400 | }, 401 | { 402 | "cell_type": "code", 403 | "source": [ 404 | "X = data.values[:,0].reshape(-1,1)\n", 405 | "Y = data.values[:,1]" 406 | ], 407 | "metadata": { 408 | "id": "x8HbV3E57pMG" 409 | }, 410 | "execution_count": null, 411 | "outputs": [] 412 | }, 413 | { 414 | "cell_type": "code", 415 | "source": [ 416 | "X.size,Y.size" 417 | ], 418 | "metadata": { 419 | "colab": { 420 | "base_uri": "https://localhost:8080/" 421 | }, 422 | "id": "K7iyd0CT_Flm", 423 | "outputId": "2de1d968-8394-40c8-b5aa-116e8eca90d4" 424 | }, 425 | "execution_count": null, 426 | "outputs": [ 427 | { 428 | "output_type": "execute_result", 429 | "data": { 430 | "text/plain": [ 431 | "(162, 162)" 432 | ] 433 | }, 434 | "metadata": {}, 435 | "execution_count": 103 436 | } 437 | ] 438 | }, 439 | { 440 | "cell_type": "code", 441 | "source": [ 442 | "plt.scatter(X,Y)" 443 | ], 444 | "metadata": { 445 | "colab": { 446 | "base_uri": "https://localhost:8080/", 447 | "height": 293 448 | }, 449 | "id": "PLwHiFg49C6w", 450 | "outputId": "657871aa-e903-4c15-8e8a-6cb31b94e7b1" 451 | }, 452 | "execution_count": null, 453 | "outputs": [ 454 | { 455 | "output_type": "execute_result", 456 | "data": { 457 | "text/plain": [ 458 | "" 459 | ] 460 | }, 461 | "metadata": {}, 462 | "execution_count": 104 463 | }, 464 | { 465 | "output_type": "display_data", 466 | "data": { 467 | "text/plain": [ 468 | "
" 469 | ], 470 | "image/png": "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\n" 471 | }, 472 | "metadata": { 473 | "needs_background": "light" 474 | } 475 | } 476 | ] 477 | }, 478 | { 479 | "cell_type": "markdown", 480 | "source": [ 481 | "##**Since we want a linear model, we have to convert this exponential graph into a linear scale.**\n", 482 | "\n", 483 | "* *We can do that by applying logarithmic function to it!*\n", 484 | "\n" 485 | ], 486 | "metadata": { 487 | "id": "ER8MGWDv_kKe" 488 | } 489 | }, 490 | { 491 | "cell_type": "code", 492 | "source": [ 493 | "Y = np.log(Y)\n", 494 | "plt.scatter(X,Y)" 495 | ], 496 | "metadata": { 497 | "colab": { 498 | "base_uri": "https://localhost:8080/", 499 | "height": 282 500 | }, 501 | "id": "2kD6SRvm_jWp", 502 | "outputId": "8add358c-a221-4e1b-a8b5-0c096ac1cdd5" 503 | }, 504 | "execution_count": null, 505 | "outputs": [ 506 | { 507 | "output_type": "execute_result", 508 | "data": { 509 | "text/plain": [ 510 | "" 511 | ] 512 | }, 513 | "metadata": {}, 514 | "execution_count": 105 515 | }, 516 | { 517 | "output_type": "display_data", 518 | "data": { 519 | "text/plain": [ 520 | "
" 521 | ], 522 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXsAAAD4CAYAAAANbUbJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3df7BcdZnn8fdzL81wo4w3DJEl18SLUyOUEDVyR1JmdwR0gGEcSIGrkxEHf+ymamdqVx0mGkZrhFqmyAyW7k65VRY1MGJBRUaSvZJlXcxKlPJHojeEGAJBRIdAE8114aIjd+Dm5tk/+nS4tznf031Onz7dp/vzqkqlc/rXt0+S5377Oc/3+Zq7IyIi/W2o2wMQEZHOU7AXERkACvYiIgNAwV5EZAAo2IuIDIATinyzU0891cfHx4t8SxGR0tuzZ88v3H1ZO69RaLAfHx9namqqyLcUESk9M3ui3ddQGkdEZAAo2IuIDAAFexGRAaBgLyIyAJoGezNbYWY7zexhMztgZh9puP8aM3MzO7VzwxQRkXa0Uo1zFLjG3R8ws5OBPWa2w90fNrMVwEXAoY6OUkSkpCb3Vrnp3kd5emaW5aMjbLz4TNatHit8HE1n9u5+2N0fiG7/CngEqI/0c8DHAbXOFBFpMLm3yrXb9lOdmcWB6sws127bz+TeauFjSZWzN7NxYDWw28wuB6ruvq/JczaY2ZSZTU1PT2ceqIhI2dx076PMzs0vOjY7N89N9z5a+FhaXlRlZq8EtgIfpZba+StqKZxE7n4zcDPAxMSEvgGISN8JpWqenpmNfXzoeCe1FOzNrEIt0N/h7tvMbBVwBrDPzABeAzxgZm919591bLQiIj1mcm+VjXftY26+Npetzsyy8a5awmP56AjVmMC+fHSk0DFCa9U4BtwCPOLunwVw9/3u/mp3H3f3ceAp4C0K9CIyaK7ffuB4oK+bm3eu336AjRefyUhleNF9I5VhNl58ZpFDBFrL2a8F3g9caGYPRr8u7fC4RERK4dnn54LH160e48YrVjE2OoIBY6Mj3HjFqq5U4zRN47j7twFr8pjxvAYkItJP1q0e60pwb6QVtCIibRgdqaQ63i0K9iIibbjusrOpDC1OflSGjOsuO7tLI4pXaD97EZF+U0/R9MIq2SQK9iIiC+Td3qBX2iUo2IuIROrtDeqrXuvtDYBggE56DsBf3Pkgx6Lb1ZlZ/uLOBxNfr1MU7EVEIkntDdatHoudpSc955lfv3A80NcdA67d9kMFexGRbklqbxCawTcG+rq4lbN1s3ONPwI6T9U4IiKRUBuD5aMjwRl8WSjYi4hELjhrWfB40ky9DBTsRUQiOw/Gt2HfeXCaYUtsJNDzlLMXkYEUd7E1KWdf9v7sCvYiUnqhWvak43EXW0eXVGIbm9Vz+WlTOUb8Nn7d+I6gYC8ipRYK3FNPPMPWPdXY+vfQxdbfOGGIkcrwovsWtiRurL5pfGyjJScO8+sXX37/khOHYx7dWcrZi0iphQL3lt1PBuvfQ+ma52bngi2JQ+2KkzwfE+iTjneSgr2IlFoocM97fJa9OjPL6JJAp8rA8aySSjmL1spOVSvMbKeZPWxmB8zsI9Hxm8zsoJn90Mz+p5mNdn64IiKLpQ2cw2YEfg7wwtw8127bTzW6IFtP/UzurR5PFzXel6RsO1UdBa5x9zcAa4A/N7M3ADuAc9z9jcCPgGs7N0wRkXihgBoy785zs/G7Sz0/dyyY+smyqKpsO1UdBg5Ht39lZo8AY+7+9QUP2wW8uzNDFBEJW7d6jKknnmHL7ieZd2fYjCvPHWPnwenY6pmxDJU17ZRelnKnKjMbB1YDuxvu+hDwtcBzNpjZlJlNTU/HL1gQEclqcm+VO3/w5PEc/bw7d/7gSS44a1kwhRJaKXvicHxR5OiSSupyyavWrEz5jM5qOdib2SuBrcBH3f2XC45/klqq546457n7ze4+4e4Ty5bFn2ARkWYm91ZZu/k+zth0D2s338fk3ioA128/wNz84nn33Lxzzw8PB1MooZWyja9T5x5fL1931ZqVx1fYDptx1ZqV3LAuuVKnaC3V2ZtZhVqgv8Pdty04/gHgXcA73EOXPERE2pPUMz5uEVT9eCiFEkrhhIJYKMdfd8O6VT0X3Bs1DfZmZsAtwCPu/tkFxy8BPg683d2f79wQRWSQpO0Zn8WwWbA0M87y0ZFg3r4sHXNaSeOsBd4PXGhmD0a/LgU+D5wM7IiOfaGTAxWR/je5t8rGu/YtKm+s/zlO1k6USYG+0pC3rwwbGy8+k/cFcvCh472mlWqcbxP/w+t/5z8cEeknafdfDeXfQ4bNOKkyFNuS4BUnDgfff2mgB84rTnx5+4P5Y7X3r6dpFlb9rD9vRc+nb+qsyFT7xMSET01NFfZ+IpKftIG7Mc8OtWqYpDrz8U33pB7X6EiFmZic+pLKEI7Fvv91dx+IfU7I0iUV9v71RanHlhcz2+PuE+28htoliEhTodWj9YqYOHnn2eMMm2VaINXsgmuj0EXgMlGwF5GmsgTupN7wIaMj6XrTzLunbpdQ/2YyaBTsRaSpLIE7SxOw6y47m6GGK4RDFv4hMBalk+IuqoaeszzhOf1MwV5EmsoSuLM2AWvc/m/YjHe96fTE16pfRK2bP+ZNn/OyOkqv5fnjpP3G0YsU7EWkqSyBO0sTsJvufZS5hsA9d8zZeXCaK88dW7RK9cpzawumrt9+gIancMxJXEEbep8TTxim0vDVojJkXHfZ2cExl4V2qhKRpuoBOk01Tv15aZqAJdXTb91TXdT/ZuueKhOvPSXTCtqkzUs+9943p/6cZaBgLyIt6Xb3xiyVPaFy0eWjI7E/WJaPjnT9c3aKgr2IFC5tzX5I0gViINhPZ+PFZ8auAejGpiJFUbAXkUIlNTVLa/noCL9+4WjsAikj/G3gO5suBNKnpcpMwV5E2pI0S8+zqdlIZTg4E9/4lX2LLrhWhuxlF2Dr6t8G+jVdE6JgLyKZNZulb7xr3/HeNvWmZqFeN9WZWcYCufSxBT8oQjPxuB8qobz8IFKwF5HMkmbpz794NHVTs6RcetJMPHTfoOXlkyjYiwygTl8gzbJn67x75hLPOHm+Vj9QsBcZMEmpl7SBMKmEMW2v+fpG4Hnm0gctL59EK2hFBkye3ShDG3dfcNayxB2csrRRkPY0DfZmtsLMdprZw2Z2wMw+Eh0/xcx2mNlj0e9LOz9cEWlXlqZmIaGNu3cenE5M46RtoyDtayWNcxS4xt0fMLOTgT1mtgP4APANd99sZpuATcAnOjdUEclDUuolraT2BkmVNXmnV/K6BtHPms7s3f2wuz8Q3f4V8AgwBlwO3BY97DZgXacGKSLpTe6tsnbzfZyx6R7Wbr7v+EYjofa+WdIojR0qFx7P2vUyrSwbqwyiVBdozWwcWA3sBk5z98PRXT8DTgs8ZwOwAWDlynJszCtSdk1Xqca0923lNRtnz6GNu/OurEmSdA1Cs/uXtLwHrZm9EvgW8Dfuvs3MZtx9dMH9z7p7Yt5ee9CKFGPt5vuCKRSIT7+MjY4cbyPQKLSf7AtH51/WXhhqM/vHb7w04+jTOWPTPbE/qwz46eY/LGQMnVbYHrRmVgG2Ane4+7bo8M/N7PTo/tOBI+0MRETyk3QRNssF2tDsOdCRIDjj74QsG6sMolaqcQy4BXjE3T+74K67gauj21cDX81/eCKSRVIAzBIc01bqjBUYaIu6NlB2rczs1wLvBy40swejX5cCm4HfN7PHgHdGfxaRHpAUALMEx1cFtuUbqQx1PdBm2RFrEDW9QOvu34bg+oh35DscEclDKxdH4+4LlTAGim44qTLMp//o7K6XPXZ7pWwZSj9bvkCbB12gFclfXoFmcm/1ZV0pK8PGTe9+Ex+788FMF0HLEATbFbp4nee3i8Iu0IpIb8qzxvz67Qdiu1Rev/1Apjz/oNS/59l+opMU7EVKILRAKs9Ak7Rxd5Y8f1mCYLvybD/RSep6KdLjkhZIFRVo1q0eY+qJZ9iy+0nm3Rk248pzk/PkZQmC7cqz/UQnaWYv0uOSZsh51piPBipuRkcqTO6tsnVP9Xj9/Lw7W/dUmdxbDX7rGJT697KUfirYi/S4pBlynoHm7OUnB4+HfuBcd/eBYF6+LEGwXWUp/VQaR6THJaUJ8uw/s+snzwaPHwtU7c3MvjzPX//WUW+90O/VOND90s9WKNiL9LikfVkhv0CT1NQs1K44pP5tpAxBcFAojSPS44pKE2RpV7x0SXyev9/y8v1AM3uREsgyQ05a0BR33/rzVnD7rkMve531560IpouAxG8d0jsU7EX6ULN+9nH33XjFKoBF5ZXrz1vBDetqx5N+4AxCXr7s1C5BpA/l3c9euiuPdgma2Yv0oSwLmvptsZMspgu0In0o7372Un4K9iJ9KO9+9lJ+TdM4ZnYr8C7giLufEx17M/AF4CTgKPBn7v79Tg5URFqXtZ+99K+mF2jN7PeAfwG+tCDYfx34nLt/Ldq16uPufn6zN9MFWhGR9Aq5QOvu95vZeONh4Dej268Cnm5nECKS3SBsECLty1qN81HgXjP7DLW8/9tCDzSzDcAGgJUrV2Z8OxGJ06yeXj8EpK6lOvtoZv+/FqRx/h74lrtvNbP3ABvc/Z3NXkdpHJF8herpR0cqvHD0WEe3ymuFvnXko5vbEl4NbItufwV4azuDEJFkoZ7xodr4mdm5ru8SNSjbEpZF1jTO08DbgW8CFwKP5TUgkUEWNxOG+PYGEG5/HFLkwqmkTVc0uy9eK6WXW4DzgVPN7Cng08B/BP67mZ0A/CtRTl5Esgvl30+qDAWDZqj98UmVodg9ZYtcODUo2xKWRSvVOOsDd52b81hEBlpoJtx4rO7pmdme7kZZlr1ZB4V644j0iLQz3nrQ7NVulM02XZFiKdiL9IjQTDhUWdMsaHZ7l6g8t0yU9inYixQsVI4Ymglfd9nZQDmDZrd/4MhLFOxFCpS0CKrZTLhXg6Zq6ctBwV6kQM3KEcs2E27lh5f0BgV7kQI1K0f81OT+4LaAvUi19OWhfvYiBTqpEv9f7qTKEJ+a3M/tuw4xH7UwmXfn9l2H+NTk/tjn9ALV0peHgr1IgV44eix4fMvuJ2PvCx3vBdr1qjwU7EUKdCzQd/CYc3xG3yh0vBdo16vyUM5epEDDZrHBe9gMiA/s9ft6kWrpy0PBXqRA689bwe27DsUeBxLv61VlqyAaVAr2IgW6Yd0qfjr9L3zn8WeOH1v726csqrgpUzWOlIeCvUiBJvdWeeDQc4uOPXDoOSb3Vlm3eowb1q1ScJeO0AVakQIl1aWLdJJm9iJtStMuQHXp0i2a2Yu0Ie3We6pLl25pGuzN7FYzO2JmDzUc/89mdtDMDpjZ33VuiCK9K21a5oKzlqU6LpKXVmb2XwQuWXjAzC4ALgfe5O5nA5/Jf2givS+0/2vo+M6D06mOi+SllW0J7zez8YbD/wnY7O4vRI85kv/QRHpf0iKpuFy+cvbSLVlz9q8H/p2Z7Tazb5nZ74YeaGYbzGzKzKampzV7kf6S1OIgLpc/uqQS+3jl7KXTsgb7E4BTgDXARuCfzOLXdLv7ze4+4e4Ty5YpLyn9JamVQVwu3x31kpGuyBrsnwK2ec33gWPAqfkNS6Qc0jYpe252jhuvWMXY6AgGjI2OcOMVq9RuQDoua539JHABsNPMXg+cCPwit1GJdEnaLfbGApuEh3L5y0dH1EtGuqKV0sstwPeAM83sKTP7MHAr8LqoHPPLwNXuPdyHVaQFaWvmIdzid/15K5SukZ7SSjXO+sBdV+U8FpGuyrLFXlKL34nXnqLWv9Iz1C5BJJJUFpmU3gmlZZSukV6idgkikVD546tGKqnTOyK9RsFeJBLKv5vFl1GqU6WUiYK9SGTd6rHYssiZ5+diH69Vr1ImytlL30pbRgnxefab7n00trxSq16lTDSzl740ubfKxrv2Lcqzb7xrX6Y8eyi9ozJKKRPN7KUvXb/9AHPzi5d+zM07128/AMSXSkLytwGVUUqZKdhLX3o2kGd/9vk5rt22//gF13plTV3oPpVRStkp2MvASaqsSbuoSqQsFOylL42OVJiZjZ/dx0mqrFHVjfQDXaCVvnTdZWdTGVrcfrgyZCxN6Cev/WGln2lmL30pdFEVFuflYXFlTdJ9ImWmYC99K+mialJljapupB9ZkZ2JJyYmfGpqqrD3ExHpB2a2x90n2nkNzeylFLKshhWRl7SyecmtZnYk2qik8b5rzMzNTFsSStsm91ZZu/k+zth0D2s333d8tWuWTUVEZLFWZvZfBD4PfGnhQTNbAVwEHMp/WNLP4mbpEF7QlGVTERFZrJWdqu43s/GYuz4HfBz4as5jkj5Wn6U3BvWTKkPBgJ60qYiItCZTnb2ZXQ5U3X1fC4/dYGZTZjY1PT2d5e2kj4Rm6aH2BvXZfxzVv4u0LnWwN7MlwF8Bf93K4939ZnefcPeJZcuWpX076TNxrYKT1NM8oa6ToTy/iCyWpRrnt4EzgH1mBvAa4AEze6u7/yzPwUn/GTZjPqbc14CTKsOxC5paXSDV2LhMRF6SOti7+37g1fU/m9k/AxPu/oscxyUlkbYkMi7QAzhw4xWrUm3qvXbzfbpwK9KipsHezLYA5wOnmtlTwKfd/ZZOD0x6X+hiK4Rn1mOjI7GpnLHRkdRthHXhVqR1TXP27r7e3U9394q7v6Yx0Lv7uGb1gympJDIkz12fdOFWpHXqeimZZZlZr1s9xpXnjjFcu97DsBlXnpttY5CNF59JZbihs+WwNf3BoYu6MogU7CWzLDPryb1Vtu6pHs/dz7uzdU81e8BtvATQpNWTVuPKoFKwl8wuOCu+lDZ0HLKlfpJea+5Ywz6zxzzxtfJ8f5EyUbCXzHYejF8kFzoO+V5UzfJauqgrg0rBXjLLEjjzvKia5bV0UVcGlYK9ZJYlcOZZjZPltfJ8f5EyUT97aSq0cOqCs5Zx+66XNz1NytmHVsNmqcbJ8lp5vr9ImWinKknUuHAKajPh+mrX0AKp72y6sMhhivQ17VQlHZdUvZL1Yqd2nRIpnoK9HBcXhJMC+vJA64NmdfZqXiZSPF2gFSC82Gh0SSX28ctHR7peZy8irdPMXoBwEP6NE4YYCbQeDgXonQeng6ka1bmLdIdm9gKEg+1zs3PceMUqxkZHMGoXX2+8YlVi4K5/K4hrSaA6d5Hu0MxeABLz76HWw6HnDJsFUzUbLz4ztrpHde4inaWZ/YAJdXzMc4FSaIOSp2dmWbd6LPhNQUQ6RzP7AdJKJUweC5RC9ff1VE3aTUpEpH2t7FR1K/Au4Ii7nxMduwn4I+BF4HHgg+4+08mBSvuSKmHqAThtEI57ztQTz6ReWSsindVKGueLwCUNx3YA57j7G4EfAdfmPC7pgKIqYbJ0wxSRzmo6s3f3+81svOHY1xf8cRfw7nyHJa1IuxI1yyKoLFReKdJ78rhA+yHga6E7zWyDmU2Z2dT0tGZ2ecmy41JRHR9VXinSe9oK9mb2SeAocEfoMe5+s7tPuPvEsmXK2eYly0rUoiph1EY4mfbAlW7IXI1jZh+gduH2HV5k60wBsqdKslyETZsuUhvhMPUGkm7JFOzN7BLg48Db3f35fIckrSgq/541OKm8Ml6ziiiRTmmaxjGzLcD3gDPN7Ckz+zDweeBkYIeZPWhmX+jwOKVBUakSNS7Lly5eS7e0Uo2zPubwLR0Yi6RQVKpEwSlfRX0jE2mkFbQlVkSqRMEpX+oNJN2i3jgFK1slhipr8qXeQNItmtkXqBcqMVRZ0326eC3doGBfoG5XYqiyRmRwKdgXKO+LnWln6d3+YSMi3aOcfYHybCOQpV2CKmtEBpeCfYHyvNiZpf5dPWtEBpeCfYHyrMTIMktXZY3I4FLOvmB5XezMUv+uyhqRwaVgX1JZF+eoskZkMCnYl9SgzdLTVh6JyGIK9iVW1Cy924G2FxajiZSdgn0HJAXHbgfOtHoh0Gp9gEj7FOxzlhQcga4HzrR6IdBqfYBI+xTsc9as/r3bgTNJ3LeOXgi06rwp0r5WNi+51cyOmNlDC46dYmY7zOyx6PelnR1meSQFxyIDZ9rumqEVuaNLKrGPLzLQan2ASPtaWVT1ReCShmObgG+4++8A34j+LCSvUi1qBWuWVgqhbyTudD3Qqi2wSPta2anqfjMbbzh8OXB+dPs24JvAJ3IcV2k1q38vYuOKLHn20LeL52bn+Nx739z1i8paHyDSnqw5+9Pc/XB0+2fAaaEHmtkGYAPAypUrM75deTSrf5964hm27H6SeXeGzbjy3PyDWJZ0UVJeXIFWpPzavkDr7m5mnnD/zcDNABMTE8HH9ZNQcJzcW2XrnirzXjsN8+5s3VNl4rWn5BpMs1zQ3HjxmWz8yj7mjr30V1QZMuXFRfpE1kZoPzez0wGi34/kN6T+laVTZRaZL2hakz+LSGllDfZ3A1dHt68GvprPcPpbUdU4WS5o3nTvo8zNL/7iNTfvuf8gEpHuaJrGMbMt1C7GnmpmTwGfBjYD/2RmHwaeAN7TyUH2iyLrxdPm2Xuhnl5EOqeVapz1gbvekfNY+l7WTpVFtFjQwiWR/qbNSwqUJb2SpWY+Cy1cEulvapdQsLTplaJ60wxay2SRQaNg3wF5pl2KzKWrnl6kfynYtyBN8M67JbBy6SKSh4HL2efVICz0vLxr6ZVLF5E8DFSwz7NBWCh45512URMwEcnDQKVx8mwQFjreibSLcuki0q6BmtlnmXW/aiS+n3vouNIuItKLBirYZ+knb4H+MKHjSruISC8aqDROlhWsM8/PpToOSruISO8ZqGCfZeHQ6JIKz8YE9tB2fSIivWig0jhZeKADf+i4iEgvGqiZ/eTeKhvv2ne8lW91ZpaNd+0DwguenpuNT9eEjouI9KKBmtlfv/1AbM/267cfCD6nqE3CRUQ6qdQz+7Q9aOJy7/XjodfK2pZYRKSXlDbY592DptlrqRukiJRZW8HezD4G/AfAgf3AB939X/MYWDNZVsOOjlSYicm1m5H4WiqlFJGyy5yzN7Mx4L8AE+5+DjAM/HFeA2smy2rY6y47m8rQ4tVQlSELVtZoSz4R6RftpnFOAEbMbA5YAjzd/pBak9SD5lOT+9my+0nm3Rk2Y/15K7hh3apgSuamex9VG2ER6WuZg727V83sM8AhYBb4urt/vfFxZrYB2ACwcuXK1O+T9sLp+G+NcPuuQ8ePzbsf/3M94MelZHQRVkT6WTtpnKXA5cAZwHLgFWZ2VePj3P1md59w94lly5aleo+klsShHjS7fvJs7Gtt2f1k8H3Uz0ZE+l07aZx3Aj9192kAM9sGvA24PY+BQfOLsHGz9I/e+WDsa803WfKqi7Ai0s/aWVR1CFhjZkvMzIB3AI/kM6yaLBdhhwPtKEPHRUQGQeZg7+67gbuAB6iVXQ4BN+c0LiDb6tX1561IdVxEZBC01S7B3T/t7me5+znu/n53fyGvgUG2jUBuWLeKq9asPD6THzbjqjUruWHdqjyHJiJSKuYFtm+cmJjwqampVM9J2xJBRKTfmNked59o5zV6vl2CLpyKiLRvoLpeiogMKgV7EZEBoGAvIjIAFOxFRAaAgr2IyAAotPTSzKaBJ5o87FTgFwUMp1cN+ucHnQPQOQCdg4Wf/7Xunq65WINCg30rzGyq3XrSMhv0zw86B6BzADoHeX9+pXFERAaAgr2IyADoxWCfazO1Ehr0zw86B6BzADoHuX7+nsvZi4hI/npxZi8iIjlTsBcRGQAdD/ZmdquZHTGzhxYce5OZfc/M9pvZdjP7zej4+8zswQW/jpnZm6P7zo0e/2Mz+/tod6xSSHkOKmZ2W3T8ETO7dsFzLjGzR6NzsKkbnyWrlOfgRDP7x+j4PjM7f8FzSvnvwMxWmNlOM3vYzA6Y2Uei46eY2Q4zeyz6fWl03KLP92Mz+6GZvWXBa10dPf4xM7u6W58prQzn4Kzo38cLZvaXDa9Vyv8LGc7B+6K///1m9l0ze9OC10p3Dty9o7+A3wPeAjy04NgPgLdHtz8E/NeY560CHl/w5+8DawADvgb8QafH3o1zAPwJ8OXo9hLgn4FxYBh4HHgdcCKwD3hDtz9bh87BnwP/GN1+NbAHGCrzvwPgdOAt0e2TgR8BbwD+DtgUHd8E/G10+9Lo81n0eXdHx08BfhL9vjS6vbTbn69D5+DVwO8CfwP85YLXKe3/hQzn4G31v1/gDxb8O0h9Djo+s3f3+4FnGg6/Hrg/ur0DuDLmqeuBLwOY2enAb7r7Lq990i8B6zoz4vylPAcOvMLMTgBGgBeBXwJvBX7s7j9x9xepnZvLOz32vKQ8B28A7ouedwSYASbK/O/A3Q+7+wPR7V9R2695jNrf4W3Rw27jpc9zOfAlr9kFjEaf/2Jgh7s/4+7PUjtvlxT4UTJLew7c/Yi7/wCYa3ip0v5fyHAOvhv9PQPsAl4T3U59DrqVsz/ASwP790DcBrHvBbZEt8eApxbc91R0rMxC5+Au4NfAYWqbun/G3Z+h9nmfXPD8fj4H+4DLzOwEMzsDODe6ry/+HZjZOLAa2A2c5u6Ho7t+BpwW3Q79fffFv4MWz0HIoJ6DD1P7tgcZzkG3gv2HgD8zsz3Uvsq8uPBOMzsPeN7dH4p7cp8InYO3AvPAcuAM4Boze113hthxoXNwK7V/vFPAfwO+S+2clJ6ZvRLYCnzU3X+58L7o20rf10LrHKQ/B2Z2AbVg/4ms79mVbQnd/SBwEYCZvR74w4aH/DEvzeoBqrz09YXodrWTY+y0hHPwJ8D/cfc54IiZfQeYoPZTfOE3oL49B+5+FPhY/XFm9l1quc1nKfG/AzOrUPsPfoe7b4sO/9zMTnf3w1Ga5kh0vEr833cVOL/h+Dc7Oe48pTwHIaFzUwppz4GZvRH4B2rXp/5fdDj1OejKzN7MXh39PgR8CvjCgvuGgPcQ5euhlucCfmlma6Lqiz8FvlrooHOWcA4OARdG972C2sW5g9QuZv6OmZ1hZidS+4F4d9HjzlPoHJjZkuizY2a/Dxx194fL/O8gGu8twCPu/tkFd90N1CtqrhS7LW0AAAETSURBVOalz3M38KdRVc4a4Lno898LXGRmS6OKjYuiYz0vwzkIKe3/hbTnwMxWAtuA97v7jxY8Pv05KODq8xZq+ec5al/NPwx8hNpM7UfAZqKVvNHjzwd2xbzOBPAQtSvQn1/4nF7/leYcAK8EvkItn/0wsHHB61waPf5x4JPd/lwdPAfjwKPULl79X2rtXUv97wD4t9S+mv8QeDD6dSnwW8A3gMeiz3pK9HgD/kf0OfcDEwte60PAj6NfH+z2Z+vgOfg30b+VX1K7SP8UtQv0pf2/kOEc/AO1b7T1x04teK1U50DtEkREBoBW0IqIDAAFexGRAaBgLyIyABTsRUQGgIK9iMgAULAXERkACvYiIgPg/wPTMoBzx2o2BAAAAABJRU5ErkJggg==\n" 523 | }, 524 | "metadata": { 525 | "needs_background": "light" 526 | } 527 | } 528 | ] 529 | }, 530 | { 531 | "cell_type": "markdown", 532 | "source": [ 533 | "###**Since the X values range very widely, we need to shrink them down to a lower range for better processing**" 534 | ], 535 | "metadata": { 536 | "id": "a8qXykAqBHvI" 537 | } 538 | }, 539 | { 540 | "cell_type": "code", 541 | "source": [ 542 | "X = X - X.mean()" 543 | ], 544 | "metadata": { 545 | "id": "4PRwiOnWBU_7" 546 | }, 547 | "execution_count": null, 548 | "outputs": [] 549 | }, 550 | { 551 | "cell_type": "code", 552 | "source": [ 553 | "# Now we will create our tensorflow model for Linear Regression\n", 554 | "\n", 555 | "model = keras.models.Sequential([\n", 556 | " keras.layers.Input(shape=(1,)),\n", 557 | " keras.layers.Dense(1)\n", 558 | "])\n" 559 | ], 560 | "metadata": { 561 | "id": "g_9MwjzHBf9n" 562 | }, 563 | "execution_count": null, 564 | "outputs": [] 565 | }, 566 | { 567 | "cell_type": "code", 568 | "source": [ 569 | "# We define a Stochastic Gradient Descent optimizer with 0.001 learning rate and 0.9 momentum\n", 570 | "model.compile(optimizer = keras.optimizers.SGD(0.001, 0.9), \n", 571 | " loss = 'mse')\n" 572 | ], 573 | "metadata": { 574 | "id": "cTDrQv9uD0ne" 575 | }, 576 | "execution_count": null, 577 | "outputs": [] 578 | }, 579 | { 580 | "cell_type": "code", 581 | "source": [ 582 | "#learning rate scheduler\n", 583 | "\n", 584 | "def schedule(epoch, lr): #Slowing down the learning rate after 50 epochs\n", 585 | " if epoch >= 50:\n", 586 | " return 0.0001\n", 587 | " return 0.001\n", 588 | "\n", 589 | "scheduler = keras.callbacks.LearningRateScheduler(schedule)" 590 | ], 591 | "metadata": { 592 | "id": "9pVlvCqiD7EY" 593 | }, 594 | "execution_count": null, 595 | "outputs": [] 596 | }, 597 | { 598 | "cell_type": "code", 599 | "source": [ 600 | "#Training the model\n", 601 | "r = model.fit(X, Y, epochs=200, verbose = 1,callbacks= [scheduler])" 602 | ], 603 | "metadata": { 604 | "colab": { 605 | "base_uri": "https://localhost:8080/" 606 | }, 607 | "id": "q5gEcVJQEAUv", 608 | "outputId": "62782e04-aade-4888-cbc7-e02baefc8fea" 609 | }, 610 | "execution_count": null, 611 | "outputs": [ 612 | { 613 | "output_type": "stream", 614 | "name": "stdout", 615 | "text": [ 616 | "Epoch 1/200\n", 617 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8887 - lr: 0.0010\n", 618 | "Epoch 2/200\n", 619 | "6/6 [==============================] - 0s 3ms/step - loss: 0.9085 - lr: 0.0010\n", 620 | "Epoch 3/200\n", 621 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8926 - lr: 0.0010\n", 622 | "Epoch 4/200\n", 623 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8775 - lr: 0.0010\n", 624 | "Epoch 5/200\n", 625 | "6/6 [==============================] - 0s 4ms/step - loss: 0.8891 - lr: 0.0010\n", 626 | "Epoch 6/200\n", 627 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8925 - lr: 0.0010\n", 628 | "Epoch 7/200\n", 629 | "6/6 [==============================] - 0s 2ms/step - loss: 0.9041 - lr: 0.0010\n", 630 | "Epoch 8/200\n", 631 | "6/6 [==============================] - 0s 2ms/step - loss: 1.5720 - lr: 0.0010\n", 632 | "Epoch 9/200\n", 633 | "6/6 [==============================] - 0s 3ms/step - loss: 1.5106 - lr: 0.0010\n", 634 | "Epoch 10/200\n", 635 | "6/6 [==============================] - 0s 2ms/step - loss: 1.3069 - lr: 0.0010\n", 636 | "Epoch 11/200\n", 637 | "6/6 [==============================] - 0s 2ms/step - loss: 1.4151 - lr: 0.0010\n", 638 | "Epoch 12/200\n", 639 | "6/6 [==============================] - 0s 2ms/step - loss: 1.7334 - lr: 0.0010\n", 640 | "Epoch 13/200\n", 641 | "6/6 [==============================] - 0s 2ms/step - loss: 1.2068 - lr: 0.0010\n", 642 | "Epoch 14/200\n", 643 | "6/6 [==============================] - 0s 2ms/step - loss: 1.6544 - lr: 0.0010\n", 644 | "Epoch 15/200\n", 645 | "6/6 [==============================] - 0s 3ms/step - loss: 1.3851 - lr: 0.0010\n", 646 | "Epoch 16/200\n", 647 | "6/6 [==============================] - 0s 3ms/step - loss: 1.2999 - lr: 0.0010\n", 648 | "Epoch 17/200\n", 649 | "6/6 [==============================] - 0s 2ms/step - loss: 1.1257 - lr: 0.0010\n", 650 | "Epoch 18/200\n", 651 | "6/6 [==============================] - 0s 2ms/step - loss: 1.5885 - lr: 0.0010\n", 652 | "Epoch 19/200\n", 653 | "6/6 [==============================] - 0s 3ms/step - loss: 1.0778 - lr: 0.0010\n", 654 | "Epoch 20/200\n", 655 | "6/6 [==============================] - 0s 4ms/step - loss: 1.4075 - lr: 0.0010\n", 656 | "Epoch 21/200\n", 657 | "6/6 [==============================] - 0s 4ms/step - loss: 1.1962 - lr: 0.0010\n", 658 | "Epoch 22/200\n", 659 | "6/6 [==============================] - 0s 3ms/step - loss: 1.1634 - lr: 0.0010\n", 660 | "Epoch 23/200\n", 661 | "6/6 [==============================] - 0s 2ms/step - loss: 1.3452 - lr: 0.0010\n", 662 | "Epoch 24/200\n", 663 | "6/6 [==============================] - 0s 2ms/step - loss: 1.1768 - lr: 0.0010\n", 664 | "Epoch 25/200\n", 665 | "6/6 [==============================] - 0s 2ms/step - loss: 1.0754 - lr: 0.0010\n", 666 | "Epoch 26/200\n", 667 | "6/6 [==============================] - 0s 2ms/step - loss: 0.9150 - lr: 0.0010\n", 668 | "Epoch 27/200\n", 669 | "6/6 [==============================] - 0s 2ms/step - loss: 0.9061 - lr: 0.0010\n", 670 | "Epoch 28/200\n", 671 | "6/6 [==============================] - 0s 3ms/step - loss: 0.9016 - lr: 0.0010\n", 672 | "Epoch 29/200\n", 673 | "6/6 [==============================] - 0s 2ms/step - loss: 1.1704 - lr: 0.0010\n", 674 | "Epoch 30/200\n", 675 | "6/6 [==============================] - 0s 2ms/step - loss: 0.9414 - lr: 0.0010\n", 676 | "Epoch 31/200\n", 677 | "6/6 [==============================] - 0s 3ms/step - loss: 1.7957 - lr: 0.0010\n", 678 | "Epoch 32/200\n", 679 | "6/6 [==============================] - 0s 3ms/step - loss: 1.2301 - lr: 0.0010\n", 680 | "Epoch 33/200\n", 681 | "6/6 [==============================] - 0s 3ms/step - loss: 0.9566 - lr: 0.0010\n", 682 | "Epoch 34/200\n", 683 | "6/6 [==============================] - 0s 3ms/step - loss: 0.9314 - lr: 0.0010\n", 684 | "Epoch 35/200\n", 685 | "6/6 [==============================] - 0s 3ms/step - loss: 1.0558 - lr: 0.0010\n", 686 | "Epoch 36/200\n", 687 | "6/6 [==============================] - 0s 3ms/step - loss: 1.3449 - lr: 0.0010\n", 688 | "Epoch 37/200\n", 689 | "6/6 [==============================] - 0s 3ms/step - loss: 1.0986 - lr: 0.0010\n", 690 | "Epoch 38/200\n", 691 | "6/6 [==============================] - 0s 2ms/step - loss: 1.1537 - lr: 0.0010\n", 692 | "Epoch 39/200\n", 693 | "6/6 [==============================] - 0s 3ms/step - loss: 0.9487 - lr: 0.0010\n", 694 | "Epoch 40/200\n", 695 | "6/6 [==============================] - 0s 2ms/step - loss: 0.9529 - lr: 0.0010\n", 696 | "Epoch 41/200\n", 697 | "6/6 [==============================] - 0s 3ms/step - loss: 0.9467 - lr: 0.0010\n", 698 | "Epoch 42/200\n", 699 | "6/6 [==============================] - 0s 2ms/step - loss: 1.8046 - lr: 0.0010\n", 700 | "Epoch 43/200\n", 701 | "6/6 [==============================] - 0s 2ms/step - loss: 1.3138 - lr: 0.0010\n", 702 | "Epoch 44/200\n", 703 | "6/6 [==============================] - 0s 4ms/step - loss: 1.0280 - lr: 0.0010\n", 704 | "Epoch 45/200\n", 705 | "6/6 [==============================] - 0s 2ms/step - loss: 0.9472 - lr: 0.0010\n", 706 | "Epoch 46/200\n", 707 | "6/6 [==============================] - 0s 2ms/step - loss: 1.2208 - lr: 0.0010\n", 708 | "Epoch 47/200\n", 709 | "6/6 [==============================] - 0s 2ms/step - loss: 1.5206 - lr: 0.0010\n", 710 | "Epoch 48/200\n", 711 | "6/6 [==============================] - 0s 3ms/step - loss: 1.0794 - lr: 0.0010\n", 712 | "Epoch 49/200\n", 713 | "6/6 [==============================] - 0s 4ms/step - loss: 1.0220 - lr: 0.0010\n", 714 | "Epoch 50/200\n", 715 | "6/6 [==============================] - 0s 3ms/step - loss: 0.9240 - lr: 0.0010\n", 716 | "Epoch 51/200\n", 717 | "6/6 [==============================] - 0s 3ms/step - loss: 1.0970 - lr: 1.0000e-04\n", 718 | "Epoch 52/200\n", 719 | "6/6 [==============================] - 0s 3ms/step - loss: 1.3149 - lr: 1.0000e-04\n", 720 | "Epoch 53/200\n", 721 | "6/6 [==============================] - 0s 3ms/step - loss: 0.9226 - lr: 1.0000e-04\n", 722 | "Epoch 54/200\n", 723 | "6/6 [==============================] - 0s 2ms/step - loss: 0.9369 - lr: 1.0000e-04\n", 724 | "Epoch 55/200\n", 725 | "6/6 [==============================] - 0s 2ms/step - loss: 1.0386 - lr: 1.0000e-04\n", 726 | "Epoch 56/200\n", 727 | "6/6 [==============================] - 0s 2ms/step - loss: 0.9234 - lr: 1.0000e-04\n", 728 | "Epoch 57/200\n", 729 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8988 - lr: 1.0000e-04\n", 730 | "Epoch 58/200\n", 731 | "6/6 [==============================] - 0s 2ms/step - loss: 0.9256 - lr: 1.0000e-04\n", 732 | "Epoch 59/200\n", 733 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8784 - lr: 1.0000e-04\n", 734 | "Epoch 60/200\n", 735 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8759 - lr: 1.0000e-04\n", 736 | "Epoch 61/200\n", 737 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8784 - lr: 1.0000e-04\n", 738 | "Epoch 62/200\n", 739 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8728 - lr: 1.0000e-04\n", 740 | "Epoch 63/200\n", 741 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8738 - lr: 1.0000e-04\n", 742 | "Epoch 64/200\n", 743 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8713 - lr: 1.0000e-04\n", 744 | "Epoch 65/200\n", 745 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8740 - lr: 1.0000e-04\n", 746 | "Epoch 66/200\n", 747 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8752 - lr: 1.0000e-04\n", 748 | "Epoch 67/200\n", 749 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8810 - lr: 1.0000e-04\n", 750 | "Epoch 68/200\n", 751 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8811 - lr: 1.0000e-04\n", 752 | "Epoch 69/200\n", 753 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8809 - lr: 1.0000e-04\n", 754 | "Epoch 70/200\n", 755 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8998 - lr: 1.0000e-04\n", 756 | "Epoch 71/200\n", 757 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8760 - lr: 1.0000e-04\n", 758 | "Epoch 72/200\n", 759 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8712 - lr: 1.0000e-04\n", 760 | "Epoch 73/200\n", 761 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8783 - lr: 1.0000e-04\n", 762 | "Epoch 74/200\n", 763 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8785 - lr: 1.0000e-04\n", 764 | "Epoch 75/200\n", 765 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8677 - lr: 1.0000e-04\n", 766 | "Epoch 76/200\n", 767 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8816 - lr: 1.0000e-04\n", 768 | "Epoch 77/200\n", 769 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8841 - lr: 1.0000e-04\n", 770 | "Epoch 78/200\n", 771 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8742 - lr: 1.0000e-04\n", 772 | "Epoch 79/200\n", 773 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8723 - lr: 1.0000e-04\n", 774 | "Epoch 80/200\n", 775 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8733 - lr: 1.0000e-04\n", 776 | "Epoch 81/200\n", 777 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8755 - lr: 1.0000e-04\n", 778 | "Epoch 82/200\n", 779 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8761 - lr: 1.0000e-04\n", 780 | "Epoch 83/200\n", 781 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8837 - lr: 1.0000e-04\n", 782 | "Epoch 84/200\n", 783 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8737 - lr: 1.0000e-04\n", 784 | "Epoch 85/200\n", 785 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8734 - lr: 1.0000e-04\n", 786 | "Epoch 86/200\n", 787 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8701 - lr: 1.0000e-04\n", 788 | "Epoch 87/200\n", 789 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8716 - lr: 1.0000e-04\n", 790 | "Epoch 88/200\n", 791 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8722 - lr: 1.0000e-04\n", 792 | "Epoch 89/200\n", 793 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8727 - lr: 1.0000e-04\n", 794 | "Epoch 90/200\n", 795 | "6/6 [==============================] - 0s 4ms/step - loss: 0.8707 - lr: 1.0000e-04\n", 796 | "Epoch 91/200\n", 797 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8938 - lr: 1.0000e-04\n", 798 | "Epoch 92/200\n", 799 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8888 - lr: 1.0000e-04\n", 800 | "Epoch 93/200\n", 801 | "6/6 [==============================] - 0s 4ms/step - loss: 0.8728 - lr: 1.0000e-04\n", 802 | "Epoch 94/200\n", 803 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8798 - lr: 1.0000e-04\n", 804 | "Epoch 95/200\n", 805 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8632 - lr: 1.0000e-04\n", 806 | "Epoch 96/200\n", 807 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8959 - lr: 1.0000e-04\n", 808 | "Epoch 97/200\n", 809 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8773 - lr: 1.0000e-04\n", 810 | "Epoch 98/200\n", 811 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8762 - lr: 1.0000e-04\n", 812 | "Epoch 99/200\n", 813 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8842 - lr: 1.0000e-04\n", 814 | "Epoch 100/200\n", 815 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8746 - lr: 1.0000e-04\n", 816 | "Epoch 101/200\n", 817 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8741 - lr: 1.0000e-04\n", 818 | "Epoch 102/200\n", 819 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8695 - lr: 1.0000e-04\n", 820 | "Epoch 103/200\n", 821 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8732 - lr: 1.0000e-04\n", 822 | "Epoch 104/200\n", 823 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8769 - lr: 1.0000e-04\n", 824 | "Epoch 105/200\n", 825 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8719 - lr: 1.0000e-04\n", 826 | "Epoch 106/200\n", 827 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8751 - lr: 1.0000e-04\n", 828 | "Epoch 107/200\n", 829 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8944 - lr: 1.0000e-04\n", 830 | "Epoch 108/200\n", 831 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8844 - lr: 1.0000e-04\n", 832 | "Epoch 109/200\n", 833 | "6/6 [==============================] - 0s 4ms/step - loss: 0.8744 - lr: 1.0000e-04\n", 834 | "Epoch 110/200\n", 835 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8804 - lr: 1.0000e-04\n", 836 | "Epoch 111/200\n", 837 | "6/6 [==============================] - 0s 4ms/step - loss: 0.8861 - lr: 1.0000e-04\n", 838 | "Epoch 112/200\n", 839 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8732 - lr: 1.0000e-04\n", 840 | "Epoch 113/200\n", 841 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8765 - lr: 1.0000e-04\n", 842 | "Epoch 114/200\n", 843 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8715 - lr: 1.0000e-04\n", 844 | "Epoch 115/200\n", 845 | "6/6 [==============================] - 0s 2ms/step - loss: 0.9022 - lr: 1.0000e-04\n", 846 | "Epoch 116/200\n", 847 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8884 - lr: 1.0000e-04\n", 848 | "Epoch 117/200\n", 849 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8655 - lr: 1.0000e-04\n", 850 | "Epoch 118/200\n", 851 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8733 - lr: 1.0000e-04\n", 852 | "Epoch 119/200\n", 853 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8707 - lr: 1.0000e-04\n", 854 | "Epoch 120/200\n", 855 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8821 - lr: 1.0000e-04\n", 856 | "Epoch 121/200\n", 857 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8794 - lr: 1.0000e-04\n", 858 | "Epoch 122/200\n", 859 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8750 - lr: 1.0000e-04\n", 860 | "Epoch 123/200\n", 861 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8807 - lr: 1.0000e-04\n", 862 | "Epoch 124/200\n", 863 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8786 - lr: 1.0000e-04\n", 864 | "Epoch 125/200\n", 865 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8710 - lr: 1.0000e-04\n", 866 | "Epoch 126/200\n", 867 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8719 - lr: 1.0000e-04\n", 868 | "Epoch 127/200\n", 869 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8706 - lr: 1.0000e-04\n", 870 | "Epoch 128/200\n", 871 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8724 - lr: 1.0000e-04\n", 872 | "Epoch 129/200\n", 873 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8714 - lr: 1.0000e-04\n", 874 | "Epoch 130/200\n", 875 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8731 - lr: 1.0000e-04\n", 876 | "Epoch 131/200\n", 877 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8716 - lr: 1.0000e-04\n", 878 | "Epoch 132/200\n", 879 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8715 - lr: 1.0000e-04\n", 880 | "Epoch 133/200\n", 881 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8908 - lr: 1.0000e-04\n", 882 | "Epoch 134/200\n", 883 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8806 - lr: 1.0000e-04\n", 884 | "Epoch 135/200\n", 885 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8721 - lr: 1.0000e-04\n", 886 | "Epoch 136/200\n", 887 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8704 - lr: 1.0000e-04\n", 888 | "Epoch 137/200\n", 889 | "6/6 [==============================] - 0s 4ms/step - loss: 0.8737 - lr: 1.0000e-04\n", 890 | "Epoch 138/200\n", 891 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8722 - lr: 1.0000e-04\n", 892 | "Epoch 139/200\n", 893 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8707 - lr: 1.0000e-04\n", 894 | "Epoch 140/200\n", 895 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8834 - lr: 1.0000e-04\n", 896 | "Epoch 141/200\n", 897 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8813 - lr: 1.0000e-04\n", 898 | "Epoch 142/200\n", 899 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8710 - lr: 1.0000e-04\n", 900 | "Epoch 143/200\n", 901 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8693 - lr: 1.0000e-04\n", 902 | "Epoch 144/200\n", 903 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8786 - lr: 1.0000e-04\n", 904 | "Epoch 145/200\n", 905 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8747 - lr: 1.0000e-04\n", 906 | "Epoch 146/200\n", 907 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8769 - lr: 1.0000e-04\n", 908 | "Epoch 147/200\n", 909 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8852 - lr: 1.0000e-04\n", 910 | "Epoch 148/200\n", 911 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8702 - lr: 1.0000e-04\n", 912 | "Epoch 149/200\n", 913 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8705 - lr: 1.0000e-04\n", 914 | "Epoch 150/200\n", 915 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8766 - lr: 1.0000e-04\n", 916 | "Epoch 151/200\n", 917 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8725 - lr: 1.0000e-04\n", 918 | "Epoch 152/200\n", 919 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8713 - lr: 1.0000e-04\n", 920 | "Epoch 153/200\n", 921 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8727 - lr: 1.0000e-04\n", 922 | "Epoch 154/200\n", 923 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8951 - lr: 1.0000e-04\n", 924 | "Epoch 155/200\n", 925 | "6/6 [==============================] - 0s 3ms/step - loss: 1.0041 - lr: 1.0000e-04\n", 926 | "Epoch 156/200\n", 927 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8978 - lr: 1.0000e-04\n", 928 | "Epoch 157/200\n", 929 | "6/6 [==============================] - 0s 3ms/step - loss: 0.9004 - lr: 1.0000e-04\n", 930 | "Epoch 158/200\n", 931 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8862 - lr: 1.0000e-04\n", 932 | "Epoch 159/200\n", 933 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8650 - lr: 1.0000e-04\n", 934 | "Epoch 160/200\n", 935 | "6/6 [==============================] - 0s 3ms/step - loss: 0.9009 - lr: 1.0000e-04\n", 936 | "Epoch 161/200\n", 937 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8880 - lr: 1.0000e-04\n", 938 | "Epoch 162/200\n", 939 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8919 - lr: 1.0000e-04\n", 940 | "Epoch 163/200\n", 941 | "6/6 [==============================] - 0s 3ms/step - loss: 0.9621 - lr: 1.0000e-04\n", 942 | "Epoch 164/200\n", 943 | "6/6 [==============================] - 0s 4ms/step - loss: 0.9123 - lr: 1.0000e-04\n", 944 | "Epoch 165/200\n", 945 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8688 - lr: 1.0000e-04\n", 946 | "Epoch 166/200\n", 947 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8715 - lr: 1.0000e-04\n", 948 | "Epoch 167/200\n", 949 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8714 - lr: 1.0000e-04\n", 950 | "Epoch 168/200\n", 951 | "6/6 [==============================] - 0s 3ms/step - loss: 0.9022 - lr: 1.0000e-04\n", 952 | "Epoch 169/200\n", 953 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8819 - lr: 1.0000e-04\n", 954 | "Epoch 170/200\n", 955 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8743 - lr: 1.0000e-04\n", 956 | "Epoch 171/200\n", 957 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8755 - lr: 1.0000e-04\n", 958 | "Epoch 172/200\n", 959 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8933 - lr: 1.0000e-04\n", 960 | "Epoch 173/200\n", 961 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8945 - lr: 1.0000e-04\n", 962 | "Epoch 174/200\n", 963 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8843 - lr: 1.0000e-04\n", 964 | "Epoch 175/200\n", 965 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8683 - lr: 1.0000e-04\n", 966 | "Epoch 176/200\n", 967 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8783 - lr: 1.0000e-04\n", 968 | "Epoch 177/200\n", 969 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8787 - lr: 1.0000e-04\n", 970 | "Epoch 178/200\n", 971 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8725 - lr: 1.0000e-04\n", 972 | "Epoch 179/200\n", 973 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8751 - lr: 1.0000e-04\n", 974 | "Epoch 180/200\n", 975 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8742 - lr: 1.0000e-04\n", 976 | "Epoch 181/200\n", 977 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8696 - lr: 1.0000e-04\n", 978 | "Epoch 182/200\n", 979 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8758 - lr: 1.0000e-04\n", 980 | "Epoch 183/200\n", 981 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8819 - lr: 1.0000e-04\n", 982 | "Epoch 184/200\n", 983 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8747 - lr: 1.0000e-04\n", 984 | "Epoch 185/200\n", 985 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8709 - lr: 1.0000e-04\n", 986 | "Epoch 186/200\n", 987 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8716 - lr: 1.0000e-04\n", 988 | "Epoch 187/200\n", 989 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8729 - lr: 1.0000e-04\n", 990 | "Epoch 188/200\n", 991 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8702 - lr: 1.0000e-04\n", 992 | "Epoch 189/200\n", 993 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8768 - lr: 1.0000e-04\n", 994 | "Epoch 190/200\n", 995 | "6/6 [==============================] - 0s 3ms/step - loss: 0.9315 - lr: 1.0000e-04\n", 996 | "Epoch 191/200\n", 997 | "6/6 [==============================] - 0s 4ms/step - loss: 0.8643 - lr: 1.0000e-04\n", 998 | "Epoch 192/200\n", 999 | "6/6 [==============================] - 0s 3ms/step - loss: 0.9586 - lr: 1.0000e-04\n", 1000 | "Epoch 193/200\n", 1001 | "6/6 [==============================] - 0s 3ms/step - loss: 0.9122 - lr: 1.0000e-04\n", 1002 | "Epoch 194/200\n", 1003 | "6/6 [==============================] - 0s 4ms/step - loss: 0.8920 - lr: 1.0000e-04\n", 1004 | "Epoch 195/200\n", 1005 | "6/6 [==============================] - 0s 3ms/step - loss: 0.9426 - lr: 1.0000e-04\n", 1006 | "Epoch 196/200\n", 1007 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8804 - lr: 1.0000e-04\n", 1008 | "Epoch 197/200\n", 1009 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8847 - lr: 1.0000e-04\n", 1010 | "Epoch 198/200\n", 1011 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8805 - lr: 1.0000e-04\n", 1012 | "Epoch 199/200\n", 1013 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8749 - lr: 1.0000e-04\n", 1014 | "Epoch 200/200\n", 1015 | "6/6 [==============================] - 0s 3ms/step - loss: 0.8984 - lr: 1.0000e-04\n" 1016 | ] 1017 | } 1018 | ] 1019 | }, 1020 | { 1021 | "cell_type": "code", 1022 | "source": [ 1023 | "#Plotting the loss\n", 1024 | "plt.plot(r.history['loss'], label='loss')" 1025 | ], 1026 | "metadata": { 1027 | "colab": { 1028 | "base_uri": "https://localhost:8080/", 1029 | "height": 282 1030 | }, 1031 | "id": "sWeDmH2WDP8E", 1032 | "outputId": "3ac6cdb6-c311-4d05-d665-83d0c4d5cd31" 1033 | }, 1034 | "execution_count": null, 1035 | "outputs": [ 1036 | { 1037 | "output_type": "execute_result", 1038 | "data": { 1039 | "text/plain": [ 1040 | "[]" 1041 | ] 1042 | }, 1043 | "metadata": {}, 1044 | "execution_count": 116 1045 | }, 1046 | { 1047 | "output_type": "display_data", 1048 | "data": { 1049 | "text/plain": [ 1050 | "
" 1051 | ], 1052 | "image/png": "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\n" 1053 | }, 1054 | "metadata": { 1055 | "needs_background": "light" 1056 | } 1057 | } 1058 | ] 1059 | }, 1060 | { 1061 | "cell_type": "code", 1062 | "source": [ 1063 | "model.evaluate(X,Y)" 1064 | ], 1065 | "metadata": { 1066 | "colab": { 1067 | "base_uri": "https://localhost:8080/" 1068 | }, 1069 | "id": "5mRjU6qwU_rM", 1070 | "outputId": "03e22214-4d8e-4a05-ef9e-9295dd10d9c1" 1071 | }, 1072 | "execution_count": null, 1073 | "outputs": [ 1074 | { 1075 | "output_type": "stream", 1076 | "name": "stdout", 1077 | "text": [ 1078 | "6/6 [==============================] - 0s 2ms/step - loss: 0.8965\n" 1079 | ] 1080 | }, 1081 | { 1082 | "output_type": "execute_result", 1083 | "data": { 1084 | "text/plain": [ 1085 | "0.8964970707893372" 1086 | ] 1087 | }, 1088 | "metadata": {}, 1089 | "execution_count": 117 1090 | } 1091 | ] 1092 | }, 1093 | { 1094 | "cell_type": "code", 1095 | "source": [ 1096 | "model.save('LinearClassification.h5')" 1097 | ], 1098 | "metadata": { 1099 | "id": "hK4fHuq6VFRK" 1100 | }, 1101 | "execution_count": null, 1102 | "outputs": [] 1103 | }, 1104 | { 1105 | "cell_type": "markdown", 1106 | "source": [ 1107 | "# **To load a model**\n", 1108 | "\n", 1109 | "* model = tf.keras.models.load_model('ModelName')\n", 1110 | "* print(model.layers)\n", 1111 | "* model.evaluate(X,Y)" 1112 | ], 1113 | "metadata": { 1114 | "id": "HnqD9JZXVfGQ" 1115 | } 1116 | } 1117 | ] 1118 | } --------------------------------------------------------------------------------