{ "metadata": { "name": "", "signature": "sha256:ffacba66a559e8653c78ec354a137943b93d52ad05e2c0f697091b522f769240" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Breakout: Model Validation\n", "\n", "Here we'll practice the process of model validation, and evaluating how we can improve our model. We'll return to the *Labeled Faces in the Wild* dataset that we saw previously, and use the cross-validation techniques we covered to find the best possible model." ] }, { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from scipy import stats\n", "\n", "# use seaborn plotting defaults\n", "# If this causes an error, you can comment it out.\n", "import seaborn as sns\n", "sns.set()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "from sklearn.datasets import fetch_lfw_people\n", "faces = fetch_lfw_people(min_faces_per_person=70, resize=0.4)\n", "\n", "X, y = faces.data, faces.target" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Validation with Random Forests\n", "\n", "- Use a ``RandomForestClassifier`` with the default parameters, and use 10-fold cross-validation to determine the optimal accuracy.\n", "- Construct validation curves for the random forest classifier on this data, exploring the effect of ``max_depth`` on the result.\n", "- What is the best value for ``max_depth`` (approximately)? What is the best score for this estimator?\n", "- Construct a learning curve for the Random Forest Classifier using this value for ``max_depth``.\n", "- Given the validation and learning curves, how do you think you could improve this classifier \u2013 should you seek a better model/more features, or should you seek more data?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Simple Cross-validation" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from sklearn.ensemble import RandomForestClassifier\n", "from sklearn.cross_validation import cross_val_score\n", "\n", "scores = cross_val_score(RandomForestClassifier(), X, y, cv=10)\n", "print(\"score = {0:.2f} +- {1:.2f}\".format(scores.mean(), scores.std()))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "score = 0.58 +- 0.04\n" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Validation Curves for Random Forests" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Use our plot_with_err utility routine from the lecture\n", "def plot_with_err(x, data, color, **kwargs):\n", " mu, std = data.mean(1), data.std(1)\n", " plt.plot(x, mu, '-', c=color, **kwargs)\n", " plt.fill_between(x, mu - std, mu + std, edgecolor='none', facecolor=color, alpha=0.2)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "from sklearn.learning_curve import validation_curve\n", "\n", "max_depths = np.arange(1, 20, 2)\n", "val_train, val_test = validation_curve(RandomForestClassifier(),\n", " X, y,\n", " 'max_depth', max_depths, cv=5)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "plot_with_err(max_depths, val_train, 'red', label='train')\n", "plot_with_err(max_depths, val_test, 'blue', label='test')\n", "plt.xlabel('max_depth')\n", "plt.ylabel('score')\n", "plt.legend(loc='best');" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Apparently our model is strongly under-fitting the data (i.e. the train/test score are separated by a large margin!)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Learning curves for Random Forests" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from sklearn.learning_curve import learning_curve\n", "clf = RandomForestClassifier(max_depth=9)\n", "train_sizes = np.linspace(0.05, 1, 20)\n", "N_train, val_train, val_test = learning_curve(clf, X, y, train_sizes)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "plot_with_err(N_train, val_train, 'r', label='training scores')\n", "plot_with_err(N_train, val_test, 'b', label='validation scores')\n", "plt.xlabel('Training Set Size'); plt.ylabel('rms error')\n", "plt.legend();" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nPWw7wiuv7OWOO+4ilUrx4Q9fwkknnYxlWZx00qm84x3v4je/eYx9+/Zy++3fZGRkhA9+8L2ccsrp\nPPjgfVx22VWsXXsM9977IzzPI3IEZtJPRuFeoMCOmAke9fWmha5AF5H5Lu9gJCMYGBg1z2H58hUA\nxONldHd3c/3111BRUcng4CCpMRPzjjrqKGzbpry8nLIJeidWr14DQHNzC4n0glOdnR20tZnx+OOP\nP5Gf//y/R/3Mn/3ZW/ne9+7msss+TnV1FZde+hF2797JunUbAKipqeGSSz7I97//fzj++BMBiEaj\nHHfcel566SUAWltNHV58cRuu+wIf+9ilAHiex759e7nqqs/wgx98l71797Bu3QZKYbh7bk2pPdJs\nG7+u3pzytm49/oo2gtoFCnYRkYOwLBs/PW8gCIJsy/u3v32M/ftf4frrP88HPvBhEomRCUJw8s/W\nibb9bmlZyI4dJoQ3b9407vFf/eoRjj/+RL761ds5++zz+O5376atbSUvvPAsAAcOHODyyz9OW9tK\nNm16GoBUKsXmzX9keWYBqfTrrlixko0bT+LWW7/BLbf8M+ec8waWLl3Gfffdy+WXX8Vtt93Bli0u\nzz77TIHvVvGo5T6WbZvTMerqTJDPsVOKRERmU0NDA6lUkq9//VbKysqywXjsseu4++5v8fGPf5CG\nhkaOPXZdtgs9v+s9Z3yQT/T4ZZddyU033UBFRQWxWIymppZRP7N27TF8/vPXE4vF8DyPv/3by1i9\n2uGJJ37Hhz98CZ7n8b73fYDTTnsNf/jDk3zwg+8jmUxy3nnns2bN2lGv+9rXnsUf/vAkH/nI+xka\nGuSss86hsrKSo446io985BIqK6tobm7h2GPXzcRbeVjm72x58haxsW386hoT6Avqihro83ZWcAkK\nQx0gHPUIQx1A9ZgN//mfP+Tcc8+nrq6OO+/8OrFYjPe855I5VYfJaLb8NATV1ea80doFR2QZQRER\nmVkNDQ188pMfoaKikurqaq655rOzXaSSMK/D3V+ydLaLICIih+Hss8/j7LPPm+1ilBwNKIuIiISM\nwl1ERCRkFO4iIiIho3AXEREJGYW7iIjMio997FJ27drBgw/ez69//ei4xy+66K8n/flHHnmYjo4O\nuro6+dKX/rFYxZyT5vVseRGRMLv++jLuu+/QP+ZtG3y/asLHLrggxfXXjxxu0fJYvPnNfzatn/zR\nj37AypUraW1t47LLrpjBMs19CncREZkx11zzKf7qr97FCSds5IUXnuPuu7/FtdfewE03fY6BgQN0\ndLTz9rf/FRde+Jfpnwj41re+QWNjE29969u5+eYvsH37VlpaFjIwMACYNd1vu+0reJ5Pb28Pl19+\nJX19fWzduoUbb7yea6+9gRtv/Azf+Ma/8vvf/5Y77/wXqqsrqaio4qqrPsOWLS/wve99Z9yOc/m+\n8Y1/5umnnySV8jj77HN597v/hmef3cytt34Z3/dpbm7muutuZOfOl/jKV76IbdvE42VcccU1+L7P\nFVf8HQsW1PGa15zJaaedwVe/+kWCIGDBggVcddV1JBJJPvOZqwiCgEQiweWXX5VdK78YFO4iIiF1\n/fUj02plm9XdBqb1mhdc8DYefPB+TjhhIw88cB9//udv4+WXd/OGN7yJ17/+HDo62vnoRy/NC/fc\n8q6PPvowIyPD3HHHXfT09PDOd14IwEsvvcRHP/oJVq06mp/+9CEeeOA+rrjiGlavXsOnPnU10Wgu\nym6++Sa+/vVvccwxK7n99ju5++5vccYZr51wx7l8P/vZT7j11jtobGzkxz++D4B/+qcvcMMNX6C1\ntY0HHvj/2bnzJW6++QtceeW1HH30an7960e49dZb+OhHP0FXVxff/vb3iEajfOAD7+Gaa65nxYo2\n7r//v/je977D+vUbWLCgjr//+8+yY8dLDA8PTev9LZTCXUREZsypp57O7bd/lb6+PjZteppPfvLT\ndHS083//77/x6KO/oLKyGs/zJvzZXbt2snbtsQDU1dWxYoXZ7a2pqZm77voWZWVlDA4OUFVVPeHP\n9/T0UFVVRVOT2S73+ONP4I47bueMM1475Y5z1133Ob7+9a/R1dXJ6aefAUB3dyetrW0A/Omf/jkA\nHR3tHH30agA2bDiRf/mX2wBYvHhJ9iBj164dfPGLNwFmE5rly1s5/fQz2b17N1dddRnRaJSLLrr4\n0N7YQ6QJdSIiMmNs2+acc97AF794E2eddTaWZfGDH3yXdevWc+21n+Occ84jCPwJf7atbWV2Z7e+\nvj52794FwFe/+kUuvvhSrrnmelatOjq7m5xt53agA3NAMDAwQGdnBwBPP/1UdrvWyXacSyaTPPzw\nz/jsZ7/A1772Lzz44P288sorNDY28/LLuwH4/ve/w6OP/pKmpma2b9+Wff7MlrZ23p4ky5ev4Npr\nb+DWW7/BpZd+hDPPNBvONDY28eUv38ZFF72PO+7450N9aw+JWu4iIjKj3vKWC3jnO9/Ghz98DwBn\nnnkWX/nKP/Hoo79k5cpVVFZWkkwmR/2MZVm87nVn89RTT/L+9/8NTU3NNDQ0AvCmN72Za6+9gpaW\nhaxde2w2vNet28DnP/8ZPvWpq7Nd+1dccQ3XXPNp4vEoFRVVXHPN9Wzfvm3SHedisRi1tQv4wAfe\nQ1lZGaeeejqLFi3i05++mptuugHLsmhqauYd7/hfLF68mFtuuZkgCIhGo1x55bWjtrYFuPzyq/jc\n567D8zwsy+Kqq66jtraWz3zmau6990d4nsd73/v+mX7bR7+f83lXuNkQop2K5nw9wlAHCEc9wlAH\nUD1KSRjqANPfFU7d8iIiIiGjcBcREQkZhbuIiEjIKNxFRERCRuEuIiISMgp3ERGRkFG4i4iIhIzC\nXUREJGSKtkKd4zg2cDuwARgBLnFdd3ve4+8CPgUMAz90XfeWYpVFRERkPilmy/1CIO667hnAlcCX\nMg84jtMIfAE4FzgTeKvjOCcWsSwiIiLzRjHD/UzgIQDXdR8HTs577Cjgj67r9riuGwC/Bc4qYllE\nRETmjWKGey3Ql3fbS3fVA2wFjnMcp8VxnErgPKCyiGURERGZN4q5K1wfUJN323Zd1wdwXbfbcZy/\nA/4D6ASeAjqmesLm5pqpvmVOUD1KRxjqAOGoRxjqAKpHKQlDHaarmOH+GHAB8EPHcU4HNmUecBwn\nCpzsuu7rHMcpAx4B/nGqJwzJDj+qR4kIQx0gHPUIQx1A9SglYagDTP8ApZjhfg9wvuM4j6Vvvzc9\nQ77add07HcfxHMd5EvCAf3Fd98UilkVERGTeKFq4pyfKfWjM3VvyHv8c8Llivb6IiMh8pUVsRERE\nQkbhLiIiEjIKdxERkZBRuIuIiISMwl1ERCRkFO4iIiIho3AXEREJGYW7iIhIyCjcRUREQkbhLiIi\nEjIKdxERkZBRuIuIiISMwl1ERCRkFO4iIiIho3AXEREJGYW7iIhIyCjcRUREQkbhLiIiEjIKdxER\nkZBRuIuIiISMwl1ERCRkFO4iIiIho3AXEREJGYW7iIhIyCjcRUREQkbhLiIiEjIKdxERkZBRuIuI\niISMwl1ERCRkFO4iIiIho3AXEREJGYW7iIhIyCjcRUREQkbhLiIiEjIKdxERkZBRuIuIiIRMtFhP\n7DiODdwObABGgEtc192e9/jbgKuBAPi267r/UqyyiIiIzCfFbLlfCMRd1z0DuBL40pjHvwycD5wJ\nXOY4zoIilkVERGTeKGa4nwk8BOC67uPAyWMeTwJ1QAVgYVrwIiIicpiKGe61QF/ebS/dVZ/xJeBJ\nYDNwn+u6+d8rIiIi01S0MXdMsNfk3bZd1/UBHMdpBT4KrAAGge86jvOXruv+aLInbG6umezhOUP1\nKB1hqAOEox5hqAOoHqUkDHWYrmKG+2PABcAPHcc5HdiU91g54AEjruv6juPsx3TRT6q9vb8oBT2S\nmptrVI8SEYY6QDjqEYY6gOpRSsJQB5j+AUoxw/0e4HzHcR5L336v4zjvAqpd173TcZy7gf9xHGcY\n2AbcVcSyiIiIzBtFC3fXdQPgQ2Pu3pL3+C3ALcV6fRERkflKi9iIiIiEjMJdREQkZBTuIiIiIaNw\nFxERCRmFu4iISMgo3EVEREJG4S4iIhIyCncREZGQUbiLiIiEjMJdREQkZBTuIiIiIaNwFxERCRmF\nu4iISMgo3EVEREJG4S4iIhIyCncREZGQUbiLiIiEjMJdREQkZBTuIiIiIaNwFxERCRmFu4iISMgo\n3EVEREJG4S4iIhIyCncREZGQUbiLiIiEjMJdREQkZBTuIiIiIaNwFxERCRmFu4iISMgo3EVEREJG\n4S4iIhIyCncREZGQUbiLiIiEjMJdREQkZBTuIiIiIaNwFxERCZlosZ7YcRwbuB3YAIwAl7iuuz39\n2ELgB3nffgJwheu6dxSrPCIiIvNF0cIduBCIu657huM4pwFfSt+H67qvAucAOI7zGuBzwJ1FLIuI\niMi8Ucxu+TOBhwBc130cOHnsNziOYwFfAz7kum5QxLKIiIjMG8VsudcCfXm3PcdxbNd1/bz7LgA2\nu667tZAnbG6umcnyzRrVo3SEoQ4QjnqEoQ6gepSSMNRhuooZ7n1A/js7NtgB3g18pdAnbG/vn4ly\nzarm5hrVo0SEoQ4QjnqEoQ6gepSSMNQBpn+AMmW3vOM4/z2tZ4bHgLekn+N0YNME33Oy67q/mebz\ni4iIyAQKGXOvcByndRrPfQ8w7DjOY5jJdH/nOM67HMd5P4DjOM1A7zSeV0RERCZRSLd8M7DDcZz9\nwFD6vsB13VWT/VB6gtyHxty9Je/xdmDjIZRVREREClBIuP9J+mv+bHarCGURERGRGVBIuO8CPgic\nl/7+XwC3FrNQIiIiMn2FhPvNwNHAtzFj9O8FVgKfKGK5REREZJoKCfc3Aie6rusBOI5zP7C5qKUS\nERGRaSuMScVIAAAgAElEQVRktnyE0QcBUSBVnOKIiIjI4Sqk5f494JeO43wfM5HuXcC/FbVUIiIi\nMm2Fjrk/DZyLCfcbXdd9oKilEhERkWkrJNx/57ruRuDHxS6MiIiIHL5CxtxfdRznLMdxyopeGhER\nETlshbTcTwZ+CeA4Tua+wHXdSJHKJCIiIoehkHB/g+u6fyx6SURERGRGFNIt/+9FL4WIiIjMmEJa\n7s86jnMd8Dhm4xgL0y3/aFFLJiIiItNSSLg3AuekL/nG3hYREZESMGW4u6579hEoh4iIiMyQKcPd\ncZw24E7MZjFnYVase5/rui8Vt2giIiIyHYVMqPsG8EWgH3gFE+53F7NQIiIiMn2FhHuT67o/AXBd\n13dd95vAguIWS0RERKarkHAfdBxnWeaG4zivBYaLVyQRERE5HIXMlv8k8ACwynGcPwINwF8VtVQi\nIiIybYXMlv+94zinAGswe7u/4LruSNFLJiIiItNSSMsd13UTwOYil0VERERmQCFj7iIiIjKHKNxF\nRERCppBFbE4DXgvcBtwHbAQ+6Lruj4pcNhEREZmGQlruXwOeAP4Cs3HMRuDKYhZKREREpq+QcLdd\n130E+FPgP1zX3YWZNS8iIiIlqNBFbC4HzgPudxznbzFL0YqIiEgJKiTc3w1UAm93XbcLWAT8r6KW\nSkRERKZtynB3Xfdl4F4g6jjOWcBDwKpiF0xERESmp5DZ8j/ATKLbM+ahc4pSIhERETkshaxQdzxw\njOu6XrELIyIiIoevkDH3x4HVxS6IiIiIzIxCWu6/ADY7jrMPSKXvC1zX1bi7iIhICSok3G8EzgV2\nFbksIiIiMgMKCff9wK9d1/WLXRgRERE5fIWE+ybgN47j/BRIpu8LXNe9YbIfchzHBm4HNgAjwCWu\n627Pe/wU4EuAhZmJf1F6a1kRERE5DIVMqNsJPEgu2MEE8lQuBOKu656BWYv+S5kHHMexgDuA97iu\n+zrg58DKQgstIiIiB1dIy32l67rvmcZzn4lZ8AbXdR93HOfkvMfWAJ3AJx3HWQc84LquO43XEBER\nkTEKCfd1juPUuK57qOvJ1wJ9ebc9x3Hs9Nh9E3AG8BFgO2bN+idc1314sidsbq45xCKUJtWjdISh\nDhCOeoShDqB6lJIw1GG6Cgl3H9jlOI6L2fIVzJj7uVP8XB+Q/87aeZPyOoFtmda64zgPAScDk4Z7\ne/vc36+mublG9SgRYagDhKMeYagDqB6lJAx1gOkfoBQS7p+e4L6ggJ97DLgA+KHjOKdjJuZlvAhU\nO45zVHqS3euAbxbwnCIiIjKFKcPddd1fTvO57wHOdxznsfTt9zqO8y6g2nXdOx3HuRj4fnpy3WOu\n6z44zdcRERGRPIW03KfFdd0A+NCYu7fkPf4wcFqxXl9ERGS+Klq4i4hI6TlwwHwtK4NYbHbLIsWj\ncBcRmQdGRmDPHov+/twyJbYN8TiUlQWUleWu19XNYkFlRijcRURCzPPg1VctOjosgjFToX0fhodh\neDh/XTKLri7o7bWJxyEeDygvzwW/ue+IVkGmQeEuIhJSnZ0Wr7xikUpN/b1j5Qd/X3bFEnMQkGnx\nx+OmxW+6+AOiUdPVH42CVcg6plI0CncRkcM0OAhDQxb19bNdEmNgAPbutRkcLM7zH6zFn71mmQMA\nE/SjQz8aDfKua9y/WBTuIiKHyPOgvx/6+swYdqZlPDgIqZRFY2NAbe2RL1cyCXv3WvT0zG6zOQjM\ne+R5MH4rktG3LQsikUzQB9nQj0bNMEBlpQ4ApkPhLiJSgKGhTJjD4OD48WswodbXZ9HXZxGNQkND\nQEOD6boupiCA/fst9u+38OfY5txBAKmUuYzuCYDMgUA8DlVVAVVV5mt5+ZEv51yjcBcRmYDvj26d\nJ5NT/0y+VCoXuFVVJuTr6kx39Uzq7TVd8IkQb5idSEAiYdHdDWARiYwO+8pKjfGPpXAXEUkbHs61\nzgcGJm6dT8fAgMXAgMWePVBXZ4K+qurwy7p37+hT28JiZAQ2b7bp7LQ55ZTUuLkMnpfpIQGwsG2o\nrBwd9vOdwl1E5i3fN4u6ZFrnxW79+j50dVl0dVmUl5tu+/p6M85cKM+DV16x6OycuYOP2eb78OKL\nNk8+GeGppyI884xNMpmZmR9n40aPc8/1OOOM1IQHReb3aKUX6LGwLOjuhpERK9vCn2/j9gp3EZlX\nUino7s61zmdrjDrT8t63z6K2NqCxMaBmig3AOjvN95uJanNbe7uVDfM//CEyahLgqlUeGzf61NcH\nPPpohCeeiPLEE1Hi8TinneZx7rkpTj3VO+j59kFgJjd2d5vz+8GEeyboI5EAy2LcBcbfN9WlVCnc\nRWReGByEjg6L3t7SmnQWBNDba8oVi+Um4eUH14EDZlx9aOjgz1PqBgfhj380Yf7kkxF2785NPmho\n8Dn//BQnneRx4ok+DQ25Lol3vCPJnj0WDz8c5Re/iPKrX5lLVVXAa1+b4txzUxx/vE8kMvnrJ5PQ\n02PR0wPjZ/BPX2a2/3HHldAfFQp3EQm5nh4T6gMDJdzMSksmzWpymUl49fUB/f2zf2rbdHgeuK6d\nDfPnn7fxPFOP8vKAU081Yb5xo8eKFcGkreClSwP+9/9O8u53J9m+3ebhhyM8/HCUn/wkxk9+EqOh\nwef1r/c455wUa9f6R7RFHQSU5PCIwl1EQieVMl3YnZ2HPsu9FARBZgx57oR6EJhhhkyYP/10JHtA\nZVkBjuOzcaMJ82OP9accA6+pCViwwPweMz0WlgVHH+1z9NE+F1+c5NlnbX7xiyiPPBLlnnti3HNP\njMWLfc49N8WFFzKv18i3glI85JhY0N7eP9tlOGzNzTWoHqUhDHWAcNRjpuowG13vQWBes73dYt26\nCnx/4Mi8cBFkVp6Lx6t45ZVBhoZMsA4NWQwPM+r22K9bt9q88kquq33RIj/bMj/hBK/gRX0iEVi6\n1B81Q76/35xWeLCDnWQSnnrKtOYfeyySPV9+1SozEe+cc1K0tBQv6yIRWLeuOH9wzc010zrCU8td\nROa8I9X13tcHL71ks2PH6Et+6CxZUsGaNT5r1ng4js/q1T4VFUUt1qQyC9xs327z4os2O3fa9PeP\nDWxrguVkD+18supqMwa+caPHSSd5LFly6GFaXx+wZMn4swdqakxLfmAgoL3dLBKU3y6NxeC00zxO\nO81jaAh++9sIv/51Of/zPzbf/GaEb34zzrp1ZiLeWWelWLDgkIs256jlfoSFoZUF4ahHGOoA4ajH\ndOpQzK73oSHYtcvOBrn5atHVNXoFGtsOWLo0oK3Np7k5YM+eGM89F4w699yyAlpbg2zYr1njc9RR\nflF2Vhsehp077WyQZy4THfTYdkBFBVRUjP9aWxslEklmb5eXm/PIKyrMeHnu+3P31dYy5aS2gykr\ng2XLfKqrC69ne7uZi3CwHpr6+ip27hzg17+O8vDDUf74R5sgsLDtgDVrfNav91i3zmfdusJ7FQ6m\nFFvuCvcjLAwfxBCOeoShDhCOehxKHWay6z2ZhJdftrIt8EyYv/KKRRCM/kxtafFpa/NZudJ8bWsL\naG0dHdL19VV0dQ2wb5+F69q4boQtW2y2brVHtYqj0YCVK/10C9/HccxzFhqOQWDC7aWXRgf5nj0W\nvp+/X7s5+Fi1ymfVKnNQsXKlT12d2bzlYBPP6uur6O4u/vCCZUFLS8DChZNPqDuYZNK8D52d4/8W\nxtaho8PikUciPPpoFNfNTe4DaGvLhL3H+vXmQO1QKNwPj8K9hIShHmGoA4SjHoXU4XC63pNJ2LPH\nYtcum127TNf0jh02u3dboz7kARYsCPIC3IThihV+QSvKHSwUPQ9277bYsiWC69ps2WJCObNQC5hN\nUo46KhP2ppW/dGlAKgU7doxuib/4oj1uZbqqqlyIZ4J8xQp/WuuwH4lwr6oyBx4zMWTheeZvo6Mj\nt4nPZHUYGoIXXrB55pkIzzwT4YUXRh98LVrkZ4N+/XqPZcsmP/goxXDXmLuIlKxk0qzoVmjXe6Y7\n3VxyYb537+gWLZhu5TVrciGeCfJibNsaiUBbW0BbW4o3vjFXtx077HQL3wT+Cy/YPPdcBIhlyzgy\nwqiyW1bA4sUBJ5zgjQrylpbptX6PNNuGxYsDmppmrmEZicDChQEtLQGdnWZy42QqKuDEE31OPNEH\nkqRSsHWrzebNNps2RXj22Qg/+1mMn/3MfH9dXZAOe9OVf9RRhfeyzBa13I+wMLSyIBz1mCt1SCSY\ndHx2rtRjMvl1GBiA/n4zaWp4eOJziHt68kM8F+Tt7eN3ZampCVi+3Ke1NXMJWLHChOFMb+JyuC3e\n4WHYvt0EvetG2LbNpqrKtOgzQb5yZfEn6BWr5V5bG7BsWXBEloKNRmt47rmBaS384/uwc6fF5s2R\ndOvepqMj98dSWRlw7LEm6Nev9zjuOJ+NG9VyF5ECeJ4ZD+7pGb0LVnV1uDbG8DyzDviuXSbQ85dW\n7eoys7x377bYuTMX5n194z/vGht9TjzRywtx0y1dV1fay4TmKy83K52Z1c5Ss12cGROLmdPbjuQs\n9fp6WLPGn/I0uonYNqxcGbByZYoLLkgRBGY9fxP2Nps3Z5bENd8fiwV88pMJLrusdLbmU7iLlKAD\nB0zLNNMVPdEuWJmwr6gwrdu5EmAwfm/0ujqzDrjnwXPP2fzudxF+97sIL744uu/TtgMWLTKtpkwr\nPBPkh7vLmsw8y4LGRjOMMNO9JIWa6jS6QliWGUpYvDjF+eeb+7q7ybbsn3/eLrlV6hTuIiUk00Jo\nb5/8A8jsNW7CcWQEenttKioCqqtzoT9bH6YTyd99ra9v9Ph5V5fFr34Fv/xlGU8+Gcm2sGKxgI0b\nPY47LtcaX7YsKMopZDLzysvN6W2lctCV2Q52eDiY8jS6QtTXw+te5/G613lFnVA3XQp3kRIxMmJa\n64ODh/6zvp/ZMxwyW15WVGSC3oT+kZ4ANDIyem/0zAdpZs3xTOt869ZMwaIsXOhzzjlmx6/jj/dm\ndfEXmR7bNqe3leoEv/JyWL7c9CZkZtiHYZe9sRTuIiWgo8Ns5TlTS6ZmtrwcHDS9AJZlFgoxQR9Q\nVma+b+xWl9P5mv+aAwO51vnISO6xnh544okIv/99lN//PpI9jSsaNbO+zz47wrp1g7S25gIhM/QA\nkEqZvdbD+CEcJjU15vS2zN9XKYtGYdGi3Az7jg7zNxYWCncpaZnFOjKhl99VPbbberLbYx+zLKZ1\n/u9MS6XM+c8TTRCbSUFAdnnRzs6Zfa38kM+8z75vTi3KtM5d184uCtPU5PO615nW+YknelRWZmZn\nm1CoqQmorTW9DbnnDrLPn0iY08jMxRp3PZUq/i5dlmUOPiKRzFczplxbC4lEQBCYYRXfz+0alrmd\nqUepjdFOV+bAsaWlOKcRFpttQ3NzQHNzQHc3tLfP7a11MxTuUrI8D3bsKN7OWGaTDJvm5tmZUd3X\nB7t329lFN+aqTEj198OTT5ow//3vo9ltSm07YN06n1NP9TjttBRtbeNb562tsHChP2WLLxMkue/L\nT8jc9Vzgjz0AMLc9zwSzuQTZoM5cbDsX2rkAH/34RJqbzTnRo8t18PctP/QPdnt42Mr2wiQSs39Q\nYNvm/PvMGHZV1ZEf8imW+nqor/c5cMDMsB+7UNBconCXkpRIwIsv2qO6doshs+jJvn1mVm9TU1D0\nD6rM1pgdHUf+g6O319S3s9MikTBhYS6Hcj13XzJput9Nl3muPg0NPm96k2mdb9zojVozvKzMnO9c\nU5NrnTc3Q3v7zNUzFiPvXOqxaVgaTeb8IZHJ/uaqqzPlDfC83HDLwID5WuyhivwzMzJfS3EsfSZV\nV5v3fWgoN/lutg+qDpXCXUrO4KDZeetItmiTSTNLff9+i/p600VXjHHDzMHE8PDMP3eG75uhjLGr\ntO3ebdPbe3ifyvG4ma2e+VpREYy6vn69z2mnmZXTMq1b2zYflDU1JtQ12336IpHcqV2GWcEuE/iD\ng2YL1sMJomgUGhrMQi1VVTOzPOxcVVEBra3m9MuOjonXsC9VCncpKX19Zler2foH8n2z01hXl0VN\njQn5Qneqmsr+/VZ6Q5KZeb5k0vQAPPUUPP98LBvmL79sj9m6M3d++DHHmNPKWlrMwUsurM3a5rEY\no8I7//7JNhoZK9M6r62dHy292ZQZpqivN8MB+ZMp87vzJ/v5/LMq4vFMT8oca6oWUTwOS5aYDW7G\nrmFfqhTuUjI6Oy327CmN7q8gyM36rqjgsMblk0mz+tp05w4MDpqx+cnXSzfN4Xg8YNmy0Yu7tLaa\nDUhmusWcmVQWjZpZ79ForlWp1vnssazcOd2G2XwmP/DLy3Nd7GP3TpeDy1/DPjP5rpi9cIdDv1Yp\nCfv2mS7xUpTpSt+7F5qaDm1cvqcHXn7ZPqRx0Y4Oi02bzI5VmzZF2LVr4vXS1641we04MZqbh7Mt\n8unMGchMGMsEdWbiWDSa+WrCOxfm4ZlENR9Eo2Ymf21tCRw5h4BlmaGLhgafvj5m/AyUmaBwl1kV\nBKZVm5lZXcpSqcLH5X3frAvf3T15vYLAHNhs2mTWrH7mmQj79uXCvLzcnAfe1uaPaonn9yLU18fo\n7i7s6MGyzJamjY1BXpir21xkukr1oEnhLrOm2Ke6FUv+uHx1temiyx+XP3DAdKNPNM6ZOZjZtCmS\nDfTOzlyYV1cHnH56ig0bzF7SRx/tz1i3aVVVwJIl4dp0RkQmVrRwdxzHBm4HNgAjwCWu627Pe/zv\ngIuBzAkwl7quu6VY5ZHSkkiYGfGlOl5ViCDIrO9uxuWbmnwSCdOyz8wb8DxzSt8zz5h9ojdvjoya\nsV5XF3DWWSnWr/fYsMGjrW3mN9gwk4GO7I5cIjK7itlyvxCIu657huM4pwFfSt+XsRH4/1zX/UMR\nyyAl6FBOdbv33ij/9V8xqqoC6utNd3J9fUBDg7nk3zebk7iGhkxrPZk0K7OZlrnNs89GGBzMhXlz\ns89553nplrnHsmXFW387M/mnqak01/gWkeIpZrifCTwE4Lru447jnDzm8ZOAqx3HWQQ84LruPxSx\nLFIi+vthx46pT3ULArjrrhjf/36csrKAV1+1SCYnT6jq6lzoZ4LfXPdH3V9TM37J1JERE9DDwxbD\nwzA0NP5rIY/v2WMzMpJ78mXLfF7/+hTr1/ts2OCxcGHxx+Yy22wuWlT8BXlEpDQVM9xrgb68257j\nOLbrupmP9X8D/hnoB+5xHOdPXdd9oIjlkVlW6Kluvg+33RbnvvtiLFni84//OMzChQEHDpjtQbu6\nzES1zPWuLnvUfRPNLs8XjQbU1WXOB65keJjsuufTZdsB5eXmXNj163Nj5g0NR3aiTW2tGVefCxt3\niEjxFDPc+4CavNv5wQ7wVdd1+wAcx3kAOBGYNNybm2sme3jOmI/12LvX7BhWVzf596VScP318NBD\nsHo13HqrTVOTmQHW0ACtrVO/VjIJnZ3m0tEx0XVzEBCJQFOTRWWlWYkq/zL2vvzblZXmPOH8+8rK\nrHRvgAXYQGzyQs6wpUurWL6cGVtwZzbMx/+LUhaGeoShDtNVzHB/DLgA+KHjOKcDmzIPOI6zANjk\nOM6xwCBwLvCtqZ6wvb2/SEU9cpqba+ZVPYLA7Ho21SlhYHYtu/HGMh5/PMqxx3rceOMwkQh0dx96\n+crKYMkSczkYsxPZwKE/+RhDQ6Zbv6XFLMU6U8uAFiIWg3XrqvD9foaGmLO7Wc23/4tSF4Z6hKEO\nMP0DlGKG+z3A+Y7jPJa+/V7Hcd4FVLuue6fjOFcCD2Nm0v/Mdd2HilgWmQWHcqrbwABce205zzwT\n4eSTU1x33cicWNPatqGhwSxLmTllLbMMqO+P3+RjppastG1zMNHcHNDYOLObrojI3Fe0cHddNwA+\nNObuLXmP/xtm3F1C6FBOdevuhquvLmfbtghnnZXiyitH8nb0Kk2WZU5jW7To4LP0zYYpo3f1SiRM\n4A8MTK91b1nm4GHRoqDk3yMRmT1axEZm3NCQObe7kFbq/v0WV1xRzssv27zlLUk+/vFEyc/wrqkJ\nWLx4ertlZTZjyez5ndnkw4S9ad0nkzP/uiIyvyjcZUYkk2Yy3PCwWUu9kF3ddu2yuPLKctrbbd7x\njgSXXJIs6fOxq6pMi3kmJ61NtMlHMkm2G39wEHzfYtEin9ramXtdEQk3hbtMyPNMWCeT5noyaY26\nr7sbXn3VtM59/9Anjm3ZYnP11eX09lpcfHGCd77zIM3VElBeDosWHbkV3mIxc1aBad0DlN661SJS\n2hTu89TgIBw4YCZ45S7mtucxZcvbts0M8en44x9trruunKEh+MQnRvjTPy3NjZFjMRPqDQ2zXRIR\nkUOjcJ9Hhoeht9ecljbdYD5cv/1thM99rgzfh6uvHuHssyffzSyz2loiYVaBO9h49EyKRHIz0Ut5\nmEBE5GAU7iGXSEBPj9lSdbbPgf75zyPcfHMZsRjccMMIp5wyebDbNqxYkT/WHJBKmQl7mZnmQ0PW\nhLuvTYdtQ3OzCfVSn9QnIjIZhXsIpVKZQDchWOyFVArxX/8V5bbbyqiqCrjxxmHWrZu83398sBvR\nKNTUmJnjRoDnTRz4hdbbsnLnquv0MhEJA4V7SPg+9PSYUD9woDQCHUzAfv/7Me66K059vc9NN41w\n1FFTB3tbm09NgQszRSLjzyfPLCCT2dBlaMgMReS/L/nnqmstdhEJE4X7HBYE0NcH3d1mT/FCTj87\nknwf7rgjzn/8R4yFC33+4R+GWbZs8qOOQw32yZ5nosDPD/o1a2BgoESOgkREZpDCfQ7q7zeB3tt7\n6IHu+7Bzp8WmTRG6uy0WLw5YutRn6VKfujpmbAKZ58GXvxznv/87Rmur2dmtqWnqYF+50i/a5ie2\nPfqc8spKcz65iEjYKNzniAMHTJd7b++hrU/uebBtm82mTTbPPBNh8+YI/f0TJ3hlZcCSJT5Ll+a+\nTif4Ewn4whfKeOyxKI7j8fnPD095jnixg11EZD5RuJe4/n7Yt88ueKZ7IgGua7NpU4RnnrF57rkI\nQ0O5VF60yOf001OsX++zcKHPvn02e/da7Nljs2ePza5dNtu2jU/xscG/Zg3U1dnjgn9wEK6/vpw/\n/CHCCSd4fPazw1RWTl5mBbuIyMxSuJeowUHYt2/qHdWGhuD5502Yb9oU4YUXbJLJ3M8sX+6zYUOK\n9es91q/3aWkZ2zU+ul/f981+53v2mMCfPPjNIueZ4F+yJGDPHovt2yOccUaKa64ZOeimKhkKdhGR\nmadwLzEjIybUe3snDvX+fnj2WdMq37QpwtatNp5nvteyAlat8lm/3mfDBo916zzq6w/t9fPP9T7h\nhIMHf09PBVu3JiYM/vPPT3LZZVNvAGPbsGqVT1XVoZVRREQmp3AvEakUvPKKRVfX+NPYnngiwuOP\nR9i0yeall2yCwIRoJBKwerUJ8g0bfI47zitqCzg/+Ovrobs7t1xcJvgHB6G1deqV3WwbjjrKn7LL\nXkREDp3CfZb5vtn2tL19/Mz3nh649dYyHn3U/JpisYD1633Wr/fYsMHjmGP8ktn+MxP8hYhETItd\nwS4iUhwK91kSBKal++qrE89+f+SRCLfeWkZvr8Vxx3m8970JjjnGn3IMu9Qp2EVEik/hPgt6eswM\n+InWRO/pgdtuK+ORR6LE4wEf/OAIF16YmvZa55YF8TjE42YVtngcysoC4nHTa9DdbTaS8SZf5n1G\nRCKmK75UehtERMJK4X4EHTgAHR2wZ4894eOPPmpa6z09Fsce6/GpT41MuaIbmC5xE9zjA3yqlr6Z\n6R7Q1wddXWalu2IsXRuNmha7gl1EpPgU7kfA4KCZLNffb004e31sa/3SS0d429tGt9aj0VxgZ4I8\ncz16mL9Fy4IFC2DBgoBUKsi25mdqF7lo1LTYy8tn5vlERGRyCvciSiRyp7UdrDX8q19F+NrXcq31\nyy8fYfny3DdHImZ3tMNda71Q0WhuRvzwsOm27+o6tFXxxj6fgl1E5MhSuBdBKgWvvmpC8WBrv/f2\nmpnwk7XWKyrMJiqzNYmuvBwWLw5YvDigv9902/f1Fb6efSxmgl07romIHFkK98OUTJpLKgXJpNlt\nrLNz8gCcqrUOZivS5csD7ImH54+4zB7qnhfQ02NhWdDdffDvV7CLiMwehfsEgmB8aJuvmfsskkmz\nKcuhTD7r7YWbb4af/rSceDzgAx8Y4e1vH91atyzTWi70nPEjLRKBxsaA5maoqvKz3fbJ3Ho2xGJw\n9NFz/7Q9EZG5al6He1cXDA9bo0I8maQo+6LnWusctLUeiZhu+LmyznpZGSxaFLBoUcCBA6bbfmjI\nYuVKBbuIyGya1+He0VH4bmvT1dtrZsL/8pdRYrGAv/1bePObh8edtz7b4+uHq7oaqqsDoDR7HERE\n5pN5He7F9utfR/jqV83Y+jHHmNb68cdXjhurrq834+uF7pcuIiIyGYV7EfT1mZnwmdb6RGPrYMbX\nlywJaGpSa1dERGaOwn0GBQE89tj41npr6/jwjkbN+etzZXxdRETmDoX7DEgkzNKx994bw3UjxGIB\n739/gr/4i+SEa8JXVprx9VjsyJdVRETCT+F+GLq6LO6/P8r990fp7raxrIDXvCbFxRcnWLFi4q72\n5mYoL/c1vi4iIkWjcJ8G17W5554YjzwSIZWyqKoK+Mu/TPLnf55k8eKJQ922zfh6ayu0tx/hAouI\nyLyicC9QMmnOVb/33hjPP2/62pcv93nb2xK84Q2pSXc7i8XM+HpV1REqrIiIzGsK9yl0d8MDD8S4\n774oXV2m6/3001NceGGSjRun7l6vqgpoawsOe+c2ERGRQilyDmLLFpt7743yy19GSSYtKisD3v52\n0/W+dGlhp641NZm90jW+LiIiR5LCPU8qZRaeueeeGM89Z7rely3zufDCBOefn6KysrDnsW1YutSn\noZkWTqIAAA0aSURBVKGIhRURETmIooW74zg2cDuwARgBLnFdd/sE33cH0Om67lXFKstUenrgxz82\nXe8dHWYbtlNOSfG2t6U46STvkHZmi8XMaW6FHgiIiIjMtGK23C8E4q7rnuE4zmnAl9L3ZTmOcymw\nDvhlEctxUFu32vzgB1F+8QvT9V5REXDhhUne+tYky5Yd+qpxNTUBra0aXxcRkdlVzBg6E3gIwHXd\nxx3HOTn/QcdxzgBOBb4BrC1iOSZ0220xbrihHIAlS0zX+xvfmJrWjHbLgoULAxYu1DKyIiIy+4oZ\n7rVAX95tz3Ec23Vd33GcxcB1wNuAvy5iGQ6qtTXgnHNSnHdeilNOObSu93xaRlZEREpNMcO9D6jJ\nu227rpvZKf0vgSbgx8AioNJxnOdd1/3OZE/Y3Fwz2cOH5OKL4YwzYHBw+m9BdTWsWsUhLyM7k/WY\nTWGoRxjqAOGoRxjqAKpHKQlDHaarmOH+GHAB8EPHcU4HNmUecF33VuBWAMdx/gZYO1WwA7S3989o\nAbu6prefu2VBc3NAQ0NAT8+h/Wxzc82M12M2hKEeYagDhKMeYagDqB6lJAx1gOkfoBQz3O8Bzncc\n57H07fc6jvMuoNp13TvHfO+cGayORKC11ae2drZLIiIiMrGihbvrugHwoTF3b5ng++4uVhlmWkWF\nOc0tHp/tkoiIiBycTtoqUGNjwNKlWm1ORERKn8J9CrZtVqmrr5/tkoiIiBRG4T6J8nJzmlt5+WyX\nREREpHAK94Oorw9YtiyY9vnvIiIis0XhPoZtw5IlAY2Nc2YCv4iIyCgK9zzxuOmG16YvIiIylync\n02przaYvkchsl0REROTwzPtwtyxYtCigpUXd8CIiEg7zOtyj0YBVqwJt+iIiIqEyr8N95UotSiMi\nIuEzr0/0UrCLiEgYzetwFxERCSOFu4iISMgo3EVEREJG4S4iIhIyCncREZGQUbiLiIiEjMJdREQk\nZBTuIiIiIaNwFxERCRmFu4iISMgo3EVEREJG4S4iIhIyCncREZGQUbiLiIiEjMJdREQkZBTuIiIi\nIaNwFxERCRmFu4iISMgo3EVEREJG4S4iIhIyCncREZGQUbiLiIiEjMJdREQkZBTuIiIiIaNwFxER\nCZlosZ7YcRwbuB3YAIwAl7iuuz3v8b8ArgAC4Huu636tWGURERGZT4rZcr8QiLuuewZwJfClzAOO\n40SAm4DzgNcAH3Ycp6GIZREREZk3ihnuZwIPAbiu+zhwcuYB13U9YK3ruv1AMxABEkUsi4iIyLxR\nzHCvBfrybnvprnoAXNf1Hcd5O/AH4GFgsIhlERERmTesIAiK8sSO43wJ+K3ruj9M397tuu7yCb7P\nAu4CHnZd966iFEZERGQeKWbL/THgLQCO45wObMo84DhOreM4jziOE3ddNwAGAK+IZREREZk3itly\nt8jNlgd4L3ASUO267p2O47wfuBhIAn8EPpYOehERETkMRQt3ERERmR1axEZERCRkFO4iIiIho3AX\nEREJGYW7iIhIyBRtbfmZMtUa9aXIcZzTgH9wXfccx3GOxpzH7wObgY+4rhukzxb4AJACbnRd94FZ\nK/AEHMeJAd8GVgBlwI3A88yhuqSXOb4TWIPZw+CDmL+hu5gjdcjnOE4L8CRm2WafOVYPx3GeAnrT\nN1/ELEF9F3OoDgCO41wFXADEgNswp/3exRyqh+M4fwO8J32zAjgeeC3wVeZIPdLZ8E3M/7cPvB9z\nSvVdzJE6ADiOE8fU42jM2WMfx5wefheHUY+50HI/6Br1pchxnE9jAqUsfdeXgatd1z0LsIC3Oo6z\nCPgYcAbwJuCm9C+4lLwbaE+X+0+Af8a893OpLn8G+K7rvhb4e+ALzL06ANmDrW9g/ukt5tjfleM4\n5QCu656TvlzMHKsDgOM4ZwOvSX8enQ2sYg7+Tbmue3fmdwE8gSnrdcyterwRqEr/f9/A3P3/fv//\na+/+Y6+q6ziOP1FTg5CkNVrGqGa8SskSKKMNKIdZW62N5ZoxDfq5WYSOJvodVtSyFnMoy+UPQmGz\n5iRCXaI0IEVUEAVrqS/EzVqbNikZiWSI9Mf7c+P45fI1+Na+93O/78f2Hfecc8+5nzf33Ps5n8/5\n3M8beKmcU18FbuJ/EEcNlfth56jvUDuA6cQbAjDe9n3l8WpgGvAhYKPtfbZ3l33OOORIA+s24sMO\ncZ7so7JYbN8OfL0svhN4AZhQUwwNC4GfAc+W5areC6JlOFTSPZLWlomtaosBokL5g6RVwJ3AHdR7\nTiFpInCa7SXUF8deYESZU2UEkZ+kthgATuNgHbcdOAU4u79x1FC59zlHfaexvZLoMmkZ0nj8D+Ik\nPImD3ZPN9R3D9h7bL0oaTlT083nt+VJFLLb3S7qZ6G68hQrfD0kziV6UNWXVEOqLYw+w0Pa5xO2R\nW3ptryEGiERXE4DPEXH8gvrei6YeYEF5XFscG4ETgSeJXq3F1BcDwDail7E1m+tbgaGN7UcVR8dW\nkg27geGN5WNsvzpQhTkKzbKeBOzi0JiGE63KjiJpNLAOWG77l1Qai+2ZgIj7Wic2NtUSwyzgHEnr\ngQ8Cy4gvgJYa4thOqdBtPwX8DRjV2F5DDAA7gTW2XymtrH/y2i/YWuJA0puBsbbvLatq+3xfSrRk\nRXwulhPjIFpqiAFibNNuSRuI29AG/t7YflRx1FC5H3aO+kpslTS1PP4UcB+wGZgs6QRJI4D3EYMm\nOoakUcAa4NJGQp+qYpF0QRn8BNGFtx/YUlMMALan2v5YuT+6DbgQuLuyOGZRxstIejvxxbSmshgA\n7ifGoLTiGAqsrTAOgCnA2sZyVZ9vYBgHe3VfIAaI1xYDwIeBdbYnAyuA54AH+htHx4+WB35NtFo2\nluVZA1mYI9Ca13cucGMZ+PA4sKKMelwMbCAusHpsd1o++x6iRfIdSa1773OAxRXFsgK4WdK9xBX9\nHKILr8b3o+kA9Z1XPwduktS6jziLaL3XFAO2fyNpiqTNRPkuAp6hsjiKsUDzl0e1nVMLiXNqA/H5\nvpz4NUlNMUC01G+V1EP0BH2FKGe/4si55VNKKaUuU0O3fEoppZSOQFbuKaWUUpfJyj2llFLqMlm5\np5RSSl0mK/eUUkqpy2TlnlJKKXWZGn7nnlLXkvRTIn/C8URWqMfLpqttL/svj7HV9pl9bP8MMNH2\nd/tZ1hOIZC9TiNnMdgFzbW95nf3Wlwl4eq8/A1gEvIX4LnoQmGP7JUkLgC227+xPmVMarPJ37il1\nAEljgN/ZftdAl+VwJM0Dxti+qCx/lJgoaLTt/X3s96rtQ3oJJT0BzLS9qST/uBbYa3vu/yeClAaP\nbLmn1BmG9F4h6RngIWLe7MnAxcDZwEhijvPptv/aqjwlfY/IKHUqMAZYYvvKknhmqu1Z5ZjLiZSR\nw4ALbT8qaRyRP/pYyhSrtt/Tq0ijgOMlvaFkpnqgHPs4IqHTZcB55Rj32J5XZtRC0oO2J7U53jCA\nMvvWglJuSrKf9cCLRNIiyuucTmTH+gtwHTCa6EW43HZzKtWUBrW8555S5zoA3GX7vUTyiLG2J5VE\nGTuAGW32eT9wDnAWcFmZg7p1rNa/O22fRVSOPWX9MmB+6d5/mvYX/tcAHwGel7RK0mzgIdsvS/ok\nMJ6oeMcD75A0w/a3ANpU7ACXAHdI2i7peiJd5+ZGOQ/Y/pXtM0u51gLX2n6klGWp7YnAZ4HrJb2p\nj//LlAaVrNxT6mybAGw/DXxb0tckXQVMorR6e1lXMpY9T2SWalXuzZ6Bu8u/fwRGSjqZ6G5vrV/a\nriC2/2R7HHHxsIlIYLOtXEBMIy4oHil/44k81YdVxhSMIrJ77SPyACxqPOU/ZZb0pXLMi8uqacD3\nJW0F7iIuRt7d1+ulNJhkt3xKnW0vgKQJRO7wq4DbgFc4tCv/APByr+VDuvuJ5BTN7ft7Pa/dPkj6\nMXCN7YeBh4EfSbqfqOyPIQYBLirPPZmosNuSdCpwvu0fAKuAVZKuJrLeXdIoX+vefg8wqXFv/xjg\n47Z3leecAjx7uNdLabDJlntKdZhCDLi7AXgC+ARxb7upbaX8emzvBnaUrnWAL3CwG7/pbcAVko4D\nkDSSyCv/e2AdcIGkYWX7SmB62W+/pN5l3QnMltQcRT8OeLQZj6TRRB74z5feiJZ1wDdKOU4HHgPe\neARhp9TVsuWeUufo66crtwIrSzf0TmA10BpZ37yf3jzGgV5/7V6vtf6LwFJJPyQq671tnv9Noufg\nKUl7gH8B82xvB7ZL+gDRXX8ssNr28rLf7UT3/YRWikrbuyR9GviJpCXlWE8C5/d6zfnE7YfrWhcV\nwJXAbOAGSY8RFzUzbO9pU+aUBqX8KVxKCUlXADfafk7SdKLL/LyBLldK6ehkyz2lBPBn4LeS9hED\n8b48wOVJKfVDttxTSimlLpMD6lJKKaUuk5V7Siml1GWyck8ppZS6TFbuKaWUUpfJyj2llFLqMv8G\nI23RmeDlfS4AAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "It's clear here that the weakness of our model is not the model complexity, but the amount of training data available.\n", "Our model will not be data-saturated until the two lines above meet \u2013 and it will take a whole lot more data to bring the lines together!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Validation with Support Vector Machines\n", "\n", "The Support Vector Classifier is often a much more powerful model than random forests, especially for smaller datasets.\n", "\n", "Here we'll repeat the above exercise, but use ``sklearn.svm.SVC`` instead.\n", "The support vector classifier that we'll use below does not scale well with data dimension. For this reason, we'll start by doing a dimensionality reduction of the data.\n", "\n", "- Use the ``SVC`` with the default parameters, and use 3-fold cross-validation to determine the optimal accuracy.\n", "\n", "You'll notice that this computation takes a relatively long time in comparison to the Random Forest Classifier.\n", "This is because the data has a very high dimension, and ``SVC`` does not scale well with data dimension.\n", "In order to make the remaining tasks computationally viable, we'll reduce the dimension of the data" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from sklearn.svm import SVC\n", "\n", "scores = cross_val_score(SVC(), X, y, cv=3)\n", "print(\"score = {0:.2f} +- {1:.2f}\".format(scores.mean(), scores.std()))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "score = 0.41 +- 0.00\n" ] } ], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Use the ``PCA`` estimator to project the data down to 100 dimensions\n", "- re-compute the ``SVC`` cross-validation on this result. Is the score similar?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from sklearn.decomposition import PCA\n", "X_proj = PCA(100).fit_transform(X)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "scores = cross_val_score(SVC(), X_proj, y, cv=3)\n", "print(\"score = {0:.2f} +- {1:.2f}\".format(scores.mean(), scores.std()))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "score = 0.41 +- 0.00\n" ] } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we'll carry-on with the learning/validation curves using this projected data.\n", "\n", "- Construct validation curves for ``SVC`` on this (projected) data, using a linear kernel (``kernel='linear'``) and exploring the effect of ``C`` on the result. Note that the effect of ``C`` only changes on very large scales: you should try logarithmically-spaced values between, say $10^{-10}$ and $10^-1$.\n", "- What is the optimal value for ``C``? What is the best score for this estimator? What is the score for this value if you use the entire dataset? Is this much different than for the projected data?\n", "- Construct a learning curve for the Support Vector Machine using this value for ``max_depth``.\n", "- Given the validation and learning curves, how do you think you could improve this classifier \u2013 should you seek a better model/more features, or should you seek more data?\n", "- Overall, how does this compare to the Random Forest Classifier?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "C = 10 ** np.linspace(-9, -4, 20)\n", "val_train, val_test = validation_curve(SVC(kernel='linear'), X_proj, y,\n", " 'C', C, cv=5)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 12 }, { "cell_type": "code", "collapsed": false, "input": [ "plt.axes(xscale='log')\n", "\n", "plot_with_err(C, val_train, 'red', label='train')\n", "plot_with_err(C, val_test, 'blue', label='test')\n", "plt.xlabel('C')\n", "plt.ylabel('score')\n", "plt.legend(loc='best');" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAfkAAAFpCAYAAACf0FGnAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmYFdWd//F31d163+im2RdBSxCNu+KuCCIKIiZjNs04\nyS8TZ8mMmSSaRBONmWSciclkGZNoJkZjohkXEkFlcwE1BnABRaRUkJ2m9737LlX1+6P69kJ3Q0P3\n7fXzep773K369umi6U/VqXO+x/A8DxERERl+zIFugIiIiKSGQl5ERGSYUsiLiIgMUwp5ERGRYUoh\nLyIiMkwp5EVERIaplIe8ZVnnWJb1YhevL7Qsa4NlWX+xLOsLqW6HiIjISJPSkLcs6+vAA0DkkNdD\nwI+AucDFwBctyxqdyraIiIiMNKk+k/8QWAIYh7w+A/jQtu0a27bjwCvARSlui4iIyIiS0pC3bfsp\nINHFWzlATbvndUBuKtsiIiIy0gQH6PvWANntnmcDVYf7As/zPMM4tENARERkEHIcqKqC0lL/Vlbm\n35eXt90qKvz7ykr/VlfX+XM8r1fBN1Ahvw043rKsfKABv6v+vw73BYZhUFbWxQ6QPlVUlK39nGLa\nx6mnfZx6I2ofuy7E4xixKEbpQcx9+wjs34d5YD9mWSlmVRVGVSVmdTVGdRVmTQ1GbQ1GPH7Ej/aC\nQby8fNyx43BPGoU3qhC3sBC3aDRuYVGHs+Fj0V8h7wFYlvUpIMu27Qcsy/oKsBL/ksH/2rZ9oJ/a\nIiIiAp4H8bgf4A31mPv3E9i3F/PAfgIlBzBKSjBLD2KWl2KWl2NWVGDEY4f/yIxM3Nxc3ONPwM3L\nxx3VEtyjCnGLivzwLh6DW1iEV1iIl50Dh+ml7m3IG0NoFTpvxBw1DqARdXQ+QLSPU0/7OPUG/T52\nnHZn32UE9vvhbR7Yj1lSgnmwhEBZKUZ5OWZFGWZNTbcf5ZkmXn6Bf4ZdWIQ7uhi3uBhnzDi8sWNx\niorxikfjFBVDVhYE++78uagoe0h214uIiBybZIDHYxCN+SG98yMCe3YT2LPb704vOYBZcgDzYAlG\nNNrtR3lp6bhFRcSnTvPPskcX444ZgztmLO748TjjJuCOHYuXlg7hMAQC/fiD9p5CXkREBo/2AR6L\nYyTiGBXlBHbvwtyzB3PvHgIH9rcGeKDkAEZTU5cf5WZn40yc5Id30Wg/vIvH4I4bjzN2HO6ECXj5\nBXjhCIRCYA6/IrAKeRER6X+eh9FQj9HQAGVlBPfsxty9i0BJS4CXlLQGuVlf3/VHZGT4YV08Bnfs\nOJzxE/xQnzwFZ8pUvKIiP8DD4X7+4QYPhbyIiKSe50FDA2ZdLcG3NxF843WCW94muPVdAvv3df0l\naWm4xWOIz5yFM2Ys7tixOBMm+UE+dSpuUTGkRUZ8kB+OQl5ERPpeMtRLSwhtWE/ojY0E391C4L2t\nmA1tZ+ZuVhbx08/AHTu+LcgnTsaZNBlv7Fi8SBpEwgryY6SQFxGR3msJ9cAH7xNe/xf/TP3ddwjs\n2I7huq2bOeMnED3vAhInn0zitDNJzJiJl5nlB3kkzb82Ln1GId8LsViMVaue5eqrFx9x2+eeW052\ndg4XXKAS/SIyTFRXE3pjI6H1fyH01psE392CWV7W+rYXCuPMOInErFnETz2D+Fln446fiJeeDunp\nh50fLn1j2IR85p23E1n2pz79zOjCxTTc+b1u36+oKGfZsj/3KOSvvPLqvmyaiEi/M/btJfTqy4Q2\nroctmyncsqXD9DQ3v4DYBReR+NhpxM88i/hpZ+Dl5kFGhgJ9gAybkB8IDz/8G3bu3MFFF53NmWee\nTVNTI7fd9m2ee245tv0eNTU1TJ9+PN/85nf43//9FaNGFTJ58hQeeeQhwuEQ+/fvY86cedx4498N\n9I8iItJRNErAfo/wa38huOGvhDa/RWD3rrb3DQNn6nEkZp1C/IyziJ99Ls4JFmRmDsupaEPVsAn5\nhju/d9iz7lT43Oc+z44d2zn33POoq6vly1/+NxobG8jJyeHHP/4fXNflxhuvp7y8jPaL6xw8WMLD\nDz9GLBZj8eL5CnkRGVjxOEZdLcG3NxP6q389PfTOZszKitZNvPR0P8xP87vdcxfMpSqYNeSKw4w0\nwybkB0KyJLDneUycOBmAcDhCVVUVd975LdLTM2hsbCSR6Lja7rRp0zBNk7S0NCKRSL+3W0RGsHgc\no6kRo7qa4Mb1hF7fQOjtTQTffRejsaF1M7eggOilc0icdQ6x8y8kcfqZ0P7vVVE2DOaytgIo5HvF\nNE3cllGjyTP1v/71VUpLS7jrrh9QVVXFyy+/SOf1AXRtSkT6QSKB0diA0dSEUVJCaON6QpvfIvjO\n2wQ+sDuskuZMmEj8kktJnHk2sfMvwpl5UsdQlyFJId8L+fkFJBJxYrFYa8jPnDmLhx76X7785S9R\nUDCKmTNnUd4y2jS5jdFhAIoCX0T6QCKB0dQIjU0YjQ0Edu0k+NYbfsGZLe8Q2PkRRrL30QzgTJ9O\n4uRTiJ95NrHZF+JOmeIPkJNhRavQSQeDfmWpYUD7OPVGxD5ubsZoaPBLw9bVEdj+AcF33m4L9YMl\nrZt6kQiJGTM7DJLzxozx56cf4yC5EbGPBwGtQiciMty5rt/t3tAADQ0YlZWEtr7jV5Db+i7Bre9i\n1tW2bZ6TS+y8C/xQ/9hpJE4/3V+IJTtHxWZGGIW8iMhgE4u1hrrR0IC5ZxfBd98huGULwa1bCGz/\nEMNxWjd3xo4jevY5JE4+hcQpp+KcOAM3Jw8vO9svOiMjlkJeRGSgNTb6gd7YgFFTQ/D9bX6ot5yp\nB0oPtm7qBYM41okkZs7yb7Nm+VXksrJabtkqPCOtFPIiIv3Jcfzr6I2NGA31mAcPEnj3HYJb3/WD\nfdt7GM3NrZu7eXl+1/vMk0icdLJf6z2/AC8jEy8z0y8+o1CXbijkRURSrbERs7oKo7aWwI4PCW55\nh+DWLf4yqzs/6rCpM2VqW6CfNAvnuOl4mZkttyxNa5OjopAXEUmFaNQP9tJSwq+sJfz8aoJvb8Ks\nrm7dxEtLI37qaX6gzzwJ56STcYuL8TKz8DIy/FBXRTnpBYV8LxzNKnRJmze/RVZWNtOmTU9hy0Rk\nQCQSGNXVmFWVBDe/RXjVCsIvrsGsqQHALRpN7JLLSJzUcj3dmoGXk+OHemamVmaTPjdsQv7OOyMs\nW9a3P87ChQnuvDPa7ftHswpd0vLlf+byy69QyIsMF56HUVONUVVFYNdHhNesJrx6BcGPdgD+NfXm\nJZ8gNm8+iVmntHW9Z2RCODzAjZfhbtiE/EBIrkL34IMPsH37h9TW+kfr//qvX+W446bz/e/fxb59\ne4lGo3ziE59kypTj2LDhNT744H2mTJlKcfGYAf4JRORYGfV1GJWVGGWlhF9dR2TVSoKvb8RwHbxg\nkNgFFxGbO5/YhRfjji7GKyiAoP7kSv8aNr9xd94ZPexZdyokV6Frbm7mzDPPYvHij7Nnz25+8IPv\n8sMf/pTNm9/i/vt/C8CGDX/Fsk7knHPO4/LLr1DAiwxFTU2YVZUYVVUE395EZPUKQi+9gFlfD0Di\nBIvYvCuJXjYXd/Jk3IJR/uh3kQEybEJ+ICRLAu/Y8SFvvrmR559fDUBdXS0ZGRl8+cv/xj33/DsN\nDQ1cccWVA9lUETlWsRhGVRVmdRXm7l1E1qwkvGYVgT27AXBHFdK8YCHRefNxZs7CLSjAy8vXmuoy\nKCjkeyG5Ct2kSVOYN+9K5s6dT1lZKatXr6Ciohzbfo/vf/+/iEajXHfd1VxxxQIMw8BpV6lKRAYh\nx/EH0FVXYpSXE35lnX+d/a03MTwPLxwmdsllROdd6deBLyrCzS+AtLSBbrlIBwr5XkiuQtfU1MgL\nL6zh6aeX0tDQwOc///eMGlVIZWUFN9/8d5hmgE9/+gYCgQAzZ87il7/8OePHj2fSpCkD/SOISDvJ\nAXRmTTXBtzcTXvUc4XUvYTQ1AZA46WSi864gdvFluGPH4RUU4OXmDXCrRbqnVeikA60slXrax6l3\nVPvY8zAqKjDLSv3R8atXEl69kkDJAQCc0cXE5l5B7PIrcKZNxy0YhZefP+IXetHvcf/QKnQiIsfC\ncTDKyzHLywhueZu03z9E+K+vAeClpROdO5/YvCuIn3oGXkGB3x2flTXAjRY5Ogp5ERlZ4nHMslKM\nigqCW94m/ZHfEtq4AYDEzFlEr1pI7MKL8ApH4+YX+GftGkQnQ5RCXkRGhuZmzNKDmNVVBN55m/RH\nHiL0xkYA4qecSvMNnyN+xtn+WXvBKA2ik2FBIS8iw1t9vR/u9XUEN28i7ZGHCL31BgDxU0+n+bOf\nI37GWX7BmsJClZWVYUUhLyLDklFTjVlWhlFfR3DzW364b94EQPz0M2m64XMkTjnND/eiInXJy7Ck\nkBeR4cPzMCoroXQ3gf3lBN96k7RHfkvonbcBiJ91Nk2f/RzOrFNwC4twRxdrlTcZ1hTyIjL0ua4/\nUr6sFCMeg/e3kH3fLwlu3QJA7JzZNH/mRpyZJ+GOKvTDfYRPgZORQSEvIkNXPI5ZXoZRXo7hJAhu\nXE/6Iw/Be1sJArFzz6P5s5/DOXEGbl4+7pixWvlNRhSFvIgMPdFo60h5HIfQ+tdIe+QhgvY2//1L\nLqH2+s/gTD8BNycXd+w4jZaXEUkhLyJDR3Mz5oH9mHW14LqEXnvVD/cP3gcgduHFNH/mRnLO/BiJ\nhIkzZhxkZAxwo0UGjkJeRIYEo7KCwL69kEgQevUVP9x3fIhnGMQuvpSmz9yIO/U4vIxMOOEEnOaB\nbrHIwFPIi8jg5rqYe/dgVlUSevVl0h5+kOCO7X64XzrHD/fJU/DS0nHHjPEXjMnOhmbVVRdRyIvI\n4NXcTGDXToyKMjJ++mMiL6zBM02ic+bS/OkbcCdNxgtH/HDPLxjo1ooMOgp5ERmUjKpKzL17CW7Z\nTOYP7iZQUkLixJk0fO02P9yDIdziMXijRqlKnUg3FPIiMrh4nt89X1ZK2qOPkPa7h8BzafrMjTR/\n9nN4kbS2ErSqUidyWCkLecuyTOA+4BQgCnzBtu3t7d7/FPA1oBl43LbtH6eqLSIyRESjBHZ+hLl7\nJ5k/uJvQlndwi4pouO0OEh871S9kM2asqtSJ9FAqD4MXA2Hbts8DbgPuTb5hWdYo4PvAZcD5wDWW\nZZ2WwraIyCBnVFUSeN8mvPIZcr74d4S2vEPswoup/dWDxM88m8Rx03HHT1DAixyFVHbXnw+sALBt\ne71lWWe2e28asNm27WoAy7L+ClwEvJXC9ojIYOR5mPv2Yu7dTcb//JTIyufw0tJo+LevE7tigX/2\nPn6CuuZFjkEqQz4HqG333LEsy7Rt2wU+AE6yLGs0UA/MAZ5KYVtEZDCKRgns2klw05v+4Lp9e0kc\nfwIN37gDZ+o03IkT8XJyB7qVIkNWKkO+Fshu9zwZ8Ni2XWVZ1i3Ak0AF8CZQfqQPLCrKPtIm0ge0\nn1NP+xioqoI9u+GPD8N994HjwA03EPyHfyC3uBgmTepV17z2ceppHw9+qQz5V4GFwOOWZZ0LvJ18\nw7KsIHCmbdsXWpYVAdYC9xzpA8vKVNwi1YqKsrWfU2zE7+OW7vmA/R6Z93yf0KY3cQtG0XDrN4mf\ndS7uqHF4WflQ2XjM32LE7+N+oH3cP3p7IJXKkF8KzLUs69WW5ze1jKjPsm37AcuyHMuy3gAc4Je2\nbe9IYVtEZDBo6Z4PP7+KjHv/E7O2hti559H4b7fiTJyEO3GSloAV6UOG53kD3Yae8nTUmHo6Ok+9\nkbqPjZpqzPffJ/MXPyWy/Gm8cJjGL/0j0UVLcMdP8Iva9JGRuo/7k/Zx/ygqyu5VpScVwxGR1PI8\nzP37CK1/jczvf5fA7l0kph5Hwze/jTPrZJyJk7XGu0iKKORFJHViMQI7PyLt9w+T/utfYsTjNC++\njqa/vxln0lS8oqKBbqHIsKaQF5GUMGqqCWzeTNY9dxPauAE3L4/6r36D+KVzcCZOgrS0gW6iyLCn\nkBeRvuV5mAf2E37maTL/6z8wq6uIn3k2DV//Bs6Mk3CLxwx0C0VGDIW8iPQd1yXw3lYyfvoj0pY+\ngRcK0XjzP9H8yc/iTJ4CGRkD3UKREUUhLyJ9w3UJrX2RrG98leCO7TgTJ9Hwre8Qn32+v6iMloMV\n6XcKeRHpPc8j+MZGsv/lZgIlJUSvWkTDl7+Cc/wJkJU10K0TGbEU8iLSO56H+d5Wsv/tXwiUlNB0\n4000/utXcceN16IyIgNMIS8ivWJ+tIPsb3+D4LatRC+fR8Mdd+Hl5g10s0SE1K4nLyLDnLl7Fxk/\nuZfwupeIzzqZuv/8sQJeZBBRyIvIMTH37iHtsd+T/ugjOOPGU3fvT/EmTBzoZolIOwp5ETlq5v59\nhF9YTcZ//xA3O5u6//wxzimnDnSzROQQCnkROSpmyQGCb75O5l13ANBw178Tv/DiXq39LiKpoZAX\nkR4zDh4k8P42sm6/DbOujsZbvkZ0wUJITx/opolIFxTyItIjRlkZgd07ybzzdgL799H06Rto/uRn\n8Ar6bolYEelbCnkROSKjooLAvj1k3HsPoS3vELvkMpq+9E+4GmgnMqgp5EXksIyqSgL79pD2yENE\nXlhDYsZM6m+9Hee4aSpVKzLIKeRFpFtGTTWBPbsJr1lF+sMP4owZS/13f4B7/PEQDg9080TkCBTy\nItIlo7aGwK6dBN/eRMa99+BmZlH/vf/AOcHCy8kd6OaJSA8o5EWkE6O+jsCunZh795B55x3gujR8\n+y6ck2bhjh030M0TkR5SyItIR/X1mB99hFFd7U+Vq62h8ctfIX72bJzJUwe6dSJyFBTyItKmsZHA\nRzswos1kfvcOAnv30Pw3nyJ21UKcyVMgqDWtRIYShbyI+JqaCOzYjuEkyPjvHxLavInYBRfR9Pkv\n4owZp3XhRYYghbyIQHNza8CnPfoIkVUrSJxg0XDrt3DzC/BGjx7oForIMVDIi4x0sZgf8Ik4obUv\nkP7gr3GLRlP/3R/g5ebhTpo80C0UkWOkkBcZyeJxAts/xIjHCGx9l8x7foCXkUHdv/8HXlGRfx3e\n1J8JkaFKo2hERqpEwg/4WBTzwAGyvvNNcBLU3/U93KnTcMZP0MIzIkOcDtFFRiLH8QM+2oxRX0fW\n7bdiVlfT9I9fJnHWObijCrXwjMgwoJAXGWlc1w/45iZIJMi8+zsEdu+ieckniC66Fi89A3f8hIFu\nZZdiMf8mIj2j7nqREcaorMRoagTPI+NnPyb05hvEzj2Ppi/ejBcI4kyZOugWnqmrg7Iyg/p6A8/z\np+unp3tkZkJGhkd6uqbwi3RF/y1ERhizugqAyBN/JPLschLTj6fhm3dAMIg7adKgWXjGdaGy0qC8\n3CAa7fheIgF1dQZ1dQD+AUk47Ad/RoY/lMB1NWZQRCEvMpLEYhgN9YReWUf6A7/ELSyi/u4fQHoG\n7ujiQbHwTDQK5eUGlZUGrtvzr/O78g1qaqC5GaqrTSKR9sHv3w+yTgqRlFLIi4wgRlUVAXsbmf/x\nPYikUX/39/EKi/Cys3HHjB3Qth3aJd9bnueHfXOzQVUVgIFhQFqa38Wf7ObXBAIZzhTyIiOIWXKA\nrO98C+JxGu78Hs70E/BCYZxJUwakPYfrkk8Fz4OmJmhqMqio8E/pTbPtLD8SgUDAwzT91w2D1seB\nQNtjkaFCIS8yUjQ1EX5hNWZFOc2f+CTx2eeDYQzIwjNH2yXf1ASrVgV59tkgjY1Gyxl429n4ofeF\nheB5wZbnHbvrMzI80tL80Ab/QKOhwaChIfndjtyff+gBgH/zDnlOh4OFQMA/gPDv/V2evBdJFf16\niYwQZnUVkTWrAIheeRUAztjxkJnZb2042i750lKDP/85yLPPhqivNwiFPPLyPMrKDBobDVz3cIEc\nOexnp6X5BwBdHSQk7zMzOx8kdLz3t4tEwOjRxf7O2xiGfwsGk8HvdTgI8B/r4ECOjX5NREYIc/t2\ngm+8TsI6EXfiJNzcPLyiopR/X9eFigq/e7wnXfKeB1u3mjz1VIhXXgngugb5+S433hjn6qvj5Oe3\nbReLQWOj3/3e2GjQ1ASNjQammUZZWbT1edu90W77tvuqKpOmpmMfkWeaRz4QyMjwKCjwGD06eXPJ\nyen4s/g1ALpqx5EPDoJBv4ciEvGIROjQWyEjl0JeZCSoryey+jkM1yE2Zy5eJC3lC88cbZd8IgHr\n1gVYujTEtm1+Ok2b5rBkSYJLLkl0mtlnGP4ZdCQC+fke0NY1kJ8PVVWJo2qv6/oD9dofFHQ+IDC6\nOHDoeF9VZbB/v0E8fuSDhkjED/yiIj/0i4vbDgBGj/YoLPS6ndHoeZ0PDmpr/fukUMjvsUjup7Q0\n/0BAvQAjh/6pRUYAs7qK8JpVeGaA2GVz/YI3KRpBVl/vd7P3tEu+thaeeSbE008HKS83MQyP885L\nsGRJnFNOcVM+5S15vTwUgpwcD9cFx4FEwn98rCP943E6HAA0NPgHPKWlBqWlZsu9/3jPHhPo+rS7\noMBtdyDQ+WAgJ6f7aYHxOMTjyXoCkDwACATaAj8Z/pHIoCmRIH1IIS8y3HkegU1vEfzgfWLnzMY5\nbprfl5sC+/cblJX1LJV37TJYujTEmjVBolGD9HSPa6+Ns3hxnHHj+mAOHf5xTDAI4bBHMOgHuX/z\n2j0+NCQ7fu9k6Cdvbc+NDs8TifbvG4RCfoDm5notBwrd/0zNzf5YhWToHzzoPy4r8w8Gtm832bat\n6/2a7A0YM8Zl6lSXadP824QJXrfd9Y7T9WBD06RDl396elsvgAxNCnmRYc6oqyWy6jkAYpfPw80v\n6PPvkUj4oV1ff/iA9zx4/fUAS5cG2bjR//MzZozL4sUx5s9PHNUYwEDAP/MMBv0u7VCoLdDHjoWa\nGrdPrkknR8iHQp1+msN8Vcf3kgcIsZg/b7+52b+c0dTkHyikpcHEiR4TJ3pA52sbrgvV1Ua7s3+D\ngwfNDgcGe/YE2bix7WvCYY+pU12OO64t+I87ziUjo/tWu64/xqGxMfnv2Bb+WVke+fkeOTmaRjiU\nKORFhjmjooLwC2vwMjKJXXJZn4+mb2yEnTtN4vHut2luhjVrgixdGmL3bj8hTj7ZYcmSOLNnOz0K\n44wMKCryQ6rz2XdH6en+ZYPBIjkyPhz2w7KNRyLRVrQnGm0L/0S7IQWmCQUF/sC9E0/s+nvU1cGO\nHSbbt5sd7m27484dN64t8JPhX1TkHXZ/ui7U1hrU1hqYpt87EQ77B22qIDi4KeRFhjPXJfTKOgKl\nB4nOX4A7ZlyffnxVFezda3Y7sK683J8C98wzIerqDIJBj8svj3PttQlOOOHIo/EMA7Kz/evRWVl9\n2vRBIxiErKzO4e84HcM/+bi7g6nsbPjYx1w+9rG2/ZpIwJ49Bh9+GOgQ/i+/HOTll9t/rdfhbH/a\nNJdJk9wuei/8wK+qMvjwQ6itNcnL86c1Dtd/n6EuZSFvWZYJ3AecAkSBL9i2vb3d+9cC38Tv1/qN\nbdu/TFVbREYqo6aayOoVAMQuvwKvoO+66vft8yvVdWXbNn8K3Lp1ARzHIDfX4zOfibFwYYJRo458\nvT155lpY6I3Y68GBgN/pkpnZMfyTswD8Ln9/UF806of/oYMEg0GYOtVj6tQEc+e2fILnT2ncvt3k\nww/bgn/zZpNNmwLtvtZj0iQ/8KdPdzntNIcpUzqe8TtO2/TIUIjWwD/cJQHpX6k8k18MhG3bPs+y\nrHOAe1teS/oRcBrQAGy1LOtR27ZrUtgekRHHOHCA8Lq1OKOLiZ13QVcXlo/a4a6/b91q8qtfhdm6\n1Q+LKVNcliyJcdlliR6FdTAIhYV+uGuOd9dMk5bKfdB27d/rcD09ed/VWb9hJPexwznnOK2vNzXB\nRx/5gZ+8ffSRyY4dAVav9reZONHlkksSXHxxorVeQVI87g8eLCszWqc15uZ6qRrjKT2UypA/H1gB\nYNv2esuyzjzk/TiQhz/KxODwo1hE5GglEkRWr8BobCC2aDFeYWGvP/Jw19+ffTbIz34WJpEwOPfc\nBNdeG+e003o2BS4tzb/enp+va7zHyh8c177b37/ef2jwO07XX5+eDjNnusyc2dbd7zj+jIn33zd5\n9dUg69cH+N3vwvzud2GmTYMLLghxySUJJkzo+Oc7GoWSEoOSEr8EcV6eP2ivD44x5SilMuRzgNp2\nzx3LskzbtpO/QfcCb+CfyT9p23btoR8gIsfOqK4mnCxje8UCvNy8Xn1eZSXs29f5+ns8Dr/4RZhl\ny0Lk5HjcfnsTp53WszVik9fbs7N71TTpRjAIOTn+/H+fRzTaPvj9kf7djakIBJKj/h3mzHFoaoLX\nXguwbp0/O+Khh8I89FCY445zuOQSh4svTnSa/phcEKikxCAz0yM31w/9VBXkSc5kSCT8nyuRaJsh\n0b4k8Eg5mDS8vljTsQuWZd0L/NW27cdbnu+xbXtiy+NJwDPAbKAReAR4yrbtJw7zkTrTFzkaf/kL\nXHQRnHACrFgBkyYd80ft2QOlpZ1fr6yE226DN9+E44+HH/4Qxo8//Gf519uhuDhl0/XlKCRX5mto\n8G+Njf71/iNFQ309rFsHq1fDa6/ROhtgxgy4/HKYOxfGdTPO0zD8g4+CAsjL6zwlz/P8z0vWHujp\nveP0vHhRMvTbB3/yvqvXkvcDMH2wV4cjqTyTfxVYCDxuWda5wNvt3ksDHCBq27ZrWVYpftf9YZWV\n1R1pE+mloqJs7ecU65d9HIuR+Yc/kuE4NF5yOQ1uGI7hex7u+vuHH5p85zsRSktNLrwwwde+FiU9\nnZa12zsLBNqutweD/pSvuhTtBv0eHxt/oF/bfPmGhrZyvYdeosnPz2T27AZmz/b/Hf/ylyBr1wZ4\n880A771n8LOfwYkn+mf3F13kMHp0x/StrISdO9uW+nUco/XsuydlkAdKx14B/3c5Pb1jBcG+VFTU\nu26uVJ7JG7SNrge4CTgDyLJt+wHLsm4BPg00Ax8C/8+27cMVm/b0nzb19Mcx9fpjHxulpeQtuYrA\nhx9S/dQlseLtAAAgAElEQVQyEuddcNSfcbjr7y++GODeeyPEYvC5z8X59Kfj3XZ/RiJ+uBcUeP12\nFqTf477X1AQ1NQY1NX4Xf35+JlVVDZ22q62FV14JsnZtkE2bzNaVAmfObAv8wsLh2zFrmh3XCUhP\n9++PdTxCUVF2r87kUxbyKaCQ7wf645h6/bGPQ6tXkveZTxA/6xxqfvMIXnHxUX19d9ffHQcefDDE\nH/8YJiPD47bbosye3fVIrsxM/3p7bu6x/hTHTr/HqdXcDMFgNtu3N9Dc3P121dVtgf/2237gG4bH\nrFkuF1+c4MILHQoKhkwG9UqyxyItjZabvzrhkWaR9DbkVQxHZLhpbiay/M8AROce3dx4z/Pnv1dU\ndP67Ul8P3/9+hI0bg4wf73LXXc1Mntz5D3Rurl9LXXOlhy9/NgQEgy7RqF9yt6bG79pvLy8Prr46\nwdVXJ6isNHj55QBr1wbZssXknXci3HefxymnuJx1lkNWlkc43LZQTteP/Up7kcjQW0nPdbteL8Dv\n7vdagz95ENBXvV5DbDeJyJGYlRWEn1+Nl5FBdN78HvcTJhKwc6dBQ0PngN+1y+A730lj3z6Ts85K\n8M1vRjtVODMMGDfOG9ZdsdJZJALFxR7FxR6xWMfAb99RXFDgcc01Ca65JkF5uR/4L70UZNOmQIci\nPD1lmm2B3xb+XstBQdvjSMSfXTBqVPLmtj7OzBz4UfaJBNTVJVcK9BtjGLQWFyoq6t3nK+RFhpnQ\n2hf9Mrbz5uONO8JQ9xYNDbBrV9fX3197LcB//EeExkaD66+PcdNN8U5djIGAX/hGpU1HtnCYliVw\nPeLxZOD7A/faB35hoce11ya49toEpaUGtm22luz16/cf6bFf6jf5OBbzxwxUV5vEYv7yuj0Rifhh\nX1DQ/iDAPxBo/1pGRv8eDHiev5hRY2PvP0shLzKcNDQQWfEMANF5V/Zobnx31989Dx59NMRvfxsi\nHIZvfKOZyy7rfP09LQ2mTnW1Frl0EApBUZF/JhqPey2D9vwu6/aB7x8UdFOh5xi5rh+SsZh/EFBT\nY7SW3+3qtnVr2wDBrqSldXUw0NYjkJfnV/fLzj7yNfb+ppAXGUbMgyWE1q3FLSoifsllhz39ONz1\n96Ym+OEPI6xbF6SoyOWuu6Icf3zneU05OR6TJ/ffqHkZmkKh5PRJSCTaAr++3ujxvPajYZq0XtsG\nfwDo9Ondb+84/qI7lZWdDwDav7Z/v4nndf9/yjT9pXiTNfy7uuXmeq0VAPujh0AhLzKMhJ97BrOh\nnuarF+GO6r6M7eGuvx84YHDnnRF27Ahw8skOd9zR3KlOOfjXYceM0fV3OTrBIC1nwOA4HjU1/jXp\nZBf8QMyRb1/D4XASia4PBmpqDKqr227l5QY7dx75yDcU6hj8/o3W18aNczn33N79bAp5kWHCqKsl\nsvJZAKILFna7bnw0Ctu3d339fdMmk7vvTqO21mDhwjg33xzrNG7PNP2FSvJ6VyVXhEDAr3rnT6Pz\nA9Zx/N/RZFd7+273RKLnFe1SIRhMXoI4ciPicTqEf00NHQ4E2t/27jX58MOuT+m/8pVetrl3Xy4i\ng4W5YzuhjetJTD+e+OmHrgfVpry8c/Uyz4M//znIL34RxjThlluiLFjQuTZVKOQPsNP0OEmVQKCr\nVfb8x57X+QDAf+7/Tg+mSnltlyh6dlTSvthQdbVBVVXy/2nvSugp5EWGA88j8vSfMBznsOvGuy5U\nVnY8Y4jF4Kc/DbNyZYj8fJdvfzvKrFmd/1pmZnpMmZK6hUVEjsQwOl5rb+M/bn/W3/4AIBaj29X3\nBov0dH++fPtLYP6Kggp5kRHPqKkmsnoFnmkSXbio27nxlZVGh7Od8nKDu+6KsG1bgBNOcLjzzmiX\nXZH5+R4TJ3oDPqdY5HCSc+TbltuFQy8DtJ92598GXy9AX1LIiwwDgU1vEdz2HvGzzsY53up2u/Yj\n6d97z+TOOyNUVprMmZPglluinRbXMAwYM8brtLiIyFCTvAzg674XIBn8h44FGKoU8iJDneOQ9vRS\nAKJz53c7N76+ntY64ytXBvnJT8I4Dvz930e57rpEp7N00/Svv2utdxkJkr0Avo4HAYfOu08W50n2\nAiQdrqfrWN7ri0tjCnmRIc6orCS8ZiVeejrRqxZ1+xejosKfk3z//WGeeCJEVpbHt74V5cwzO1+s\njET8gNd67yKd5923Gfw9XAp5kSEuvO5FAiUlROdegdtNGdvkdJ733jN54okQEye63H13M+PHd/4j\nlZ3tF7gZbJW7ROToKeRFhrJ4nMiylhXnrry627nxlZX+WfzTT/sD8v7pn6JdBnxRkce4cYP/7ERE\nekYhLzKEGSUlhNa+iDuqkNhlc7vdrqLCoLoa1q0LMHGiy2mndRxKbJowfrzLUaxKKyJDgCpOiwxh\nkWeXYTbUE5szF6+bNSlravzu+hUrQsTjfiW79pftg0F/gRkFvMjwozN5kaEqGiXy3HL/4aLF3c6N\nLy83cBxYvjxIWprHvHlt84HS0/0BdlpBTmR4UsiLDFGBnTsIbfgrieOmEz/rnC63aW72V/rasCHA\nwYMmV10Vb71sn5vrMWmSVpATGc4U8iJDVOSpJzASCWJzr8DL62KZONqK3zz9tP9ffeFCfz58cbFH\ncbEG2IkMdzqGFxmKGhuJrHgGzzRpXvKJLufGJ+vU79tn8PrrQU46yWHaNJe8PAW8yEihkBcZgoKb\n3yL43lYSp52Bc0LXZWyrqvw69cuW+dfqFy3yS3P1dFUsERn6FPIiQ1Dak48DEL3yqm7nxpeXGzQ3\nw6pVQfLyPC64wGm3hKeIjAQKeZEhxqirJbx6BV5aOs0Lr+1ym2Sd+pdeClJXZ7BgQZxwGEaNGqZL\nbYlIlxTyIkNM6KUXCBzYT+yCi/AmTOhym2Sd+qefDmKaHlddlSAQgPyux+eJyDClkBcZSjyPyNIn\nAYguvKbLufGJhF+nfts2kw8+CDB7tsPo0R6jRmk9eJGRRiEvMoQYZaWE176AWzCK2NwrutwmeRa/\nbJk/bW7RIr/C3ahRGnAnMtIo5EWGkMgzT2PW1RGdMxdvVGGX21RUGNTU+NfjJ0xwOfVUl6wsT1Xt\nREYghbzIUOE4RJ7+EwDRJR/vcm58sk79c8+11ak3TU2bExmpFPIiQ4S58yNC618jMfU44uee3+U2\nFRV+nfpnnmmrUx8OQ05OPzdWRAYFhbzIEJH21ON+Gdv5C7qcGx+N+nXqN24MUFJictllCbKydC1e\nZCRTyIsMBYkEkWeX4RkGzddd3+Um7afNgV+n3jQV8iIjmUJeZAgIbN5E8N0tfhnbGTM7ve+6fsjv\n32/w+usBZs50mD7dJTfXIxAYgAaLyKCgkBcZAtKeeAyA6NWLupwbn6xTv3x5EM8zuOYa1akXEYW8\nyODX3EzkuWfw0tJoXnxdl5tUVBhEo7BiRUh16kWklUJeZJALr32RwP59xM6/CG985zK2DQ3Q1NRW\np/7KK1WnXkR8wZ5sZFnWVGAmsAqYYNv2RyltlYi0ijz5fwBEF1/X5dz48nL/tWSd+quvVp16EfEd\n8UzesqxPAk8DPwVGAX+xLOuGVDdMRIDqasLPr8YtKCA6f0GntxMJqK3169S//36Ac89VnXoRadOT\n7vpbgfOBWtu2S4DTgW+ktFUiAkBk+Z8x62qJXj4fcnM7vV9R4Q+4az9tTnXqRSSpJyHv2LZdm3xi\n2/YBwEldk0QkKe1P/opzzZ/ofm58sk79+PEup5/uqE69iLTqyTX5dy3L+mcgbFnWqcA/AJtS2ywR\nMfbtJfTaqzhTppKY3bmMbW2tX6d+5cpknfqY6tSLSAc9OZP/B2A80AT8BqhteU1EUijt8T9ixONE\nFyykq1Pz8nK/Tv2yZUEiEdWpF5HOenIm/3Pbtm9KeUtEpI3nEXl6qV/G9vpPdXo7Waf+9df9OvVX\nXhknO1vX4kWko56cyZ9sWVZ2ylsiIq0C775DaMvbJE49Hcea0en9Q+vUL1qkOvUi0llPzuRdYLdl\nWTZ+lz2AZ9v2ZYf7IsuyTOA+4BQgCnzBtu3tLe8VA4+12/xU4Fbbtu8/yvaLDEtpj/0BgOiia8Hs\neCzuulBZaXDggL/inOrUi0h3ehLyX2+5T54i9HT27WIgbNv2eZZlnQPc2/Iatm0fBC4FsCxrNnA3\n8EBPGy0yrLkukWeexotEaL7ubzq9XV0NjtNWp37hQtWpF5GuHbG73rbtl4AMYBGwBMhtee1IzgdW\ntHzGeuDMQzewLMvAL7Jzs23b+gslAoReXktg315iF16MN2ZMp/fLy02iUXjuuRC5uR4XXaQ69SLS\ntSOeyVuW9XXgOuD3+AcF37Isa5Zt2/9+hC/NwR+Jn+RYlmXatt2+oPZCYItt2x/0pLFFRRoa0B+0\nn1PvsPt4+VMARP72xk7bNTRAWhq8/jrU1cHf/i0UF2cyZQqMGpW69g5F+j1OPe3jwa8n3fU3AGfb\ntt0EYFnW/cCbwJFCvhZo/xtwaMADfAb47x62lbKyup5uKseoqChb+znFDruPHYdRy5dDdg4VF1wO\nh2y3e7dBVZXBo4+mYZoml1/eRG2th+O4lJX1Q+OHCP0ep572cf/o7YFUT0bXG0Bzu+fNQLwHX/cq\nsADAsqxzgbe72OZM27Zf68FniYwIoRfXYFZUELt0Tqf+90QCamoMbNvEtgOcc45DcbHq1ItI93py\nJv8C8KRlWQ/iB/7nWl47kqXAXMuyXm15fpNlWZ8CsmzbfsCyrCKg5lgaLTJcRf7kd9VHr7m203uq\nUy8iR6snIf+vwJeAG/HP/F8AfnWkL2oZSHfzIS+/3+79MvzFbkQEwHGIPL8KNzuH2LwrO71dWWlQ\nW+vXqR83zuWMM1SnXkQOryfd9Zn419M/AfwLMAbQnxWRPtbaVX/ZHIhEOrxXWwuxGKxcGSQW86fN\nqU69iBxJT0L+D8DYlse1LV/zu5S1SGSEau2qX9S5q7683O+qX7YsRCTiccUVqlMvIkfWk+76ybZt\nLwRoWXL2W5ZlbU5ts0RGmMN01bevU3/ggMn8+apTLyI905MzedeyrFOSTyzLmgHEUtckkZEn9NLz\nLV31l3fqqledehE5Vj05k/8qsMqyrH0tzwvx586LSB+JLH0S6Dyq3vPa6tRv2BDgxBMdjj9edepF\npGd6ciZfB/wIf9BdLf5AvNGpbJTIiNK+q37u/A5vVVV1rFO/aFEC0IA7EemZnoT8T4H1wCT8kD8d\nuC2VjRIZSQ7fVW8Si8GKFX6d+osvTqhOvYj0WE9C3rRtey1wFfCkbdu7AXUUivSR7rrqGxv929q1\nQWprDebPjxMOw6hRh1aHFhHpWk9CvtGyrK8Cc4DllmX9C34Xvoj01mG66svL/Vq1Tz8dxDA8rr46\nQSAA+fkD0VARGYp6EvKfwV9qdolt25X4xXA+ndJWiYwQ3XXVO45fp/799022bfPr1I8Z41FQoDr1\nItJzRxxdb9v2XuC77Z5/I6UtEhlBuuuqP7RO/aJFqlMvIkevJ2fyIpIKh+mqr6jw69S/+GLHOvWH\njMsTETkshbzIAAmtfaHLrvrq6o516q++WnXqReTYKORFBkhbV/2SDq+XlZm4LixfHiIcVp16ETl2\nCnmRgeA4RNasbOmqv6L15fp6f9rcG28E2L/f5NJLE+Tk6Fq8iBwbhbzIAOiuq76srG3aHKhOvYj0\njkJeZAB01VUfjUJdnUFJicH69X6d+hNOUJ16ETl2CnmR/ua6bV3189pG1ZeV+avNLVumOvUi0jcU\n8iL9bdWqtq76cBiARAKqqgyamuC550Lk5alOvYj0nkJepL899hjQsas+WfxmzZogdXX+tDnVqReR\n3lLIi/Qn14Vnn+3QVe95fp1614WlS0MEgx4LF6pOvYj0nkJepB+FXnoeyso6dNVXVhokEvD66wH2\n7PGnzRUUqE69iPSeQl6kH3U1qj652txTT/nT5pYsUZ16EekbCnmR/tIyqp7c3Nau+ro6aG6GnTsN\n3ngjyCmnOEyf7qpOvYj0CYW8SD8JveQXwGH+/Nau+mTxm6VLQwAsWRIHNG1ORPqGQl6kn0SWPuE/\nuP56AJqa/OI3NTX+qPqxY13OPddRnXoR6TMKeZH+4LpE1vjLynLVVUDbWfwzz4SIxQwWL44TCOgs\nXkT6jkJepB/4XfXlxObMhXCYeByqqw3icb9OfUaGv9qcaUJBgUJeRPqGQl6kHyS76qPXXAv4I+o9\nD9atC1BRYTJ/foLMTMjPV516Eek7CnmRVGvXVR+bOx/XbQv5p54KYRgeixdrwJ2I9D2FvEiKHdpV\nX17uF757912T998PcN55DmPHemRne6SlDXRrRWQ4UciLpNihXfWlpf7rTz2laXMikloKeZFUOqSr\nvrraXzf+4EGDV18NMH26w8knu5o2JyIpoZAXSaHQSy926KovK/P/y/3pTyFc11AJWxFJqeBAN0Bk\nOIssfRzwu+rr66Gx0V87/rnnguTnu1x8sT9tTiEvIqmgM3mRVEl21ef4XfXJ4jfLl0NDg8GiRQnC\nYU2bE5HUUciLpEhrV/1lc4l6Yerq/DXjH3sMQiGPq67SgDsRSS2FvEiKtHbVL15CWZk/L379+gB7\n9sCcOQny8yErS9PmRCR1FPIiqdCuq77xkiuoqkquGa9pcyLSfxTyIinQvqu+oi6C68KOHQabNgU4\n+2yYOtUjHIbc3IFuqYgMZwp5kRRIdtU3X7OE8vKOa8Z/6lP+NhpRLyKpppAX6WvtuupLTp9PIgFV\nVfD880HGjXM5/3w0bU5E+oVCXqSPte+qL6+NALB8eYh43ODaa+OYJuTladqciKReyorhWJZlAvcB\npwBR4Au2bW9v9/5ZwL2AAewDbrRtO5aq9oj0l2RXfdW862huhlgMli0LkpnprxkPEQ24E5F+kcoz\n+cVA2Lbt84Db8AMdAMuyDOB+4G9t274QeB6YmsK2iPSPdl31u0+eD8DatUGqqkwWLIiTng7Z2ZCe\nPsDtFJERIZUhfz6wAsC27fXAme3eOwGoAL5iWdZLQJ5t23YK2yLSL0Jr/a76xovnUtccxvPgySeD\nmKbHNdckABg9eoAbKSIjRipr1+cAte2eO5ZlmbZtu0AhcB7wj8B2YLllWa/btv3i4T6wqCg7ZY2V\nNtrPvfDcnwGov+qz5Odn8sYbsH07zJkDJ56YQTgMeXkA2seppt/j1NM+HvxSGfK1dPxLlgx48M/i\nP0yevVuWtQL/TP+wIV9WVpeKdko7RUXZ2s/HynUZtWw5ZOewdcoluFUNPPxwBAhy9dVNVFW5jBnj\nAVnaxymm3+PU0z7uH709kEpld/2rwAIAy7LOBd5u994OIMuyrGktzy8EtqSwLSIpl+yqrz7/CtxA\niAMHDP7ylwCW5XDSSS6mqQp3ItK/UnkmvxSYa1nWqy3Pb7Is61NAlm3bD1iW9XngDy2D8F61bfu5\nFLZFJOUiS58AYPd5Hwf84jeeZ7BkSRzD0LQ5Eel/KQt527Y94OZDXn6/3fsvAuek6vuL9CvXJbJ6\nJU5WDhVnzaOhAVauDDJqlMuFFzqAzuJFpP+pGI5IH0h21ZedPR8vGGLlyiCNjf6a8aGQv9qcps2J\nSH9TyIv0gWRX/YGLrsNx/K76cNjj6qv91eZUwlZEBoJCXqS3Wrrq45m5VJ4zj9deC1BSYjJ3boKc\nHAiFktPmRET6l0JepJeSXfWlZ12BFwy1rhl/7bU6ixeRgaWQF+mlZFd96SXX8cEHJu+8E+CMMxJM\nnuxptTkRGVAKeZHecF3Cq9q66pcu9SesXHedX8I2L88jmMqJqiIih6GQF+mF0LqXCFT6XfXlNWFe\nfDHIxIkuZ5zhT5vTWbyIDCSFvEgvhJ/0l5U9eMl1LFsWJJFoWzM+M9MjI2OAGygiI5pCXuRYuS6h\nlq76g6fNY/nyENnZHpdf7nfVq/iNiAw0hbzIMQqufYlQVTmlZ83n+XXp1NQYrWvGa9qciAwGCnmR\nY/XYkwCUXLyEp54KdVgzXtfiRWQwUMiLHAvXJfPFFcQzc3khsoCPPjK56CKHoiJNmxORwUMhL3IM\nmpe/SLi6jNKz5vPU02kALFniF7/JzdW0OREZHBTyIkcpEfcwH/0/ADaefCN//WuQGTMcZsxwAQ24\nE5HBQyEvcpQObNhH4euriWfm8tudcwC47jr/LF7T5kRkMFHIixyFmv0N5D/wYyI15Ww799OsXB2m\nqMjlggtU/EZEBh+FvEgPOXGX2j+tY/KK39CcX8z/jLmb5maDa65JEAhAMKhpcyIyuCjkRXrowMb9\nnPDA7ZiuwzufvZulq/NJS/NYsMDvqi8s9DCMAW6kiEg7CnmRHqjd30D+r35M1r4P2Hf+EpanfZzS\nUn/N+OxsNG1ORAYlhbzIEThxl9qla5m08jc054/h/Rtu54lncoC2NeM1bU5EBiOFvMgRHNy4l+Mf\n+Bam6/DejXexaseJbN0a4JxzEkyc6J+96yxeRAYjhbzIYdQdaCD3lz8ma/929l1wHe+dtJif/U8a\n6eke//iPMQAyMiAzc4AbKiLSBYW8SDfchEvtEy8yadVvaSoYi/2Zb/Ff942iocHg5ptjjB3rn70X\nFroD3FIRka4p5EW6cXDjXqb/+g5M12HbjXfx+Fsz2LQpwOzZCebP9xei0bQ5ERnMFPIiXWgoqSfn\nvh+RdWA7+y78OG9MvZb/fTBCXp7HLbdEW6fKadqciAxmCnmRQ7gJl5onXmLS6odoGjWOdz95Oz/4\nST7xuMEtt0TJz/e3MwwoKNCAOxEZvBTyIoco3biH6fff3jqa/jdrT2THjgBXXhnnvPOc1u1ycz1C\noQFsqIjIESjkRdppOFhPzn33klmyg70XfYJ1hUv4v8fDjB3r8qUvxTpsq9XmRGSwU8iLtPAcl9rH\nX2DSqodpGjWezR+/g3t+lodhwNe/Hu2wulxWlqdpcyIy6CnkRVqUbtjNtPvvwPBc3rvxLn62/ERK\nSkyuvz7OrFlt0+QCAZg0SWfxIjL4KeRFgMbSenL+514ySz5i70V/w7LIdaxcFeL44x1uuCHeYdtJ\nk1xdixeRIUEhLyOe57jUPPY8E1f/jqbC8WxY9G1+/ItcwmGPW2+Ndgj0wkKPnJyBa6uIyNFQyMuI\nV7ZhF9Me8Lvpt97wXf7z/yxqagy+8IUYkye3dcunp8O4ceqmF5GhQyEvI1pTaR3ZP/8RmQd3svfi\n63mk+eOs3xDk9NMdrrkm0bqdacLkya4K34jIkKKQlxHLSzhUP/Y8E9f8jsbCCbw0705++WA2WVke\nX/1qFLPd/44JE1wikYFrq4jIsVDIy4hVtrGtm37LDXfz7787nuZmgy9/OUpRUVu3fEGB11rlTkRk\nKFHIy4jUXFZL9s/uJfPgLvZc8kl+UfJxtm0LcOmlCS69tK2qXSQC48frOryIDE0KeRl5HIfqx9Yw\n8flHaCycwPLzvsvDf8yksNDln/852rpZ8jq8qf8lIjJE6c+XjDjlG3Yy7VffAeCtT3+fHzx8HK5r\n8LWvRcnObttu7FiP9PQBaqSISB9QyMuIEi2rIetn95JRuou9l3yK//rwOvbsDbBkSZzTT2+rapeb\n66k2vYgMeQp5GTkch+pH1zDh+d/TOHoSj37se/z52QwmT3b5u79rW3wmHIaJExXwIjL0KeRlxKjY\nsIPj7ve76V/7xD3c8/BkgkGP226Ltk6PMwy/bG0gMIANFRHpIwp5GRFiZTVk/fReMkp3s+eST/Pd\ntxZTWWly441xpk9v66YfM0ary4nI8BFM1QdblmUC9wGnAFHgC7Ztb2/3/i3A54Gylpf+3rbt91PV\nHhnBHIfqP6xi5guP0jh6Er+a9gPW/TqNmTMd/uZv2hafyc72GD1a3fQiMnykLOSBxUDYtu3zLMs6\nB7i35bWk04EbbNt+K4VtEKFyw3am3n8nAC8uvpef/H4C6el+N32yWz4Y1PKxIjL8pLK7/nxgBYBt\n2+uBMw95/wzgm5ZlvWxZ1m0pbIeMYLHSajJ/ci8ZZXvYdelnuf21RTQ0GNx8c4yxY/1QNwx/Pnww\nlYe8IiIDIJUhnwPUtnvutHThJz0K/D1wGXCBZVlXpbAtMhI5DjWPrmL8i4/RUDyZ/yy8h03vhJk9\nO8H8+W2Lz4we7ZGVNYDtFBFJkVSeu9QC7UqLYNq27bZ7/hPbtmsBLMt6BjgNeOZwH1hUlH24t6WP\nDJf9XPbKNo779XcBg+c//kt+ff8Y8vPhrruCFBT4v/pZWWBZ/d+24bKPBzPt49TTPh78UhnyrwIL\ngcctyzoXeDv5hmVZucDblmXNBBrxz+b/90gfWFZWl6KmSlJRUfaw2M/Rg1Xw7e9SdHA3H1x6E195\nZg7xuMEttzRjGA5VVRAIwNixLmVlR/68vjRc9vFgpn2cetrH/aO3B1KpDPmlwFzLsl5teX6TZVmf\nArJs236g5Tr8i/gj79fYtr0ihW2REcSLJ6j+w2pOesnvpv922j1s3xliwYI4s2e3LT4zaZJLKDSA\nDRURSbGUhbxt2x5w8yEvv9/u/Ufxr8uL9KnSlz9g2v3fBgz+MOdX/PHRQsaOdfnSl9qq2hUWeuTk\nDFwbRUT6g4rhyLBSt6uSgp98n/SK/WyZczPfXnM5hgG33hptXWwmPR3GjdN0OREZ/hTyMmzEG2I0\nPfgU4177M3UTLb7efDclpQE++ck4J53kj/lMLh9rGAPcWBGRfqCQl2GjZNUWjn/4bpxgmJ/PfpgV\nr+Rz/PEOn/1sW1W7CRPc1jr1IiLDnUJehoWD71Yw6effJlxfxQtzvsv3lp9JJOJx663R1sF1+fke\n+fkD204Rkf6kkJchr74ySujXv6HwnXXsOf4ivvjuLTQ2mvzrv0aZPNm/9h6JwIQJug4vIiOLQl6G\nNMeBimUbmfb4D4mlZfH5rD+yc2+YRYviXH65P10ueR3e1G+7iIwwqtYtQ9re10uZ/otvEIw18a1z\nVh/jRGcAAAubSURBVLB6/RhmzHA6TJcbO9ZrHVkvIjKS6NxGhqzyvc3k//on5O3YzPIT/oV7Xp9H\nXp7HHXe0XYfPzfUoLFQ3vYiMTAp5GZKamzwa/rSWqct/we7sGdx08D/xPPjmN5spKvJDPRyGiRMV\n8CIycinkZcjxPNj72n5m3H8rruNxXc5qymvC3HRTnNNOa5sPP2mS27pevIjISKRr8jLk7PugifEP\n/DuZJTv4hwl/4vW94zn//ATXX99xPnxm5gA2UkRkENCZvAwpNVUuPLWMSc8/wqM5X+QXe69h/HiX\nr30t2lrFrrhY8+FFREAhL0NILAYlr3zEjAe/xXvGDP5f889Ji3h85zvNrWftubkeY8boOryICCjk\nZQjZs62R6b+6nURVPddkrqEhFuKWr0SZOtUP9fR0mDRJAS8ikqRr8jIklOxzyfy/Ryje8AyfyHiG\nD+rHsXhxnMsu8wveBIMwdaoK3oiItKc/iTLo1ddDzSvvcuLv7+Yn5i082biAmTMdvvhFv+CNafoB\nn5wbLyIiPoW8DGqOA3verWfGL77GhoaT+Jr3X+TluR0K3kyc6JKRMbDtFBEZjNRdL4Pa7o9civ/w\nP8S3bue64Du4rsnttze3VrEbM8YjL2+AGykiMkgp5GXQKi83SLy8nsmP/zfzzJUcTBTxxS9G+djH\n/II3eXkexcUaaCci0h1118ug1NQEJVsrmXXfV7g9cScvu+dz4QVxPv7xBAAZGRpJLyJyJAp5GXRc\nF/5/e/ceHFV5h3H8ezabkOwmQSDhUsVAubzolJvFIKki2GmdyrQCVtvSVuoUqq0dnSnSaaWVYsdb\np0yHYaZWsa3XOqOlTK2DlOlUECnIeIEghbeVyFXQJFzDJZtkt3+cJEQIJJvu2bPn+HxmmMnunmR+\n/LLZZ9/3vHve3TuTVDz1MKt3j2Ix9zD44mbm3ZPAcSA/H4YMSbZf/EZERDqn6XrJOfv3OxSuWc2p\nl1/jNjZS2KuFhYsSxOPuSvohQ7SSXkSkOzSSl5xy5Agc3X6QSx9dyM2pF2igmHnzmqioSOE47qYz\nWkkvItI9CnnJGYkE7K1pZtiyn3FX7UK2czkzbzzNlKnuBW8GDEjRu7fPRYqIBIim6yVn7N4doe/q\n5SxfO4gX+BqjzSnm3qGV9CIiPaWQl5xw4IBD044a6h/7K/NZQd/i0yxYlCIahXg8pZX0IiI9oJAX\n3zU0QO3eBOVLHuD6E4+D47BgYQv9+rWtpE9pJb2ISA/onLz4qrkZdu9y6LfiD9xZfScHGcTcWxsY\nM+7MNemjeisqItIjCnnx1Z49DtF/b+XJJwt5nWu4buxHzPxmFMeBiookRUV+VygiElwaI4kvjh1z\nL1t7/MNT7HngbyxpeZBP967l7l8U4TjuSvrSUr+rFBEJNoW8ZE1LCxw65FBX55BIAKkUiUef4a4D\n9xKPnOTeB6PEiiP06aOV9CIimaCQF881Nrqj9kOHHJJJoKkJ5+gR2LyVH62axgmKWfTdGipGDiAe\nTzF4sAJeRCQTFPLimePHobbWoaHBIZUCp+E4kaNHiH54gIOv/ocn/mmwGL497h2qbhlJQYFW0ouI\nZJJCXjIqmYT6eof6eofGRqC5GefoEaJ7drHn7/9l/dslrDxcxT6mAjDpom3Mun9o+zXptZJeRCRz\n9JIqGXH2lLxzooHIzhpqXrKs23wRrxytopZrAejtHGP6JZuYWJVi7IxLyY/layW9iIgHFPLyf/nY\nlHxzCyn7Hjte3M66LX1YfbyKo0wCoDxSz9cv/RcTJ0e4bFIJ0ZIyiBWRKill4ECtpBcR8YJCXtKW\nTJ5ZJd/YCM07anj3+R28tqUv/zgxiVNcAcAl0Q+YMaSaK68rZPjV/ciLDyUVi0E0StvSur59U/Tv\nr4V2IiJeUMhLtyUS7pR8fb3Die17qX7OsmZLP9aerKSJ0QCMyN/F54e/z4RpF1ExcQDEx9C2+Xtb\nlOflQSyWIh5HAS8i4iGFvHSpocGdkt+3YT9v/6mGNdXlbDg9niSjABjTawdTLvuACTMGMWjCQCio\nbP/eSAQKC91Qd/9Br15+/U9ERD5ZAhPy79sEu2oa/S4j9Pr0yefw4TN9rt9exxvP7+PVrQN4q3E0\nYACoLKpm6tg6xt88hH5jBgODcRwoKKA9zGOxFEVF6CNxIiI+CUzIDx+VR5Iyv8v4hCjs8HUZMIo8\nmrm2+E0mTzjGuFkjKB06jGh0WPsIPR53Az0vz6+aRUTkbIEJ+RvKNnE6oSGh1yKOQzJ15jx5LL+J\nyglNjJk1kvKRozqM0JMUFPhYqIiIdCkwIf/czkns39/gdxmhV1ZWTF3dmT5HIu4I3f0MuxbJiYgE\niWchb4yJAL8FxgCNwBxr7c5OjnscqLfW/vRCP6+0FBobFTJeKy8HhbmISDh4uZ/8dKDAWlsF/ARY\nfPYBxpjbgc+gVBEREck4L0P+c8AqAGvtG8CEjg8aY6qASuAxQCfbRUREMszLkC8FjnW43dI6hY8x\nZhBwH/BDFPAiIiKe8HLh3TGgpMPtiLU22fr1V3E/m7USGAjEjDHbrbVPX+DnOeXlJRd4WDJFffae\neuw99dh76nHu8zLk1wNfBl40xlwFVLc9YK1dCiwFMMbMBkZ1EfAiIiKSJi9DfgXwBWPM+tbbtxlj\nvgEUW2uXnXWsFt6JiIhkmJNKKV9FRETCyMuFdyIiIuIjhbyIiEhIKeRFRERCSiEvIiISUoHZoKYz\nxphbgC8CCWCBtfawzyWFjjFmGnATkA8sttZu9rmk0DHG3A2MA0YAz1prf+dzSaFkjLkcuBsoAH5t\nrd3mc0mhY4wZi/vx6J3AU9baNf5WFE7GmAHAy9baK7s6Nugj+RuB24EngLk+1xJWdcCngIuBvT7X\nEkrW2iXA94BtCnhPzQH2AaeBXf6WElqVwAGgGdCbKO/Mp5vP4aCH/FJgGe5Fd8p8riWs5gK3AI8A\n03yuJcxmAcv9LiLkhuG+ZvwZuNXnWsLqddw3U78C7vG5llAyxnwfeBb3zWqXcm663hgzEXjYWjv1\nfNvVGmPux53afAH3CTUZGO1XzUGTZo9jwAncEf3lftUcNN3s8S+B4cAPgGustXP8qziY0nwu1wIn\ngcMEf4CTNWn2+CXckfwRcjBfclWaPe7f+lilMeYma+0FBwc59UswxvwY+BbQ0HpX+3a1rU1YDEy3\n1t7Xevy1wB9xz7Hd4UPJgdODHl8F/B73qoTzfSg5cNLo8c87fE8s+5UGWw+ey5/FnflzcM/NSxd6\n0ONJuLMlTcAiH0oOnHR73OH7nu4q4CHHQh54D5gJPNN6+2o6bFdrjPnYdrXW2rXA2qxWGHzp9ngj\nsDGrFQZfWj1uvX9W9soLjXSfy28Bs7NaYfCl2+MNwIasVhh8ab9etD7WrVNOOTVlZa39C+6CjTYl\nnGe7WukZ9dh76nF2qM/eU4+953WPc/2Xc6HtaiUz1GPvqcfZoT57Tz32XkZ7nOshvx64AdrPDVdf\n+HDpAfXYe+pxdqjP3lOPvZfRHufaOfk2bVvjnbNdrU/1hJF67D31ODvUZ++px97zpMfaalZERCSk\ncn26XkRERHpIIS8iIhJSCnkREZGQUsiLiIiElEJeREQkpBTyIiIiIaWQFxERCSmFvIiISEjl6hXv\nRMRnxphS4CFgMu4GGoeBedbad3wtTES6TSN5ETlH665XK4E6YKy1djxwP/CKMaaPr8WJSLdpJC8i\nnZkKDLLWLmy7w1q7xhjzHfS6IRIY+mMVkc6MBzadfae1dpUPtYhID2m6XkQ604JeH0QCT3/EItKZ\nN4Erzr7TGPOQMWZK9ssRkZ5QyIvIOay164CPjDELWxfhYYy5HpgNbPO1OBHpNp2TF5Hz+QrwG+Bd\nY0wTUAt8yVpb629ZItJdTiqV8rsGERER8YCm60VEREJKIS8iIhJSCnkREZGQUsiLiIiElEJeREQk\npBTyIiIiIaWQFxERCan/AaZZPcRDXCiFAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "# Compute the score on the full dataset using the optimal value of C:\n", "scores = cross_val_score(SVC(kernel='linear', C=1E-6), X_proj, y, cv=3)\n", "print(\"projected score = {0:.2f} +- {1:.2f}\".format(scores.mean(), scores.std()))\n", "\n", "scores = cross_val_score(SVC(kernel='linear', C=1E-6), X, y, cv=3)\n", "print(\"full score = {0:.2f} +- {1:.2f}\".format(scores.mean(), scores.std()))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "projected score = 0.82 +- 0.01\n", "full score = 0.83 +- 0.01" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n" ] } ], "prompt_number": 14 }, { "cell_type": "markdown", "metadata": {}, "source": [ "These scores are statistically equivalent: it seems that our projection is not losing significant information relevant to the classification!" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Compute the learning curve for this value of C\n", "train_sizes = np.linspace(0.05, 1, 20)\n", "N_train, val_train, val_test = learning_curve(SVC(kernel='linear', C=1E-6),\n", " X_proj, y, train_sizes)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "plot_with_err(N_train, val_train, 'r', label='training scores')\n", "plot_with_err(N_train, val_test, 'b', label='validation scores')\n", "plt.xlabel('Training Set Size'); plt.ylabel('rms error')\n", "plt.legend();" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAfcAAAFkCAYAAAA9h3LKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XecXFX9//HXvdO295JNsikk4YYYASkmUkMHAQFRlC/f\nL0URFYHf9ysoTSEgCPIFUVFQEL+AgKhIkS5KU5r0EMoN6Ztke2/T7j2/P87M7mx2dney2dky+3k+\nHvPYnbKz926y+77nnM85x1BKIYQQQojMYU70AQghhBBibEm4CyGEEBlGwl0IIYTIMBLuQgghRIaR\ncBdCCCEyjIS7EEIIkWHSHu6WZS2zLOv5JI8fb1nWvy3LesWyrLPTfRxCCCHEdJHWcLcs6/vAHUBg\nu8d9wE+BI4CDgXMsy6pI57EIIYQQ00W6W+5rgS8CxnaP7wastW273bbtCPAv4KA0H4sQQggxLaQ1\n3G3bfgiIJnmqAGhPuN8JFKbzWIQQQojpwjtB37cdyE+4nw+0DvcFSillGNt3AAghhBAZbVTBN1Hh\n/jGwyLKsYqAb3SX/v8N9gWEYNDZ2jsexpVV5eb6cxySRCecAmXEemXAOIOcxmWTCOYA+j9EYr3BX\nAJZlnQrk2bZ9h2VZ3wWeQQ8N3Gnbdu04HYsQQgiR0dIe7rZtbwT2i33+h4THHwceT/f3F0IIIaYb\nWcRGCCGEyDAS7kIIIUSGkXAXQgghMoyEuxBCCJFhJNyFEEKIDCPhLoQQQmQYCXchhBBjJhwO8/jj\nj6T8+qeeepx//eulIZ+/9967+OijD8bi0KaViVqhTgghRJrlrvwBgcdSD9o+pkGJq5I+FTr+RLpX\nXjPklzY3N/HYY49y3HEnpvStjjnmuGGf/8//PDOl9xEDSbgLIYQYM/fc8zs2blzPXXf9Ftd1ef/9\n9wgGe7nkkit46qnHse2PaG9vZ+HCRVx22ZXceedvKC0tY+7cedx77934/T62bdvKYYcdyemnf41r\nr13J4YcfRXNzE6+++jKhUIht27Zw2mlncMwxx/Hhh6u5+eYbyMnJpaiomEAgwGWXXdl3PJs3b+K6\n667C4/GilOLKK6+hvLyCm2++gY8++pBoNMLXv/5NDjjgYG655Wbef/89AI444mi+/OWvcu21K+no\naKejo4MbbvgZ9913N6tWvYvrunzlK//BIYcczkMP/Zmnn34C0zRZvHgJ//3fF03Uj7+PhLsQQmSo\n7pXXDNvKHkp5eT4to1yX/Ywzvs769es488yz+d3vbmf+/F244IIL6enppqCggJtv/hWu63L66V+h\nqamRxA3B6uvruOeeBwiHw5x44tGcfvrX+p43DIPu7m5++tNb2LKlhosv/h+OOeY4brzxOq644hrm\nzZvP7bffSlNT44DjefPNf7Nkyaf59rfPZ9Wqd+nq6uKjjz6kvb2dO+64m87OTv74x/swTQ91ddu4\n/fa7iEajnHvu2ey99z4YhsHee3+WU045lVdffZna2m3ceutvCYVCfOtbZ7Hvvst56qnHuPDCS1m8\neDceeeRBHMfB4/GM6uc3VqZ3uHd1QV7eRB+FEEJkDKUGdudXV88FwO8P0NraysqVl5OdnUNPTw/R\n6MAdwRcsWIBpmmRlZREIBAa996JFuwJQXl5BOBwG9DDAvHnzAdhjj8/wj3/8bcDXHHfcCdx3391c\neOEF5OXl8s1vfoeamk0sXbo7APn5+Zx99re4//7fs8cenwHA6/XyqU99mg0bNgAwZ44+h/Xr12Lb\nH3P++d8EwHEcamu3cemlV/LAA/eybdtWli7dfdDPYCJM64I6z7atmBvWQzTZlvNCCCF2lGGYuK4L\n6KCPt7xfe+1lGhrqWLnyWs4551zC4VCSEBx+d9Nk235XVFSycaMO4dWrVw16/p//fJE99vgMP//5\nraxYcRj33ns38+bN5+OPdZFeV1cXF110AfPmzWfVqncBiEajrF79HtXV1QO+79y589lrr7255Zbf\ncPPNv+KQQw5n1qzZPPbYI1x00aX88pe3s2aNzQcfvJ/iTyt9pnfLHTA72jHsj3Grq1EFhRN9OEII\nMaWVlJQQjUa47bZbCAQCfcG4ZMlS7r77Ti644FuUlJSyZMnSvi70xK73foODPNnzF154CddddzXZ\n2dn4fD7KyioGfM3ixbtx7bUr8fl8OI7D//t/F7JokcWbb/6bc889G8dx+NrXzmHZss/xzjtv8a1v\nfY1IJMJhhx3BrrsuHvB9DzjgIN555y2+851v0Nvbw0EHHUJOTg4LFizgO985m5ycXMrLK1iyZOlY\n/Ch3ijEZug9SpMZ6b17PGhujt6fvvltSijtrNpjp69DIpD2Gp/p5ZMI5QGacRyacA8h5TISHHvoz\nhx56BEVFRdxxx234fD7OPPPsKXUOwykvzx++O2MI077lnshsacbo6sKpniNj8UIIMQWUlJTw3e9+\nh+zsHPLy8rj88qsm+pAmhWkb7v6/PUXgTw8QOulk3NnVfY8b4RDe9Wtxy8pxq2ZCkjEeIYQQk8OK\nFYexYsVhE30Yk860LajzvvcuWX99mIKzzyD7Vz/HaG/rf1IpzMYGPGts6O2duIMUQgghRmHahnvP\nRZfQec1PcCtnkPXIQxSe/h8EHrgfQqG+1xjBXryf2Bj19RN4pEIIIcSOmbbhjmEQWXEoHb+9m55z\nz0d5POTc+RsKz/pP/H//G8SmcqAUnrpteNZ+MiD4hRBCiMlq+oZ7nM9H6KQv0XHP/QRPORWjrY3c\nn1xL/nnfxPvu230vM7q78K75GKOpaQIPVgghhBiZhHuMysun9xvfouP/fk/osCPwfrKG/O/9D7k/\nvARz00b9ItfFs7UGz/q1EIlM6PEKIcRUd/7532Tz5o1D7gx3+ulfGfbrX3zxeZqammhpaeamm36S\nrsOckqZttTyQtBLerZxBzyU/IHTSl8i+/Tb8r72K79+vEz7mOHrPOAtVXILR2YnH/hh39mxUUXH6\njk8pCIUwQkFUbh54p/c/lxBix6xcGeCxx3b874ZpguvmJn3u+OOjrFw5lkOUxog7ww3lwQcfYP78\n+cyZM48LL7x4DI9p6pvWaeHssgCjpQWzuQkjFBz4nLWYrht/hu+1V8i+49cEnvgr/ueeJXjKqQRP\nPgUjOxvPpo247e16Kt3ObBKgFASDGKEgRjAY+1yHOrFFhpTpQZWX45ZX7Nz3EkKINLr88u/x5S+f\nyp577sXHH3/I3XffyQ9/eDXXXfcjuru7aGpq5Itf/DInnvil2Feovp3hTjjhi9xww49Zt+4TKioq\n6e7uBvSa7r/85c9wHJf29jYuuugSOjo6+OSTNVxzzUp++MOrueaaK/nNb/6PN954jTvu+DV5eTlk\nZ+dy6aVXsmbNx9x33z2DdpxL9Jvf/Ip3332LaNRhxYpDOe20M/jgg9XccstPcV2X8vJyrrjiGjZt\n2sDPfnYjpmni9we4+OLLcV2Xiy/+HwoLi/jc5/Zn2bL9+PnPb0QpRWFhIZdeegXhcIQrr7wUpRTh\ncJiLLrq0b638dJjW4Y5HB6ZTXo7R1YnR2IjZ2dEXqBgGkc/tT2TfZfifepzse/6P7Lt/R+Dxv9J7\n5tcJH3EUZlsrRne3Xr42v2D47+e60NOD0doyMMTDof7vOQTDdTDq6zAaG1EVFTrk07iSnhBi6lu5\nMjSqVrZe3a17VN/z+ONP4qmnHmfPPffiiSce4wtfOIktW2o4/PCjOPjgQ2hqauS8876ZEO79y7u+\n9NLzhEJBbr/9Ltra2vjqV/We8Bs2bOC88/6bXXZZyLPPPs0TTzzGxRdfzqJFu/K9712GN6FX84Yb\nruO22+5kt93mc+utd3D33Xey334HJN1xLtHf//4Mt9xyO6WlpTz55GMA/O///pirr/4xc+bM44kn\n/sqmTRu44YYfc8klP2ThwkX8618vcsstN3Peef9NS0sLv/vdfXi9Xs4550wuv3wlc+fO4/HHH+W+\n++7h05/encLCIn7wg6vYuHEDwWB6p1lP73BPoPLyUXn5uOGwXqmuuRkjGhtX93oJH38i4UOPIOtP\nfyDrL38i96afEHjoz/Secy7RffbFs34dbmkZ7sxZ+mt6ewe3xCNhKMrB0zq6XxqIhXxdLUZjI25F\nJaq8XBbaEUJMGp/97HJuvfXndHR0sGrVu3z3u9+nqamRP/3pD7z00nPk5OThOE7Sr928eROLFy8B\noKioiLlz9W5vZWXl3HXXnQQCAXp6usnNTb6CaFtbG7m5uZSVlQGwxx57cvvtt7LffgeMuOPcFVf8\niNtu+wUtLc0sX74fAK2tzcyZMw+AY4/9AgBNTY0sXLgIgN13/wy//vUvAaiqmtl3kbF580ZuvPE6\nQG9CU109h+XL96empoZLL70Qr9fL6ad/fcd+sDtIwn17fj/ujCqonIHR1orZ3IzR3aWfy80leNbZ\nhI77Atl33Yn/2WfIv/QiInvvS+853wbAbG3pn0aXRoYTxVO7FdUUC/nSUgl5IcSEM02TQw45nBtv\nvI6DDlqBYRg88MC9LF36aU488Uu8/fabvPrqv5J+7bx583n22Wc45ZRT6ejooKZmMwA///mNXHnl\nNcydO4877/wNdXW1fd/LTfh7W1RURHd3N83NTZSX5/Puu2/3bdc63I5zkUiE55//O1dd9WOUUvzX\nf53CYYcdRWlpOVu21DB7djX3338Ps2fPoaysnHXr1rJgwULeffftvi1tzYSe1Orqufzwh1dTUVHJ\nu+++TXt7O++88xalpWX89Ke/ZPXqVdx++6/4xS9+vTM/6mFJuA/FMFDFJTjFJdDbi9nUiNnWCq6L\nKq+g53uXEvril8m+/VZ8b72B91tvEj7yaHrP/DqqrHz8DjMSxrO1BtXYgFtZiSopHbfvLdLEdfVs\n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\nAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 16 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Comparing this to the random forests, we see that the SVC classifier underfits the data much less! Still, though, it's clear that adding more data would still benefit this model. We've not yet gotten to the point where the model is saturated and the training/testing score are equal." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Summary\n", "\n", "For this particular dataset, we find the following:\n", "\n", "- ``RandomForestClassifier`` under-fits the data to a large extent ($\\Delta$score $\\approx$ 0.5). \n", "- ``SVC`` also under-fits the data, but not by as much ($\\Delta$score $\\approx$ 0.1)\n", "- From the learning curves, it's clear that both models could benefit from more training data\n", "\n", "One important piece of this is that Random Forests have **much** better scaling with data size than do support vector machines. If you double the size of the data, a random forest will take about twice as long to train, but support vector machines will take about **four times** as long. So for small datasets like this, ``SVC`` will often be a better choice, while for large datasets, ``RandomForestClassifier`` becomes better." ] } ], "metadata": {} } ] }