{ "cells": [ { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "\n", "df = pd.read_csv('Iris.csv')\n", "df = df.drop(['Id'],axis=1)\n", "target = df['Species']\n", "s = set()\n", "for val in target:\n", " s.add(val)\n", "s = list(s)\n", "rows = list(range(100,150))\n", "df = df.drop(df.index[rows])" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "x = df['SepalLengthCm']\n", "y = df['SepalWidthCm']\n", "\n", "setosa_x = x[:50]\n", "setosa_y = y[:50]\n", "\n", "versicolor_x = x[50:]\n", "versicolor_y = y[50:]\n", "\n", "plt.figure(figsize=(10,8))\n", "plt.scatter(setosa_x, setosa_y, marker='H', color='blue')\n", "plt.scatter(versicolor_x, versicolor_y, marker='D', color='red')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "from sklearn.utils import shuffle\n", "from sklearn.model_selection import train_test_split\n", "import numpy as np\n", "\n", "## Drop the other two features and extract the target values\n", "\n", "df = df.drop(['PetalLengthCm','PetalWidthCm'],axis=1)\n", "Y = []\n", "target = df['Species']\n", "for val in target:\n", " if(val == 'Iris-setosa'):\n", " Y.append(-1)\n", " else:\n", " Y.append(1)\n", "df = df.drop(['Species'],axis=1)\n", "X = df.values.tolist()\n", "\n", "## Shuffle and split the data into training and testing set\n", "X, Y = shuffle(X,Y)\n", "x_train = []\n", "y_train = []\n", "x_test = []\n", "y_test = []\n", "\n", "x_train, x_test, y_train, y_test = train_test_split(X, Y, train_size=0.9)\n", "\n", "x_train = np.array(x_train)\n", "y_train = np.array(y_train)\n", "x_test = np.array(x_test)\n", "y_test = np.array(y_test)\n", "\n", "y_train = y_train.reshape(90,1)\n", "y_test = y_test.reshape(10,1)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(10,8))\n", "plt.scatter(x_train[:,0], y_train, marker = 'H', color='Green')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(90, 1)\n", "[[ 3.66719584]\n", " [ 1.88145349]\n", " [ 9.82339413]\n", " [ 4.88478534]\n", " [ 5.02044361]\n", " [ 4.45229076]\n", " [ 9.72574241]\n", " [ 7.489748 ]\n", " [ 4.29499386]\n", " [ 5.80553853]\n", " [ 3.19669472]\n", " [ 5.02044361]\n", " [ 4.29499386]\n", " [ 5.84354507]\n", " [ 6.17838793]\n", " [ 3.33235298]\n", " [ 6.17838793]\n", " [ 5.60635393]\n", " [ 5.84354507]\n", " [10.39542813]\n", " [ 3.23470126]\n", " [ 1.49084661]\n", " [ 4.62983673]\n", " [ 1.11411605]\n", " [ 2.51313267]\n", " [ 6.17838793]\n", " [ 5.80553853]\n", " [ 3.13704954]\n", " [ 5.70788681]\n", " [ 8.90264095]\n", " [ 3.03939782]\n", " [ 3.09904299]\n", " [ 3.23470126]\n", " [ 1.49084661]\n", " [ 1.45284006]\n", " [ 4.6475942 ]\n", " [ 1.98298637]\n", " [12.43223795]\n", " [ 3.82449274]\n", " [ 3.23470126]\n", " [ 5.78778105]\n", " [ 2.35583577]\n", " [11.37194534]\n", " [ 8.55004061]\n", " [ 7.29444456]\n", " [ 7.33633226]\n", " [11.94397934]\n", " [ 6.9596017 ]\n", " [ 5.59247761]\n", " [ 6.09849369]\n", " [ 5.64824163]\n", " [ 1.1598849 ]\n", " [ 1.82568947]\n", " [ 5.61023509]\n", " [ 6.23415196]\n", " [ 6.14038139]\n", " [ 4.25698732]\n", " [ 6.43333655]\n", " [10.35354044]\n", " [ 5.51258337]\n", " [10.25588871]\n", " [ 6.72629172]\n", " [ 3.39199816]\n", " [11.27429362]\n", " [ 7.35408974]\n", " [ 5.41105049]\n", " [ 3.960151 ]\n", " [ 4.35463904]\n", " [ 4.39264559]\n", " [ 2.9417461 ]\n", " [ 1.39319489]\n", " [ 5.51258337]\n", " [ 7.45174146]\n", " [ 7.35408974]\n", " [ 4.39264559]\n", " [ 3.56954412]\n", " [ 2.86185185]\n", " [ 7.01924688]\n", " [ 4.09969042]\n", " [ 1.02034548]\n", " [ 9.82339413]\n", " [ 4.62983673]\n", " [ 2.47124497]\n", " [ 5.31339877]\n", " [ 4.39652674]\n", " [ 2.60690324]\n", " [11.84632762]\n", " [ 5.55058991]\n", " [ 4.45229076]\n", " [10.6883833 ]]\n" ] } ], "source": [ "# start the gradient descent\n", "\n", "train_f1 = x_train[:,0]\n", "train_f2 = x_train[:,1]\n", "\n", "train_f0 = np.ones((90,1))\n", "train_f1 = train_f1.reshape(90,1)\n", "train_f2 = train_f2.reshape(90,1)\n", "\n", "w1 = np.zeros((90,1))\n", "w2 = np.zeros((90,1))\n", "w0 = np.zeros((90,1))\n", "\n", "epochs = 1\n", "alpha = 0.01\n", "\n", "while (epochs < 30000):\n", " y = w1 * train_f1 + w2 * train_f2 - w0\n", " prod = y * y_train\n", " # print(epochs)\n", " count = 0\n", " for val in prod: \n", " if (val >= 1):\n", " cost = 0\n", " w0 = w0\n", " w1 = w1 - alpha * ( 1/epochs * w1)\n", " w2 = w2 - alpha * ( 1/epochs * w2)\n", " else:\n", " cost = 1 - val\n", " w0 = w0 - alpha * (train_f0[count] * y_train[count])\n", " w1 = w1 - alpha * (1/epochs * w1 - train_f1[count] * y_train[count])\n", " w2 = w2 - alpha * (1/epochs * w2 - train_f2[count] * y_train[count])\n", " count += 1\n", " epochs += 1\n", "\n", "print(prod.shape)\n", "print(prod)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(10,8))\n", "plt.scatter(setosa_x, setosa_y, marker='H', color='blue')\n", "plt.scatter(versicolor_x, versicolor_y, marker='D', color='red')\n", "x = np.arange(4,7.5,0.1)\n", "y = -(w1[-1]/w2[-1])*x + w0[-1]/w2[-1]\n", "y1 = -(w1[-1]/w2[-1])*x + (1 + w0[-1])/w2[-1]\n", "y2 = -(w1[-1]/w2[-1])*x + (-1 + w0[-1])/w2[-1]\n", "plt.plot(x,y,label='optimal hyperplane', color = 'Green')\n", "plt.plot(x,y1,label='upper margin', color = 'k')\n", "plt.plot(x,y2,label='lower margin', color = 'm')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.3" } }, "nbformat": 4, "nbformat_minor": 4 }