{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Linear Regression" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "X = np.random.rand(100)\n", "y = X + 0.1 * np.random.randn(100)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\na6ir1sJQ6msAABQC4SwpWOVTa0tjymutLUsVrPK53CIAQDljQdgHwptWSrp6jzkyNKqGumq1tiyd\n+joAAG4hnD/gq6zUts0tar+1WVeicS0MBRkxAwA8QTjPEqzy6bqGWq+bAQAoY9xzBgDAMIQzAACG\nIZwBADAM4QwAgGFyWhA2Ojqqr371q7p06ZIWLFigb3/721q8ePGM73n22Wf1z//8z5KkW2+9VQ8+\n+GD+rQUAoAzkNHJ+/vnn1dLSon379umuu+7Sk08+OeP622+/rUOHDmn//v06cOCAfvWrX+nMmTOO\nNBgAgFKXUzifOHFCGzdulCT9yZ/8if71X/91xvUPfehD+vu//3v5fD5VVFRoYmJCwSAlMAEAyETa\nae0f//jHeu6552Z8bcmSJaqrq5MkLViwQENDQzOuV1VVafHixbIsS9/5znf0sY99TB/5yEdsX6eh\noVZ+vzNFPxob6xx5nnJGH+aPPnQG/Zg/+jB/bvdh2nC+9957de+998742oMPPqjh4WFJ0vDwsOrr\n6+f8XDwe19/8zd9owYIF+sY3vpG2IZFILNM222psrFN//1D6b8S86MP80YfOoB/zRx/mr1B9aBf4\nOU1rr127Vr/4xS8kSUePHtW6detmXLcsS3/xF3+hm266SY899ph8PspgAgCQqQrLsqxsf2hkZERf\n+9rX1N/fr6qqKv3t3/6tGhsb9cwzz6ipqUmJREIPPfSQ1qxZM/UzDz30kFpbWx1tPAAApSincAYA\nAIVDERIAAAxDOAMAYBjCGQAAwxDOAAAYhnAGAMAwRRnOiURCHR0dCofD2r59uy5cuDDj+uHDh9Xe\n3q5wOKwDBw541EqzpevDF198Uffee6+2bNmijo4OJRIJj1pqtnT9mPToo4/qu9/9rsutKw7p+vD0\n6dPatm2btm7dqr/8y79UPB73qKXmSteHhw4d0t1336329nbt27fPo1YWh1OnTmn79u1zvu56rlhF\n6Gc/+5n1ta99zbIsyzp58qT15S9/eera2NiYtXnzZmtgYMCKx+PWPffcY/X393vVVGPZ9eHIyIj1\n6U9/2orFYpZlWdZf/dVfWd3d3Z6003R2/Zj0/PPPW5///OetJ554wu3mFQW7PkwkEtbnPvc567e/\n/a1lWZZ14MAB6/z5856002Tpfg83bNhgRSIRKx6PT/19xFw//OEPrc9+9rPWvffeO+PrXuRKUY6c\npx+8sWbNGvX29k5dO3/+vJqamrRw4UIFAgGtW7dOr776qldNNZZdHwYCAe3fv181NTWSxMElNuz6\nUZJee+01nTp1SuFw2IvmFQW7Pnzrrbe0aNEiPfvss/rCF76ggYEB3XjjjV411Vjpfg9vuukmDQ0N\naWxsTJZlqaKiwotmGq+pqUl79uyZ83UvcqUowzkajSoUCk099vl8mpiYmLqWPJRDunowRzQadb2N\nprPrw8rKSi1dulSStHfvXsViMW3YsMGTdprOrh/7+vr0gx/8QB0dHV41ryjY9WEkEtHJkyf1hS98\nQc8884xeeeWVOafgwb4PJWnVqlVqb2/Xn/3Zn+m2225LeR4CpNtvv11+/9wjJ7zIlaIM51AoNHXw\nhnT1fkuyQ2dfGx4entGpuMquD5OPv/3tb+vYsWPas2cPn7TnYdePP/3pTxWJRPTAAw/ohz/8oV58\n8UW98MILXjXVWHZ9uGjRIq1YsULNzc2qqqrSxo0b54wKYd+HZ86c0csvv6yf//znOnz4sC5fvqyX\nXnrJq6YWJS9ypSjDee3atTp69KgkqaenRy0tLVPXmpubdeHCBQ0MDGhsbEzHjx+npncKdn0oSR0d\nHYrH43ryySenprcxl10/7tixQy+88IL27t2rBx54QJ/97Gd1zz33eNVUY9n14fLlyzU8PDy1wOn4\n8eNatWqVJ+00mV0f1tXVqbq6WsFgUD6fT4sXL9bg4KBXTS1KXuRK2iMjTdTW1qZjx45py5YtsixL\nu3btUldXl2KxmMLhsB555BHdf//9sixL7e3tuv76671usnHs+nD16tU6ePCg1q9fr/vuu0/S1aBp\na2vzuNXmSfe7iPTS9eE3v/lNPfzww7IsS62trbrtttu8brJx0vVhOBzWtm3bVFVVpaamJt19991e\nN7koeJkrHHwBAIBhinJaGwCAUkY4AwBgGMIZAADDEM4AABiGcAYAwDCEMwAAhiGcAQAwDOEMAIBh\n/j+azSoqphjdPwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(X, y);\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Following the steps prescribed by Jake Vanderplas in his awesome text [Python Data Science Handbook](http://shop.oreilly.com/product/0636920034919.do). He has kindly provided all his codes on [github](https://github.com/jakevdp/PythonDataScienceHandbook) as well." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 1. Choose a class of model.\n", "\n", "In this case we are using `linear regression`" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.linear_model import LinearRegression" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 2. Choose model hyperparameters." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "model = LinearRegression(fit_intercept=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 3. Arrange data into a features matrix and target vector" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "X = X.reshape(-1, 1)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(100, 1)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 4. Fit the model to your data. " ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model.fit(X, y)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0.97408915])" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model.coef_" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.022535905418693603" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model.intercept_" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you are statistically trained, you would normally dig into other information such as normality of the residuals and check for autocorrelation etc. You may also want to evaluation the parameters as well. Those are valid `statistical modelling` questions.\n", "\n", "Machine Learning focus is on `prediction`. You will not find these information with the `scikit-learn` package. Do take note of this key difference between statistics and machine learning.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 5. Predict labels for unknown data" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0. , 0.02040816, 0.04081633, 0.06122449, 0.08163265,\n", " 0.10204082, 0.12244898, 0.14285714, 0.16326531, 0.18367347,\n", " 0.20408163, 0.2244898 , 0.24489796, 0.26530612, 0.28571429,\n", " 0.30612245, 0.32653061, 0.34693878, 0.36734694, 0.3877551 ,\n", " 0.40816327, 0.42857143, 0.44897959, 0.46938776, 0.48979592,\n", " 0.51020408, 0.53061224, 0.55102041, 0.57142857, 0.59183673,\n", " 0.6122449 , 0.63265306, 0.65306122, 0.67346939, 0.69387755,\n", " 0.71428571, 0.73469388, 0.75510204, 0.7755102 , 0.79591837,\n", " 0.81632653, 0.83673469, 0.85714286, 0.87755102, 0.89795918,\n", " 0.91836735, 0.93877551, 0.95918367, 0.97959184, 1. ])" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x_test = np.linspace(0, 1)\n", "x_test" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "y_pred = model.predict(x_test.reshape(-1,1))" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(X, y)\n", "plt.plot(x_test, y_pred);\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "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.6.1" } }, "nbformat": 4, "nbformat_minor": 2 }