{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Demonstrating SigLearn" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import seaborn; seaborn.set()\n", "\n", "from sklearn.linear_model import LinearRegression as skLinearRegression\n", "from siglearn.linear_model import LinearRegression" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Generate Data\n", "rng = np.random.RandomState(6)\n", "N = 20\n", "x = 10 * rng.rand(N)\n", "dy = np.ones(N)\n", "dy[-6:] = 10\n", "y = 2 * x - 4 + dy * rng.randn(N)\n", "\n", "# Fit the scikit-learn model\n", "model1 = skLinearRegression(fit_intercept=True)\n", "model1.fit(x[:, None], y)\n", "\n", "# Fit the siglearn model\n", "model2 = LinearRegression(fit_intercept=True)\n", "model2.fit(x[:, None], y, dy)\n", "\n", "# Compute the predicted results\n", "xfit = np.linspace(-2, 12)\n", "yfit1 = model1.predict(xfit[:, None])\n", "yfit2 = model2.predict(xfit[:, None])\n", "\n", "# Plot data and fits\n", "plt.errorbar(x, y, dy, fmt='dk', ecolor='gray', alpha=0.5);\n", "plt.plot(xfit, yfit1, label='scikit-learn model (ignoring errors)');\n", "plt.plot(xfit, yfit2, label='siglearn model (accounting for errors)');\n", "plt.plot(xfit, 2 * xfit - 4, label='generating model')\n", "plt.legend(loc='upper left');" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "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.3.5" } }, "nbformat": 4, "nbformat_minor": 0 }