"
559 | ]
560 | },
561 | "metadata": {
562 | "needs_background": "light"
563 | }
564 | }
565 | ]
566 | },
567 | {
568 | "cell_type": "code",
569 | "source": [
570 | ""
571 | ],
572 | "metadata": {
573 | "id": "U-y000iUtSv-"
574 | },
575 | "execution_count": null,
576 | "outputs": []
577 | }
578 | ]
579 | }
--------------------------------------------------------------------------------
/Neural Network using TensorFlow Sequential/Readme.md:
--------------------------------------------------------------------------------
1 | # MNIST Neural Network with TensorFlow Sequential API
2 |
3 | This project demonstrates how to build, train, and evaluate a simple neural network using TensorFlow's Sequential API. The model is trained on the **MNIST dataset**, which consists of handwritten digits (0-9). [Watch Tutorial.](https://youtu.be/3TLEDkcW-nE)
4 | ## Features
5 | - Preprocessing and normalization of MNIST data
6 | - Building a fully connected neural network using the Sequential API
7 | - Training the model with a validation split
8 | - Visualizing training and validation performance
9 | - Evaluating the model on the test dataset
10 | - Saving and loading the trained model
11 |
12 | ---
13 |
14 | ## Dataset
15 | The [MNIST dataset](http://yann.lecun.com/exdb/mnist/) is a collection of 28x28 grayscale images of handwritten digits. It contains:
16 | - **60,000 training images**
17 | - **10,000 test images**
18 |
19 | ---
20 |
21 | ## Getting Started
22 |
23 | ### Prerequisites
24 | Ensure you have Python and the required libraries installed:
25 | - TensorFlow
26 | - Matplotlib
27 | - NumPy
28 |
29 | You can install the dependencies using:
30 | ```bash
31 | pip install tensorflow matplotlib numpy
32 |
33 |
--------------------------------------------------------------------------------
/Neural Network.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rashakil-ds/Deep-Learning-with-Python/e8598ac7ee4ff69d2b0b81d2f06718907b17ebef/Neural Network.pdf
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Complete Deep Learning
5 | Welcome to the Complete Deep Learning repository! This repository contains video materials ranging from basic to advanced deep learning concepts, curated by Study Mart and aiQuest Intelligence.
6 |
7 | Course Name
8 | Complete Deep Learning
9 |
10 | Topics Covered
11 |
12 | Introduction to Deep Learning
13 | Neural Networks and Backpropagation
14 | Convolutional Neural Networks (CNNs)
15 | Recurrent Neural Networks (RNNs)
16 | Long Short-Term Memory (LSTM)
17 | Understanding GRU Networks
18 | Deep Learning Frameworks
19 | Advanced Deep Learning Techniques
20 |
21 |
22 | YouTube Video Playlist
23 | Watch the complete video playlist on YouTube: Complete Deep Learning Playlist
24 |
25 | Repository Link
26 | Check out the collection of video materials here .
27 |
28 | Additional Resources
29 | We also offer a variety of paid courses on data science on our website. Visit AIQuest for more details.
30 | For free resources, check out our YouTube channel: StudyMart .
31 | Join our Facebook group for more discussions and resources: StudyMart Facebook Group .
32 |
33 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/SL_Perceptron.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "nbformat": 4,
3 | "nbformat_minor": 0,
4 | "metadata": {
5 | "colab": {
6 | "name": "Single Layer Perceptron",
7 | "provenance": [],
8 | "collapsed_sections": [],
9 | "authorship_tag": "ABX9TyMqD+WCN6558J61L5Ck0pPd",
10 | "include_colab_link": true
11 | },
12 | "kernelspec": {
13 | "name": "python3",
14 | "display_name": "Python 3"
15 | },
16 | "language_info": {
17 | "name": "python"
18 | }
19 | },
20 | "cells": [
21 | {
22 | "cell_type": "markdown",
23 | "metadata": {
24 | "id": "view-in-github",
25 | "colab_type": "text"
26 | },
27 | "source": [
28 | " "
29 | ]
30 | },
31 | {
32 | "cell_type": "code",
33 | "execution_count": 1,
34 | "metadata": {
35 | "colab": {
36 | "resources": {
37 | "http://localhost:8080/nbextensions/google.colab/files.js": {
38 | "data": "Ly8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwovLwovLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgovLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLy8KLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLy8KLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQovLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAovLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAovLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCi8qKgogKiBAZmlsZW92ZXJ2aWV3IEhlbHBlcnMgZm9yIGdvb2dsZS5jb2xhYiBQeXRob24gbW9kdWxlLgogKi8KKGZ1bmN0aW9uKHNjb3BlKSB7CmZ1bmN0aW9uIHNwYW4odGV4dCwgc3R5bGVBdHRyaWJ1dGVzID0ge30pIHsKICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0OwogIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHN0eWxlQXR0cmlidXRlcykpIHsKICAgIGVsZW1lbnQuc3R5bGVba2V5XSA9IHN0eWxlQXR0cmlidXRlc1trZXldOwogIH0KICByZXR1cm4gZWxlbWVudDsKfQoKLy8gTWF4IG51bWJlciBvZiBieXRlcyB3aGljaCB3aWxsIGJlIHVwbG9hZGVkIGF0IGEgdGltZS4KY29uc3QgTUFYX1BBWUxPQURfU0laRSA9IDEwMCAqIDEwMjQ7CgpmdW5jdGlvbiBfdXBsb2FkRmlsZXMoaW5wdXRJZCwgb3V0cHV0SWQpIHsKICBjb25zdCBzdGVwcyA9IHVwbG9hZEZpbGVzU3RlcChpbnB1dElkLCBvdXRwdXRJZCk7CiAgY29uc3Qgb3V0cHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG91dHB1dElkKTsKICAvLyBDYWNoZSBzdGVwcyBvbiB0aGUgb3V0cHV0RWxlbWVudCB0byBtYWtlIGl0IGF2YWlsYWJsZSBmb3IgdGhlIG5leHQgY2FsbAogIC8vIHRvIHVwbG9hZEZpbGVzQ29udGludWUgZnJvbSBQeXRob24uCiAgb3V0cHV0RWxlbWVudC5zdGVwcyA9IHN0ZXBzOwoKICByZXR1cm4gX3VwbG9hZEZpbGVzQ29udGludWUob3V0cHV0SWQpOwp9CgovLyBUaGlzIGlzIHJvdWdobHkgYW4gYXN5bmMgZ2VuZXJhdG9yIChub3Qgc3VwcG9ydGVkIGluIHRoZSBicm93c2VyIHlldCksCi8vIHdoZXJlIHRoZXJlIGFyZSBtdWx0aXBsZSBhc3luY2hyb25vdXMgc3RlcHMgYW5kIHRoZSBQeXRob24gc2lkZSBpcyBnb2luZwovLyB0byBwb2xsIGZvciBjb21wbGV0aW9uIG9mIGVhY2ggc3RlcC4KLy8gVGhpcyB1c2VzIGEgUHJvbWlzZSB0byBibG9jayB0aGUgcHl0aG9uIHNpZGUgb24gY29tcGxldGlvbiBvZiBlYWNoIHN0ZXAsCi8vIHRoZW4gcGFzc2VzIHRoZSByZXN1bHQgb2YgdGhlIHByZXZpb3VzIHN0ZXAgYXMgdGhlIGlucHV0IHRvIHRoZSBuZXh0IHN0ZXAuCmZ1bmN0aW9uIF91cGxvYWRGaWxlc0NvbnRpbnVlKG91dHB1dElkKSB7CiAgY29uc3Qgb3V0cHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG91dHB1dElkKTsKICBjb25zdCBzdGVwcyA9IG91dHB1dEVsZW1lbnQuc3RlcHM7CgogIGNvbnN0IG5leHQgPSBzdGVwcy5uZXh0KG91dHB1dEVsZW1lbnQubGFzdFByb21pc2VWYWx1ZSk7CiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShuZXh0LnZhbHVlLnByb21pc2UpLnRoZW4oKHZhbHVlKSA9PiB7CiAgICAvLyBDYWNoZSB0aGUgbGFzdCBwcm9taXNlIHZhbHVlIHRvIG1ha2UgaXQgYXZhaWxhYmxlIHRvIHRoZSBuZXh0CiAgICAvLyBzdGVwIG9mIHRoZSBnZW5lcmF0b3IuCiAgICBvdXRwdXRFbGVtZW50Lmxhc3RQcm9taXNlVmFsdWUgPSB2YWx1ZTsKICAgIHJldHVybiBuZXh0LnZhbHVlLnJlc3BvbnNlOwogIH0pOwp9CgovKioKICogR2VuZXJhdG9yIGZ1bmN0aW9uIHdoaWNoIGlzIGNhbGxlZCBiZXR3ZWVuIGVhY2ggYXN5bmMgc3RlcCBvZiB0aGUgdXBsb2FkCiAqIHByb2Nlc3MuCiAqIEBwYXJhbSB7c3RyaW5nfSBpbnB1dElkIEVsZW1lbnQgSUQgb2YgdGhlIGlucHV0IGZpbGUgcGlja2VyIGVsZW1lbnQuCiAqIEBwYXJhbSB7c3RyaW5nfSBvdXRwdXRJZCBFbGVtZW50IElEIG9mIHRoZSBvdXRwdXQgZGlzcGxheS4KICogQHJldHVybiB7IUl0ZXJhYmxlPCFPYmplY3Q+fSBJdGVyYWJsZSBvZiBuZXh0IHN0ZXBzLgogKi8KZnVuY3Rpb24qIHVwbG9hZEZpbGVzU3RlcChpbnB1dElkLCBvdXRwdXRJZCkgewogIGNvbnN0IGlucHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlucHV0SWQpOwogIGlucHV0RWxlbWVudC5kaXNhYmxlZCA9IGZhbHNlOwoKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIG91dHB1dEVsZW1lbnQuaW5uZXJIVE1MID0gJyc7CgogIGNvbnN0IHBpY2tlZFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgaW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIChlKSA9PiB7CiAgICAgIHJlc29sdmUoZS50YXJnZXQuZmlsZXMpOwogICAgfSk7CiAgfSk7CgogIGNvbnN0IGNhbmNlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOwogIGlucHV0RWxlbWVudC5wYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKGNhbmNlbCk7CiAgY2FuY2VsLnRleHRDb250ZW50ID0gJ0NhbmNlbCB1cGxvYWQnOwogIGNvbnN0IGNhbmNlbFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgY2FuY2VsLm9uY2xpY2sgPSAoKSA9PiB7CiAgICAgIHJlc29sdmUobnVsbCk7CiAgICB9OwogIH0pOwoKICAvLyBXYWl0IGZvciB0aGUgdXNlciB0byBwaWNrIHRoZSBmaWxlcy4KICBjb25zdCBmaWxlcyA9IHlpZWxkIHsKICAgIHByb21pc2U6IFByb21pc2UucmFjZShbcGlja2VkUHJvbWlzZSwgY2FuY2VsUHJvbWlzZV0pLAogICAgcmVzcG9uc2U6IHsKICAgICAgYWN0aW9uOiAnc3RhcnRpbmcnLAogICAgfQogIH07CgogIGNhbmNlbC5yZW1vdmUoKTsKCiAgLy8gRGlzYWJsZSB0aGUgaW5wdXQgZWxlbWVudCBzaW5jZSBmdXJ0aGVyIHBpY2tzIGFyZSBub3QgYWxsb3dlZC4KICBpbnB1dEVsZW1lbnQuZGlzYWJsZWQgPSB0cnVlOwoKICBpZiAoIWZpbGVzKSB7CiAgICByZXR1cm4gewogICAgICByZXNwb25zZTogewogICAgICAgIGFjdGlvbjogJ2NvbXBsZXRlJywKICAgICAgfQogICAgfTsKICB9CgogIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykgewogICAgY29uc3QgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOwogICAgbGkuYXBwZW5kKHNwYW4oZmlsZS5uYW1lLCB7Zm9udFdlaWdodDogJ2JvbGQnfSkpOwogICAgbGkuYXBwZW5kKHNwYW4oCiAgICAgICAgYCgke2ZpbGUudHlwZSB8fCAnbi9hJ30pIC0gJHtmaWxlLnNpemV9IGJ5dGVzLCBgICsKICAgICAgICBgbGFzdCBtb2RpZmllZDogJHsKICAgICAgICAgICAgZmlsZS5sYXN0TW9kaWZpZWREYXRlID8gZmlsZS5sYXN0TW9kaWZpZWREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ24vYSd9IC0gYCkpOwogICAgY29uc3QgcGVyY2VudCA9IHNwYW4oJzAlIGRvbmUnKTsKICAgIGxpLmFwcGVuZENoaWxkKHBlcmNlbnQpOwoKICAgIG91dHB1dEVsZW1lbnQuYXBwZW5kQ2hpbGQobGkpOwoKICAgIGNvbnN0IGZpbGVEYXRhUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CiAgICAgIHJlYWRlci5vbmxvYWQgPSAoZSkgPT4gewogICAgICAgIHJlc29sdmUoZS50YXJnZXQucmVzdWx0KTsKICAgICAgfTsKICAgICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGUpOwogICAgfSk7CiAgICAvLyBXYWl0IGZvciB0aGUgZGF0YSB0byBiZSByZWFkeS4KICAgIGxldCBmaWxlRGF0YSA9IHlpZWxkIHsKICAgICAgcHJvbWlzZTogZmlsZURhdGFQcm9taXNlLAogICAgICByZXNwb25zZTogewogICAgICAgIGFjdGlvbjogJ2NvbnRpbnVlJywKICAgICAgfQogICAgfTsKCiAgICAvLyBVc2UgYSBjaHVua2VkIHNlbmRpbmcgdG8gYXZvaWQgbWVzc2FnZSBzaXplIGxpbWl0cy4gU2VlIGIvNjIxMTU2NjAuCiAgICBsZXQgcG9zaXRpb24gPSAwOwogICAgZG8gewogICAgICBjb25zdCBsZW5ndGggPSBNYXRoLm1pbihmaWxlRGF0YS5ieXRlTGVuZ3RoIC0gcG9zaXRpb24sIE1BWF9QQVlMT0FEX1NJWkUpOwogICAgICBjb25zdCBjaHVuayA9IG5ldyBVaW50OEFycmF5KGZpbGVEYXRhLCBwb3NpdGlvbiwgbGVuZ3RoKTsKICAgICAgcG9zaXRpb24gKz0gbGVuZ3RoOwoKICAgICAgY29uc3QgYmFzZTY0ID0gYnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIGNodW5rKSk7CiAgICAgIHlpZWxkIHsKICAgICAgICByZXNwb25zZTogewogICAgICAgICAgYWN0aW9uOiAnYXBwZW5kJywKICAgICAgICAgIGZpbGU6IGZpbGUubmFtZSwKICAgICAgICAgIGRhdGE6IGJhc2U2NCwKICAgICAgICB9LAogICAgICB9OwoKICAgICAgbGV0IHBlcmNlbnREb25lID0gZmlsZURhdGEuYnl0ZUxlbmd0aCA9PT0gMCA/CiAgICAgICAgICAxMDAgOgogICAgICAgICAgTWF0aC5yb3VuZCgocG9zaXRpb24gLyBmaWxlRGF0YS5ieXRlTGVuZ3RoKSAqIDEwMCk7CiAgICAgIHBlcmNlbnQudGV4dENvbnRlbnQgPSBgJHtwZXJjZW50RG9uZX0lIGRvbmVgOwoKICAgIH0gd2hpbGUgKHBvc2l0aW9uIDwgZmlsZURhdGEuYnl0ZUxlbmd0aCk7CiAgfQoKICAvLyBBbGwgZG9uZS4KICB5aWVsZCB7CiAgICByZXNwb25zZTogewogICAgICBhY3Rpb246ICdjb21wbGV0ZScsCiAgICB9CiAgfTsKfQoKc2NvcGUuZ29vZ2xlID0gc2NvcGUuZ29vZ2xlIHx8IHt9OwpzY29wZS5nb29nbGUuY29sYWIgPSBzY29wZS5nb29nbGUuY29sYWIgfHwge307CnNjb3BlLmdvb2dsZS5jb2xhYi5fZmlsZXMgPSB7CiAgX3VwbG9hZEZpbGVzLAogIF91cGxvYWRGaWxlc0NvbnRpbnVlLAp9Owp9KShzZWxmKTsK",
39 | "ok": true,
40 | "headers": [
41 | [
42 | "content-type",
43 | "application/javascript"
44 | ]
45 | ],
46 | "status": 200,
47 | "status_text": ""
48 | }
49 | },
50 | "base_uri": "https://localhost:8080/",
51 | "height": 73
52 | },
53 | "id": "JbBsj2VpdlB0",
54 | "outputId": "bc033ad7-8f3e-4397-aa63-9b2eea18cedf"
55 | },
56 | "outputs": [
57 | {
58 | "output_type": "display_data",
59 | "data": {
60 | "text/html": [
61 | "\n",
62 | " \n",
64 | " \n",
65 | " Upload widget is only available when the cell has been executed in the\n",
66 | " current browser session. Please rerun this cell to enable.\n",
67 | " \n",
68 | " "
69 | ],
70 | "text/plain": [
71 | ""
72 | ]
73 | },
74 | "metadata": {}
75 | },
76 | {
77 | "output_type": "stream",
78 | "name": "stdout",
79 | "text": [
80 | "Saving iris.csv to iris (4).csv\n"
81 | ]
82 | }
83 | ],
84 | "source": [
85 | "import numpy as np\n",
86 | "import pandas as pd\n",
87 | "from google.colab import files\n",
88 | "uploaded = files.upload()"
89 | ]
90 | },
91 | {
92 | "cell_type": "code",
93 | "source": [
94 | "df=pd.read_csv('iris.csv')\n",
95 | "df.head()"
96 | ],
97 | "metadata": {
98 | "colab": {
99 | "base_uri": "https://localhost:8080/",
100 | "height": 206
101 | },
102 | "id": "3kjpmXrRd6DM",
103 | "outputId": "1721d8ae-900c-4aab-e9e0-4c70bef279d7"
104 | },
105 | "execution_count": 2,
106 | "outputs": [
107 | {
108 | "output_type": "execute_result",
109 | "data": {
110 | "text/html": [
111 | "\n",
112 | " \n",
113 | "
\n",
114 | "
\n",
115 | "\n",
128 | "
\n",
129 | " \n",
130 | " \n",
131 | " \n",
132 | " 5.1 \n",
133 | " 3.5 \n",
134 | " 1.4 \n",
135 | " 0.2 \n",
136 | " 0 \n",
137 | " \n",
138 | " \n",
139 | " \n",
140 | " \n",
141 | " 0 \n",
142 | " 4.9 \n",
143 | " 3.0 \n",
144 | " 1.4 \n",
145 | " 0.2 \n",
146 | " 0 \n",
147 | " \n",
148 | " \n",
149 | " 1 \n",
150 | " 4.7 \n",
151 | " 3.2 \n",
152 | " 1.3 \n",
153 | " 0.2 \n",
154 | " 0 \n",
155 | " \n",
156 | " \n",
157 | " 2 \n",
158 | " 4.6 \n",
159 | " 3.1 \n",
160 | " 1.5 \n",
161 | " 0.2 \n",
162 | " 0 \n",
163 | " \n",
164 | " \n",
165 | " 3 \n",
166 | " 5.0 \n",
167 | " 3.6 \n",
168 | " 1.4 \n",
169 | " 0.2 \n",
170 | " 0 \n",
171 | " \n",
172 | " \n",
173 | " 4 \n",
174 | " 5.4 \n",
175 | " 3.9 \n",
176 | " 1.7 \n",
177 | " 0.4 \n",
178 | " 0 \n",
179 | " \n",
180 | " \n",
181 | "
\n",
182 | "
\n",
183 | "
\n",
186 | " \n",
187 | " \n",
189 | " \n",
190 | " \n",
191 | " \n",
192 | " \n",
193 | " \n",
194 | " \n",
231 | "\n",
232 | " \n",
256 | "
\n",
257 | "
\n",
258 | " "
259 | ],
260 | "text/plain": [
261 | " 5.1 3.5 1.4 0.2 0\n",
262 | "0 4.9 3.0 1.4 0.2 0\n",
263 | "1 4.7 3.2 1.3 0.2 0\n",
264 | "2 4.6 3.1 1.5 0.2 0\n",
265 | "3 5.0 3.6 1.4 0.2 0\n",
266 | "4 5.4 3.9 1.7 0.4 0"
267 | ]
268 | },
269 | "metadata": {},
270 | "execution_count": 2
271 | }
272 | ]
273 | },
274 | {
275 | "cell_type": "code",
276 | "source": [
277 | "df.columns=['SepalLen','SepalWidth','PetalLen','PetalWidth','Class']\n",
278 | "df.head(10)"
279 | ],
280 | "metadata": {
281 | "colab": {
282 | "base_uri": "https://localhost:8080/",
283 | "height": 363
284 | },
285 | "id": "m3FFRSjKeF_c",
286 | "outputId": "7644bf35-27ce-4a76-8560-0aedc645ef60"
287 | },
288 | "execution_count": 3,
289 | "outputs": [
290 | {
291 | "output_type": "execute_result",
292 | "data": {
293 | "text/html": [
294 | "\n",
295 | " \n",
296 | "
\n",
297 | "
\n",
298 | "\n",
311 | "
\n",
312 | " \n",
313 | " \n",
314 | " \n",
315 | " SepalLen \n",
316 | " SepalWidth \n",
317 | " PetalLen \n",
318 | " PetalWidth \n",
319 | " Class \n",
320 | " \n",
321 | " \n",
322 | " \n",
323 | " \n",
324 | " 0 \n",
325 | " 4.9 \n",
326 | " 3.0 \n",
327 | " 1.4 \n",
328 | " 0.2 \n",
329 | " 0 \n",
330 | " \n",
331 | " \n",
332 | " 1 \n",
333 | " 4.7 \n",
334 | " 3.2 \n",
335 | " 1.3 \n",
336 | " 0.2 \n",
337 | " 0 \n",
338 | " \n",
339 | " \n",
340 | " 2 \n",
341 | " 4.6 \n",
342 | " 3.1 \n",
343 | " 1.5 \n",
344 | " 0.2 \n",
345 | " 0 \n",
346 | " \n",
347 | " \n",
348 | " 3 \n",
349 | " 5.0 \n",
350 | " 3.6 \n",
351 | " 1.4 \n",
352 | " 0.2 \n",
353 | " 0 \n",
354 | " \n",
355 | " \n",
356 | " 4 \n",
357 | " 5.4 \n",
358 | " 3.9 \n",
359 | " 1.7 \n",
360 | " 0.4 \n",
361 | " 0 \n",
362 | " \n",
363 | " \n",
364 | " 5 \n",
365 | " 4.6 \n",
366 | " 3.4 \n",
367 | " 1.4 \n",
368 | " 0.3 \n",
369 | " 0 \n",
370 | " \n",
371 | " \n",
372 | " 6 \n",
373 | " 5.0 \n",
374 | " 3.4 \n",
375 | " 1.5 \n",
376 | " 0.2 \n",
377 | " 0 \n",
378 | " \n",
379 | " \n",
380 | " 7 \n",
381 | " 4.4 \n",
382 | " 2.9 \n",
383 | " 1.4 \n",
384 | " 0.2 \n",
385 | " 0 \n",
386 | " \n",
387 | " \n",
388 | " 8 \n",
389 | " 4.9 \n",
390 | " 3.1 \n",
391 | " 1.5 \n",
392 | " 0.1 \n",
393 | " 0 \n",
394 | " \n",
395 | " \n",
396 | " 9 \n",
397 | " 5.4 \n",
398 | " 3.7 \n",
399 | " 1.5 \n",
400 | " 0.2 \n",
401 | " 0 \n",
402 | " \n",
403 | " \n",
404 | "
\n",
405 | "
\n",
406 | "
\n",
409 | " \n",
410 | " \n",
412 | " \n",
413 | " \n",
414 | " \n",
415 | " \n",
416 | " \n",
417 | " \n",
454 | "\n",
455 | " \n",
479 | "
\n",
480 | "
\n",
481 | " "
482 | ],
483 | "text/plain": [
484 | " SepalLen SepalWidth PetalLen PetalWidth Class\n",
485 | "0 4.9 3.0 1.4 0.2 0\n",
486 | "1 4.7 3.2 1.3 0.2 0\n",
487 | "2 4.6 3.1 1.5 0.2 0\n",
488 | "3 5.0 3.6 1.4 0.2 0\n",
489 | "4 5.4 3.9 1.7 0.4 0\n",
490 | "5 4.6 3.4 1.4 0.3 0\n",
491 | "6 5.0 3.4 1.5 0.2 0\n",
492 | "7 4.4 2.9 1.4 0.2 0\n",
493 | "8 4.9 3.1 1.5 0.1 0\n",
494 | "9 5.4 3.7 1.5 0.2 0"
495 | ]
496 | },
497 | "metadata": {},
498 | "execution_count": 3
499 | }
500 | ]
501 | },
502 | {
503 | "cell_type": "code",
504 | "source": [
505 | "df.head()"
506 | ],
507 | "metadata": {
508 | "colab": {
509 | "base_uri": "https://localhost:8080/",
510 | "height": 206
511 | },
512 | "id": "e1V0htBUeOtt",
513 | "outputId": "8e883d41-0bdc-4807-c834-18a1cb0a869b"
514 | },
515 | "execution_count": 4,
516 | "outputs": [
517 | {
518 | "output_type": "execute_result",
519 | "data": {
520 | "text/html": [
521 | "\n",
522 | " \n",
523 | "
\n",
524 | "
\n",
525 | "\n",
538 | "
\n",
539 | " \n",
540 | " \n",
541 | " \n",
542 | " SepalLen \n",
543 | " SepalWidth \n",
544 | " PetalLen \n",
545 | " PetalWidth \n",
546 | " Class \n",
547 | " \n",
548 | " \n",
549 | " \n",
550 | " \n",
551 | " 0 \n",
552 | " 4.9 \n",
553 | " 3.0 \n",
554 | " 1.4 \n",
555 | " 0.2 \n",
556 | " 0 \n",
557 | " \n",
558 | " \n",
559 | " 1 \n",
560 | " 4.7 \n",
561 | " 3.2 \n",
562 | " 1.3 \n",
563 | " 0.2 \n",
564 | " 0 \n",
565 | " \n",
566 | " \n",
567 | " 2 \n",
568 | " 4.6 \n",
569 | " 3.1 \n",
570 | " 1.5 \n",
571 | " 0.2 \n",
572 | " 0 \n",
573 | " \n",
574 | " \n",
575 | " 3 \n",
576 | " 5.0 \n",
577 | " 3.6 \n",
578 | " 1.4 \n",
579 | " 0.2 \n",
580 | " 0 \n",
581 | " \n",
582 | " \n",
583 | " 4 \n",
584 | " 5.4 \n",
585 | " 3.9 \n",
586 | " 1.7 \n",
587 | " 0.4 \n",
588 | " 0 \n",
589 | " \n",
590 | " \n",
591 | "
\n",
592 | "
\n",
593 | "
\n",
596 | " \n",
597 | " \n",
599 | " \n",
600 | " \n",
601 | " \n",
602 | " \n",
603 | " \n",
604 | " \n",
641 | "\n",
642 | " \n",
666 | "
\n",
667 | "
\n",
668 | " "
669 | ],
670 | "text/plain": [
671 | " SepalLen SepalWidth PetalLen PetalWidth Class\n",
672 | "0 4.9 3.0 1.4 0.2 0\n",
673 | "1 4.7 3.2 1.3 0.2 0\n",
674 | "2 4.6 3.1 1.5 0.2 0\n",
675 | "3 5.0 3.6 1.4 0.2 0\n",
676 | "4 5.4 3.9 1.7 0.4 0"
677 | ]
678 | },
679 | "metadata": {},
680 | "execution_count": 4
681 | }
682 | ]
683 | },
684 | {
685 | "cell_type": "markdown",
686 | "source": [
687 | "\n",
688 | "\n",
689 | "```\n",
690 | "# Training\n",
691 | "```\n",
692 | "\n"
693 | ],
694 | "metadata": {
695 | "id": "Q7KwCc1DeZWd"
696 | }
697 | },
698 | {
699 | "cell_type": "code",
700 | "source": [
701 | "#I am using Sigmoid function as the activation function\n",
702 | "def activation_func(value): #Tangent Hypotenuse\n",
703 | " #return (1/(1+np.exp(-value)))\n",
704 | " return ((np.exp(value)-np.exp(-value))/(np.exp(value)+np.exp(-value)))"
705 | ],
706 | "metadata": {
707 | "id": "tNHRdBU6eR8F"
708 | },
709 | "execution_count": 5,
710 | "outputs": []
711 | },
712 | {
713 | "cell_type": "code",
714 | "source": [
715 | "def perceptron_train(in_data,labels,alpha):\n",
716 | " X=np.array(in_data)\n",
717 | " y=np.array(labels)\n",
718 | " weights=np.random.random(X.shape[1])\n",
719 | " original=weights\n",
720 | " bias=np.random.random_sample()\n",
721 | " for key in range(X.shape[0]):\n",
722 | " a=activation_func(np.matmul(np.transpose(weights),X[key])) \n",
723 | " yn=0\n",
724 | " if a>=0.7:\n",
725 | " yn=1\n",
726 | " elif a<=(-0.7):\n",
727 | " yn=-1\n",
728 | " weights=weights+alpha*(yn-y[key])*X[key]\n",
729 | " print('Iteration '+str(key)+': '+str(weights))\n",
730 | " print('Difference: '+str(weights-original))\n",
731 | " return weights"
732 | ],
733 | "metadata": {
734 | "id": "ACZYsWiJfuef"
735 | },
736 | "execution_count": 6,
737 | "outputs": []
738 | },
739 | {
740 | "cell_type": "markdown",
741 | "source": [
742 | "#Testing and **Score**"
743 | ],
744 | "metadata": {
745 | "id": "_n5EPVmCgb3p"
746 | }
747 | },
748 | {
749 | "cell_type": "code",
750 | "source": [
751 | "\n",
752 | "def perceptron_test(in_data,label_shape,weights):\n",
753 | " X=np.array(in_data)\n",
754 | " y=np.zeros(label_shape)\n",
755 | " for key in range(X.shape[1]):\n",
756 | " a=activation_func((weights*X[key]).sum())\n",
757 | " y[key]=0\n",
758 | " if a>=0.7:\n",
759 | " y[key]=1\n",
760 | " elif a<=(-0.7):\n",
761 | " y[key]=-1\n",
762 | " return y"
763 | ],
764 | "metadata": {
765 | "id": "Hc9RMDB3eyIQ"
766 | },
767 | "execution_count": 7,
768 | "outputs": []
769 | },
770 | {
771 | "cell_type": "code",
772 | "source": [
773 | "def score(result,labels):\n",
774 | " difference=result-np.array(labels) \n",
775 | " correct_ctr=0\n",
776 | " for elem in range(difference.shape[0]):\n",
777 | " if difference[elem]==0:\n",
778 | " correct_ctr+=1\n",
779 | " score=correct_ctr*100/difference.size\n",
780 | " print('Score='+str(score))"
781 | ],
782 | "metadata": {
783 | "id": "32fTQkoLfNcW"
784 | },
785 | "execution_count": 8,
786 | "outputs": []
787 | },
788 | {
789 | "cell_type": "markdown",
790 | "source": [
791 | "#Main **codes**"
792 | ],
793 | "metadata": {
794 | "id": "GFEFamRNgkzu"
795 | }
796 | },
797 | {
798 | "cell_type": "code",
799 | "source": [
800 | "# Dividing DataFrame \"data\" into \"d_train\" (60%) and \"d_test\" (40%)\n",
801 | "divider = np.random.rand(len(df)) < 0.60\n",
802 | "d_train=df[divider]\n",
803 | "d_test=df[~divider]"
804 | ],
805 | "metadata": {
806 | "id": "Fo64Cfm0fPuU"
807 | },
808 | "execution_count": 9,
809 | "outputs": []
810 | },
811 | {
812 | "cell_type": "code",
813 | "source": [
814 | "# Dividing d_train into data and labels/targets\n",
815 | "d_train_y=d_train['Class']\n",
816 | "d_train_X=d_train.drop(['Class'],axis=1)\n",
817 | "\n",
818 | "# Dividing d_train into data and labels/targets\n",
819 | "d_test_y=d_test['Class']\n",
820 | "d_test_X=d_test.drop(['Class'],axis=1)"
821 | ],
822 | "metadata": {
823 | "id": "G5ch48H5fVvH"
824 | },
825 | "execution_count": 10,
826 | "outputs": []
827 | },
828 | {
829 | "cell_type": "code",
830 | "source": [
831 | "# Learning rate\n",
832 | "alpha = 0.001\n",
833 | "\n",
834 | "# Train\n",
835 | "weights = perceptron_train(d_train_X, d_train_y, alpha)"
836 | ],
837 | "metadata": {
838 | "colab": {
839 | "base_uri": "https://localhost:8080/"
840 | },
841 | "id": "CVqN8RGMfeuf",
842 | "outputId": "ddafaef3-80cd-4b44-eb60-f8f0c6189501"
843 | },
844 | "execution_count": 11,
845 | "outputs": [
846 | {
847 | "output_type": "stream",
848 | "name": "stdout",
849 | "text": [
850 | "Iteration 0: [0.45168832 0.39015584 0.81917719 0.22836588]\n",
851 | "Iteration 1: [0.45668832 0.39375584 0.82057719 0.22856588]\n",
852 | "Iteration 2: [0.46208832 0.39765584 0.82227719 0.22896588]\n",
853 | "Iteration 3: [0.46668832 0.40105584 0.82367719 0.22926588]\n",
854 | "Iteration 4: [0.47168832 0.40445584 0.82517719 0.22946588]\n",
855 | "Iteration 5: [0.47608832 0.40735584 0.82657719 0.22966588]\n",
856 | "Iteration 6: [0.48148832 0.41105584 0.82807719 0.22986588]\n",
857 | "Iteration 7: [0.48628832 0.41405584 0.82947719 0.22996588]\n",
858 | "Iteration 8: [0.49208832 0.41805584 0.83067719 0.23016588]\n",
859 | "Iteration 9: [0.49778832 0.42245584 0.83217719 0.23056588]\n",
860 | "Iteration 10: [0.50288832 0.42625584 0.83367719 0.23086588]\n",
861 | "Iteration 11: [0.50828832 0.42965584 0.83537719 0.23106588]\n",
862 | "Iteration 12: [0.51288832 0.43325584 0.83637719 0.23126588]\n",
863 | "Iteration 13: [0.51768832 0.43665584 0.83827719 0.23146588]\n",
864 | "Iteration 14: [0.52288832 0.44015584 0.83977719 0.23166588]\n",
865 | "Iteration 15: [0.52758832 0.44335584 0.84137719 0.23186588]\n",
866 | "Iteration 16: [0.53298832 0.44675584 0.84287719 0.23226588]\n",
867 | "Iteration 17: [0.53818832 0.45085584 0.84437719 0.23236588]\n",
868 | "Iteration 18: [0.54368832 0.45505584 0.84577719 0.23256588]\n",
869 | "Iteration 19: [0.54858832 0.45815584 0.84727719 0.23266588]\n",
870 | "Iteration 20: [0.55358832 0.46135584 0.84847719 0.23286588]\n",
871 | "Iteration 21: [0.55858832 0.46485584 0.84977719 0.23316588]\n",
872 | "Iteration 22: [0.56308832 0.46715584 0.85107719 0.23346588]\n",
873 | "Iteration 23: [0.56748832 0.47035584 0.85237719 0.23366588]\n",
874 | "Iteration 24: [0.57248832 0.47385584 0.85397719 0.23426588]\n",
875 | "Iteration 25: [0.57758832 0.47765584 0.85587719 0.23466588]\n",
876 | "Iteration 26: [0.58238832 0.48065584 0.85727719 0.23496588]\n",
877 | "Iteration 27: [0.58698832 0.48385584 0.85867719 0.23516588]\n",
878 | "Iteration 28: [0.59228832 0.48755584 0.86017719 0.23536588]\n",
879 | "Iteration 29: [0.59728832 0.49085584 0.86157719 0.23556588]\n",
880 | "Iteration 30: [0.61108832 0.49705584 0.87137719 0.23856588]\n",
881 | "Iteration 31: [0.62208832 0.50165584 0.87937719 0.24116588]\n",
882 | "Iteration 32: [0.63508832 0.50725584 0.88857719 0.24416588]\n",
883 | "Iteration 33: [0.64648832 0.51285584 0.89757719 0.24676588]\n",
884 | "Iteration 34: [0.65648832 0.51685584 0.90457719 0.24876588]\n",
885 | "Iteration 35: [0.66828832 0.52285584 0.91297719 0.25176588]\n",
886 | "Iteration 36: [0.68028832 0.52725584 0.92097719 0.25376588]\n",
887 | "Iteration 37: [0.69248832 0.53305584 0.93037719 0.25656588]\n",
888 | "Iteration 38: [0.70588832 0.53925584 0.93917719 0.25936588]\n",
889 | "Iteration 39: [0.71708832 0.54525584 0.94817719 0.26236588]\n",
890 | "Iteration 40: [0.72948832 0.54965584 0.95717719 0.26536588]\n",
891 | "Iteration 41: [0.74128832 0.55605584 0.96677719 0.26896588]\n",
892 | "Iteration 42: [0.75348832 0.56165584 0.97477719 0.27156588]\n",
893 | "Iteration 43: [0.76608832 0.56665584 0.98457719 0.27456588]\n",
894 | "Iteration 44: [0.77828832 0.57225584 0.99397719 0.27696588]\n",
895 | "Iteration 45: [0.79108832 0.57805584 1.00257719 0.27956588]\n",
896 | "Iteration 46: [0.80468832 0.58365584 1.01217719 0.28236588]\n",
897 | "Iteration 47: [0.81668832 0.58945584 1.02117719 0.28536588]\n",
898 | "Iteration 48: [0.82768832 0.59425584 1.02877719 0.28756588]\n",
899 | "Iteration 49: [0.83868832 0.59905584 1.03617719 0.28956588]\n",
900 | "Iteration 50: [0.85028832 0.60445584 1.04397719 0.29196588]\n",
901 | "Iteration 51: [0.86108832 0.61045584 1.05297719 0.29496588]\n",
902 | "Iteration 52: [0.87448832 0.61665584 1.06237719 0.29796588]\n",
903 | "Iteration 53: [0.88708832 0.62125584 1.07117719 0.30056588]\n",
904 | "Iteration 54: [0.89808832 0.62625584 1.07917719 0.30316588]\n",
905 | "Iteration 55: [0.91028832 0.63225584 1.08837719 0.30596588]\n",
906 | "Iteration 56: [0.92168832 0.63825584 1.09677719 0.30836588]\n",
907 | "Iteration 57: [0.93408832 0.64405584 1.10537719 0.31096588]\n",
908 | "Iteration 58: [0.94428832 0.64905584 1.11137719 0.31316588]\n",
909 | "Iteration 59: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
910 | "Iteration 60: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
911 | "Iteration 61: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
912 | "Iteration 62: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
913 | "Iteration 63: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
914 | "Iteration 64: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
915 | "Iteration 65: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
916 | "Iteration 66: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
917 | "Iteration 67: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
918 | "Iteration 68: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
919 | "Iteration 69: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
920 | "Iteration 70: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
921 | "Iteration 71: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
922 | "Iteration 72: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
923 | "Iteration 73: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
924 | "Iteration 74: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
925 | "Iteration 75: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
926 | "Iteration 76: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
927 | "Iteration 77: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
928 | "Iteration 78: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
929 | "Iteration 79: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
930 | "Iteration 80: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
931 | "Iteration 81: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
932 | "Iteration 82: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
933 | "Iteration 83: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
934 | "Iteration 84: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
935 | "Iteration 85: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
936 | "Iteration 86: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
937 | "Iteration 87: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
938 | "Iteration 88: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
939 | "Iteration 89: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
940 | "Iteration 90: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
941 | "Iteration 91: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
942 | "Iteration 92: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
943 | "Iteration 93: [0.95568832 0.65465584 1.11957719 0.31576588]\n",
944 | "Difference: [0.5089 0.2675 0.3018 0.0876]\n"
945 | ]
946 | }
947 | ]
948 | },
949 | {
950 | "cell_type": "code",
951 | "source": [
952 | "# Test\n",
953 | "result_test=perceptron_test(d_test_X,d_test_y.shape,weights)"
954 | ],
955 | "metadata": {
956 | "id": "xw9fvsiUfho3"
957 | },
958 | "execution_count": 12,
959 | "outputs": []
960 | },
961 | {
962 | "cell_type": "code",
963 | "source": [
964 | "# Calculate score\n",
965 | "score(result_test,d_test_y)"
966 | ],
967 | "metadata": {
968 | "colab": {
969 | "base_uri": "https://localhost:8080/"
970 | },
971 | "id": "owJYm8HbgDAG",
972 | "outputId": "c1483dbd-da1f-4acb-ddc6-8b570f2caa63"
973 | },
974 | "execution_count": 13,
975 | "outputs": [
976 | {
977 | "output_type": "stream",
978 | "name": "stdout",
979 | "text": [
980 | "Score=27.272727272727273\n"
981 | ]
982 | }
983 | ]
984 | }
985 | ]
986 | }
--------------------------------------------------------------------------------