Skip to content

Instantly share code, notes, and snippets.

@txrunn
Last active March 28, 2023 16:40
Show Gist options
  • Save txrunn/4346ea0c4a741871e578d4be88d179db to your computer and use it in GitHub Desktop.
Save txrunn/4346ea0c4a741871e578d4be88d179db to your computer and use it in GitHub Desktop.
Perceptron ML Algorithm
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"attachments": {
"Screenshot%202023-03-03%20153024.png": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABa0AAAGfCAYAAABcPf4TAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAOONSURBVHhe7N0FfNbVFwbwS3d3dyrd3d3dIaikdIMIgjQSEkpICSjd3Q3S/KW7u3Ns8Oc+Z2fOOSax+G0838/n53OZxLZ3e9939z33nGCv3zBERERERERERERERA6ATevWrVu7/5KIiIiIiIiIiIiIKOBg0zpYsGDuvyQiIiIiIiIiIiIiCjgem9afffaZGTNmjPubiYiIiIiIiIiIiIj8j+0I8tdff/1z0/p///uf+/8mIiIiIiIiIiIiIvI/n3/+OTatg7v/moiIiIiIiIiIiIgowHHTmoiIiIiIiIiIiIgcg5vWREREREREREREROQY3LQmIiIiIiIiIiIiIsfgpjUREREREREREREROQY3rYmIiIiIiIiIiIjIMbhpTURERERERERERESOwU1rIiIiIiIiIiIiInIMbloTERERERERERERkWNw05qIiIiIiIiIiIiIHIOb1kRERERERERERETkGNy0JiIiIiIiIiIiIiLH4KY1ERERERERERERETlGsNdvBAsWzHz22Wfmf//7n/ubiehTcv36deSJEyeQ9tf379/H+sWLF8gQIUIgI0eObGLHjo114sSJkWnTpkXa+xIiIiIiIiIiIqIP8fnnn5u//vqLldZERERERERERERE5BystCb6RFy7dg158OBB5LZt28zGjRux3rdvH9LFxQX5vlKmTIksVKgQLit79uzIdOnSIYmIiIiIiIiIiHyildbctCYKok6fPo0cNWoU8tdff0U+ffoUaSVJkgSpG8yVKlVC2k3ocOHCYa1tQd7cVSCfPXtmbt26hfX69euRa9euRR4/fty4ublhrQoXLozs2bOnKV68ONZEREREREREREResT0IERERERERERERETkOK62JgpAHDx4gx4wZY7799lustUJahya2a9cOWaZMGY+2HiFDhkR+rCtXrpjDhw9jPWzYMOSGDRuQlv03rcGDByMzZMiAJCIiIiIiIiIiYqU1ERERERERERERETkOK62JgoCtW7ci69ati7x8+bJJnjw51oMGDUKWLVsWGSFCBKR/OXToEHLAgAFmzpw5WKsff/wR2b59eyQRERER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Butt27Yh30Xs2LE92oiUL18eWaxYMWTUqFGRREREREENK62JiMhJWGlNRERERERERERERI7DSmsiIocaPXo0sl27dsjgwYOb6dOnY121alVk2LBhkU6yd+9epK3a0T7T1apVQ/7888/ImDFjIv3a5s2bkatWrULaX+/fvx/rFy9eIH2SJEkSZMWKFU3JkiWxto+XVrJkyZBEREREgRkrrYmIyElYaU1EREREREREREREjsNKayIih9u1axeyQYMG5vTp01jbVx6tkSNHIrX3ckDQShztxf3TTz8hre+//x757bffIp3gzJkzyPXr1yMnTpyItBXYr169wton4cOHR+bPnx/ZvHlzkyNHDqwTJkyIJCIiIgosWGlNREROopXW3LQmIgokHj58aDp27Ij1pEmTkKpQoUIeP3DkyZMHGTlyZKRvcnNzQ544cQJpN6qnTZuGtW745syZE2lbgQSGwZFvHgaRx48fNytXrsRaN7L149Tf8zb6uS5atCiyZcuWyEyZMmHAIxEREZFTcdOaiIichO1BiIiIiIiIiIiIiMhxWGlNRBQIHT16FDljxgzkiBEjPAYLxogRA5ktWzZk3rx5PdqJJEiQABk3blxkpEiRMODRevr0KfLOnTtIrbCx7TT+/PNPrHfs2IE8d+4c0tIhiw0bNkQWL14cqW00AqPnz58jT548idyzZ49HFfby5cuR7zLIMU6cOB6tQ7SFS5kyZZBp0qRBEhEREQUkVloTEZGTsNKaiIiIiIiIiIiIiByHldZEREHA9evXzaJFi7CeP38+csOGDUjvhgva+30rQoQI/6q0dnV1RXonc+bMyNKlSyNr1arl8bZPhQ7DXLp0KXLdunVm1apVWL/LIMfQoUMjK1asiLSV6bpmNRMRERH5N1ZaExGRk7DSmoiIiIiIiIiIiIgch5XWRERB1IULF5D79u0zx48fx/rKlSvIa9euIR89emTePAxgHS5cOKT2xE6SJAkyWbJkJmPGjFhnzZoVSf+kj58rVqxAat/rLVu2IP9L9OjRkeXKlUNqJbvtfx0tWjSsiYiIiPwCK62JiMhJtNKam9ZERER+ZPfu3R5tRHQD+8CBA8jHjx8jfZIwYUJTtmxZrHVD2z5eWylSpEASERERfQxuWhMRkZOwPQgREREREREREREROQ4rrYk+YS4uLkjbIsJ69uwZ0g7i00F9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"
}
},
"cell_type": "markdown",
"id": "ac237c4c",
"metadata": {},
"source": [
"# The Perceptron Learning Algorithm\n",
"\n",
"Here we're creating a Python class that implements **Rosenblatt's Perceptron rule**, to be then used with the *Iris* dataset.\n",
"\n",
"![Screenshot%202023-03-03%20153024.png](attachment:Screenshot%202023-03-03%20153024.png)\n",
"\n",
"\n",
"### An outline:\n",
"\n",
"- If correct: Do nothing if the prediction if output is equal to the target\n",
"- If incorrect, scenario a):\n",
" - If output is 0 and target is 1, add input vector to weight vector\n",
"- If incorrect, scenario b):\n",
" - If output is 1 and target is 0, subtract input vector from weight vector\n",
"\n",
"Since the number of iterations i has an upper\n",
"bound, we can conclude that the weights only change a finite number of times and will converge if the classes are linearly separable.\n",
"\n",
"\n",
"## Implementing a Perceptron Class\n",
"\n",
"Defining the perceptron interface as a OOP Python class, will allow us to initialize new Perceptron objects that can learn from data via a fit method, and make predictions via a separate predict method.\n",
"\n",
"As a convention, we append an underscore (_) to attributes that are not created upon initialization, but this can be dones through calling other methods like ```self.w_```."
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "c993f955",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"\n",
"class Perceptron(object):\n",
" \"\"\"Perceptron classifier.\n",
" \n",
" Parameters\n",
" ------------\n",
" eta : float\n",
" Learning rate (between 0.0 and 1.0)\n",
" n_iter : int\n",
" Random number generator seed for random weight initialization.\n",
" \n",
" Attributes\n",
" -----------\n",
" w_ : Id-array\n",
" Weights after fitting.\n",
" errors_ : list\n",
" Number of misclassifications (updates) in each epoch.\n",
" \n",
" \"\"\"\n",
" \n",
" def __init__(self, eta = 0.01, n_iter = 50, random_state = 1):\n",
" self.eta = eta\n",
" self.n_iter = n_iter\n",
" self.random_state = random_state\n",
" \n",
" def fit(self, X, y):\n",
" \"\"\"Fit training data.\n",
" \n",
" Parameters\n",
" ----------\n",
" X : {array-like}, shape = [n_examples, n_features]\n",
" Training vectors, where n_examples is the number of examples and n_features is the number of features.\n",
" y : array-like, shape = [n_examples]\n",
" Target values.\n",
" \n",
" Returns\n",
" -------\n",
" self : object\n",
" \n",
" \"\"\"\n",
" \n",
" rgen = np.random.RandomState(self.random_state)\n",
" self.w_ = rgen.normal(loc = 0.0, scale = 0.01, size = 1 + X.shape[1])\n",
" \n",
" self.errors_ = []\n",
" \n",
" for _ in range(self.n_iter):\n",
" errors = 0\n",
" for xi, target in zip(X, y):\n",
" update = self.eta * (target - self.predict(xi))\n",
" self.w_[1:] += update * xi\n",
" self.w_[0] += update\n",
" errors += int(update != 0.0)\n",
" self.errors_.append(errors)\n",
" return self\n",
" \n",
" def net_input(self, X):\n",
" \"\"\"Calculate net input\"\"\"\n",
" return np.dot(X, self.w_[1:]) + self.w_[0]\n",
" \n",
" def predict(self, X): \n",
" \"\"\"Return class label after unit step\"\"\"\n",
" return np.where(self.net_input(X) >= 0.0, 1, -1)"
]
},
{
"cell_type": "markdown",
"id": "d5219bab",
"metadata": {},
"source": [
"This perceptron implementation allows us to initialize new ```Perceptron``` objects that has the following parameters:\n",
"- rate\n",
"- ```eta```\n",
"- the number of epochs\n",
"- the number of passes over the training dataset (```n_iter```)\n",
"\n",
"Calling the ```fit``` method allows us to intialize the weights of ```self.w_``` into a vector. \n",
"- The vector represents $\\mathbb{R} ^ {m + 1}$, where $m$ is the number of features/dimensions in the dataset. \n",
"- Since the first unit in the vector (```self.w_[0]```) represents the bias unit, we simply add 1.\n",
"\n",
"This vector contains small numbers that were generated from a normal distribution with a standard deviation of 0.01. This is done through ```rgen``` from NumPy, allowing the user to reproduce results with a seed.\n",
"\n",
"#### Some Wonky Trig\n",
"We don't initialize the weights to 0 since the learning rate, which is defined by the ```eta``` ($\\eta$) won't have an effect on classification unless the weights are initialized to non-zero values. Setting weights to 0 would cause $\\eta$ to only affect scale and not direction. Think of how trig functions can get wonky when working with 0."
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "ebd1d42b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.0"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"v1 = np.array([1, 2, 3])\n",
"v2 = 0.5 * v1\n",
"\n",
"# working with inverse cosine and an angle of 0\n",
"np.arccos(v1.dot(v2) / (np.linalg.norm(v1) * np.linalg.norm(v2)))"
]
},
{
"cell_type": "markdown",
"id": "8c34a849",
"metadata": {},
"source": [
"Once weights are initialized, the ```fit``` method loops over every example in the dataset and updates the weights based on the perceptron learning rule.\n",
"\n",
"Class labels are predicted by the ```predict``` method. This method is used during training in the ```fit``` method, but can also be called after the model has already been trained/fitted to predict the class labels of any new data.\n",
"\n",
"Misclassifications are stored during each epoch intro the ```self.errors_``` list for later evalutation of the model's training accuracy.\n",
"\n",
"```np.dot``` used in the ```net_input``` function simply calculates a dot product of $w^Tx$."
]
},
{
"cell_type": "markdown",
"id": "48f072e0",
"metadata": {},
"source": [
"## Training the Perceptron Model\n",
"\n",
"Perceptron is a binary classifier, it works best at working out what is and what isn't rather than specifics. However, the perceptron algorithm can be extended to multi-class classification through techniques like the **one-vs.-all (OvA)** technique.\n",
"\n",
"In this example, we'll only focus on two feature variables (dimensions), sepal and petal length so we can visualize the decision regions of the model in a scatter plot.\n",
"\n",
"We're also only going to consider the Setosa and Versicolor flower classes in the Iris dataset.\n",
"\n",
"### Loading the Iris Dataset into an In-Memory ```DataFrame```"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "59ee7915",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>0</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>145</th>\n",
" <td>6.7</td>\n",
" <td>3.0</td>\n",
" <td>5.2</td>\n",
" <td>2.3</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <th>146</th>\n",
" <td>6.3</td>\n",
" <td>2.5</td>\n",
" <td>5.0</td>\n",
" <td>1.9</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <th>147</th>\n",
" <td>6.5</td>\n",
" <td>3.0</td>\n",
" <td>5.2</td>\n",
" <td>2.0</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <th>148</th>\n",
" <td>6.2</td>\n",
" <td>3.4</td>\n",
" <td>5.4</td>\n",
" <td>2.3</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <th>149</th>\n",
" <td>5.9</td>\n",
" <td>3.0</td>\n",
" <td>5.1</td>\n",
" <td>1.8</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 0 1 2 3 4\n",
"145 6.7 3.0 5.2 2.3 Iris-virginica\n",
"146 6.3 2.5 5.0 1.9 Iris-virginica\n",
"147 6.5 3.0 5.2 2.0 Iris-virginica\n",
"148 6.2 3.4 5.4 2.3 Iris-virginica\n",
"149 5.9 3.0 5.1 1.8 Iris-virginica"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import os\n",
"import pandas as pd\n",
"\n",
"# Putting Iris into a pandas in-memory DataFrame\n",
"iris = pd.read_csv('iris.data',\n",
" header = None,\n",
" encoding = 'utf-8')\n",
"\n",
"# Taking a look at the last couple rows\n",
"iris.tail()"
]
},
{
"cell_type": "markdown",
"id": "de4ba1f9",
"metadata": {},
"source": [
"Once we've captured our Iris dataset into a pandas DataFrame, we can take a look at our 2 types of plants, setosa and versicolor, on a scatter plot."
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "c81ef6ef",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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4L333sPf/vY3pKWlmU/2q1evRr9+/aw+56hNmzbhpZdewttvv43+/fsjIiICb731FtLS0uocd0lJCebNm4dRo0ZZzQsNDTX/d/UEQKfToaKios7fW5Ua6w4LC6vT97hzu4j8ARMVIi+i0+mQkJCAhIQEzJ49G61bt8bnn3+OGTNmoEWLFjh37hzGjRtX4zoOHz6MQYMGAVCuuBw5cgRTp04FAKSmpmLAgAGYPHmyeXlTZ9G66tWrF86ePYs77rijzuvo0KED/v3vf1tMS09Pt3gfHBwMo9FY5++oTbdu3bBu3Trcvn27xqsqRKQuJipEXiItLQ379+/H0KFDER0djbS0NPz666/o1KkTAGDevHl4/vnnodfrMXz4cJSWluKHH37A1atXMWPGDPN6li9fjnbt2qFTp0545513cPXqVUycOBEA0K5dO/zzn//E7t27ERcXh/Xr1yM9PR1xcXF1jnv27Nl46KGH0KpVK4wePRr16tXD8ePHcfLkSbzxxhsOrePpp5/GkiVL8Morr2DSpEnIyMhAUlISACV5A5TCbiUlJdi/fz+6d++O8PBw85UmNUydOhXvvfceHn30UcyaNQt6vR6HDx9G37590aFDB9W+h4gscXgykZeIjIzEwYMH8fvf/x7t27fHa6+9hrfffhsPPPAAAOCpp57CmjVrsHbtWnTt2hWJiYlISkqySjIWL16MxYsXo3v37vj222+xY8cONGnSBICSEIwaNQpjxoxBv379cOXKFYurK3UxbNgwfPnll9izZw/69OmDu+++G++88w5at27t8Dri4uKwZcsWbNu2Dd26dcOKFSvwt7/9DQAQEhICABgwYACeeeYZjBkzBk2bNsXf//53l+KurnHjxvj6669RUlKCxMRE3HXXXVi9ejWvrhC5mU4IIbQOgojc7/z584iLi8OxY8dc6hwriwULFmDlypXIzc1Vfd2DBw9Gjx49PFYxNikpCdOnT8e1a9c88n1E3oRXVIjIK3zwwQdIT0/HuXPnsH79erz11luYMGGCW7+vQYMGOHHihNu+AwAaNGiAZ555xq3fQeTN2EeFiLxCZmYm3njjDfz2229o1aoVXnzxRcyaNcst37VhwwbcvHkTANCqVSu3fIeJ6aGHzozOIvInvPVDRERE0uKtHyIiIpIWExUiIiKSFhMVIiIikhYTFSIiIpIWExUiIiKSFhMVIiIikhYTFSIiIpIWExUiIiKS1v8DhDZ1YzHEGWcAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"# Selecting only setosa and versicolor\n",
"y = iris.iloc[0:100, 4].values\n",
"y = np.where(y == 'Iris-setosa', -1, 1)\n",
"\n",
"# Extracting sepal length and petal length\n",
"X = iris.iloc[0:100, [0, 2]].values\n",
"\n",
"# Plotting results\n",
"plt.scatter(X[:50, 0], X[:50, 1],\n",
" color = 'red', marker = 'o', label = 'setosa')\n",
"\n",
"plt.scatter(X[50:100, 0], X[50:100, 1],\n",
" color = 'blue', marker = 'x', label = 'versicolor')\n",
"\n",
"plt.xlabel('sepal length [cm]')\n",
"plt.ylabel('petal length [cm]')\n",
"plt.legend(loc = 'upper left')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "cf169d5c",
"metadata": {},
"source": [
"You could probably seperate these two with your head, like making sure two different foods don't touch. Hopefully the perceptron algorithm can do that for us though since it is a binary linear classifier, so it draws a line between data.\n",
"\n",
"Let's get to the training montage.\n",
"\n",
"### Training Using the Iris ```DataFrame```\n",
"\n",
"We'll train the perceptron algorithm, but we'll also plot the misclassification errors for each epoch. This will tell us whether the algorithm converges, aka found a decision boundary between setosa and versicolor."
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "60ebd405",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"our_model = Perceptron(eta = 0.1, n_iter = 10)\n",
"our_model.fit(X, y)\n",
"\n",
"plt.plot(range(1, len(our_model.errors_) + 1),\n",
" our_model.errors_, marker = 'o')\n",
"plt.xlabel('Epochs')\n",
"plt.ylabel('Number of Updates')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "b46783ae",
"metadata": {},
"source": [
"We can determine when our model converges by looking at when the number of updates sticks to 0.0 on our graph.\n",
"\n",
"Now we can implement a small convenience function to visualize the decision boundaries for our two-dimensional dataset.\n",
"\n",
"## Show Me the Money"
]
},
{
"cell_type": "code",
"execution_count": 48,
"id": "2fa67b73",
"metadata": {},
"outputs": [],
"source": [
"from matplotlib.colors import ListedColormap\n",
"def plot_decision_regions(X, y, classifier, resolution = 0.02):\n",
" # Setup the marker generator and color map\n",
" markers = ('s', 'x', 'o', '^', 'v')\n",
" colors = ('red', 'blue', 'lightgreen', 'gray', 'cyan')\n",
" cmap = ListedColormap(colors[:len(np.unique(y))])\n",
" \n",
" # Plot the decision surface\n",
" x1_min, x1_max = X[:, 0].min() - 1, X[:, 0].max() + 1\n",
" x2_min, x2_max = X[:, 1].min() - 1, X[:, 1].max() + 1\n",
" xx1, xx2 = np.meshgrid(np.arange(x1_min, x1_max, resolution), \n",
" np.arange(x2_min, x2_max, resolution))\n",
" \n",
" Z = classifier.predict(np.array([xx1.ravel(), xx2.ravel()]).T)\n",
" Z = Z.reshape(xx1.shape)\n",
" \n",
" plt.contourf(xx1, xx2, Z, alpha = 0.3, cmap = cmap)\n",
" \n",
" plt.xlim(xx1.min(), xx1.max())\n",
" plt.ylim(xx2.min(), xx2.max())\n",
" \n",
" # Plotting the class examples\n",
" for idx, cl in enumerate(np.unique(y)):\n",
" plt.scatter(x = X[y == cl, 0],\n",
" y = X[y == cl, 1],\n",
" alpha = 0.8,\n",
" c = colors[idx],\n",
" marker = markers[idx],\n",
" label = cl,\n",
" edgecolor = 'gray')"
]
},
{
"cell_type": "markdown",
"id": "02ee823a",
"metadata": {},
"source": [
"In the code above, we are creating a colormap from a list of colors and markers. Then, by using the minimum and maximum values for the two features and NumPy's ```meshgrid``` function, we create a pair of grid arrays ```xx1``` and ```xx2```.\n",
"\n",
"Since the classifier was trained on two feature dimensions, we'll need to flatten the grid arrays and create a matrix with the same number of columns as the Iris training subset. We'll then use the ```predict``` method to predict the respective grid points' class labels (our $z$).\n",
"\n",
"Once the predicted class labels are reshaped into a grid with the same dimensions as ```xx1``` and ```xx2```, a countor plot can be made with Matplotlib's ```contourf``` function that color codes our different regions.\n",
"\n",
"## Creating the Decision Region Plot"
]
},
{
"cell_type": "code",
"execution_count": 49,
"id": "3264f48a",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmp/ipykernel_2435/2965697944.py:24: UserWarning: You passed a edgecolor/edgecolors ('gray') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.\n",
" plt.scatter(x = X[y == cl, 0],\n"
]
},
{
"data": {
"image/png": "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5hjNmDFDtbW1wf0ej0fPPfecLrvsMmVkZKhPnz5asWJFyDlWrFihPn36KC0tTWeffbZeeOEFeTweHTx4UKtXr9b111+vkpKS4Fcp999/f/B3KyoqdMMNN8jr9So/P7/dKx7/3//9ny655BJlZWXJ6/VqxIgR2rZtm6SGr8RmzZqlrl27KicnRw888IBqa2v1//7f/1PHjh3Vo0cPLV68uF3XBuKWASAq7N6920hKSjLmzZtn7Nixw/jkk0+Mp59+2igrKzMMwzCWLl1qdOvWzXjttdeM7du3G6+99prRsWNHY8mSJYZhGMaOHTsMSUaPHj2MV1991fj000+NG2+80fB6vca+ffsMwzCM6upqY/r06cb69euN7du3G0uXLjUyMjKMl19+OTiOCRMmGD/5yU9aHOfixYuN7Ozs4Ot3333XyMrKMpYsWWJs27bNeOutt4xevXoZ999/f/CYwLheeuklY+vWrcZtt91mZGZmGvv37zcMwzC2b99uJCcnG3feeafx+eefG8uWLTOOPvpoQ5JRXFxsVFVVGfPnzzeysrKMoqIio6ioKHhfCgoKjI4dOxpPP/20sXXrVmP27NlGQkKC8fnnn7f4HkaOHGlMnjw5ZNs333xjdOzY0bj88suN9evXG1988YXxu9/9LnieCRMmGF6v15g0aZLx+eefG88//7whybjggguMhx56yPjyyy+NmTNnGsnJycauXbtavWcAGhBUgCixYcMGQ5Kxc+fOsPuPPfZY46WXXgrZNnPmTGPYsGGGYTQElTlz5gT319TUGD169DAefvjhFq87adIk44orrgi+thpUzjnnHGPWrFkhx/zhD38wunXrFnwtybj33nuDr8vLyw1JxsqVKw3DMIypU6caAwcODDnHPffcEwwq4a4bUFBQYIwfPz742ufzGXl5ecaCBQtafA/hgsq0adOM3r17G9XV1WF/Z8KECUZBQYFRV1cX3NavXz9jxIgRwde1tbVGhw4djGXLloX8LkEFaBlzVIAoMWjQIJ1zzjk68cQTdcEFF+j888/XT3/6U+Xm5urQoUPatm2bJk6cqJtuuin4O7W1tc3mPwwbNiz470lJSRoyZIg+++yz4Lann35av/vd71RYWKjKykpVV1fr5JNPbve4N23apH/961966KGHgtvq6ur0ww8/qKKiQhkZGZKkk046Kbi/Q4cOysrK0p49eyRJX3zxhU477bSQ8w4dOtT0GBqf2+Px6Kijjgqe26yNGzdqxIgRSk5ObvGYAQMGKCGh4Rv1rl27hkzGTUxMVKdOnSxfG4hnBBUgSiQmJurtt9/W2rVr9dZbb+nJJ5/UPffcow8//DD4Yb9o0SKdfvrpzX7PrOXLl+vOO+/Uo48+qmHDhsnr9eqRRx7Rhx9+2O5xl5eXa8aMGbr88sub7UtLSwv+e9MA4PF45PP52n3dxiJx7vT09HZdx873BcQDggoQRTwej4YPH67hw4dr+vTpKigo0Ouvv64pU6aoe/fu2r59u8aNG9fqOf7973/rrLPOkuR/4rJhwwbdcsstkqR//etfOuOMM/Tf//3fweMDk0Xba/Dgwfriiy903HHHtfsc/fr109///veQbevXrw95nZKSorq6unZfoy0nnXSSXnjhBdXU1LT6VAVAZBFUgCjx4YcfatWqVTr//POVl5enDz/8UHv37tXxxx8vSZoxY4Zuu+02ZWdn68ILL1RVVZX+85//qLi4WFOmTAme5+mnn1afPn10/PHH67HHHlNxcbFuuOEGSVKfPn30+9//Xm+++aZ69+6tP/zhD1q/fr169+7d7nFPnz5dl1xyifLz8/XTn/5UCQkJ2rRpk7Zs2aIHH3zQ1Dl+8YtfaN68eZo6daomTpyojRs3asmSJZL84U3yN3YrLy/XqlWrNGjQIGVkZASfNEXCLbfcoieffFJjx47VtGnTlJ2drX//+98aOnSo+vXrF7HrAAhFeTIQJbKysvTuu+/qoosuUt++fXXvvffq0Ucf1ejRoyVJN954o5577jktXrxYJ554okaOHKklS5Y0Cxlz5szRnDlzNGjQIL3//vtasWKFOnfuLMkfCC6//HJdeeWVOv3007V///6QpyvtccEFF+ivf/2r3nrrLZ122mn60Y9+pMcee0wFBQWmz9G7d2+9+uqr+uMf/6iTTjpJCxYs0D333CNJSk1NlSSdccYZ+uUvf6krr7xSXbp00dy5cw9r3E116tRJ//znP1VeXq6RI0fq1FNP1aJFi3i6AtjMYxiG4fQgANhv586d6t27tz7++OPDmhzrFg899JCeeeYZ7dq1K+LnHjVqlE4++eQj1jF2yZIluv3223Xw4MEjcj0gmvBEBUBU+O1vf6v169dr+/bt+sMf/qBHHnlEEyZMsPV6mZmZ2rx5s23XkKTMzEz98pe/tPUaQDRjjgqAqLB161Y9+OCDOnDggPLz8/XrX/9a06ZNs+VaL774oiorKyVJ+fn5tlwjILDooZXqLCCe8NUPAABwLb76AQAArkVQAQAArkVQAQAArkVQAQAArkVQAQAArkVQAQAArkVQAQAArkVQAQAArvX/AfFlHmvo4Jy/AAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_decision_regions(X, y, classifier = our_model)\n",
"\n",
"# Setting up the labels and legend\n",
"plt.xlabel('sepal length [cm]')\n",
"plt.ylabel('petal length [cm]')\n",
"plt.legend(loc = 'upper left')\n",
"\n",
"# Display the resulting chart\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "6ba6c5e9",
"metadata": {},
"source": [
"## Perceptron Convergence Issues\n",
"\n",
"The perceptron did a good job in this scenario, but convergence remains one of the biggest problems with the perceptron algorithm. If the classes cannot be seperated perfectly by a linear decision boundary, weights will never stop getting updated unless a **max number of epochs** is set. "
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
@txrunn
Copy link
Author

txrunn commented Mar 28, 2023

Link to Data Set

This is hosted on my S3 bucket, please don't blow it up.

Iris Data Set

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment