{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Effects of outliers on least squares vs logistic\n", "\n", "#### Additional note for CSCI-UA 9102, Introduction to Machine Learning\n", "\n", "#### Example 2." ] }, { "cell_type": "code", "execution_count": 91, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from sklearn.datasets import make_blobs\n", "import numpy as np\n", "\n", "\n", "X, y = make_blobs(n_samples=30, centers=2, n_features=2, random_state=20)\n", "\n", "import matplotlib.pyplot as plt\n", "\n", "plt.scatter(X[:,0], X[:,1], c = y)\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": 92, "metadata": {}, "outputs": [], "source": [ "# learning the separating plane through LS\n", "\n", "import numpy as np\n", "from sklearn.linear_model import LinearRegression\n", "\n", "reg = LinearRegression().fit(X, y)\n", "\n", "\n", "x1min = np.min(X[:,0])\n", "x1max = np.max(X[:,0])\n", "x2min = np.min(X[:,1])\n", "x2max = np.max(X[:,1])\n", "\n", "\n", "xx1, xx2 = np.meshgrid(np.linspace(x1min, x1max, 100), np.linspace(x2min, x2max, 100))\n", "\n", "Xpredict = np.vstack((xx1.flatten(), xx2.flatten()))\n", "\n", "prediction = reg.predict(Xpredict.T)\n" ] }, { "cell_type": "code", "execution_count": 93, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.scatter(X[:,0], X[:,1], c = y)\n", "plt.contourf(xx1, xx2, np.reshape(prediction>0.5,np.shape(xx1)), levels=1, alpha=0.2)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 94, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# adding an outlier\n", "\n", "\n", "outlier = np.array([-5, 7])\n", "outlier = np.expand_dims(outlier, axis=1)\n", "youtlier = 0\n", "\n", "\n", "X2 = np.vstack((outlier.T, X))\n", "y2 = np.append(0,y)\n", "\n", "# learning the separating plane through LS\n", "\n", "import numpy as np\n", "from sklearn.linear_model import LinearRegression\n", "\n", "reg = LinearRegression().fit(X2, y2)\n", "\n", "\n", "x1min = np.min(X2[:,0])\n", "x1max = np.max(X2[:,0])\n", "x2min = np.min(X2[:,1])\n", "x2max = np.max(X2[:,1])\n", "\n", "\n", "xx1, xx2 = np.meshgrid(np.linspace(x1min, x1max, 100), np.linspace(x2min, x2max, 100))\n", "\n", "Xpredict = np.vstack((xx1.flatten(), xx2.flatten()))\n", "\n", "prediction = reg.predict(Xpredict.T)\n", "\n", "\n", "plt.scatter(X2[:,0], X2[:,1], c = y2)\n", "plt.contourf(xx1, xx2, np.reshape(prediction>0.5,np.shape(xx1)), levels=1, alpha=0.2)\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": 96, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# adding an outlier\n", "\n", "\n", "outlier = np.array([-10, 7])\n", "outlier = np.expand_dims(outlier, axis=1)\n", "youtlier = 0\n", "\n", "\n", "X2 = np.vstack((outlier.T, X))\n", "y2 = np.append(0,y)\n", "\n", "# learning the separating plane through LS\n", "\n", "import numpy as np\n", "from sklearn.linear_model import LinearRegression\n", "\n", "reg = LinearRegression().fit(X2, y2)\n", "\n", "\n", "x1min = np.min(X2[:,0])\n", "x1max = np.max(X2[:,0])\n", "x2min = np.min(X2[:,1])\n", "x2max = np.max(X2[:,1])\n", "\n", "\n", "xx1, xx2 = np.meshgrid(np.linspace(x1min, x1max, 100), np.linspace(x2min, x2max, 100))\n", "\n", "Xpredict = np.vstack((xx1.flatten(), xx2.flatten()))\n", "\n", "prediction = reg.predict(Xpredict.T)\n", "\n", "\n", "plt.scatter(X2[:,0], X2[:,1], c = y2)\n", "plt.contourf(xx1, xx2, np.reshape(prediction>0.5,np.shape(xx1)), levels=1, alpha=0.2)\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": 97, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "\n", "outlier = np.array([-20, 7])\n", "outlier = np.expand_dims(outlier, axis=1)\n", "youtlier = 0\n", "\n", "\n", "X2 = np.vstack((outlier.T, X))\n", "y2 = np.append(0,y)\n", "\n", "# learning the separating plane through LS\n", "\n", "import numpy as np\n", "from sklearn.linear_model import LinearRegression\n", "\n", "reg = LinearRegression().fit(X2, y2)\n", "\n", "\n", "x1min = np.min(X2[:,0])\n", "x1max = np.max(X2[:,0])\n", "x2min = np.min(X2[:,1])\n", "x2max = np.max(X2[:,1])\n", "\n", "\n", "xx1, xx2 = np.meshgrid(np.linspace(x1min, x1max, 100), np.linspace(x2min, x2max, 100))\n", "\n", "Xpredict = np.vstack((xx1.flatten(), xx2.flatten()))\n", "\n", "prediction = reg.predict(Xpredict.T)\n", "\n", "\n", "plt.scatter(X2[:,0], X2[:,1], c = y2)\n", "plt.contourf(xx1, xx2, np.reshape(prediction>0.5,np.shape(xx1)), levels=1, alpha=0.2)\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": 99, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "\n", "outlier = np.array([-50, 7])\n", "outlier = np.expand_dims(outlier, axis=1)\n", "youtlier = 0\n", "\n", "\n", "X2 = np.vstack((outlier.T, X))\n", "y2 = np.append(0,y)\n", "\n", "# learning the separating plane through LS\n", "\n", "import numpy as np\n", "from sklearn.linear_model import LinearRegression\n", "\n", "reg = LinearRegression().fit(X2, y2)\n", "\n", "\n", "x1min = np.min(X2[:,0])\n", "x1max = np.max(X2[:,0])\n", "x2min = np.min(X2[:,1])\n", "x2max = np.max(X2[:,1])\n", "\n", "\n", "xx1, xx2 = np.meshgrid(np.linspace(x1min, x1max, 100), np.linspace(x2min, x2max, 100))\n", "\n", "Xpredict = np.vstack((xx1.flatten(), xx2.flatten()))\n", "\n", "prediction = reg.predict(Xpredict.T)\n", "\n", "\n", "plt.scatter(X2[:,0], X2[:,1], c = y2)\n", "plt.contourf(xx1, xx2, np.reshape(prediction>0.5,np.shape(xx1)), levels=1, alpha=0.2)\n", "\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": 100, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "outlier = np.array([-50, 7])\n", "outlier = np.expand_dims(outlier, axis=1)\n", "youtlier = 0\n", "\n", "\n", "X2 = np.vstack((outlier.T, X))\n", "y2 = np.append(0,y)\n", "\n", "# learning the separating plane through LS\n", "\n", "import numpy as np\n", "from sklearn.linear_model import LogisticRegression\n", "\n", "reg = LogisticRegression().fit(X2, y2)\n", "\n", "\n", "x1min = np.min(X2[:,0])\n", "x1max = np.max(X2[:,0])\n", "x2min = np.min(X2[:,1])\n", "x2max = np.max(X2[:,1])\n", "\n", "\n", "xx1, xx2 = np.meshgrid(np.linspace(x1min, x1max, 100), np.linspace(x2min, x2max, 100))\n", "\n", "Xpredict = np.vstack((xx1.flatten(), xx2.flatten()))\n", "\n", "prediction = reg.predict(Xpredict.T)\n", "\n", "\n", "plt.scatter(X2[:,0], X2[:,1], c = y2)\n", "plt.contourf(xx1, xx2, np.reshape(prediction>0.5,np.shape(xx1)), levels=1, alpha=0.2)\n", "\n", "plt.show()\n" ] } ], "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.5" } }, "nbformat": 4, "nbformat_minor": 4 }