{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "#### Proceedings of the INSERT CONFERENCE NAME\n", "#### Conference Code ABCD201X\n", "#### Month, Year, Location\n", "\n", "# Title\n", "\n", "## Authors\n", "## Company" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Abstract\n", "\n", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eu tellus id massa feugiat vulputate eleifend eget odio. Nullam vel laoreet arcu. Quisque a rutrum nulla, eu dignissim purus. Aliquam vestibulum, justo quis euismod lobortis, lacus ipsum feugiat libero, nec dignissim eros erat sit amet massa. Fusce eu placerat justo, eu luctus ex. Quisque tempor mauris ligula, sed euismod nunc auctor in. Integer lacinia efficitur tempus. Etiam tristique euismod pretium.\n", "\n", "Proin at mattis orci, ac pellentesque dui. Nulla molestie aliquam vestibulum. Cras viverra felis sem, non venenatis tellus laoreet vitae. Proin porttitor, turpis eu rhoncus aliquam, felis erat dictum justo, et placerat diam ante vel purus. Integer vel risus rutrum, vehicula libero at, porttitor neque. Sed sagittis ligula ac sapien dignissim aliquam. Praesent arcu felis, porttitor eu nunc sit amet, pulvinar varius mauris. Aliquam erat volutpat. Proin a velit ut nunc commodo tristique. Nullam sit amet sodales lacus." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Introduction\n", "\n", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eu tellus id massa feugiat vulputate eleifend eget odio. Nullam vel laoreet arcu. Quisque a rutrum nulla, eu dignissim purus. Aliquam vestibulum, justo quis euismod lobortis, lacus ipsum feugiat libero, nec dignissim eros erat sit amet massa. Fusce eu placerat justo, eu luctus ex. Quisque tempor mauris ligula, sed euismod nunc auctor in. Integer lacinia efficitur tempus. Etiam tristique euismod pretium.\n", "\n", "Proin at mattis orci, ac pellentesque dui. Nulla molestie aliquam vestibulum. Cras viverra felis sem, non venenatis tellus laoreet vitae. Proin porttitor, turpis eu rhoncus aliquam, felis erat dictum justo, et placerat diam ante vel purus. Integer vel risus rutrum, vehicula libero at, porttitor neque. Sed sagittis ligula ac sapien dignissim aliquam. Praesent arcu felis, porttitor eu nunc sit amet, pulvinar varius mauris. Aliquam erat volutpat. Proin a velit ut nunc commodo tristique. Nullam sit amet sodales lacus." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\"Image" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Figure Title
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Literature Review\n", "\n", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eu tellus id massa feugiat vulputate eleifend eget odio. Nullam vel laoreet arcu. Quisque a rutrum nulla, eu dignissim purus. Aliquam vestibulum, justo quis euismod lobortis, lacus ipsum feugiat libero, nec dignissim eros erat sit amet massa. Fusce eu placerat justo, eu luctus ex. Quisque tempor mauris ligula, sed euismod nunc auctor in. Integer lacinia efficitur tempus. Etiam tristique euismod pretium.\n", "\n", "Proin at mattis orci, ac pellentesque dui. Nulla molestie aliquam vestibulum. Cras viverra felis sem, non venenatis tellus laoreet vitae. Proin porttitor, turpis eu rhoncus aliquam, felis erat dictum justo, et placerat diam ante vel purus. Integer vel risus rutrum, vehicula libero at, porttitor neque. Sed sagittis ligula ac sapien dignissim aliquam. Praesent arcu felis, porttitor eu nunc sit amet, pulvinar varius mauris. Aliquam erat volutpat. Proin a velit ut nunc commodo tristique. Nullam sit amet sodales lacus." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Methodology\n", "\n", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eu tellus id massa feugiat vulputate eleifend eget odio. Nullam vel laoreet arcu. Quisque a rutrum nulla, eu dignissim purus. Aliquam vestibulum, justo quis euismod lobortis, lacus ipsum feugiat libero, nec dignissim eros erat sit amet massa. Fusce eu placerat justo, eu luctus ex. Quisque tempor mauris ligula, sed euismod nunc auctor in. Integer lacinia efficitur tempus. Etiam tristique euismod pretium.\n", "\n", "Proin at mattis orci, ac pellentesque dui. Nulla molestie aliquam vestibulum. Cras viverra felis sem, non venenatis tellus laoreet vitae. Proin porttitor, turpis eu rhoncus aliquam, felis erat dictum justo, et placerat diam ante vel purus. Integer vel risus rutrum, vehicula libero at, porttitor neque. Sed sagittis ligula ac sapien dignissim aliquam. Praesent arcu felis, porttitor eu nunc sit amet, pulvinar varius mauris. Aliquam erat volutpat. Proin a velit ut nunc commodo tristique. Nullam sit amet sodales lacus." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDDescriptionValue (mm)
016-inch pipe152.4
128-inch pipe203.2
2312-inch pipe304.8
3416-inch pipe406.4
4518-inch pipe457.2
\n", "
" ], "text/plain": [ " ID Description Value (mm)\n", "0 1 6-inch pipe 152.4\n", "1 2 8-inch pipe 203.2\n", "2 3 12-inch pipe 304.8\n", "3 4 16-inch pipe 406.4\n", "4 5 18-inch pipe 457.2" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "\n", "pd.read_csv('data/sample_data.csv')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Simple Linear Regression\n", "\n", "We will start with the most familiar linear regression, a straight-line fit to data.\n", "A straight-line fit is a model of the form\n", "$$\n", "y = ax + b\n", "$$\n", "where $a$ is commonly known as the *slope*, and $b$ is commonly known as the *intercept*." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns; sns.set()\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "rng = np.random.RandomState(1)\n", "x = 10 * rng.rand(50)\n", "y = 2 * x - 5 + rng.randn(50)\n", "plt.scatter(x, y);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can use Scikit-Learn's ``LinearRegression`` estimator to fit this data and construct the best-fit line:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn.linear_model import LinearRegression\n", "model = LinearRegression(fit_intercept=True)\n", "\n", "model.fit(x[:, np.newaxis], y)\n", "\n", "xfit = np.linspace(0, 10, 1000)\n", "yfit = model.predict(xfit[:, np.newaxis])\n", "\n", "plt.scatter(x, y)\n", "plt.plot(xfit, yfit);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The slope and intercept of the data are contained in the model's fit parameters, which in Scikit-Learn are always marked by a trailing underscore.\n", "Here the relevant parameters are ``coef_`` and ``intercept_``:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "print(\"Model slope: \", model.coef_[0])\n", "print(\"Model intercept:\", model.intercept_)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that the results are very close to the inputs, as we might hope." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The ``LinearRegression`` estimator is much more capable than this, however—in addition to simple straight-line fits, it can also handle multidimensional linear models of the form\n", "$$\n", "y = a_0 + a_1 x_1 + a_2 x_2 + \\cdots\n", "$$\n", "where there are multiple $x$ values.\n", "Geometrically, this is akin to fitting a plane to points in three dimensions, or fitting a hyper-plane to points in higher dimensions.\n", "\n", "The multidimensional nature of such regressions makes them more difficult to visualize, but we can see one of these fits in action by building some example data, using NumPy's matrix multiplication operator:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.5000000000000127\n", "[ 1.5 -2. 1. ]\n" ] } ], "source": [ "rng = np.random.RandomState(1)\n", "X = 10 * rng.rand(100, 3)\n", "y = 0.5 + np.dot(X, [1.5, -2., 1.])\n", "\n", "model.fit(X, y)\n", "print(model.intercept_)\n", "print(model.coef_)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here the $y$ data is constructed from three random $x$ values, and the linear regression recovers the coefficients used to construct the data.\n", "\n", "In this way, we can use the single ``LinearRegression`` estimator to fit lines, planes, or hyperplanes to our data.\n", "It still appears that this approach would be limited to strictly linear relationships between variables, but it turns out we can relax this as well." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Results\n", "\n", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eu tellus id massa feugiat vulputate eleifend eget odio. Nullam vel laoreet arcu. Quisque a rutrum nulla, eu dignissim purus. Aliquam vestibulum, justo quis euismod lobortis, lacus ipsum feugiat libero, nec dignissim eros erat sit amet massa. Fusce eu placerat justo, eu luctus ex. Quisque tempor mauris ligula, sed euismod nunc auctor in. Integer lacinia efficitur tempus. Etiam tristique euismod pretium.\n", "\n", "Proin at mattis orci, ac pellentesque dui. Nulla molestie aliquam vestibulum. Cras viverra felis sem, non venenatis tellus laoreet vitae. Proin porttitor, turpis eu rhoncus aliquam, felis erat dictum justo, et placerat diam ante vel purus. Integer vel risus rutrum, vehicula libero at, porttitor neque. Sed sagittis ligula ac sapien dignissim aliquam. Praesent arcu felis, porttitor eu nunc sit amet, pulvinar varius mauris. Aliquam erat volutpat. Proin a velit ut nunc commodo tristique. Nullam sit amet sodales lacus." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Table Title
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "| ID | Description | Value (mm) |\n", "|----|---------------|------------|\n", "| 1 | 6-inch pipe | 152.4 |\n", "| 2 | 8-inch pipe | 203.2 |\n", "| 3 | 12-inch pipe | 304.8 |\n", "| 4 | 16-inch pipe | 406.4 |\n", "| 5 | 18-inch pipe | 457.2 |" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Discussion\n", "\n", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eu tellus id massa feugiat vulputate eleifend eget odio. Nullam vel laoreet arcu. Quisque a rutrum nulla, eu dignissim purus. Aliquam vestibulum, justo quis euismod lobortis, lacus ipsum feugiat libero, nec dignissim eros erat sit amet massa. Fusce eu placerat justo, eu luctus ex. Quisque tempor mauris ligula, sed euismod nunc auctor in. Integer lacinia efficitur tempus. Etiam tristique euismod pretium.\n", "\n", "Proin at mattis orci, ac pellentesque dui. Nulla molestie aliquam vestibulum. Cras viverra felis sem, non venenatis tellus laoreet vitae. Proin porttitor, turpis eu rhoncus aliquam, felis erat dictum justo, et placerat diam ante vel purus. Integer vel risus rutrum, vehicula libero at, porttitor neque. Sed sagittis ligula ac sapien dignissim aliquam. Praesent arcu felis, porttitor eu nunc sit amet, pulvinar varius mauris. Aliquam erat volutpat. Proin a velit ut nunc commodo tristique. Nullam sit amet sodales lacus." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Summary & Conclusions\n", "\n", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eu tellus id massa feugiat vulputate eleifend eget odio. Nullam vel laoreet arcu. Quisque a rutrum nulla, eu dignissim purus. Aliquam vestibulum, justo quis euismod lobortis, lacus ipsum feugiat libero, nec dignissim eros erat sit amet massa. Fusce eu placerat justo, eu luctus ex. Quisque tempor mauris ligula, sed euismod nunc auctor in. Integer lacinia efficitur tempus. Etiam tristique euismod pretium.\n", "\n", "Proin at mattis orci, ac pellentesque dui. Nulla molestie aliquam vestibulum. Cras viverra felis sem, non venenatis tellus laoreet vitae. Proin porttitor, turpis eu rhoncus aliquam, felis erat dictum justo, et placerat diam ante vel purus. Integer vel risus rutrum, vehicula libero at, porttitor neque. Sed sagittis ligula ac sapien dignissim aliquam. Praesent arcu felis, porttitor eu nunc sit amet, pulvinar varius mauris. Aliquam erat volutpat. Proin a velit ut nunc commodo tristique. Nullam sit amet sodales lacus." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# References\n", "\n", "1. In Depth: Linear Regression, Python Data Science Handbook, https://github.com/jakevdp/PythonDataScienceHandbook/blob/master/notebooks/05.06-Linear-Regression.ipynb\n", "2.\n", "3.\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.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }