{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
This notebook is a demonstration of two types of feature engineering methods:
\n",
"
Now that we've created the functions, let's generate some data. Again, the goal is to generate an X-Y relationship with noise, but where we know the underlying data generating distribution.\n", "
" ] }, { "cell_type": "code", "collapsed": false, "input": [ "betas = [0, 4, -3.5, 1]\n", "n=200\n", "sig=2.2\n", "sp=20\n", "\n", "x_init = np.random.uniform(0,1,n)\n", "e_init = np.random.normal(0, sig, n)\n", "\n", "dat = genY(x_init, e_init, betas)\n", "dat = makePolyFeat(dat, 6)\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 48 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we want to see the effect of fitting polynomial curves of different degrees to our noisy data set. Ultimately, we want to illustrate how model specification (and feature engineering) affects the bias-variance tradeoff.\n", "\n", "\n", "
" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def PlotLinDeg(X_train, y_train, X_test, y_test, i, t):\n", " '''\n", " This function builds a regression model on the simulated data\n", " 1. plots the test data\n", " 2. plots the fitted line\n", " 3. Shows sum-square error\n", " '''\n", " regr = linear_model.LinearRegression(fit_intercept=True)\n", " regr.fit(X_train, y_train)\n", " y_hat=regr.predict(X_train)\n", " y_hat_test=regr.predict(X_test)\n", " ss_train=((y_train-y_hat)**2).mean()\n", " ss_test=((y_test-y_hat_test)**2).mean()\n", " #Plot train X vs. Predicted Y_train\n", " plt.subplot(2, 3, i)\n", " plot(X_train['x'], y_train, 'b.')\n", " plot(X_train['x'], y_hat, 'r.')\n", " plt.title('{}\\n Train MSE={}'.format(t,round(ss_train,4)))\n", " #Plot test X vs. Predicted Y_test\n", " plt.tick_params(axis='x', which='both', bottom='off', top='off', labelbottom='off')\n", " plt.subplot(2,3,i+3)\n", " plot(X_test['x'], y_test, 'b.')\n", " plot(X_test['x'], y_hat_test, 'r.')\n", " plt.title('Test MSE={}'.format(round(ss_test,4)))\n", " plt.tick_params(axis='x', which='both', bottom='off', top='off', labelbottom='off')\n", " \n", " \n", "def PlotLinBin(X_train, y_train, X_test, y_test, i, t, x, x_t):\n", " '''\n", " This function builds a regression model on the simulated data\n", " 1. plots the test data\n", " 2. plots the fitted line\n", " 3. Shows sum-square error\n", " '''\n", " regr = linear_model.LinearRegression(fit_intercept=True)\n", " regr.fit(X_train, y_train)\n", " y_hat=regr.predict(X_train)\n", " y_hat_test=regr.predict(X_test)\n", " ss_train=((y_train-y_hat)**2).mean()\n", " ss_test=((y_test-y_hat_test)**2).mean()\n", " #Plot train X vs. Predicted Y_train\n", " plt.subplot(2, 3, i)\n", " plot(x, y_train, 'b.')\n", " plot(x, y_hat, 'r.')\n", " plt.title('{}\\n Train MSE={}'.format(t,round(ss_train,4)))\n", " #Plot test X vs. Predicted Y_test\n", " plt.tick_params(axis='x', which='both', bottom='off', top='off', labelbottom='off')\n", " plt.subplot(2,3,i+3)\n", " plot(x_t, y_test, 'b.')\n", " plot(x_t, y_hat_test, 'r.')\n", " plt.title('Test MSE={}'.format(round(ss_test,4)))\n", " plt.tick_params(axis='x', which='both', bottom='off', top='off', labelbottom='off')\n", "\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 69 }, { "cell_type": "code", "collapsed": false, "input": [ "sp = 20\n", "\n", "f1=['x']; f3=['x', 'x2', 'x3']; f6=['x', 'x2', 'x3', 'x4', 'x5', 'x6']\n", "\n", "fig=plt.figure()\n", "\n", "PlotLin(dat[f1][:sp], dat['y'][:sp], dat[f1][sp:], dat['y'][sp:], 1, 'Degree 1')\n", "PlotLin(dat[f3][:sp], dat['y'][:sp], dat[f3][sp:], dat['y'][sp:], 2, 'Degree 3')\n", "PlotLin(dat[f6][:sp], dat['y'][:sp], dat[f6][sp:], dat['y'][sp:], 3, 'Degree 6')\n", "\n", "fig.tight_layout()\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nP/0JkZGRCAkJwciRI3H58uUmPYszae26efLJJxEZGSn+ny9YsMBs2pkzZ+rdz9vbG4GBgTZda//+\n/UhLS0NISAjat2+PcePG6eW1vLwckydPRnh4OMLDwzF//nzrmXdFaPIuXbrQ9u3b7bpGamoq/fvf\n/zZ7/vz586RQKCg+Pp6OHz8uHn/vvfcoLi6OYmJiiIiooqKCgoKCaPXq1dTQ0EC3bt2i7777jo4d\nO0ZERDk5OTR48GC78kpENH78eBo/fjzdvHmT8vLyKCgoiE6cOGEybW5uLoWHh1NBQQGVlZVRamoq\nPf/880bp0tLSaPDgwTRp0iS94xMnTqQJEyZQaWkpNTQ00OHDh8Vzb775Jh05coTq6+vp1KlTFB0d\nTatXr7b7+ZwB66b5url58ybNmzePioqKiIho48aNFBAQQIWFhUREVFJSQr6+vpSbm0tERJs2bSJf\nX1+6fv26+PyJiYl07do1un37NmVlZdHjjz9u9/M5g9aom+PHj9OtW7eIiOiXX36h8PBw2rJli03f\nnTJlCk2fPt3itbQ62bJlC/33v/+lqqoqqqmpoWnTptHw4cP1rjVu3Di6desWFRYWUmxsLOXk5Fi8\nv8srpfr6enr99dcpNjaWQkJCaNy4cXTjxg0iIrp16xZNnDiRQkJCSKVS0X333UclJSX04osvkoeH\nB3l7e5O/vz/96U9/MrqHViQLFiyg5557TjyenJxMCxYsoC5duhAR0cGDB0mlUpnNa05ODg0aNMiu\n562urqY2bdrQmTNnxGNZWVkmKxoiogkTJtBLL70kfv7+++8pIiJCL82qVato3LhxNG/ePHryySfF\n4ydPnqTAwECqqqqyKW+zZs0y+fvJEdaN/brRJSEhgb788ksiItq7dy+1b99e73xYWBjt37+fiIjU\najX99a9/Fc9t3LiR4uLimv5QLqC16caQX375hTp27Eg//fST1bTV1dUUEBBAu3fvbta1fvrpJwoI\nCBA/h4aG0sGDB8XPCxcutFrpunxO6YMPPsA333yD3bt348qVKwgODsYf//hHAMCyZctQWVmJixcv\n4saNG/j444/h4+ODBQsWYPDgwfjnP/+JqqoqvP/++2avP3HiRKxevRpEhIKCAlRXVyMlJUU836NH\nD3h4eGDKlCnIzc1FWVlZk/L/6KOPIjg42ORLuxvm6dOn4enpiW7duonfS0xMxIkTJ0xes6CgQG+7\n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\nPzwAAAAASUVORK5CYII=\n", "text": [ "The above plot is a great illustration of bias-variance tradeoffs. The top row shows an nth-degree model fit to a sparse training set. The bottom row shows this fitted model against the test data (with actuals in blue and predicted in red). We can see multiple things here:
\n",
"