"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "RidI9YhKOiY2",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 2: Make Better Use of Latitude\n",
+ "\n",
+ "Plotting `latitude` vs. `median_house_value` shows that there really isn't a linear relationship there.\n",
+ "\n",
+ "Instead, there are a couple of peaks, which roughly correspond to Los Angeles and San Francisco."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "hfGUKj2IR_F1",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 364
+ },
+ "outputId": "e2dd5086-9771-4d96-b0e3-aaaa232ff4ae"
+ },
+ "cell_type": "code",
+ "source": [
+ "plt.scatter(training_examples[\"latitude\"], training_targets[\"median_house_value\"])"
+ ],
+ "execution_count": 17,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 17
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeQAAAFKCAYAAADMuCxnAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzsvXt8G/WZ7/+ZGWlGliXbki9xbCeE\nxJcAiRMnJgVCyIXQAKfsKy2X0JzSpbTds9vS7e62W5aF5dJtz5497PbX7R622+VwW9pAurDL0nPO\nbsCJExJIQhI71xJfEiCxHceyLcuSJc1II/3+cKTI8sxoJI2k0fj7/guisTQafWee73P7PFQ0Go2C\nQCAQCARCQaELfQIEAoFAIBCIQSYQCAQCQRcQg0wgEAgEgg4gBplAIBAIBB1ADDKBQCAQCDqAGGQC\ngUAgEHSAqZAf7nJ5C/nxhsPhsMLt9hf6NAwHua65gVzX3ECua27Q6rpWV9tlXyMesoEwmZhCn4Ih\nIdc1N5DrmhvIdc0N+biuxCATCAQCgaADiEEmEAgEAkEHEINMIBAIBIIOIAaZQCAQCAQdQAwygUAg\nEAg6gBhkAoFAIBB0ADHIBAKBQCDogIIKg+QLr19Az8UJUNEo6qpKMeET0FBjg88vYP+JSwAVxbrW\nOjjLS9B30Y2eCx5UlnGoqrCAD0XgsLOorrDCMyUA0SiqHVZwZgZ8SITHx6PcxoEzy/eojXkC6Lkw\ngfpqKz7+zI2T58bgsFuwoLoUIxMBHPvtJXgFoKbchO13XAdBjKL3s1Ec7RlFKBQGx5nBUMD8Sjts\nJQyO9brAsgy+eOtisGYGH54ahiCE8OnwFMIy52BlgeVLquD2CahxlKBlgRO8EEZ9dSnqqmwI8GGI\nYgTdfaMYdE0iGI7ic9fVYkVj1YzvJvWd1V4HwjSFvIaXRn3Y3XURFy/7EAyFYaJpLKguxWW3H59c\n8oGiABtHYyoYgSACJhq4tbUW1y2qxJ5jFxEMiyizsvgvNy9CY4Nj5vseu4jzgx58OnJVPGFloxMN\nNTbQFDAw4oeFpRAURCxd6MTdtzXm7HtmA1nPhEJBRaPRqNIBhw8fxne/+100NTUBAJqbm/GNb3wD\nP/jBDyCKIqqrq/Hcc8+BZVm88847ePXVV0HTNB544AHcf//9ih+ea6UuIRzGj149hgHXlKbva2Fp\nVJWXwB8Mwe0V4Czj0NZcjW2bGsHQV4MOASGEx35+EL6AnJksDm5trcFXPr8Ub+49j+5eF8YneTjL\nOKxsqkIUwIm+0fi/SV2HYqe62q7JWhUjEezc01+Qa+gLCvjjnx2AGNHsLQEAz3xjDf7yxY8gKj5F\n5JlXweLZb9wE1lR430Dq9ynG9azVeiXMRKvrqqTUpcog/+pXv8LPfvaz+L89/vjjuO2223DXXXfh\nJz/5CWpra7F161Z88YtfxJtvvgmz2Yz77rsPv/zlL1FRUSH73rleNE+/9BEujvhy+hmJbG5vwPbN\nzfH//8O/e7/ojXGMBTU21dcy+ToUO1rdiDs6etFxdEDVsVpfw997rhPhTK1mjllQY8Ozj6wp9GnI\n/j7Ftp6JQc4N+TDIGW37Dh8+jNtvvx0AsHHjRhw8eBAnTpzA8uXLYbfbYbFYsGrVKnR1dWV2xhrg\n9QsYdOXPGANAd+8o+JAIYDpMbRRjDAADaWxsEq8DYRo+JKK716X6eC2v4aVRn26NMQBcHPHB6xcK\neg5Kvw9Zz4R8oSpO1N/fj9///d+Hx+PBo48+ikAgAJZlAQCVlZVwuVwYHR2F0+mM/43T6YTLpfwA\ncjisOdMHHepzIZLnZ5DbGwTDmlFdVYpTn03k98NzTDqXMvE6GAWlXa0aLo1OYdzLqz5ey2u4//Tl\nrN8j13iFCBZfk901zgal36cY13O265UgTa6va0qDvGjRIjz66KO46667cPHiRXz1q1+FKF7dLcpF\nvFNEwgEgpxNJ7CwNmkJejbLDboEohOByeVFXweXvg/MABfVGOfE6GAEtQlViSITTzmFsUp1R1vIa\nNtbq35DYWbqg60Xp9ym29UxC1rlBFyHrefPm4e677wZFUVi4cCGqqqrg8XgQDAYBAJcvX0ZNTQ1q\namowOjoa/7uRkRHU1NRkffKZYreyqK+25fUz25qvViRXlpfAVlL4QhWtaKhRfy0TrwNhGs7MoK25\nWvXxWl7D+VU2mHRck7Sgxga7lS3oOSj9PmQ9E/JFytv0nXfewYsvvggAcLlcGBsbw5e+9CXs2rUL\nAPDuu+9i3bp1WLFiBU6dOoXJyUlMTU2hq6sL7e3tuT37FDzx1VVoqNbeO7CwNBqqS+G0c6ApoLLM\ngs3tDdi2aWYbx1//wc0otRT/jXxraw2e+OoqbG5vQGWZJf6db19dj02r62f8m9R1IEyzbVNjwa7h\n//iDmzV9vxjPfGMNGCrzv59XweKJr67S7oSyQOr3IeuZkE9SVln7fD58//vfx+TkJEKhEB599FFc\nd911eOyxx8DzPOrq6vBXf/VXMJvN+M///E+8+OKLoCgKX/nKV/A7v/M7ih+er7CKVB/y/Corfr33\nHLrOXoYQBsqtDFa1zMP1ixx46f+dRYCfXcRRYWPx6JeWob7arroPecTtx+O/OJRWDjbX3LJ8Hq5b\nSPqQ1aJ1CLBQ11BtlbezBBgPyL++/FoH7lkr3Yd89sI4hsaUw/IOmxlbblyIL2xoghAobDGXFMW+\nnknIOjfoou0plxRy0cg9nG5ZVouDp4clDShNAf/9925CjcOq+nP4kIgnXzikOneYayrLOPzomzcV\n5YOmUBjlAXe1z3YUbm8QDrsFrY2VuG1FHRgKccEbpU2k3D0QM2IlnAnPvvwRxr3KhnZzewO+++XV\nhriuesMo61Vv5MMgGyfJqUDyjlepxeHsZ244yjiMSxZ3cCi3pVesFctNqe0/zTVjkzzOD3qwuL6c\nGOU5BkPT2L65GfeuX4LxySA6jl7Eyf5R7O0anCGCUW7j4CyTLnCqsM28B6TENKwWc0qD3N07iqBg\nnLZAAkELDG2Q5ZR3NrbVSxpcAJjw8Zgn4wFbLeaMjNjWdYtx4OQQgoLGMkkZ8twbx+G0s1jVUlN0\nKkSE7OHMDDq7B9HZPRT/t7FJPr5p3L65WXYT6efDeGvfufi62bmnf8Zx00Y8dTTI7Q3CPckb+wFE\nIKSJoZ/EOzr60HF0AGOTPKK4+tDpODYAZ5m0p1th48CHpHfuU4FQRgIBPr8APgfG2GnnsH7lfFjY\n9H/Gca+AjqMD2LmnX/PzIugbNSIY2zY14vbV9WCSllZQEOPrJl2xk0QcdgscMvcggTBXMaRBFiMR\nvLbrLPZ1D0q+frJ/DK1LKiVfW1Rrlw23Tfh4eHzp54JjIUCtWb6kEp+/cWFWnjdRIZp7eHy8bITI\n7Q3C4+PB0DQikais9nV37yhcbr/s+6SirbkKFpb4xwRCIoY0yDv39KOze0hWFMTtDWJz+4J4iwMF\nwMIysLAMuvtGQcu0cTjslrRzyED6Pahq2X9iCM//26ms3iP2ACbMHUo4Eypk1rHDzsEXDOH80AS6\n+0YljwGAcW8Q414eDru6/mGHTblFkEAgGDCHrCaM5rBb4CyzxAtcfrmrBx+cHo6/Lld3no1AQOwB\nlFjharWYshp+EYkCQ6PZqZ1lUqhGKD74kDhdyHVsACf7R+GW2YS5vTx+9OqxlO9HAfjpv5yEhU19\nP1SWWfDUw+0I8OGibSUiEPKB4QyyUjguRrJhPXvBLXkcTU0bZ2eZBW3NVVnt6hMrXGMV3yaGireh\njE0GM37vbJgKhmYU6RCMRWJho5rWO7VSs7HjgkLqdEdrYyXsVrbgalwEgt4xnEFWatmgKWB9W/0M\nw6pkwKMAvv/gSk1bhDgzM6OHc1YbyrnxuAdt4RgMajzLOZmgEJlRXUsoDLkSo0iugi4Et62oK+jn\nEwjFguEMslLf7/qVdXjo8y0z/k3JgDvtlrz063JmBvMrS/HQlqUzHswxD/rIb4fh8ee2Z7O7dxT3\nrl9Cwol5JB5GPnoRJ8+NzWjN0yJikU0VtBR2qxlefyjtv8tGWpNAmEsYziAD0vna1iVO3LayDgMu\nH6orSuKGR8mAtzZW5t1ASXnQN18/D3/5z6nzetkQK+5KR4WMkBlKYeTkfuBscLn9minE3XT9PHx5\ncxN++MqRtN/TZjVrcg4EgtExpEFOViR69+hFHDwzHBdCsLAM1i6vxYO3N4Gh6QQDPv2AjI1tPNHn\nAkNTec+vJocvo3nwMDKtICekj5owcjYRi0SDrxW9Fycw7uVh4UxQI/yRyP/8VTf+8pufIzUKBEIK\nDGmQY8QUifYlKBIB04Uou48NgqIobN/cHDfgohiZ0S4VE88A8pNflVMWW7usNuefnVjoVuzi+nqG\nD4no6hlJeVw2EQu1eWMLy6gqygKAcS+PZ18+IvlafXUp/MEw3F5pQz3sDuDF//sxfvfOpWQ9EQgK\nGNogp3r4dfe64l4IHxJx8tyYzHH5ya9KyRB2HB1AKBwBawK0kv6dX2mFEIrEw/mxCnK5DQGpwNYO\nj49PqfMMZB6xSJU3dto5rGisxOb2BSi3cXh7//msZV2DvIjG+jIcOSv/uYfOXEbfxQmynggEBQxt\nkFM9/Ma9fNwLUaNelMv8qtKDdP+JIVRWcHC5tckHTgUErG6pweb2BXCWWeIbjeQJWFrmMwnTlHCm\neEpEiUx73pXWMUUB3/rSMtgs5nj04971S9DVM4KgkPkYRLc3iJtuaFI0yABZTwRCKgy9TS23cXAq\nKAk5E0QxlOQtc51f5UMizg96ZItlIlFoZowBYNIfRmf3EDq7B2eEqVPpGxOyJ8CHFY1xhY3NSslK\naR1zZgY//7fTePwXh/DkC4ewo6MX45NBuFV47Eo47BY01peDM6t7nBw4eQl+nkx6IhCSMbRB5swM\nVrXUyL7e1lw9q9pa+rjMFbqUECMR7OjoxZMvHMJzbxzX/P1TkWho1UQICNlTbuNQKbfxs3F49pE1\n8bqGTFBax0FBlBy0UmHLrgq6rbkKdiuLz10vf68ln8fr7/Vm9ZkEghExtEEGplugNq2unyHxZ2EZ\n3L66fpYXsm1TY1zfOh+6u7GcsVatKemSaGgLGSGYSygZzNVLqzVRs0pex047JytxefD0MDwZ9BbH\nsLAM7lm7CDs6enHg1HDqP7jC2QtuMg+ZQEjC0DlkYLoF6v4Njdiwsh5CKAzWbJrRh5x8bLK8Za4K\nubQWbciEREOr1I+dqwjBXEWqTz5badZEktexEI7g6Rc/kjxWbZW1HEJIxM7d/fjwtHpjDEx76MNj\nfpSaiGoIgRDD0AZZqWpYqbUnWZwjF6jR3M41LQsrZvz/tk2NEMUIunpd8EyF4LRzWNVSTSbzSJBN\na1i+Nn6xdcyHRFk1umxx2Dmc/Ww8o7/94YuHsGJJJam6JhCuYGiDLNdG1HNhAv5gqKCtPUqSnfmA\noSkcPD2MngtutDVX474Ni/HrznM4eGY43gIzFQwhKjf6ao6iZWtYPjZ+sc+Ri35ki9nEYHg8s4lj\nLncgp1XXpJ+eUGwwzzzzzDOF+nC/P7vqTiX4kIgd7/UiwM8OyU1OCfF/D/Aizg9NIsCHsXxxZc7O\nJ/ncPD4evkAInw578/KZycTsbOz7n+gfw4n+MYTFqwZYjETxySVvXq+NHikt5eJr9Y3dfeg4OlDQ\n9ZMJ1y9yIMCH4fEJ4IUwKmxs1uFqAPAFMs8/x/D4BKxfWQcTo82GWIxE8MbuPux4rxf/58PP8MGp\nYYxMBLDsWidoyvgh8sT1StAOra5raal8PY5hPeR0Q8L5EP9I9q4q7BxoGohkrsmgGYMu+bnMiQIq\nc5lUrWF6vkaJYXKX249xL4+f/svJQp8WAO37/JMjY24fj86uQfQPePDUw+0kPE7QLYZdmUpVw1Kk\nau3hQyJG3P6s+nFj3lWs9cTt5XVhjAFloYqYgMpcp9hbw8RIBG/tO4e/e/OkbowxoG0Vv9Km6eKI\nDztIuxVBxxjWQ043byb3UNAqZ8iHRHyQRltIvlFSj0oUUJnLKOX9i6E1TA+zkaXQsoo/VWSsu28U\nD2wSdRvJIMxtDOshA9J9xQtqbJLHyj0UEnuFEwUVdu7pT+tcXBMBTXJ2MShMG1GtsHLyezOrxTxD\n0SvbSEGxUgjxGK3QQ5sdMC3faWFp0BRQ4yjRvM+/3MahQmFj5PEJuo9kEOYuhvWQAen2EhNDXfF4\nU/eAapoz1LhaOXrlLSlKm7emFabI+/wC/HwIb+//ZM4Pnsh1D3GuyEWbHWemcNOyWnSfHcFkQN0G\nLRoFgkIEtyyrxR//19XwegIanxODlc1V6OwalHzdWZZ+JINUaxPyhaENcozk9hK1PaBaDpyodlhh\nYemspupIoYUxrrCx8PjkqwcnfAJ2vNc3Q/xhrg4KyKd4jJbkos0uFI7i8+0L4fYIOHleelKaHGc/\nc8f/W2uDt31zE/oHPLg4MrtQMZ1IBpl+Rsg3hm17SoWJoVFaYlZstTCZaBw8MyzZOuUss+Dum69R\n3aphYmi4fTw+uVSYNiclbr5hHib9guT3BACnncWoJ4CARMhd65YVPSLV7qBm/egJE0Pj4mWfpJHK\nFGeZBVPBEA5/nHq+czIBQYRrIoDT50fj7UkHzwxj1BPE9YscWbUn0RSF21bMh88vYMLHgxdEVJZZ\nsHZ5LbZtalT93sXa4kbannIDaXvSiEx34FrKSYpXyqlz4SVnCmemsW5F3fSOn5Ev+Fm60IGDZy5L\nvpaP0ZQEbfjyHc041jui2fpjzbTsDHE17D02c71pGXVhaBoPbVmKBzZldu8Xc4sboXgxtEHWIuSk\nVc5w555+7DkmndfKNzQFtLdU466bF6HWaQVD09i2qRFnL7gxMDI163iWZYq6upgwjZUz4dbWOs0q\nrS+NZabQlQotDV6mamiFno9OmJsY2iDLSWcC6nbgMc/63vVLssoZ5qLClcJ0YVcm1FSU4NzQJH74\n8pH4JmXrumsRCEpP3zl1bhytSyrR2T006zW9VxcTZhLbSB49O4IJhbqBQqIHg1fsLW6E4sSwBjmb\nkJPWxRxaV7iuaqpCd99oRn9LUcCw+2pla2yT4g+GFT2Cze0LwDB00VUXE2YSK0q755ZF+ME/fAg+\nrI/0SSIVtsL3vZPpZ4RCYFiDnGnIiQ+JeG1Xj6YVxVpXuH5yaRJmEw0hg4cpTQGihGt99jO3okfg\nLLMUZXWxXil0Kw1rZkDptB6ttMSsi7VVrC1uhOLFsAY53ZBTolcsZzgzzW1pPW3HnUWoUZSx4RM+\nHjffUIsPJObaJnoE+ZpQZFT00krj8fG6KS5MxucPwesXYLeyBT2PYm1xIxQvOt0jZ08qVSUAMxSn\nEhW55MhGr3jbpkbMd+rXkDnsFnz5juZZymZaKynNdbRSfkskXfU0MRLBriMXode5R24fj6df+gg7\nOnrj3QmFJLYJJcaYkGsM6yED0iGnlU2ViESjePKFQ3EPpXVJpar2jWyKOcJiFHxIumhKD7Q1V8HK\nmYhHkEO0aqWJhbttVhZv7z+ftre9c0+/rJJVPohNOFOadDbhE+ak8AxhbmNog5wccirhTNi5p39W\nfliqeliKVMUcSnlBj4+H2ysfap7vtEIIRzA2GVR1LlrhtHNY1VId37wUOrdpZLJtpUkOd3NJPe1q\nah10oWl9pYaBNTEp9d1Jzy9hLmFogxzDxFDoODagmB9ONe0o0WgloyYvWG7jwLHSDyCGBp743XaI\nYgTPvHQE7jyK369oqsL2zc0QIxHs6OgteG7TyGTbSpPcxieXA1YyYrnQtE6X2H0Wuxc4Mw0+JP1d\n9NACRSDkizlhkNWMnZMzxmuX1eIrW1oUd+jq+52lP8RsYsDQFMY9fF6NMQCc7B8Dv1HEW/vOZdWz\nTUhNNq006Xi2SkYsF5rW2VJqMcHCRuGZCs16jfT8EuYShnd90g3RWVhmRkHTw3cvzfhB2d07Gi+0\nUapqDQoifrmrB3/3Zv6Hxru9QbgmAqq+AyF7pEaCqimcS8ezdSjMrzYxFEoURm0WggmfgBuuldaG\nJj2/hLmEvu7MHJBuiM7KmfDnD61GdUWJqgeB2rxguY1DpYxnYmEZyXajVDA0BVHOtVeJw24BolEi\nE5gnMm2lSceznQqG8Na+c7PSDWIkgh++chQDrtnyqIXEYbdg+x1NsFpMpOeXMKcxvEFON0Q34ePB\nmmjVu3K1eUGte5EBZG2MgWkPpNphlc1vs2aGhAxzQLr93ErrJ3ljFhQikumGHe/1ajrtSSumK/zN\npMKfMOcxfMhaqR9ZinRzVqn6nRMfKlLhypuXzUtZaZor1i6rTfBANBisTMgYNb3EUutnY1sdykvN\nkscnphv4kJix3KoS2dT71ThKZoXrSc8vYS5jeA8ZALauW4wDJ4dUKRNlkrNSK7EnFa58Y3dvWp+l\nJSw7/T2V8tu8IJKQdRakaiNLR7lLav14fDz2yrTtJaYbPD4+J8MkMtXt+KP7WrF29QJ4PYHUB6cJ\nad0jFCtzwiD7/AJ4FcbYwjLYum7xrH9PdYOnmxeMeQF8SMTh30rPGc4HMXGIBzY2yua3nWWkyjUT\n1BraTCaSJYa71aZMbFazYntRvjlxbhQb1lyj6XvqRZaUQMiUOWGQ1eaRhZAIn1+A9UoVaro3uFRe\nUMmYu9z+gusJ7+seBKJRrGiqkpzXTKpcM0ONodVCuUspt9y6xBlfe2/v/yQnxpjNcMhJZ/cQ7DYL\ntq5dpNm5ZDtulUAoNHPCIKstqDKb6BneYDY3uCpjThVeTTgSnX443r66HptW1+PDU8PxnLaFZRCN\nRiFGIik9DBImvIpaQ5utcleM5JRJhY1DaYkZJ8+NYW/3EMptrOys62ypLOdwaSyzsPOh05dw15oF\nmqwXrWRJCYRCosogB4NBfOELX8C3vvUt3HzzzfjBD34AURRRXV2N5557DizL4p133sGrr74Kmqbx\nwAMP4P7778/1uatGjEQQiUbBmikIIfnipcRX/HwIB05ekjxOzQ2uxphXV5TAIlPdnG+O942htbFy\nxrkEBRG7jw2CoijZDQgJE85GraEt4UyosHGSYjDpFBcmp0x2Hbk4Q6s6F7ljAGBNFEbdmeeARycC\nGdUnSG3+tNrcEAiFRNUT8+c//znKy8sBAD/72c+wfft27NixA9dccw3efPNN+P1+PP/883jllVfw\n2muv4dVXX8XExEROTzwddu7px55jg4rGGACEUCQ+zWnHe32yhjLV1Cel3XpXjwsDLh/4kAjOzOCm\nG+ap/Ba5ZWwyiOO90lW4SuIguZheVOzEUiRSOOwW2Kxm7OjoxQ9fkZdJzSRVwF1pUTvZr301tRRC\nOIpsouCsmYHNKl0hLkVM3vXJFw7h8V8cwpMvHIpPhEp1zUkdBKEYSGmQz507h/7+fmzYsAEAcPjw\nYdx+++0AgI0bN+LgwYM4ceIEli9fDrvdDovFglWrVqGrqyunJ64WPx/GgZPqhkdUXilg4kMizn42\nLnuckhISoLxbH/fyePrFj+IPk02rGlSdW66xW82YkDEOyRuQWIuO1y8QhS8JUrXCvb3/E9lRn9mO\nvMynVnW2CZegIOLt/Z+oPl5p85dO+yGBoFdShqz/+q//Gn/xF3+Bt99+GwAQCATAstODwysrK+Fy\nuTA6Ogqn0xn/G6fTCZcrtVylw2GFyZTbG+X/e71LdeHU2hV1aKirwKXRKbgVwnwrmmvQUFch+7q9\nvATVjhKMyITzEh8mLGtCjcKx+eKW5fPR3euSPI+qihIsWVQJM0Pjpd+cwaHTl+CaCMBh5xTDhAxr\nRnVVaa5PPS9UV9vTOv7RB9pgLWFx6PQljE4EUFVRgpuWzcf2LS34w7/dK/k3zjIOf/e9DVl5c/by\nEjjLLHmZGqZF5/rJc2P4b/eWwMIqP4o8Ph7dMhGc2HvIXfNH7rkBDDPb9wgKYbgneTjKuJSfX2yk\nu14J6sj1dVVchW+//TZWrlyJBQsWSL4ejUrfknL/nozb7Vd1XKbwIREnekdSHmdhGaxdXot7bl4I\nl8uLQEAATQGixNewsAy+tO5auFxexfdsXVKpSpXr8OlhtC5xFtQgl1oY/M7aa/CBTCSBMzPwegLY\n0dE74zspeWIOuwWiEEp5nYqB6mp7Rt9j69pFuGvNghn5zk8vuuGS+a0nvDwGhiYgZJHrFCMRlHC5\n9wY5Mw3WRMEbyC4KMjoRwLlPx2Tzu7EahaNnR2Rz4YnvIXXNx8enJN/TqHUPma5XgjJaXVclo65o\nkPfu3YuLFy9i7969GB4eBsuysFqtCAaDsFgsuHz5MmpqalBTU4PR0au715GREaxcuTLrE88WteG7\noCCCoqj4zfg3rx+HKONU39o6P94WpURi5ev4ZFDWm3B7gwiERLAmQMhNIWxKpoIi/uq1LvgC0icw\nFQgphqelIGHCaZJb4bIdwZiKnXv686JVLYQjaGuqwaHfpt7wKpHqO6uZ1Jb8HkqypHxIxGu7embN\nRCftUQQ9oLgd/OlPf4q33noLv/71r3H//ffjW9/6Fm655Rbs2rULAPDuu+9i3bp1WLFiBU6dOoXJ\nyUlMTU2hq6sL7e3tefkCSigVeiQTy3l6/QIGXfJ6v3ffpE7MIFb5+qNvfg7PPnIjKmXOgzUzOHT6\ncsGMcYyhUfmH+LiXx6v/cVaxj9th49KaXjRX0TLXmSy3qdQZoDVOOweTOXtvsmlBuexraie1qblu\niQVhH8oMcpnLdQ8EfZB24uQ73/kOHnvsMezcuRN1dXXYunUrzGYzvve97+HrX/86KIrCt7/9bdjt\nhc9hpDPQYXxyunBpzBOUnY0MAJdGp1CRptZ1Q41d4Tz0oSGt9J1ZM40uBR3kyjILnnq4HQE+TPqQ\nVXDfhsXouTCBQZcPkShAU8A8hxX3rL1W1d/LhVyngqG8tdBZWAYHTqQ/oSyZw2cuo+/ihGTIOFWE\ny2HjsHpptarNnxpPm7RHEQqNaoP8ne98J/7fL7/88qzX77zzTtx5553anJWGbNvUiJ4LEymn3JTb\nWJTbuJSzYhtqbBmfB3AlhO0NotzKYtF8G473y1dz5xOakjfKqapp25qrYLeysFtZzc/LiLy59/yM\n9RiJApfG/Xjs5x/g1ta6lLlysvHuAAAgAElEQVRMuR53Oo86M4Oj2tR/JBY4AjNDxkrh/Qobi2ce\nuVHVmlPraZP2KEKhKf4KhhSExSj8wVDK49qapsNerJmBREEmAIChp0PMmcDQNLZtasSyxQ6YGRoT\nU4JujDEA1FdLbzSsnAmCQrPpzIlRhFQoGYfY2ESlHm6lv9dgGmdBSQ4ZK4X325fWqN4Aqq0lIXUP\nhEJjeIOs5mac77Ti3g1LAEyHruUKuiIRKAqCpGLnnn7sO34pI+3fXLKgxoYnvroKDdWzW5T8fBis\nTK7QaefwlS0thqhMzRdq1qNSLlPLPmPWpK/fTUpwR2rkZLo1CjarGRwrb2iddo7UPRB0gbGa7yRI\nNViCM1O4NO7H0y9+hLbmaoTlrDGym3zEh0R09WRXkZor/MEweCGCUZlReHLXZFVLdU48CiPrYqsZ\ndKKUy1Q7KEUNQjgCM42s1La0RCpknO4ktURi62jXkYuyufW1y2rxlS0thltnhOLE8AY5VWEXf0VO\nM5bHsijspFuXODO+cT0+HuPe3GgKZ8vYZBDnBjyyAipiBLjp+nnoG/AoznvOFqP3hwLT63H5kkrZ\nGcaAci4znULFGBSkSwe10FGXe+9MUAoZK7UyJZO4jsYmedncuoVl8OU7mokxJugGwxtkYPY0HIed\nu1KROtsAKT2gNrdLC6SoodzGwWlndWuU9xyfPXoxkbtvvgbVFSXw+HiUcCYE+DDCYlQ2354JRh+f\nFzMUB2XabmKkymXOXs8WWC0m2cLFhhqb5GuRSPau8crmKlkFLbWkUy2thuR1JJdbTx63SiAUmjmx\nEpPDXkJIxNMvHUnrPSwsA2eZJeNz4MwMVrXUpOXZ5JPT5+ULzCwsg+qKEpgYCh3HBnLiwc6F8Xmp\nWm9oCli/si6lYZIK45oYCq/v7sMHJy/F5x7HFOju37gEb+49P8OAtyyskO3HTQdRIcWjhnSqpdWg\ntqIaIFXVBP0xJwxyjFjYiw+JmuXh0mHrumux/8RQTgbF55K1y2vBmZlZ0plaerBGH5+nxlBEAWxZ\ns1D15iYxjCtGIohGgRLOBD4koMLGoq25Gg/e3iRpwIWQiENnhrOuzL4wnJ2UYDrV0mpIp+iNVFUT\n9IYxEnNpotROIQcviBlVWCeqKfn8oaIwxjQ1nRusLJuuPn3w9qaUHmy2CkdGH5+nxlA4M/yeYiSC\nH75yFJ1dg3G95wmfgM6uwRktVDEDzpkZBPiwJm1SE1Mh2Sr8VJRwJkSjUYgahM5jKK0jmgIooiZH\n0DFzykNOJDkPV2HjUGIx4dLolOSDimMZ2NLYyUsVKN1wrUNRgEMvRKPA9x9cicX15XEPYszjz6kH\nq1SsZARPRk11dKbf87V3e2Tzx3Lh/tj5aNFCpdSnrkSAD2P3sUFQFJVRFbUUSuto/co6bFmz0JDV\n+wRjMKcMcnI7TWIYb9eRi+jski9sCgoi3tp3Dg99vkXVZ0kVKL2vgdRgPnCWWWYYYyD3QxEA6WKl\nXFRzF4JU1dEWlol7i2pD1mIkgh3v9WL/cXn96nGZzRJnZnDdQgc+0CCPnC0HTl7StC5BaR0ZpVqf\nYEzmhEFWaqfhzAzKbRxO9qeuFN3XPQhEo9h+R7Pija0U3tWyTSRXSHlqJoaC1WKWNMhaebDZ9JwW\nA4mGInlecVAQ496i2nz8zj396FRonwKAilJOdrP05TuacbR3BLzKeeG5IiiI8e6GVHUJanrUjb6O\nCMZlThhkuXaa0YkAvnb3dQjwYVWhu0gU6OweAsPQig9NpXyh3o2xnKe2c0+/ZFh0QY1Ncw82nZ5T\nvZCOobjnlkV4+qWPJOf7qq0oV1tNvFJis5R4rtXlJXkZ15guydchkx71YlxHhLmN4Q2y0oPreP8Y\nvvuzA6ivssKRRo9wqoemmnyhHjxlqXy2lKemdA39Qe37kYuJTAxFgA9LGmPg6tSxVIbE4+NTdgnY\nLCZs27Rk1rke63HB7eXhsHHwTOW300AtyXUJcpvqQDCcN6UtIyvIEfSB4R+jah5cg6P+tKqfpTR3\ngasV1QBSVnEX2hgD08a4zGqWfK27dxRev4ARtx+uiUDKgq65SsxQjE3yMyYXKQ2IKLdxsLAyXh3L\nqMrHl9s4lJdK/3YxfMEw3tx7Pv7/r19pW3N7p38vt4/PqsBwbWstzExuRkwl1iUobQg/OD2MJ/7p\nIHZ09GparZ1I4izlx39xCE++cGjG5yXPpSYQMsXwHnLs4ScnCxljKhhGXZUVQV6E28uDoqeHSUiR\nXMQk5SWtbKrC+pXzsf/EJV1XVU/6pSdhjU0G8Rf/+xC8/jAcdhacjMyiEVqSMiU7MZPsDBlnnq76\n90wpTzKLnQcA7FMo/koXmgZKWBNaGytxrCc7pS4pEusSUrWMjXuFnCq6yXnnkWgUNEUZWuqVkF/I\nqklgaNSPFU1VePaRG+FQMDLJmtZSXtLuY4MIh6OI6tgYp2LSH0YU0w88OUlRI7QkZYoaMRO5v+Nl\nrqcQUtfvzodEBPlwyuPGvUG4JgIYcvkgargzjEQwrf1u1nZPH+t9T6xLUOotTkSLfvhklDZdH54a\nTjs6QiAoYXiD7PHxKb3jRE72jwEUpbgjT9S0Vrphz15ww2HXToWo0FhYBpVlXMZj8IxGpmImWoig\nqFWkikaBn/76OH7z4Wcpj82EUwqSq+lCAfjufa3YvnlmF4NaIZ9cpE+UrrPcJjUXGwPC3MDwIesS\nzpSWGIfbGwSiUdmirMoyywxNa2UvicdNN9Rqohmca9QUmQkhEX/+lVVgr7SKzVXPOEamYiZaiKCk\nM4Zx3Ctg3Kt9WBkAJv3aDUtxlllQLVPMdrVlzCX7nXORPslk3KURpF4JhcHwHnK6EoEO+/RDQW5H\nnvzATOXtbL+jCZvbG+C0Tx+TmxKY7FFziWLXJia/mE/0WjizbVMjNrc3oLLMklbkINO/i5GJ/Kve\nUdqMxFrGfvTNm3DLslrJY1obKyX/Ppu1o3Sd5Ua1zuW6CkJ2GN5DTnfsYeyhoFY1KpW3Y+XM2Lap\nEaIYQXffKCZ8AigKusstO2xmuH3KBUKFyBfrfUZypiIUWohX3LdhMXouTMjKZhYLNAWsb6tXtRnh\nzAy+dvdSWC2mGfOOI1Ggq2dkhnCPVmtH7lkQjUax+9hsdb+5XFdByA7DG2S1Yw8ry2Ya3OQHptIM\n4FTGe8d7vTMUlfRmjAHAYjEDCgZ53YraguSLi2VGcqYiFDGluEyM8q87zxW9MQamjemWGxeoNpKx\ne1MUI+jsHopHwDxTIXR2D6F/cBJPPdyu2dqR2zyJkQgoijKk1CuhMBjeIAPTBlMIhbH/xLBkaNZh\n4/DUw+2SY+DUzABWumFfe7cHe1PIGxYS1kzj5mW1OHZ2RPG4KX84Lx5povgCAEPPSM7Gg+NDIj48\npV0bUyGpsLEQQiL4kKj69+RDIk6eG5N87eKID6+924MzMgVnma6d5E0XkegkaI3hDbIYieCN3X04\nfGZENk/qmeIR4MOSBjmdXXbyDfv67j7FgRWFxsqZ8MRDq8AwNPal2DScH/Kk9cBMFynjtHShQ7aY\nxgiFM9l4cC63P63uAT3jDwp4+qUjaW1IXG6/YqHV8d4x2YIzrdcOkegkaEXhk3A5Zueefuw+Ngg+\nLP/wkivCmPDxeP+4tKHq7nUpFokUgwfj58P4ixc/wv/611MpVZ88U6GcKnJJ9XJ/cHpYVtGq2Atn\nsp4vTem1PDB9hDBU9/GKkQh+9V4PfvzaMcX3nPQLoGUuUbGvHYJxMbRBVi3A3zSzOjMmlff4Px6E\nIGPIxyZ5RQNVLB5MJAoMuKbgCygXdDns8lODskX5d5J+qhZ74UymoiIxqitKZKt8ix2lDUl8g61C\n6lauu6LY1w7BuBjaIKsWT0j6/5i3puRVA9M9zrIUmQcjpni+rWqpztlDTOl3EkIibllWm3F7kF7J\nVhyEMzNYu1y6/UeJYliVSlrxajbYctAUsLGtrujXDsG4GDqHrLap/0TfGO7fMJ0fTeeml8s7A1c9\nGDk1n2JifY4fYkq/k8NuwUNbWiCERAyM+NBQY5O95sUEZ2awoqkKeyTaZlYkRGyUJgw9eHvTlSpf\nF8a9PChKXn89hg4L/GchtyFRu8GWIwpgy5qFumiXIxCkMLRBVuoRTiSxyEPtTU9B2UOOeTBSfYrF\nxu1t9Tl9iCn9TiUWBv+ytx8n+kZ12YecDXLeKgV1FdgMTePe9UtwW+t8+INh/M/Xu/N27rmkZWGF\n5L9nopqViJPkjgk6x9AGWYxEEIlGwZooCGF53yBxR672po9C2UMGZnowmT5E9ICYB7dq26ZGSZGL\ngZEpDIxMxf9fr33I6cKHRBzvk5azPN43hkgkOqN3Pfl7Jxtsm9Ws66liauDMNCiKwsHTw+i54Jbc\neDU1VGDst5czen85JS8CQS8Ut4uRgp17+rHn2KCiMQYAq8UE05W5rmolCS0snXK3nSj398NHboTD\nXpy78/dP5L6POixG4Q8qF5YlUuwC/kqRmHFvEN0yxjr2vZOr0r0yYzRjmE3TBk+v1DpLwIciCAri\nrIrrWGX1H//9ARzK0BgDwObVDdqdMIGQA/R7h2ZJOrngiyO+eKsFHxKxsa0eG1fVw6k4qUl9eQxn\nZtBQY8fqluLUHj7ZP5YT45eoMZxufjAXk33yiVJRV0UphwmffA+tayKQdnETTdGoKrekPrBABHn5\nyUk73uvF7mODsvUYnImWbXGK4bBxM4bCEAh6xLAh63Qf8N29LghhEaf6xzHhm87ZsWYTAOkHIy+I\naYsLxAqjDpwcKoqWqBjZCClIFSVJ5Udbl1SmlR9kzQxsRVzcpZQ3Ly0xgaYhW+SGaDTt4iY+FMHQ\nmD/j880lFTYWHpkNyNhkEB+cUp6WlqobAgBWklYnQhFgWA9Z7VDzGGOTPN4/fglu31VhiuFx+QdY\nJn25sSIcPWpZK5GJkEKsl/vJFw7h8V8cwpMvHMKOjt64MU4WAensHoLVoixOkkhQEPH2/vNpfhN9\nsW1TIxbU2Gb9+4BrSvZatDVXodphzWjOtl7XXesSp+y9yploWS0AtVg5Bl9ctyir9yAQ8oFhDXKu\nx9MtvcaR0Y57yOVTJWqgJzIRUpAyuh1HB7DjvV7ZcOtUIISNq+pRWWYBRSFlGLLY88hKefPEa5Hc\nf82ZGSy9xpnns80dt7bWyd+rGjRO+3kRP/j51Q0hgaBXDBuyBq6GiLt6pvs0tYIz09h+R1NafxPz\nDI98nHlRSiFoqC5NuwdZURayb1Q2PDnh47HlxgV4YGMjzg968NwbxxU/p9j1rJXSKonXQqoPefsd\nTTj828sQi720GsDz/3oK7UtrsGl1PU70jcUnJ7UsrMDB08rharUEBdEQ1fkEY2Nogxyrcr77pmvw\ny3d70N03qknYrr2lBlZOfXgVmD1IoFjwBUKSIyeVUDI0Hp+AChsHt0RBViw0zpkZLK4vR2WKnLJS\nKF1JUEMvpBJEiZ271IaDoWmYTRREQf2Crq+yYnBUf3lkz1QIu48NYnN7A370zc/NmPbVc8Gtacug\nEaaEEYyLYUPWwNU85p//00F09WpjjAFg622L0zo+W8m/QjLhE9KuZlbK3zvLLFjZXCX5WmJoXE3K\nQSqUrpS71htK3zFVmsDj49MuDFwwz4bbVqQvt5kvununW71qHFZwZibttJOa6HaxV+cTjI2hDXLM\nK9W6ovnt99MrJspW8q+QsGYq7YKuVIZm++YmbG5vSKlPvW1TIza3N8B5pX87Jg9eWcbJ6lnL5a6V\nJggVkth3TFere9p7Tu/2PXRmBId/qzz3upBIGcttmxqxfmVdynoCAAAFrJLZ7MUgk54IesawIets\nvNIKGwufX4BccefZC27F2cDJ4dJsJf8KiZihTFfMoHT3jsZzgm3NVXHlJbnB7snXbtumRoiRKI73\njsLt41FhY9G6pFJSOjPVSEM9hiqzGnKfwU+j54LCZGMZq7s4fX5MlQqZ027BI//lejjLzuPAyUuS\nfctk0hNBzxjWIKfrlVaWWdDaWImNbfXo7B7EhycvISwT5nR7ecliIiX9YTWa2npEjEyPkmyosaf1\nd2oMTWJ+VO7aRaJRdHZd1QOf8Ano7B4Cw9CzinPUjDTUawFYukPuPT4+63YgvZFsLNOtu2hrrgJD\nU9i8ugF333QN3tp7DmcvuOH28jM2hGpI3BgC0H09AsEYGNYgp+OVVthYPPVwO+xWFjs6emcYACnk\nwl7JD5BE/eFtmxrh84eykv4rGFmMklRraOSunYWVDstKebxqiqSMQjFHXaSoq7Livg1XazPSiXBZ\nWAa3LK9FNBrFky8cmrGhe/bra+Dzh1Qb0+SNIccyAKIIChFUGmiwCUGfGHZVpVMQMuET4AuE4PUL\nOHY29UNAKuyl9AA5enYE//TOGfRedKs6Hz3BmWlUV5QAmCl1qSVK104u/y+Vb8ymSKrYyHWffb4Z\nGvVj555zGUmpllpMiEaB3ccGZ9UOvL3/k3iRmBqSaxCCghhfg3qvRyAUP4b1kIGZeczxySAA+bTb\nz98+DV8gJKshDEx70u1La2aFvfiQiPODHoWeUgFHVBh6PbK6pQYmhsKOjt5Z4eSt665Ny/uQI5Oi\nNzmPVyl3bTSmoy4CDum4UCsd9nYNorNrEJVlHJYtdoJjaVUFmeOTPI73yg/jUFs7oNYr12s9AqH4\nMbRBTs5j/sfhC9h3XHpy0YBrSvLfYzhsHJ555MYZ4xYTw1tjkzxoSr/yhJly34YlsuHkAycvgRfE\nrGcUK4VfLSyTVnFOVkVSRUSsveujs6mNsYWlUWox6z68Hbt1xiZ57Dt+SfXfldtYTMi0MqVTO6B2\nY6j3egRC8WLYkHWMxOKMDW31Gb/P6qXVs2YfJ4a3ABT9PFopfH5BIZw8e1ReJiiFX9cur82oLSiW\nuzaiMQam115n1xDUtFdXV1jxo2/ehD/ZtiL3J1YASiwmlJdKa3unUzugVv/eaPUIBP1gWA9ZqmpX\nbnybEg4bh9VLqyXD1HKGiioyT5mmpDcTTjsHUJTqcHI2obxUbVJG93jTgQ+J6OpRH6b2+afTME0N\nFeDMtK5bnzLhkoL6WGtjpep1ozSBKxGj1SMQ9INhDbJUmDVdKmwsnnnkRrBmBmOe4IybWim8FY0C\n9hIzvAHlofF6Qc6zX9VSjeqKEtXVvNmE8uZKqFkLPD4e4175Wodk3FfU1sptXFFtFLOhsoyD1WLG\niT4X9nYNTo/4bKzC5tUNcJZZZNdW8saQjfXHCyKcZcatRyDog5QGORAI4M/+7M8wNjYGnufxrW99\nC0uXLsUPfvADiKKI6upqPPfcc2BZFu+88w5effVV0DSNBx54APfff38+vsMstJKqXN1Sjd98+Gk8\nR1xhY9HWVIXtdzQr5j1jPc2p2qf0DE1NRxlMDKW6h1qLUF5ym5RSb/dcbT0pt3Fw2lnVRpmmgBLO\nZMjeZSkqbCxuWOzE+wl56LFJHp0JRWNya0hqYwiQPmRCfkhpkDs7O7Fs2TJ885vfxODgIB555BGs\nWrUK27dvx1133YWf/OQnePPNN7F161Y8//zzePPNN2E2m3HffffhjjvuQEVFRT6+xwwylarkzDRC\n4Ug8XBqJRrE7wRDFRCn6Byfx1MPtsoYqtoumKGBv96CqPJ/eiESBzq4hMDQt6TXkSwVJqbd7rk7t\n4cwMVrXUqBbNiESnh4R0HL0om57QG5yZRlWFBYOu9IdheHwCTvaPyb6uZg0lbwxJARchHzDPPPPM\nM0oHNDU1YfXq1QCA3t5enDlzBh9//DGeeuopMAwDi8WC3/zmN6ipqcHY2BjuuecemEwmnD17FhzH\n4dprr5V9b79ffdgtHUwmGgfPDCPAp5czfvJ323HnmoW4++ZrcP0iJ15/r1fyPSanBHj9AigKuDTm\nR/iKvKSFZXDbyjo8eHsTGJpGy0IHPjg1LJu7pikAFMDQlG5DiYMuH25vb8Cq5hqsX1mHW5fPxxfW\nXgshLMLjE8ALYTjLLFi7vBbbNjWCzkJEJBk+JGKHzG/g8QlYv7IOpnTGUGVIaSmXs7WaKdcvcsAX\nEHDxsjfl2qks4zAVDKGzeygTtc2cMs9hwVQwPOvfN66qx6NfWg63L4gLl31pvSdrpiXfM5l8rqF8\nosf1agS0uq6lpfJRRNU55AcffBDDw8P4x3/8R3zta18Dy05XNVZWVsLlcmF0dBRO59Wh6U6nEy6X\nctjY4bDCZMpNCGjtinq8s1/9EIjyUhbLmmtgYacvycCIVzFvevDMZfBJhjYoiLBZOdTOK4coRvD3\nvz4Ot8Ic5r/9w9tgZmn82fMH4POnfoAUAj4UwVvvf4I/2T69KWu48u/f/fJqBIUw3JM8HGVc/Lpp\nyaXRKdk51m5vEAxrRnVVqeafK0V1dXrSobkkKIRxYdiLtSvrwTAMjv72Miam5B8U7dfXojuNIrB8\nctkdxKL5dviDYYxOBFBVUYKbls3HI/fcAIah4SxL3zMVVBatjU0GAROjq99WK4z4nfRArq+r6qfo\nG2+8gY8//hh/+qd/imjCljwqsz2X+/dE3O7czWa9+3MN6O4ZwcCIT5VXUFpigtcTgBfTecsfv3xE\n8fhkYxzjgxNDuGvNAry179yMcHcyNAW8834/ei5O6NYYxzhwfAAPbJiunk4e/mAC4tdNa8SQCIdN\nOldaYeMgCiG4XLn45JlUV9tz+jlqZzeLkQh+1dGL/ceHIKaRBlm2sALvHvpMgzPNDReGvbi1tRZb\n7muNF1yNj0/B6xewvzu9OgwK6c3ceOPds/jdLUvT+gy9k+v1OlfR6roqGfWUBvn06dOorKzE/Pnz\ncd1110EURZSWliIYDMJiseDy5cuoqalBTU0NRkevquWMjIxg5cqVWZ98pry59zwujqgPdQWC4fgE\npx3v9aYUCpHD7Q1ieHwKB04qCxtEokBnt7RIid4IicDwuB8fnLo0o7iqdUklNrcvUKxazQbOzKC0\nRNogl5aYi77AJlaw1tUzgnGvgIpSFm0t1di+uUmyYG3nnn7s7UpvzVSWWbCw1q5r3etIFHj/xDAY\nmsaWNQths5rx9v5PcPTsiKJynhTphuQPn7mMBzc1Ff1aIhiDlMmTo0eP4qWXXgIAjI6Owu/345Zb\nbsGuXbsAAO+++y7WrVuHFStW4NSpU5icnMTU1BS6urrQ3t6e27OXwc+HceBkeg+uWGsIHxLR3Sct\nw6eGChuHXYcvZNTzrGd+88Ens+YMd3YP4YkXDuPJFw5hR0cvRI2r1/iQCH9QunXMHwxprqmdDxL1\nwF/f3YeOowPxDcfElIDOrkE8+/KRWdeSD4k4djb9wSRtzVVgzQxaFjo0Of9csu/4EB7/xSF8//kP\n0XF0IG1jnAlBQYQrh5E6AiEdUnrIDz74IJ544gls374dwWAQTz31FJYtW4bHHnsMO3fuRF1dHbZu\n3Qqz2Yzvfe97+PrXvw6KovDtb38bdnth8hivv9erSgM3mXIbB4+Pz+pB0LywAr0XimeIhLOMA2di\ncGlc+aHUN+CRfS1Xlc/K4xSlR2DqleT2LYedhUcm7zvgmsKO93rxUEIo1ePj4fal19feUF2KSCSC\nJ184pFvvOJFY9XfeN7MaFiISCNmQ0iBbLBb87d/+7ax/f/nll2f925133ok777xTmzPLED4k4myG\nBtHnF1Bu41CZYXiPM9PYsmYBDp8pnhGLX97UhCUN5XjsHz6AUi2M15/aGGgtum+kcYrJ7Vupeoi7\nel144EooVYxEsOvIxbQ/c8A1lXHqpdjhWBqh0HQLY+sSJz48MwxeYpNuYZn4NDMCodAYTqkr0x5k\nAPjLV49izfXzsKKpCnuOyReTmBgq3uqUSI3Dilpnqa7zdck8//ZpWFga5TYOowrnbLeaUxplrUX3\nlaQMYz3PaguiCkkmQjWeqVD8Wk7rVhevyEwhKOXM+KOHVqC6ogScmQFNU9gtcU+vXV6b9bophjVI\nKA4MZ5CzGdw+6Q+h4+gANrTVwaIw+k3KGAOI5zvVKlvphaAQQVCQv140BbQ1VeL9E8OK75MLr1VO\n4/q+DYslR0LqUcErk02i086h3MZppjpnRDgTDV5GeWzCxwPRaNxQPnh7EyiKml4vXh5O+9X1kilE\nRY6gNYYzyJyZwcqmKsndsFpO9I1llIOO5TW3bWqEKEaKpoo6FXXVpXhoy1KwZhO6e0en+zclyIVS\nl5zG9Wvv9szwGvWs4JXJJnFVSzU4M4MRt1/RmK9uqcaxnrlnsGudJfijB1bimZcOS96rrJnB3715\ncpah1FIrnajIEbTGkNu4bNWI3DKzVVMR8xAZmsZDW5bCyhkjfHXNPFvcMP7om5/Dj7/5OWxcVZ/2\nSMRsiEkZmhgKr+06i30y/andvaO6q77mzAxWNFVJvlZXVYJkZ6qhphT3bVgMQHkkYGUZh9Pn5SUi\ns2Xtslpw5sIUPK1dVov1K+fLvj48HsDz/3pKduMcFMQZHQGx8aBajeVUilzE1mBiRT2BoAbDech8\nSMSJLNqWAPlxhKlobayM3+hev2CY1qcT/WPxHm3OzGB+ZSke+nwL+I3KubNc5NZ27ulXjDzodXi8\nnFmjKXqW1vnAyBT+pfMc/usdLYp59MV15ThyVl6Bq9ZRApOZxsBIZoVd54YmsWxxJY71ZHc/pYvT\nzuErW1pgYijQFIV9x4ck78dBV3qSml09Lty2oi6eV84G5Q6AIF7b1YOeC24SyiakheEMcjZFXTEy\nFd/fvLoh/t8DI76iEPFXgy8QljRyyQL8MbTIrUkZczX5VD1WX/MhEcdlNolyVdAfnBrGfRsawZmZ\neOShq2c6/xnbMPYOTCh+bjAk4kcP34h/6Zz+LSZVVMonMjzuhytFO1wuiIXrAWDLmoXYK7MBS/f+\nGvfyePrFjzQxkEppCNbM4MPTV+stSCiboBbDGeRsirqA6dYlK8ek3fPJmWmU29j4/zfU2Ipmsk4q\nykvNaRk5tbk1KaOrZDDd/aUAACAASURBVMzVbLb0ODw+k01iUBDhmgigofpqukCMRNHZNRhfU54U\n/fKeKQE73utFzwV32sY4Rq5jPDQNsCZGdt5wtvdzMokhbDESxUOfb8nofZQiF3JJM63bAgnGw3AG\nWflGSQ0fimB1S82MHa7av/vrX3XjqYfbwdA07FYW8xzWlIIbxcAN1zpUP0RS5dbuXb8EJoaaZXSX\nLnTgy3c04+3952WN+b3rl8g+nGkKWN9Wj63rrsWI26+rFpSMjUqCHjwfEnGyP73QMWui017H+SYS\nmd58rF1Wi69saZn1m5kYCiWcCYD2bYT7ugeBaBTb72jOyFOW6gBYurACH8hcc72mUwj6wXAGGQC2\nrrsWB05eyjiHe9+GJeBYBsd7R9Mq8Lo44sOOjr74rvtPHlyBP/2Hgxmdg55QM8ouRqrcmsfHo+PY\nwCyj+8HpYRw5OwyaljaiMWMut9lat2I+GJrC0y9+pLu8ndImkaEhOSjCwjKoTnhwZ+Jl8yqnHumB\nsxekw+9v7O7LmbhJTE+eYeiMQslSHQAAcPaC2xBiNoT8Y8gKA58/JDuNSQ079/TjRJ8Lbh8vW4wj\nx7GeEXivzMwUZfqVi41PLnlVV4qW2zhwrLRRZc0MSjiTrActhOVlE2PGfNumRmxub5hV4W1i6Fla\n27HKWj0gd95rV0hXEt+0bN4Mb1Gp2toIwo+x3zcRr1/AgRPKQ1q0INvK/MTK7djmSwo9plMI+sKQ\nHnK5jYPDLj0lSA2Hf3tV+jJdkzo5FcLTL32E9qU12LruWjizOA+94E1QjVJXOS1/1TItuktsKZPy\nSp584ZDk3+klbyfXT/2r93qkj0/SV1byso2w7Uv0HmN1BEc+viwr/KElWoeS5cRsctkWSDAGhjTI\nSmP78sGET0DH0QH4g2GsaKwqeoEQZxkHm9WsShnL4+Nle0N5QQQoKqN8arJ3kVjhfWlsSvb99Ja3\nSzxvperr431juG+DOOM7X33QuzA2yRumaBCY+fsmFwXmGoqiYLOaNXs/uc0XgZAKQ4aslcb25ZMP\nTw/jxLkxzHfqwxhkyrLFTry9f/b4RamQcGw4hxQVNg7lpaxsSG/msayi6Eii6ELHUfnBC3rO26nJ\ntycSe9C3LqkEkL4x1uvNvqqpClvXLcaI2w+vX8i7VKgYieKtfec1f1+tREgIcwdDesgeH6+b4Q6x\nB66S7q7e8QXC+PTSuORr3b2uGSFhpdCq28fjh68cwcqmKqxvm4993dL5QQvL4NlH1iDAh2d5F1Jt\nUVMKm69EsRa9kck0Kz4k4uS59NW51lxXg2NnR3QZ3+ZYBk+/eBjjkzwqbFzGSnnZcLx3FA9sbNTt\nWiHMDfS6ac4YPiTCFxBA66zShdLbCaXByf5R2Q3O2CQ/y5NLLGCSOn73sUGYGQYb2uok33Pt8lrY\nraykdxELZyZ66kq644liLXojkwKgTHPwn12ehF5rDA+euRz/PQthjAFgYmr2OiYQ8o1hPOREz0kv\n3nEiQkjELctq0XNhAuOTQVBFlP8LKTzJaQpX+kSvEgut3nPLIjz90keYkBCw6O4dxbNfXwMTQ6ue\nwJPu5KPKMgtsJWbd9SUnkm4BUKY9zZfHpQeCzCVoGrNkSmM4dZzaIMwdDGOQ810Iki4OuwUPbZnu\nT/b4ePznRxdkJQGLiUgUCPBh2K3srNcCfFhWTcrtDcLnF1QVv8Qqu4WQmJZ3aLWY8MNXjuiuLzmR\n2OZly40L0HNhAi0LK1BZXiJ7fLbCN8VEhY3F5JSg2cZVzhgDpCWJoA8MYZD1MDOWNVMQQvJPjmWL\nnfEbvsZhRTRaJO5xCipKWVnPQm2ONB1NbE5mTrWFZWDlTJjw8XDYLbBaTLg4cnX4gF71hIVwGD/+\n5y4Muqa1z2kKqK+24YmvrgJrmn17ipEIotEoLCxjmOElUnAsjUe/tAx+XsRPdp7Q/L1LzCZ4/AKc\npCWJoCMMYZC1GCgBAGYTQCOz4islYwwAx/tcMJtobNvUCH8wjK7e/E7QyRVtCYMAklHy5tR4JFKa\n2HLc2jof99yyCAMjPtQ4SvA/ftUleZxe+pJj/Pifu2ZsHCLRacW3H/9zF559ZM2s43fu6c9q1nex\nwAsR/Oifu1Bq0f4RFQpF8MRDK8GaaN2mMghzE0MYZCVPjDPTqiUE11w3D1vWXIN/338exzIwmEp9\noZ6pEDqODuDsZ254pgR4MxT7LwRWjoafn30NF9TYcO/6JYo52kxFEvx8CAdOyldhJ3rDK5oqEY1G\n4+HpchsrmbcG9NWX7PULsiMEB10+eP3CjFSAHiJB+SYd2Va1OOwWTUYwEghaYwiDrOSJrWqqwmcj\nPgyNph7ycOYTNz48dRkVdjYj0QU1x+dKlzeX3LehEUNjfnT3jmJ8MohyG4vlS5wIh6N46n8fgtsr\nyOZoMxVJ2PFen2xIVgiJ+POHVsc9nLf2nZvx28sZY0BffclKIzoj0enXr1vkjP9bOpEgMwNYLSw8\nUwIqbCxalzjx/gl9DZpgaMBuNWMizclq2bKiSb+tcIS5jSEMMjDbE2PNDIAoDv5WfoB7MrEHuTtD\nhS+nnUNrYyUOnh4uKmH/VLQsqMCGtgbcu34JxieD6Dh6EQfPXJ5hMFPlaOXyxFLwIRFnP5PuewYA\ns4mOezjpeo16Kt5pqLEpvv7R2RE0L6wAQ9PgQyKEcAQVNrOq0aA3LK6Ew27B8d5RTPh4nDwnfz0L\nhRhBxmMhsyFSLO0NhDmHYQxyoif22q6egoydW9VSDTESNZQxBqaVjGL834OfKV5bLXK0Hh+vKHvK\nhyL4dWc/tm9uSuk1OmwcPFO8LvWEWTMjO+0JAPYdH4KJoUBRFLp6RtKSgrWVmNDZdTXXrBQ1KCRK\nlc+5Ym/3ECgg47GLyajTdycQUmMYg5xIzwV3Xj+vvJTF6qXVCIsi3j+e++k0+SYYEuM61qn6X7XI\n0ZbbOFQo5IEBoLNrEAxNKc5Iriyz4KmH2yUVv/SAx8fLGuMYH5wazqia+ujZ4iwaZGhqxgYwV3R2\nDyFKAV/9/NKM30OqC0CPrXWE4sFwq6YQspnLljgR5EXs7b5UNGIf6fD/Dn4WV8dKhRY5Ws7MoK2p\nKuVx3VcK75TUruQUv/TA9PQq5WMybW0q1paofBjjGPuPD80au5iokZ4KKdU4PY38JBQfhvOQ1XhX\nWnPw1LAhDXGM4/3qtZO1ytFuv6MZ/YOTM1qCkkmckQzoa9ydmjCmEBJTesiE3CFGgNPnxrBsSSVM\nDJWWt6tUu6C31jpC8WA4gxzzrvI58tDIxlgtFpbBra3zMzaCyQaMoWk89XA7Xnu3BwdOSEceKmwc\nhHAEYTGqm3F36YQxBxQ2G4T88Pzbp1FZxsHCmTCY0AGRqkhRzaQuPbTWEYoLwxlkQJ13RdAGp53F\nddc48eU7mmHl0l9OqQzYw3deB4amZxQoxfDzYTz94kcz/qbQD0EpMRO5B3uNQ14iEwBYEwUhTHZ7\nuWY6FSNtXOW83UwmdREIqTBcDhmYrrh+4qurUF9VWuhTMTRrl9Xix793M77+heszMsaAujzcvesX\n45ZltXDaOdDUtDcOTOdJ9ZS7SxXGTM5LpsqXEmNceKTmUgOZTeoiEFJhSIMsRiLT+sCjuRHhUDNJ\n0WFjwZkMeXlRbmOxub0BD9+9NKsHTyoD5ufD2NHRi6df/AgHTw+Doqbn+lo56c+UMnr5RCmMOT4Z\nxPlBz4zzY1IspIpSQwawigolbzdxzChNTVf1b25v0FVrHaG4MOQdv+O93pyGq29trcWpc27Z2a03\nXT8Pv3vXUvy6s18y1FrsfOfe5Vg8vzzr90mVh3v9vV58kNDzPDbJY0xB6KXQuTulMCZFAX/zxvEZ\n4fW+QY/i+9VX2zExld8WPsJMlLzdTFXoCAQ5DOfC8SER3X256cGkKWD9yvnYsuYaTCgMM79n7SJw\nZgbbNzehodpYYXPOTKPcyuLjT8fh9WdXyR4zYFJU2Dicleknl3MsC527UwpjRqKYFV73B5Sv34pG\nJza3N8Bhmz3aMh1oCmhuyH4DNZegKWBjW50qbzemQkeMMSFbDOche3x8Vi1PnJlGNBKFIM7O30Wi\nwOHfXgZNUXCUcZLeXWWZBc4yS7xYyR8sniESajCbaDz2jwdVjQqMEaugLuFMM0Q6lDTIl17jwEEZ\nRTC51KsecneJLVjjk0FQMpro3b2j+JMHWhXfa9m1Tvz83z/OuoUvCmBjWz16B5Q9csJV1rfV46HP\ntxT6NAhzDMMZ5HIbh0qZsKEaUsleBoUIOruHZAUdYkZhR0evoYbIO8s4CCERvsDV6TuxUYHPvnQU\nT33txlnGMLGCemySjw/scNpZrGqpwbZNjbI9xPesXYSu3hHJ2cfJZNtylYqgEFacaJVIYhjz/KAH\nf/PGccnjxr1BMAyNUguDqeDsvHephcHP//1jTVIvTrsF11/rTH3gHCZdiVUil0nIBYYzyJyZgdVi\nztggq53ylCzowNAUNlwJcRlxTN53vrQMf/nqMcnXLo378djPP8DqlpoZ+sDJLUCx6zruFWa0Aknl\n4XZ09KoyxgBg5Uy4d/0SzeUKYxuKk+fG4HIH0pJG5MwMFteXy+eUAez66AL+6vdvxp//4tCMjU6p\nhcG3vtiKv3m9W5Pv0dpYCbuVxboVtdivs4lPeiAdiVUil0nIJYZbQXxIxFSK3JwSmYp8iJEoxEgU\nDE2nNSavWPj40wnFazPpD6Ozewg/fOUoxEhE1aYksSo6MQ+X7oZmwsdLtqZkS2xDMeIOZNRelSqn\n3Nk9hHcOfIqfffc2PPcHN+ORu5bilhvmgTWZ8Nzr3dCq6Wnz6gYAwFe3LIWJOHOzaFlYofpYIpdJ\nyCWGM8geH5/x+MRap7JQQyqmxy6KisVKxQgFYEVjpapjL474sKOjT9WmRK7HM90NjcPOaV7MlW5P\nsRzbNjVi46p62UK02HtV2Dm8d2wAH565LFu9nwmVZRycZRYAgD8YRrg4Ja5zBk0BH54exh///QH8\n2S8O4Yl/OogdHb0QJcZQabUmCAQ5DGeQszGGw+OBrD6bD0XgmggoekbFCE0DzvKSlH2zMY73jqKE\nM6X8HeSqotP9DZsaKuDx8Zo+ENVII6qBoWlsuXGBbHQh9l65atWzWszxEOwnQ5Oav3+xE/tdktMp\nUh6vVmuCQJDDcAa54MYwOn1nb9vUiI1tdapERPSOGAGGXD7Vg90npngE+HDK30GuKpozM1i60KH6\n/HouTuDxXxzCky8ckvVu0kVpU5Bue1Ws0FDuvUo4U85a9aYCIfAhEWIkUpAZ4ZngtLPY0FYXV2Qr\nBFIer5ZrgkCQwnAGGUhU0MnvDWJhGVRfEaVgaBpb1iyM2eeiZ2JKAGtWt1ycVx5OW9cthoWV/hsL\ny2DrusWy73HvhiWqz83t1T6fp6U0Yqr3CvBhxdambPZ0sfz6zj39+OisvKiKnhj3CrhzzUL899+7\nCWyB1O5iHm/iOMZ010Q6oxwJBMCAVdaJRPNsDasqLDAxVx+fSspNxQQF4MS50ZQtYTFiD6cRtx+8\nTKW0EBLh8wuyGthCFg8xrcbfxVpfTp4bw+hEIKuxjkojIsNiVLFVr7bSiktj/oy+Q9wDL6Kqf5oC\nSjgTdu7ugxAuzHxKW4kZ/3H4Ak6fH5tRTX3fhulNpNKoT1KJTcgUQxrk5HabfDEwMoWde/rjU32U\nhC+KifrqUpw5P57yOKedw6qW6vjDKZuJONn0k2sloRnrKf5v95bg3KdjWfWchsUoNq9uwD23LJrV\nXsPQkF0nC2ps+PoXluKZl45m9LkxD7yYqv4j0el8bVdf4TYRk/4Q9h2/OsI1Fn0RI1E89PkWRbnM\ndCZ+EQiJGG67Vuge4MTcEx8SsbGtHjddP69g55MtNAV87e7rUj7Qb7q+Bj/+vZuwffPVPuRswr6c\nmcHKpirZ1512TjbHqHU+z8KaMpZGFCMR7OjoxZMvHMLjvziEH75yBB3HBmZEUoCZgwooABU2Fhvb\n6vDUw+3YcyyzDd2Kxkps29RYdFX/nJlGMBRW3YeeT/Z1D+K1XWdhYijJNUEqsQnZYDgPudA9wG5v\nEOOTQXR2D8ZDVg47W9Szbc0MlTL03ntxAm/tOzcrLKcUqlVCjETQc2FC8jWWobCiqQo0Bew+Nnt4\nR1vztCFXq66lNYkqTm/tO6fKW5IbVMCHRJzoH8voPL5yRzPCYhQeH4/WxqqiGXTChyLYI/G76oFY\n/zjD0JLerppK7ELP7CboF8MZ5ELnbR12CzqOXkRn99Vw13iGfdF6wGyi4Sy3pAy9J6tvxVAzEUdK\nhnBHRx8GXNLjMwUxis6uQWxYVYeG6lIMjU7FtbXrqksRjkTw5AuH8p6/S84dOuws/Ly0RySX544J\npMTw+Hh4pjLTQ3+9ow+fDk/C7RXgsLNoqC7FoGtKM8GRXNJ70QPOTKuuW8iUWkcJhHAkXhiolgMn\nL2HrusWzaiCySdMQCIYzyLFQp5TnlA9aGytxsj83LSyFgA9F8G/vn0cUgIWlU4YR1RoaQL74Zev/\nz96Zxzdx33n/oxlpRpIl27ItY2Nz+yABDDZHgjkCBEKbTbb0IQ0JTdo06bFt02O3R9IkDUk3SXN0\n22y7PdNm0yZLQ0ufZdO0zxIIJHG4wYCB4ANIOIyNZVu2JUsaSSM9f4gRkjyXpNHpeb9e+9oU6xjN\n8fv+vtfnu2wajnVKn8OWY5ejJEwDwVAe/1LfNUOezvxdbO5QbCMm11sy0FrZcq6xtEa0Ug06vDm1\nMbQ7GFSUGNEzmFgxmxwqS4x49LPzMTjsgZcN4Jf/fVL2Rt7jZfHHHZ144Lbro/5drG4kG4afqGQ3\neWeQAWTUA1g8qxzv5EhoUC57TvTC45WX+4onLCdU/OLy+EXHW3LE6omLoVTltRDx1i7I9Zacbl/C\ncq65DE2RKTXGhAaom1KMTb87GN4MxquB337BHm6HiiTRNI2KiiyD/Pzzz+PIkSPw+/340pe+hDlz\n5uC73/0uWJaF1WrFCy+8AIqi8MYbb+D3v/89CILAnXfeiU996lOpPv4xMD4Wx5MQWTDqSWigwajH\nL/1iHlweVjBkVWKmMbe2DG1nBmB3eFBsouFm/HDLNHaZQq4xBuQbGjED1n7ejiITlfTYwUjizd9F\nhtHlEG/tglxvaefhi7I/M5/wpljjMwjg3aPRVdQDIwwmlZvg8vgxMOKR/IxBBwPbkBvVVlPUv8tJ\n06io8CFpkPfv34+uri5s2bIFdrsdn/zkJ7F48WJs3LgRH//4x/HjH/8YW7duxbp16/Dzn/8cW7du\nhU6nwx133IE1a9aguFi+cLsSJFvU5fcHkiq+mjzBJBiyaqq3YuPqOjArr80HfuLlA1lvkONBrqER\nu05DTgaLrpuA/R9cUey45G4U+MLoS+ZW4fbFk0Vz0GK5Qz1FokCvhd0hf7wfENoUtJ1NrKAr11FA\nbE0UIYkCl8ePhz/diKdfPSK5IQwGgRf/dCw8SjT2/uBL06ioiCFpkBcuXIiGhtAg9cLCQrjdbhw4\ncABPPvkkAGDlypV4+eWXMW3aNMyZMwdmsxkA0NTUhNbWVqxatSqFhz8WA61NyrtKthL6zX3ncffN\ntQCEQ1bcg3rJ5oTdmVjBTjqhdRowvrHnJVFDA0gVv9C4Z209uvtHFdN3lrtR4Aujv9FyDi63VzQH\nLZY7XNpQmZC3lOmOgfGI3eFBn92NYZnrh1Axo4pKIkgaZJIkYTSGdnlbt27F8uXL8f7774OiKABA\naWkpbDYb+vv7UVJybQh6SUkJbLb09QNHejZKhjrjZU9bDz61okZWyOpX/3MyA0cYP2XFBnTbxubz\npAyNw+XFpT4nqstNMBupqL+Jza0O5eUIPH7fAvzXjg7sPXkFXpnVttXlBaibVIzjXQNx5++kekil\nctBiuUOSIOL2lsQ2LVoCyJCIVV5jMetRXW6Ku1Mj1TUKSsPX2aCSeWQXde3cuRNbt27Fyy+/jFtu\nuSX870LylHJkKy0WI7QKDWh9aduJrFDEYnwB+DUEqq2hSEG1wOuGnQwu96euaEVJPEwAtzZPxeHT\nV9A/5EZZsQE3zq7E/bfPAkkSY36j1+vHd37Wgo96RxAIhKZFTa0oxAtfWwaKCt1yHq8fHi9/nt7p\n9uO/3/8IX14/F0YDLcsYF5koLGmYiC+umwOSJODx+mEfYWAppKGn5N3mPf2jGHQI95CSlA7WsgLR\nz/jG3fMT+u7I9wCAfYRBWZkBS+ZW4Y2Wc2Nerxrj1DCvzorSUhPm1pVjVxz5e7vDA79GA1JDxHXd\nU4X16voTC8sG8PJfT2H/yR7YhtywxjzLKuIInVelkHXXtLS04Fe/+hV++9vfwmw2w2g0wuPxQK/X\n48qVKygvL0d5eTn6+68VU/X19WHevHmin2u3K2OQGB+LPcf5K5s1GuF8Uaq41DOEUYdbtOe2N0Ft\n4kww6PBg+ZwK3L54StSuenCQv09408sHo0LNgQBw7vIIvvHjd/Dg/5mDIhONYSeD/iHhwpk9x7sx\n6vKi5fhlwddwWEw0nrh/IcxGKuqYtAAcw244ZP5O1seixCzcQ8p6fbDZ5H2a3O+OjOwMjDBXh3Fo\nwHhDxYH1ky24aV4lDnxwRRHlqkRbqMYLbx++iF2HLyKIkAANGwRYGSeM0pHY9Ou9sDu8GdeutlrN\ngvfp5p2dUY5Ln90tKyWjIn5e4/0cISQNssPhwPPPP49XXnklXKDV3NyM7du34xOf+ATeeustLFu2\nDHPnzsVjjz2GkZERkCSJ1tZWPPLII0kfvBzEcm2ZmLb06/85hWFn9IMJIKpYqMhESXxK9mAx0WEj\nLBV2dbi86Lbx530v2Ubx8K/3o7SQRkNNGYoKKAyN8qcXhkejtYTFmD/TOiYkngiZ6CGNzVlHGt2B\nEQZ7T/ZCTyknkKElNPCy2W2RC2gSowKCKumAOzvxnCePlw13I2SrdnWyKRmV1CNpkP/+97/Dbrfj\nm9/8Zvjfnn32WTz22GPYsmULJk6ciHXr1kGn0+Fb3/oWHnjgAWg0Gnz1q18NF3ilmkyrc8XC5bAj\nBem9XhZ7IubRZjLPHS91U4rDMo5SeadLfU5JD2xghMHu1m5UWwsEDbJcqqwF4Qk8SsCXB14ydyJu\nXzxZse/gkNu7rKSmc7YbYwCoqSrCcRnDTLKBkkIaLo+P9xq939aDW2+cAq+PzYpcrSrrmf1ogume\nURiBEu4/R2woJpvI9TDh8nkVoLTaMYpat944BT39o1FFWw6XF//8s/dl/d7SQhp2B5P0uVnZVIW1\nCycpuuhFbj6qJxYreq9y9AyM4tGXDij+uSrpoam2DLcunoyn/9AqKEZEawl4/YG0hrGFQquMj8Vj\nL+3ndVxKC/V46gs3ZHzTkM1kRcg6V9iwqgZujz/KC80WctkYA8DBD/rGhFJ3Hr4U3gBpNEBVWQEe\n++x8mI0UqqwmWe1Kgw5GkZTCO63d2N3ajVIFF7109JCOV9GPfIDWETja1Y/zVxygBNoCAYC5Wn2X\nDWFsVdYz+8mbsjqSIHDP2npYTLpMH0reIRUyDQZD+eFv/3wv2EAAj36mCZPKTSA0om+DxUyjxMyf\n+xUarcj7/Vf/P7fobd7RKfu9mWI8i37kA4wvgCBC95yQMeYj0yMYI8d8EpqQZ7x6QbUq65kl5I2H\nDIR2gNdNLcXeLPSSxwNOtx+vvtWB+z52HZ68fxHOXR7CU39oFXz9dZMtMOi1vDv25jkVIDQa7G7t\nllXlGsm7xy4DGg02rq7NSJWrHIadTNbUPKikj0znalVZz+wmrwwyAGxcU4vWTltc+ssqynGscwDM\nzSHB/SqrGaUicpJ3r6kDrSPAsgG0dvZjeNSLEjONpvpQ2NnPBnGk/UrcamaBILC7tRskocmqKtdI\nikw0iiUU5Qr0JEY9id/HGmR20EouYi3Wgw0EYR+JbxyjXLJlBKMq65mdZKf7kARGWoelDZUZ+36p\nMG0uQmnl3yYjLi+Gr05q4nJWfCxtqAStI/D6213Yd+oKhq9WW7sYHwJXE8vDTgZDSUiLZjo8KAat\nI9FYWyb4d0IDjHpYJHM7qcY4PvQUiU2fW4Snv3AjnnxgkWA6JRnUXK2KGHlnkIFQnmRlU1VGjGOu\nF3DxsXhOBW68foKs15YWRnsAYjmrLbvO4O0j3VHRDI83gF1HurFl15lwO1uicOHBbGXjmjqYDPxB\nKu4+ysPbKWuxFhtA6wjQOhLWYgOum1Ii/SYJCE2o6FHN1arIIe9C1kAoT7J24STszsBc4nwLE04q\nN+GeNXXo6R+VNX0p1gMQyllJ9eAeae8DGwhi1CPsIespQrTgLFvCg0L42WBc0Ydk4O7LfLs/leRi\nnxOvv90FjUYTVk7TaQFfYpNYAYQKHr991zxMrypSPWMVSfLSQ2YDAfz9wPmMfHc+LXbV1gI8ft8C\nkAQBq8V4VdaRH4uJEvUAuJwVtyhJTTKyO73Y3do9xuBSOgLL51Vi0+cWwkiL7yeNei20ZPbmEIad\nDOyO9AjEBAF85655uOH68rjfO6HEoPwBZSnvt/Vg5+FL4bqHZIwxANAUiSmV5pw3xoyPRZ/dlbUp\noHwhLz3kLbvO4L1jPRn5borUwFrCPx0p13AzLPxsECQRMqjNcyqx6wh/1GFenXVMAZWYspeUupqQ\nmIrXF8Cpc4Ng/UEMShizi31ObNl1JqsLu9KlMFdaqMf0qiJMqTTjaFd/XFKcPl8AxSIyp/mEUhKl\nHB4vi20tH2btPSgF33zwTOp05zt5d0blyhGmCi8bzKnBEWIMjHjQO+hCn90Fh8uLZQ0TQev4b5m2\nMwPh3TMbCGDzzk489tJ+fO/X+/HYS/uxeWcn2Iip82IFX4B4Ln5ghMGek72ywr1ZX9glcg6UhEsl\nGGkdls2dGNd77Q4GOoHrPp7QJRhtyeZ7UApOa33gatU51+u/ZdeZTB9aXpJ3HvLgiCfj/Z1sHo3G\ne+YPh+BjpeU/Ml/SZgAAIABJREFUB0eu9VfGDkwQUinasKoGwWAQe070hgu79BSJG2aV4+TZQcnr\nqJGxPma671OKSO3sgRHh6Vdyib1OkW1kkd/Zb3fh2Fn5etHZXByXDnQk4EtQBzzyHsylOcSpGEaR\nS78/E+SdQVblCJWF29hLVY/TFIkiEy3xENuiHmKSIPDpNfW4Y0UNbENuIBiE9arhfM3XISmD6vMH\nUFliRM+gcEQitrBL6QUh2c8jCQIbVtXA5w+g5fjlpKv0I99fbKIwt6aUN7xYEMd0rCAArz+fqiOE\nIYjQuNBYknFwLWY9TEYdNu/szKnQr5LDKNTQtzzyyiDnshwhrSPg8wWQq861z8+CDQThdHkFPduB\nEYb3IaZ1JKqtpjGzgUlCPNpgMevxvXsb8fzmY7hk45/NXD85NDJU6QUh2c+LNOR/efes7FGT8TDk\n9GL30csgSSIqMrFl1xnsOaGq2fHBZ4yTpaGmFNtaPpQVNcomxGoc4u1gkBs1G+/klUHOZjlCSgvM\nnFqC9o/svN6G0sUk6YYNAH/c0Yk7V9UIhrcJDWAQqYyOfWilQv+NdWV4Y895XmNMEoBOS2LfyV50\nXLDDqNdFDbxIdkFIdIGJNeTFZirlldaR4UXGx6K1oy+l36cSzbHOPrgF2vOyeQ6xUsMo1DnM8smb\nWIHX78d//N8TmT4MQZbPq8Y375iHH39tGZbMrkBpEoIX2Ur7BTuGncLjFANBwM2M7SNhfCwu2Zxx\nGYqmujLceuMUwQedDYQqXLlCFKHpU4kU3EgtMGKfF1skk462p0iBlGEnI1mdrqIsdqdPUMqXT7wm\nm1qMlBhGISf0rRIibzzkp//QKhi2TDdL5kxA+/nh8ID7xrqy8A1spLV44Lbr8er2duw+qnyYMpPY\nHQzYYCga4OXp36S1BEwRuctYb1FullIDoLWzHx9edsCe5MOcSNFXorm1THUARIYXi0yhCVuqUc4O\nIq9NNuZZlRhGoWToO9/JC4PscHnRbZOev5summdV4s6VtbjU50R1uQnmmAKaXM51k0SoyIcv12Yx\n6/HesW5eYwyEZsNuazkXDunGhn3lwhnuZI0xkNiCIHeBiS34khJDSRWR4UVaR6Kpvjyh866iPJHX\nJpvzrMkMo1DnMMsnLwzypT5nVmlI7z/diw/+bhfc5WZqYVYCsbxuQ00pjneJe4BcpTUA2SFqPRXK\nfWqgvFZ4IguC1AKjJTW8FbXrlk1PixCIniLh9bFjojMcG1bVwOnxYf9JaSlUFeXQUyQK9FrYHcyY\nayPVnbC8oRLWCKW7XILxsVjZWAWWDaDt7CBv5DCdx5LNbVd5YZCry02SfbLppOX4tQpWvl1uOhWa\n0gWt04Bh/JKh0MERBr2DLuw8dFH0tRoAJYWhh3bdsmk43+PAC68fE3x9sYnCyKgXFrMeRr1WMGfM\nYTHRmD/TmvCCENk/HLvAiHk6QoZcSQr0WjxyT5PgAk4SBO5ZU4ejHbacLybMJZY2VGL9TTNgs7sA\njQbWYoOsTfrACIPHXz6E0iwIYUciZdz4QvANNWVYPb8aJYX6tBrEbEwH8JEXBtlspFBlNUkuwpkk\nsppQzMPKVRhfEHtPXQGl1Yj2rAYBPPvaEVFDUFpI4xt3NEQZlOlVRYKzlUsL9Xj8vgVwM34UmeiQ\nh7qjE+8e4+/rLTZReOL+hWNSCfEglFtzMT6838Yv23q0sx9PPrAw/N+DDg+CKdhE2h0MqKvnrc/u\n4l0wt7V8qBrjNLOysQqvbe9A+4Wx0TM5m/RsCGEzPhaDIx7sPHwRbWcHRI0b38Y0U3PKszkdEEle\nGGQA+PodDfjOL/Zm+jAEiS32WbdsOoadXhxqz68WFFZGmELKEDTWWVFdbo76N7FNjFGvhVGvjTKw\n966dCWg0vBO/FswsT8oYc/B5CJt3dIlW1DpdvrAh7x0cxbOvtSpuGItNNLYfuoi2M/28C2am5WXH\nK0/85yH4/NeudaxRkLtJz0SrUKxGQCR8xk2sva61w5bW48+ltqu8McjZVNTFR7GJRpGJHhM6yTfY\nADC/vgwnzw0mZGiaZ1cIhpE3rKpBx4WhMZEQoSESG1fXgiQ0vGHlZBAKf61bNg3t54XlKC1mOlzw\nRetI7DnRmxIv1ajXRm1EYhfMXK5hSCfFJgrDTi80CqXDIo1xJJxRiEyDiEVPBkc8ONc9nPRIx3jy\nqXIKMCONm1h73aCDXyAoVSipOJZq8sYg/2l3doudFxh0oHUkNu/szKtQNR9dF4fQPKcSy+dW4s+7\nzuKD83ZZ7ysppHHv2nrBnA7jC8A2xC+TybfTVaJlgw+h8JfL4xftK5452RL+/lR6qU43/wxprqAu\nH2sYlMZiovHIvU3os7vxI5HaBSWINArc/WobcuPFPx3jNWoaDfCj148lnAcNDX/pwrHOfgw5pfOp\ncu/VyN9hoLUJCwQpTS61XWVPNjsJhpweXO7P7glLLo8PDpd3XIQKR1x+7G7txm/fPI3TMo0xEDpH\nf3n3bNRUqEj+uKNzzHxkjkiBgVhhhdhZzMkgtji1n7ejREDwRU+RuHvNNQ8+VV5qsYnCkJN/U8BJ\nlwKhzYGKMHYng6dfPYIDp3thSbGIT6xR4KRkm+r5Z1cHgkh48hIbCOAHrxzG7tZu2J3yJjjJvVcj\nf4fT7YtbIChViE1Vy7a2q7zwkP+wvSPThyCJ3cHgUp8zq0OFGkC2OIccuuMUavF4A9h5+BKCwSA+\nvaY+6m+Mj0X7BWHjXmyiYTJSKRfwF1uchpwMFs+q4B2KsbShEsYIryBVXmpDTSneP94j6Jn8/cB5\nnDonPUlLJaQF/t7x3qjrlgqEjILcSWDx5EE37+gUVa3j+xy596pRr4X26ohKsSE/pYV02r1Ssa6I\nbCLnPWTGx+LD7pFMH4YkFrMe1eUmQQ8qG6ifVJzpQwCAq7nV6MIoqV36zCkWbGs5l/LZrdzixIfZ\nSGH9ihmypAaVnoVM6wisbJoIvz8o6pm8d6xHNcZx4kqRN0cSGtw8v0rQKPjZIFbPr8bj9y1AU22Z\n4OfIlZ9kfCyOdvUL/n1Q4HPk3qtcLYeU8JGBvma40wWXvnrqCzfgmS/eiKe+cAM2rq7LqpYnIA88\n5GEng2EXf84sm2isKwOlIzFlgjlrF8TGeisqy4xoOzuQ0WP0eFl81DMSLoKidaToLl1PEbhjxXQ8\n/YcjvJ+nZCWlWLX38KgXj/xmP5bMqcCTDyyC0+UVzVuvWzYNu1svJT0/u9Cow79+/gZse/9D7BUZ\nWal0BEQlOdhAEBqNZoxRiK1oLirQiYZ4I4sFxRh2MoLpDAAoLhD+HL7Z5Xwc7ezH8oZK0c3zJdso\nbxFmOkhGcSwdZNf2IAGKTDQKjdm1r2ieXQGaunZqaR2B9vN2PPbSftEdaqZ5fWcXjnUNYMbEwkwf\nCp7bfBQP/3o/Hv3NPmze2QktqYFRr+N9rbXYCK8vkDYB+w2ranDTvEoQPJt8j5fF20e6sa3lnGTe\nenDYI2mMKa30I9pYX4ZtLefw7tGxLV6RqMY4cwg5YnzDSCIHkADA8KhPtLc/sliQg29ARZGJFh1q\nM08kn0oSBDQajagxBkLPGjQayUhgIkNdxgPZZckSgNvxjLiyI2xtMVH46MoImIjiI8YXyJrBF2IE\nESpmOdhuS0r5rLiAgrmAUkSoZdDhxc7Dl8CyAYy6+Xf3o24fDLQ2LZWUnPey/1Sv6Pk53N6H25un\nivc7a6TDdl6BVpmo1/gC2Cchg3nj9eXoujSctdGZbIfWEUm1qAnNWY5tu4m3+j62WJANBPDSthPY\nc7x7TB2FWHRnUrkJG1fXCn6P3OOymPWwFhvQMKNUdHhOtrUbZQs57yEDwAKBasRMMDzqxWWbvIpv\nPg8rW0im7/KfPjELj9+3AKsXVKPELGwIaZ382+9oV79gS9GQk4Gb8aelkpLzXhif+Akacnrx/d8e\nxKtvdQhWjVuLDaC0yd0EGg3Q/pFw7zMQKqL57MevUzRnPd6YOSU1Vemxm8V4Z7rHFgtu2XUGb7Sc\nE6yjiBynqEGoKn9l40Q8ft8C0Xyq3ErrubWl+Mu7ZyWH52Rbu1G2kPMeMgD42OwJfcRjyFIhm5gN\nGA06kASB9TfNwOxpJXjxz228r/P6A2ieXYEPPhzE0Ki4BvaQ0wsdAfA5KZzoSioqKRkfi57+UbBX\nw2vxeC8jLi92t3aj8+IQvrJudli/Nyw/eOQS/EkqTgSDoXm7YjTWWUHrSGxYVQOXxy+aZ1bh5+OL\nJuFiCrokYjeLRSZatHUNiNZ5j7y35SpSJdKbX2SiYREZ28npbAeDQVk6C9nWbpQt5IVBztWdVkkh\njUAgILmg5hJ6ioDJoMPv3vwgrNkrRDAI3Lu2Hl4fi00vHxRdhEgBYwxcE10BoJgQSJQal4NBiZnG\nzMmWhEK+3bZRPPrSAZQW0jDqdRh1exWbR1xsouBmfIIe+8qma1W8JEHg3rX1OH3eDrtDDV3Hw4F2\nGwr0uqQMsti0Jw5aR6Kxtkww3EsQwPc/uwAVJQVj7u14FKniKW5iAwH85d2zcDH8jk/z7ArcuzbU\npvjYS/v5j1sTet75NhIq18gLg2yi+Yt9sp3GOivcHj9v32quoiUJPPKbfYICHrFwi8SCmeIzesWK\nn1weHxgfGzXzN9ncFJ8a156TvdBThOzfFsvASHzhSDkY9Vq4vX7wlWzROgJ3rozuwaZ1JK6fYsmr\ney4dtJ3pR0AoESwTbtqT1GZx/YoZeO94D68ufCAA/O+Bi7jv4zPH/C1VilRispl6ioSBJqElNRgY\n9ghuCIIAvn3XvKTlPvOdvMghj7hSs9vXUySKC5Qz9mTE2dZTJILBIO68uRa0LouTyXHidPvjMlgv\n/+0DAJG5rdCiweXXLSYKtESl8cAIg8Grwgl81aXxIl7Awn+tdCQgoyBacS73u6IKCCPx+QOwDbnH\nnI+719RJnlOVaAZGmIQjWSVmCktmV2DdsuljVOP47leny4eASCrjwAdX8NhL+7F5Z2dUfUIqFKmk\nirm4roItu86I9uiXmPWqMZZBXnjItdWpEbRY2lCJ25un4tu/2CsoDC9EZJUyrSNgtRhwqe9apTV3\nI3sYFs2zK0UrEvOZ7n5X2LuNDDcbaC3cjB9efwCbfndQ8nN2HL4ALUkqotIlFvrz+lg0z65Ax4Uh\n2B0eFJtozJxiwcY1tXj2tdaMVNMLVcRTOhIv/ukY7A5v1Pkw0lo0N1TyTsJS4YemCBTQWtmpBpLQ\ngCQ08PoDGHJ6sedkL06fH0RTfXk4XCs0nzeUR6ZhF2nVExofuGFVDYwGCnuOX1akjkJuMReXoxaq\n4lZzxvLIC4NMksru9kvMNJrqrVi3bDrO94zEbYzLivR44v5FIa8tGESRicYPXjnE+9o9J3thMelg\nMmjhdKdP3zVeUiUq4WL8grkts5EC42NlyfbtO3klqi0lmXmnUqE/Ll8WGXpkfCxcnszUAgg5Ux4v\nG+4bjT0f62+ajveOdSctSjJuCAJza4Rzu7GwgWA45MxdH66Fj0NsPm9DTSnePSb9XbGiNyRB4Avr\n5uDjiyYpMlBFrmym3eGBze7CysYqsIEg2s4MZLVEZbaSF3ErJSeHNNaV4bHPzgcAbPrdAbzw+rG4\n25O++I/Xw0hrUW01obrcDDfjF91l2p2+rDbGQMgYG2nld7glAipDXCgPABpqhGUDr71eeLRdvOFr\nOaG/2NDj4IhHsUKteCk0arGyqSpCrpOGnuJ/tLnz4XT5VGMcB15/ADdcP0FQ4CMeWjtsotXQjI/F\nLQsnyfqswZFQsVaqBqrQOhINM0olX0fpCPz71jY89tIBtJ3pR8OMEnz/voX4xh1zsP6mGXFFqZRI\nO+UqeeEhKzU5hEDogTj9kT1KkSbezhRCg6gio3wZdydUZZkMRr0uatHgmzVcl4TGdqICBPG2UImJ\n6QtRVKCDx8smPRN5+sQi3HtLPZiVofm2oap1/ogMdz7ExuOpjIXWkfjxluOCAh/xMOhgBCoRrl0f\nk0En+/r8x/89Ed70lxTSWDK3Crcvnpy0TjMbCOD1t7uw95R0AaDHG4DHG1rfBkYY7D56GftO9YLx\nBmSnj4TmjCs5HCbbyQuDXGSiUVSgw/BociFD7lmTkoeT4qk/tIb78qQUcsY7o25vePPC+Fi8ur0j\nqk92YITBvlNXQBDCakdiFJtoeP2BqA2SFNzg9vU3zQjt7ikdWK9P8P2Mj8WxrvjGahabKGxcU4tf\n/PepuN7Hx2c+Fqq45bwisTA/V2077GRUYxwHya4JsWg0/DoEFrMeJqMOr+3olHV9gkBU3cLACIM3\nWs7B5fYmrRW9ZdcZvH0k8ToDrrhTbvpIaM641PvyibwwyCGDV4Z3jvZk+lDCxN5MnGd1qL0PwyL9\ntuMNu9OLwREPdh/tDovp85GoZzLq8WHT7w7K2m0L7dAfvLMRg4P8B+BweXHi7EDcFbger18RY0wQ\nY1M2YhtALuROxaGSpqI8Qsa2sa4M21o+xH4JKVQp4hmowm1AI/PN8Up4JntMckVN8p28MMgAQGRp\nSIO7mbhxY4Qq8R9FiZnGziOXUlbxy4WD5ey2hXboRgMVLpLhqr8Neh1+9Mej6LY5E/I0E+1ljiUY\nBDrOD6KkyICiAio0REOjwbpl08CyARzt6sew0ztGkGHLrrOKfL9KchCakJdbcjUlsm7ZdDz+W35x\njXiQk6oRCxHLra5O5pgiNwLxiJrkM3lhkBkfi+NZOkWJu5l2HrmUNSHrihID+uxuBIKZH8nXMKMU\nbWekr51Sxym02xbboe84eAEtRy/C7vSF83okIS5Wki6CQeDFrSfG/DtJADotAcYbQLGJRkNNaTg6\nwPhYtJ8X179WSQ+BIPCdCMGMnoFRRYoD5QiBiIWI1980A0USEp6JHhPfRqChpkxQmlPot/B59rlO\nXhjkVOzmIknGGFjMehhoreLhn2ToHXSH/zvT/vri2RPwjoxWkqrygqg+7kQR2m2L3UNuxg/31T9x\n3nA2GGMx2ADAXvXC7U4Gu1u7QRIabFxdF5ohnmS9hYoyEBqgutwUNiiJFAfyIdX3KydE3FhnVTRy\nxR3T5p2dYzYCu1u7MancxGuQY39LPhd/5fbRX8VkpEClSO2q2ERhQokh4fc31pVJtj2NZ1weVnR2\naomZxuoF1aitLlLk+4SGuYupDOULXEsNV2GtknkCwWtdIoyPlZySFIvFRGFSuQmlhfTVljc9/nHZ\ndMm+X7ENKNdKtXF1LarLC+I6HiFoHYFRtw99dheOtPNvBFweH1Y2Toxo39Nj9YLqMb8lcl4030Sr\neMi2Fqu88JC3tZyTHIeXKFzIhiQ0vNqyfMROY/Gzwbxoe0oFhzr6MLe2DLt4qjmXzK7APRKi9fES\n22bFMR4q4bnoAKC2O2ULFhMV3iDGG+mbO6MU/7RudrhDgQvfVk8shs3mEH2v2PQmjQbYfugiNq6u\nxab7FuL329vx/vHktM8ZXwD7Tl3BvlPCxWp2B4O1iybjzlW1gqFopYq/stXLznmDzPhYtHb0pfx7\ndFoCrIzWh9JCGt+4owHWiKZ8kggZAtUgj2VPWy+qywuihjboKRJL5lTgrptrQRIE+uwuxSIMo26f\nYAvU2N5jGqMen2IFWJkmMhdnMenyaspYrmIyUgnrFaxbNo13oIrH60ef3SWYW5Wa3hQIIirFodel\nx0xw96fYcBilir+E8udOlw+f/fjMjOWkc94gDzuZtCgkebwslsyuwOHOPkExfyCkKlVdbo76N8bH\nYtQ9flqdaB0Bnz+AYjONyeUmnO91iuryxuaGPV4WGo0GJEGADQSw/eAFxY7N7mBgs7vGXCMgJDsY\nO77xL++ezRuvOTIXVze5BAc+SK61RiV5IieVxRulscYYHs7razs7AJvdjWITjXl1ZVh/0ww4Xd6w\nsROb3hTJ0c5+3N48NW31L3L0rpWYaCXmZe//4AqOdtmwtKEy7BCkE/KJJ554QupFnZ2d2LBhAwiC\nQENDA3p6evCVr3wFW7duxXvvvYebb74ZJEnijTfewCOPPIKtW7dCo9Fg1qxZop/rciVvpLRaAvtO\n9sCtcON+LMUmCv+yYR5mTbOgpU04fPN/lk9HkYmGNkJfe3DEgzf3nk/p8WUTRjq0sAwMu/FRrxNB\nBOFn44uRDju9uGneRGzZfQa7W+MfvEFpNYKFV21nB9A/7MH1Uy0gNGOTqVqSQIFBBy1J4PqpFrBB\n4HzPiOyURToR+50chAZY0VSFu2+uBaHRgA0E0NrZh26bKz0HqSII42WxdE4lCgyhqXLXT7XAzfgx\n7PRKKhCOenyYFyEr+/rbXdh5+BJGPaH3ebwsPupxYPvB89h5+BL2nerFFbsbxzptstZLN+NH3+Ao\nzvWIh7+TxWKisbShEhtW1fA+j5FoSQL9wx6cuzwy5m9L5lSgsZZf8jYSqfWYDQTxYY8DbsaPOdOv\nyYYWFNCK2KyCAuFNg6T5d7lc+Nd//VcsXrw4/G8//elPsXHjRmzevBlTpkzB1q1b4XK58POf/xyv\nvPIKXn31Vfz+97/H0NBQ0gcvBa0j0VRfnvLvmVtbir+8exa//p8PRF/34y3Hx4xGGw8FQ5E43H7s\nP3UFgw4vgkis55YTq997Ij6xlxIzjebZFbBahAvx5BaBcB7HoQ964Y1zwEg6KNCT+PdvLMcP7l+I\nb94xR/B1gSCwen51uOXpt2+exoEPsqfqfzxjNuqihF24KM2TDyxC/WTxQsbWDlu4GEnM62MDCBc/\n7W7tjiui2NoVX5FZvBQVUHjk3iasnl8ta9PO+FisbKySVfwl+J0y1+Ojnba0F3tJesgajQa33XYb\nOjo6YDAY0NDQgGeeeQaPP/44SJKEXq/HX//6V5SXl2NgYAC33347tFot2tvbQdM0pk2bJvjZSuw2\ngNCuctTjQ8/AaNyemBwmlZtgLTbg7SPdcMvQc3YzLM5dHgnvsMR2dSr8WMw0bCMeXLjilP2eBfVl\nGHJ60XlxGKNun2RLF+eFawWmhXEeh8uTnYM//GwQ/7B4KkoK9Sg267H/VK/g/dlxcQgX+kbw0l9P\n4cKV9I+IVOGH8QXwztFL6B92Y4LFCEpHQksS+PM7Z3DotPimyesPoH5ycVhYQ24UjhMjyQZ0Wg32\nn7qCN/eex75TvYKRK05Xe/OOTvxt33mMuLxoqCnD52+7Hv/QPBWNtVZJ75pD7nrsiYleZIWHrNVq\nodfro/7N7XaDoigAQGlpKWw2G/r7+1FSUhJ+TUlJCWy29OzCSYLA3TfXglSol4PQhCoNLSYaK5uq\n8NCnm3AsAeGRyElD65ZNg57Kj+Z1paB1hGBbhVGvxaHT8RXrHe7oD+eW5ESXI6uOY0mFdKAUZqMO\nTXVlsluSgkGguz+0YaF1JObMKBF8bbdtFO8d64Uvzr2Fgc6Lzsi0QxKhAk8NQve5WCrS4w3g3WM9\nePSlA3jspf149a0O2YWqXERu+8ELKDJRst6TTZkXp9svq32Jr9Vpd2s3dh/tTqgAa8OqGqxsqhJ9\n1oQm0aWSpIu6gnwK6SL/HonFYoRWq4yR+tmWVox6lAkvfGzxVKy7qQaWQhp6Soue/lEMOuKv8rU7\nPCApHaxlBejpH82aXrdswajXYs6MMl7Bj4ERT1yfJSTWL0ZZsQEzppZCT419DBK95sngcPnQ2hnn\nxo/Uwmo1w+P1w61w6191eQH6IkRkVOQTCABPfLEZ//3OGeyKQ+yDMzTxwE1XmlpplqWsVW4xYMF1\nE3Dog17YhjwJD25JFW1nB/Cl9Ybwc+nx+gX7s2NfGw//8ukFMOh1+Pvej3j/vmRuFaonRk+as1rH\nFoMqSUIG2Wg0wuPxQK/X48qVKygvL0d5eTn6+68tJn19fZg3b57o59jtyhSVMD4Wu48oo3CzsqkK\nn1w6FWQwAMewGw4ArI9FiTn+PmKLWQ/W64PN5kj4M/IZu8OLfQI5YjmpgUjiNcYAQGkJDNlHeSsp\nc+V67T54HnuOXsSRjj6MuJQLrRtpEkMjnqzMnecCFjONgNeHYx3pq2QfcXpRbS2Imv7ER8OMUtyx\nfDrcHh92t3ZnlTEGANuQGwePd4flRPvsLtjs/BvD/iE3zn40kLDO9SeXToWH8WHvid7wRC+u7fL2\nxZOj+rmtVrNkf7ccxIx6QvGo5uZmbN++HQDw1ltvYdmyZZg7dy5OnDiBkZERjI6OorW1FQsWLEjs\niOPEZndBCeeztIjCxtVjS93FBtaLEVnGn+hnpINF1ylfFDep3IQSs3i4x2KiFdPKTSRZcck2iidf\nORQuvoskm69XJHtO9mL30cuKGmMgNPvaqVDEaTyip8mQQl8aWjI5hpwMvrxuNm5tnoriq+FrPUWC\n1hEhsaKrqncbVtXAxfiw72RyYh8pIwi88PqxcHGsyagTLMKS2+okBEkQuGdNPX7ytaX4wf0L8YMH\nFuEnX1uKT6+pz4hAiKSHfPLkSTz33HPo7u6GVqvF9u3b8aMf/QgPP/wwtmzZgokTJ2LdunXQ6XT4\n1re+hQceeAAajQZf/epXYTan1r0PIzOZL8XAsBdbdp3hnQYUKRox6PCIemS0jsCyuRPHVP1FfcaI\nJysKKwgCuG3xFByMM1/LUVpIoaaqGGe6h2F3MLCY9ZhXW4ogIDnwY/YMC06cHVTEKCd6Li/1jWLz\njk7cu3bmmL9x16vt7ABsQ+6EvHCV8YnT5QOlI6AjkbCzUBqnup9WS8BAa/Hl9XNx++Ip6B0YxfaD\nF9FxcQheHxO1TG7e0aX4jGel4B6zyGEXUuNEk4XWkbzaBOlGE5ST7E0RSrj/QChk/dWfvKtI6KW0\nUI/H71sAN+Mfo3TDBgLYvKMTh9r74HQLeyTfuXserpsiXGDD+FjY7C785M/HYU/jDpoPWkvg+a80\n4wevHIo7PEvrCPzbg0tgpHVR0n1yxTQonQZeibynniLh9bEgCMAvsX4svK487kIwINR68ew/LRZU\nNfrv9z+3IwnBAAAgAElEQVTCzkPnJY9VJb1ks9qYRgPcMGtC0nON40VPkVi9aDJcbi/2nujhbTlc\n2VSF41022d47pdXA60/dvU9ThKjYUmmhHk8+sAjbWs5FqOhdkyZO1pOVOzUqHSHrnFfq4tCRBBgF\nLPLAiAdPvHwIQ86x+qZbdp3BbhmTiXwSW2JuN2YyUBk3yIw/ADfjT0jHuazYMEa6L57qZDkGzkhr\nMWe6BYfaZRQ7BYGSQjpumc3hUa+g5J5cVSOV9DMqIZyRSUrMNFrb06+E5vGyePP9D0Vfc6yzH/Y4\nolKpNMYA8PX1Dfj1/5zCiIt/czU44oHT5R2jopesZ5yNetZ50dMw7GTCg+iVwO4cW4Yfj6Gpspok\nJ4gwPhZOV+YLhvQUiSITjQ2rarB6QbVk3jeSbtsofvDK4agcrNKjMAcdjDxjDOBQex/0dPwPKa0j\nYDKObRnJROuTinyyOWJRW10Eb5buF+xOJpxjzgZ8PhYOAWMMAEURAzhoHRnuu5ZaX6XW4M07OhWb\nGqUUeeEhF5loFCs8TDuSo539WN5QKdvQPPtfrZI7rsERT1aF2yJ1nAdHPHjm1SNhCT4xLvY5sXln\nF+69JTSVKV6BfKXpF6jGFIPxBbCt5dyY2oFUzNlOxINXCi0BqEXTqWd5QyWcnux5tvnQZ2h4QiwE\nARgNOtE1o7E2lCcW8mjXLZse1upmA0H8cUcn2i/YBddgNhDA5p1dePcYf7QznqlRSpMXBpnWkWis\nLZMVTk4Eu8MDNhgETZGyCiG4GyuyKCF2sX/rkDJtWsnivZo/4cLNw04GJoMOlFYDuXpOxzr7cefK\nmoQE8pUm0fAa30NoMlKgI6ZQKUEm52Krxjg9sIFg/P3kaabX7k55blgOgQDwzKutgvPsJ5WbsHFN\naO0UmtD0fttleLwB6KnQUJtIbXe+NXjLrjOivd7xTI1SmrwwyACwcU0dznSP4GKffKlFuVjMerx3\n7HLCVYmxiz3jYyUrkNOFxayHyUhh887O8M6z2ETH5b0PjTJRN/C6ZdPwfltP1lZx8sH3EG5rOZc3\noxdV0gOlJdB+wZ7pw5BFpo1xJFz6gSRC2tuWq5OquDZUsfQR94yKPavcGswGgni/TdxxS7aVKhny\nxiCTBIHH71uAzTu7cLTTpmj4uqGmFG1nEjegsYv9sJPB0Gh2jGNsrCvDtpZzUTtPsVGJfJTE3MBO\nlw9MBo1xIq0msQ+hmj9WSQSvP5AVYjJNdWU41tWfVTKZcmADwI3XTxgzkzjZ9BG3Bv91z0eSm2yl\nWqkSIS+KujhIgsC9t9Tjh19ajMqSxMMNeoqMmiKyen616M2g0YSqKoW0qmMX+yITjSKjLuHjSxYN\nrv22dcumJW14Ym/gIhMNi1m6aGT+zDLJ1yRCIotQ7G9IRf5YJT6Ewpj5TvPs5IV6PuoZyUjIVQk6\nLoydEpjsxDyLWQ8DrRWNXmgArGwcqx+RTvLGQ47FK9W0ykNpYai3bfX8apy5NIz6ycUoLTKA8bGC\nRQclZhrfvHMurMUGwf7b2MWe1pEwF1AYFqksTBVFJgrf+3QTDLQ2pCQ0krjh0VNkeI5pJLSOhFGv\nE+xz5N63btk0nDq3V/HQttR84FgmlZtw+5KpuGRzAsEgrBZjxovTVABKS8Ib7zSMHKbYRGHBzHI0\nzCjF3pOJCfVwhJ49LwhNdg2TkENsCgxA0rUpjXVl4fVOiBtmTeAVCEoneWmQE/FuzEYdvnfPPPz7\n1pPYdeQSAsHQ1KcqqwmPfqZJ8GZoqrei2moCEK3EFdu8zsGJgrgy1EPpcHmx/eAFtJ0dwOAIA4uZ\nkl2sFouR1mL9TTPGVJAzPhZXBoVLwow0ifU3zQAANNVZsTeNEn58C9TFPif+5Wfvhw25niLQPKcS\n82rL8PaR+IT+sx2dVgNfArnDB/7hOvzub6dTcETCZOvYS7notKEiIzlQWgJP3r8IZiMFh0s5Q5pr\nxhgYmwLjSETpMNJpYHys4Fqnp0jcc8tYhcZ0k1cGmasSJgkNKC0BJo6yUofLh397vQ09g9cGXgSC\nocX66T+04vH7QrrcYsY2snXINuQOe1skQYRL9ls7+tKqbxtLIICoavRkjmXIOXYnCwC9g6OiOdxB\nhxevbe9A+wU7BkaYcCFHqrGYKLgYP2/PeuT3e7wB7DrSjVXzq7CyqSru6TvZip4iMb/Oij0JbID+\nuKMzBUckTi4ak0jkGmMAIAgNqKtRNLORgpHWwpnjG5JEEcrhRq2vdhde3Nom6HiVmCnMnFKCjWtq\nYaRD6cFtLWcEHQ9rhMhRJskLgxzZnzYwwkCD+LWNNRqgd5B/+lS3zQmXxy9LKYYNBPCXd8+O6ZXz\nBwJ4pzU1bVmZgrrapB/LX2UMSo80CkoaY7FRcjXVhbJFRgDgaIcNz3xpMbwsiz3Hs1SIPw6WNlRi\n7vTShAyyK4sq5vUUgUAgmFVVwsni8bIYHPGg3GLA5h2d484YawAUX62slsrhckqHTQJRy+bZFbh3\nbX3U+ixVpHmxz4nX3+7Cp9fUJ/wblCAvDHJsf1oij6mYoncgCFzqc+K6qSVhiUi5x8L1wWVIiS2l\n8MmguxgfjmewOllMPXV+/YS4DLLd6cWr/9uOCzblW+lSTfPsCnRcGBoTzXF5/AltWLOJpQ0Tw1Go\nrbvPoO3cYKYPSRGeefUIFl5fjnfi0FNonjUBpz4axPBodguRiEHrCOgpEnYng7Yz/SAJzRgxJT69\nabEUYWwaTU4ac8+JXtyxoiajnnLOG+R0tafQlLRFFTuWbJs5Gos+gTwy4wuMCVlv3tEFNktX++KC\n+OUC955Kvx5xspAEsHFNqH8zdhEzGylUlRfgUp9c2ZfMcuOsCei6OMy74FqLDejuV+53ZLoAatTj\nx3sC6lF8VFgM+Pzts7B5Z2dG9daLTRSmVphw7ExiGyPGFwinkWKFPKT0piOjllyhqp8NgoxZruUU\naXq8LGxD7nBNUCbIeYOcrvaUp/7QiknlJnz77ka4PT7ekHUut8o0z6lAMAi8e7Rb9qJEaAADfe0W\nYnws2s9np7eip0gYDZlrNUsnbAD48+4z+OzHruON5kyrMOWEQdZTJD77sVDVK1+aSOnnLQjgy+tm\n4ZfbTin2mfEid+NOaIDvfWY+gJCnyAaCcT27SjI86sX1U0oSNsh8cEIesZ0rfMpbWlKDnUcuiQ6J\noHUk5taWYZdUkWaGZ6zmfCA12f60eAhV47bge7/eHx6eHTlYIZ3HohTc0PK7b67F2oWT4nqgA0HA\nHVEtPuxkMj69Sojm2RNgLTagNMeuT6LsO3kFjI+NEtlnAwG8+lYHWtpyw+tfMqciLMdabjGO2QAr\n/byVmPVoP58bKltN9VaYDaGIj58NYu3CSVg8pyIjx6IBsPltZQcy2B0e2IbcaO3gb/862mkLD47g\n0oRSQyICEosbrSNQZKIlh1Kkkpz3kNOtncwVIPHt1DKt4xwvN15fjs9+/LrwQldkouMail5ipuD1\nB0LtBFcLvLK1dzeAa/3R2Xh8SuP1B/DK/2tH10U7Bh1elJgpFBiolEjLKkG1tSDUJ+pgUGK+5uGI\nofTzlqwiXzo53mXDazs6oAFwrKs/7BlqSQ38ceaMdKQGviTyTMl45UJpAouZxt/3nRfsAhkYYfDq\n9g5sXFMrmCaMlCwOyRUPiB5LsYnGD145lNFRjOQTTzzxRNq+LQaXSxlv6vqpFrgZP4adDNxMenc2\nw04vbpo3EVqSuCogoofL40PvgCurC2cqLAY8eMdcGKhrezItSaB/2INzl0dkfYbXz2J3azf2nepF\n/7AHDTNKMTDCyH5/OukdcGH53Il46+D5caNP3W0bhftqXYDby2IkjXKtGk3o/wiNdAGZkSLw7Jeb\nsaKxGkvnVOLWxVPRWGsFoZFW6uKe/f4hd1wjWOfVlMLnD4Lx+lFSqMeSORW4uakab+6T7hDIBgJB\n4MMeBz7scYTXPDfDxm0c9RSJebWl6O7n7zBJNdXlJt77sqzIgA8+Eo9WXOxzYsjpRdfFYd6/M14/\nls6pRIFBh8ERD/4mcW1HPf6oc3nu8gjcjB9zppcCAAoKaEVsVkGBcFQn5z1kYGx/2k/+3Aa7Iz1e\nkN3hweCIB7taL2HPid5wYVQ2i/5R2tC0l02/OzBmFxhZuTgw4hH9nNhoQTAYxF0318Lr8+O9LGsT\n8nhZ/OffTmfVyMtsREsCjbXlOHt5OKn8bDAov0iK0pEgCQIkAd6cN1+FLQf37K9dOAnf+eU+2cf3\nsUWTMaWyMOpzh+LUcM8HOMW8trODaR8Gs2BmOT6zthZv7DkfVSndUFOK413yCnVPfzSIwgIKwzxG\nPVKyONHo3dFOG5Y3VMKaJhnSvPCQObQkgcICGgMj8r28ZCkyURj1+LH76OW4Q0WZgjOkfLtAQqPB\nnOmlWDxrAg6cuhLXQ9oz4MItCydjQf0EvH34IrxZNu+vN4FZyeONQBC43D+KsiJD0h613KeB8QWw\nqqlqjLFlAwG8/nYXNu/oxJt7z4cjMddPtYzxni/anNhzQv4m8JZFk1Fi1qPAoIP2aknuf73VmbUh\n/VRgpLX49t3zQOu0GB71pj2ydbl/FAdP96GytABfXjcbyxoqceviKai2FuBNGVoGQGijLZTvXTKn\nAo21VgDxR/843AyL3UcvY/+pXtiG3KitLpQVuRFDzEPO+aIuPjasqsHqBdUoLdSD0IRynRUlBtH3\nWEw6VFkL4v6uIacXLcdTL/hBaIAVjROxfG6l4p99tLN/zE3tZvxxewxc24DD5c1Y33UWiO3kBaNu\nH1Y2VYWfIYs5dcVwQYT6/GORW6wDgfcLoadCLVORMD4WpxXoEFg6pwLFpvjb6zgWzLQKDqlRGo/X\nH5Yn5dZMkkhvbI+7pttazoUL95It1tNTJFYvqB5Tg7BhVQ2WzE6s8G1ghMEbLed47z0lyUuDzIWx\nnvrCDXji/kX45qfmYtPnFmFFI78xa55dgWe+1IwnPrcQ1eX8RnlpQwVWL6hGCc/ClI5Wg5vmTcRn\n1s7EDddNUPyzudFkkcid2BTL3/Z+hO/8Yi9GXJlRGrp+WmlC76N1BD5/23UKH03uMuRksHbhJDz1\nhRvwzBdvxD9/qiGl31ddHt37KdbTz7eBjH2/GGXFBmjJaMMz7GQUkbRdPKsCT96/KGGjvGFlDX7y\ntaXY9LmFqLCIOxHJEggCJ84OgPGx4TXzJ19rRpmClevVMp2cyGvKFeslioEiozT2uU4DPxvEPWvr\nUZLAusZ3nKkgr0LWkbCBAP78zllsazmH/7f/Avad6kVlWQGmTyzEyKgXHi+L0kIaS+ZU4p5b6qDT\nkiA0GiyfOxFOtw9DDgZMxGvuurkGH3xkR8/AtUIZpeEKYCidZoycpJ8NYElDBQr0OvzvgQuKfm9J\noR63Lp4SDt0BoRDPnpO9cYUtCQK4ZBsFm0F1hYc2NoENBDHsZMLX+MZZFbCPeESLfthAEK2duVFh\nmywVJUY43eK5dO6eoHUkCgw60JQW+0/18hZN0joCZgMJTxxFVVHfZaZw+5JpUf82OOIRDFtGFutw\nmI2UZNEOx8ioLypNAwBaLYF9J3uSerY1AO5cVQOzkUo4bTavpgwVpQUoNtFY0VSFkVEGF6844yoQ\njcfHPdrVH5UK0FM6LGmoxM7DFyUlbU0GrWBaqvRqodw/rZsFj5fFsNMLj1d4kx57Ta8V6nqvFt7R\nKCsyQEtoJNNojJfF0oZK6GlyTMrD7mQwodSID3sc4j9O5nEmQt4XdfHBJ2G560g3lsyuwOP3LYSb\n8QsWidx7Sz3uXFkTVfChlBoOrSMEDQNnx7y+sY/fJdsonv5DKx65dz5IQqOo0eMTc2d8LFwe/kWb\n0gJ8z1ZQxnq8onEifL4A2i/YYXcwoHSJTZriY0KxHsUmml9zPBiMGqoxXik2UfjevU340R+Podvm\nFIzu8I0MFWoxWjZ3IgAk/Hx86655Y/5NrAgndr44d3zL5lagRWYxYWRLDPf+pvrypJ7x6nITzMaQ\n97VhVQ2CwWBUoacUGkR7+iRB4LMfuw6fWlmL17a3o/3CEIZHvSgqoODx+nm7BUoL9VhwXTm2y9y0\nR6YCgFAL57aWD2XphNM6EgtnlqPt7GBUQdbq+dUoKdSHz23kwJ0X/3SMNxIRe01jVbi455iblidW\nuFtsolBkogVljG+eX4XVC6rR2mHDoMBnCLdj8U+iUoq8NMhi4a49J3tx+vwgmurLRfscIzWrE5Xn\nnFhmBONlYXcwsJhpUFoSAyOJFxZ125y4bHOKNrhrAJQU0jDotbDZxVtBCE0oFM53HsRUkPxsKMzf\nft4e/m21k4px4ANxwYnm2RX49Jo6kAQRrpw1GSlsazmHlrbLYJJsR3rkswvD/81dPy5ctX7FDJzp\nHhlXRTt8NNaWwWyg8OT9i+BweXGh14HDnTacPDcoOMWMQ2q8aCAYxN4IA6SnSCyaWY732npEj4mv\nz1NsAyA0Degza2fiox6nrGvMpWkiq7o3rKoZ8xvkbn4nlBjw6Geaon7Tp9fU444VNei4YMeLf26T\n/IxIgx6Jkdbii/84O6raXGz2+pfXzwXLBsLXqaiAgo8NwOXxi6bXjnb24/bmqbLXOruDwdpFk3Hn\nqlrRgTvA1YEQVpPgpkfomsbODuAGS8yvF+4/N109h0K/41jXAJ76wg249cYpePhX+3i9fEpH8G54\nhI5TKfLSIEtJ6g06vGNEPZL5PD40GuDr6xtgMuqweUcXjnT0gfGN/QxKR8ArM9QXCIbGRAp5DuUW\nAx785GxYrxZHMD4WHecH8eLWE7yfFwSwdtFk3gVRykO5d21oKgr3INqG3KIG2WzQjZGy4x60javr\nsG7ZNDz1+8PoHUxsw1JtNcIcEUbi08CdV1uGaZVmtLT1ZFohLyNMKjdh45pr97vZSGHW9FLMml4q\n2lrEIeS1cNyzph6fWlEDm90FaDSwFhsw7GREDTLnzfAhZ7547PE9ft8CbN7RiaNd/RhyegUHafB5\nOiRBjPkNJYU0trV8iEOnr4gOcPjC7deD0o5dTmkdifrJFknBHUIDfPvuRsG/c5/FPTOigxXI6Otk\nMuqwreVDHGm/Itr2Z3d4cKnPKXut486h1MCdSOK9pkKsWzYN77dd5jWaLo8PtiG34O/gNmN/3fOR\nYMjd6wuMGdCyZO5E3L54clzHGS95aZDl9pzFhq2S/bxILCY6vJPdKzLuzqTXQmPQyPpsQgNMm1go\n6DnMnlEWNsZA6AGumWQRnDfMVTTyIddD4R7EIonBDQ63Dz945ZCg+o2R1uFfP38DfvfmaeyX8LT5\n+OLts6L+N1+46u0j3Vi9oBor5k3M+fC1xUyJypQubajA6Y+GMOjwoLggNNZu4+paQdWheBZVsddy\nHgyHlPpbY5014Q2A0HvuXTsTd64KbTC2H7rIO89azNOJ/Q0bV9fhxuvL8dQfWgW/l4qdZhDzeVKK\nYoEg4Pb4ojaVYsg5N9x1kptus5j1qC43yV7rEvEWE7mmfDhdPsGImt3BAMGgqENhoLVovyAsPFJs\nosc4HdUTi2GzJZZ7lkteVlnLrdLjqy5O5vMimTnFAkA4bMIx5PRi5mSLrM+ssoZCWrFtXXqKhJ4i\nsOvwxTEa239596zsecORusfA2Pax0kI9bzsBEK1pLYRY2woQeljvXl2LooL4CyYiG/elKnTXr5gR\n/l3ZQomZwsaba2W/fn59OUwG/v20yaDF/bdej6e+cAN++MUb8cyXbsS9t9SnVQKQgxP152PqxEJs\nXC39m4W0rOW8Z+PqWtn3sBhVVjNoHX+5FK0jJIUjNqyqwU3zJgr+PXZQi1ykzk086bbGujKYjZTg\nWqenyKTOYTzHLYVYa5TFrIfVYhT8HY11ZSGZVpFNx8wpFlEd9VSRlx4yEBkasQnu9uJJ0HOfJ1YI\nwKGnSGxcUysr1G0x63H3mjoY9NqIMA4Nxsdi1O1HEKGHtcpqCueoIneZr27viPLAIws01t80A8dE\nKodD1Y8MSov0giPO4hpvZqZktY7wRSYiQ8yJzHaNzAeKnXe7wwOnyxf+Xb2DLjz72pG4ZBdTwZDT\ni5lTLdBT/LmrSFY2VWHDqhp8cvk0PPTLfXC6r22GTAYtnvvyYgDxeb2pRKjqd/b00pRvEpTyyGgd\niSUNE3mnBS1pqJTluX/8hsl4V2C8IjeohS+HnAxSa5BGExqqERk2Fgorr1s2DU4X/6S7dCMWdaif\nXAyvj8XKxiqwgSDazgyMCY/7WWEPmlu/M0HeGmQxo8URG3KRI9G3fO5EbPrdQdE2hKUNlTDSOpAE\nIRn+aawrg5HW8i4aDpcXl/qcgsUeANAhEHY52tmP5XMniop7SFUjAqFwndzxZnKrVPkKamKPIR5K\nC+mojZXcCl1aR2LKBDOWzZ2Y0oEgtI6AySA+1MJi1sNabEDznErREXHL51bg3ltCoTQDReCn31iO\ngWE3Oi4MoX5yMUqLUtu7Gi+Mj8WxLv5N4cFTvfiHGyanZHFnfCGRGgSD4TROspuTu2+uBaHRoLXD\nFi5mbKqXHoLBIRa+j72HlULsWSgx0/jmnXNhLTZEXQOxTYyRzp4RppEbh8ERD2iKBBDE3pO92H+q\nF4FgKPI0t6YMqxdMiqr8JgkIGnRu/c4EeWuQOWgdic/dOhPGKA80ekcoNQQ7EmuxQfAGj61aFtvF\n6SkSSxsqox7m2EXDbKRw3dQSwd8m5QmK5VGAUMUtIBxWj2cmKTD2AdHIbB0QC6sVFugwIuExx+Yh\n463Q5fMI5taWQgOItq3c1FgJHUmG3ydUmbmkoRKERiNq9LnjuvvmWnRdHOatFJ5UbsK9a2eO+ffS\nIgOa52SXIeYQu0f7h9xjNmbJwslt7omq9ibQPKcSd98snEOXQ7Letvh9KZxLTwax72yqt6LaKiyo\nki0RFiEir8dr2zuwJ8Lp4tadQYcXu49eDhe6RaJUgZmS5L1BBqQfJCkPMRKxG/ymxqqw98Ix9qLT\nmDnZgrvX1MGYQM4oEilPkMuj8B0rV3E7MOwRNeo2u0vWeDNg7HmWU1DD+Fic6xYeZOBw+VBUoBMM\nY69o5G/biudhE7s/Prl8Ov7y3ofY23Y5HNbWUySWzKnAXVcX+NhqVjEPikt5cH2OpYXRowb9bFCw\n/9vl4U8XZDNi92hZsUFxr3DLrjN4OybC4PEGsOtINwiNRlZXhRTJGKpMGIFsNDxKI1agBfCnyZRK\nZyjJuDDIHHwPkmQBEE8VtlKLvRK/R8oTjPJaeSpupYw6NBpJg01drdaOrO7mCmpIQsN7niKjEgMj\nIQPF14pUYtajYUYJb1X0ysaJvB4jkNh557s/jLQO/7JxPu5cMSOqnSfWI49s4RL6Tr58fOxrpKIe\nSnuUqUbsHr1xtnTuNR6kCphaO2yyuipSSSaMQDYaHiWRU6sj9uxkUyRgXBlkPhJZAJVa7JVAanMg\ndaxSRl0sRE/pSPz71jbBML/Yd8e2YogpRnG9lYns8JU677GtMIl+Z+Tf+OoC4lWoygWE7tH7b5+F\nwcFRxb5HamG2O5is2dBkwghkk+FREjltqbny7Ix7g5zMApgNN3ik0SMpHVivT5biTSSiIgMEIWiw\nPV42nKeTCvNHfrecVozSGAOfzzv8SBJRqMp2hK4fqXDsXWphtphTUzilklnk9HnnyrMz7g1yviyA\ntI6EtawgocZ1KYMXa7CLTTRcjJ+32EmO2IqcEFPDjFJZhj0fDXQ+5/y8V6ufY8cfKoHUwtxUn5rC\nKZXME9vmytVolMRZCZ9pxr1BBvJ7AYwHIS861mB7/QFs+t1B3s+Qk+eUE2JqOzsIxsfyLqDxVMXn\nIvkWEWADAfzx7S7sPdETrkLXUyRWL5qMTzRPUfSa8Q110FMkmudUjLvneTwR+8wI1WhkO6pBRv4t\ngKmCM9iMj00qzyknxCRm2OOpis9lsiElogRbdp0Z01vt8bJ48/0P4fH4FL1mkUMdYvuQVfIfqRqN\nbCf33QkFSbdMWq4iJiUqN8y/YVUNVjZVgRCQcRIy7PEOrlfJLIyPRWtHn+Dfj3baUnLNaF1oulB1\nuVl9nlVyBtUgjzNi9aoTJR6daz64udNC+r5Chl1OVXy2odQ5z0WGnYyonOrg1cpnlcwxnu/PbEMN\nWY8TlM67KhXm37imLq6WplxqC8r3XLccpDTOS9TK54yh3p/Zh2qQxwmpyrsmm+eM17DnUlX8eMl1\niyGlcZ4qyUgVadT7M/tQt0HjgFzIu8aTv082XJ4OcuGcp4sNq2qwan4V9NS1a6unSNy2dFpWXbPx\nhHp/ZieqhzwOyDc5xlyois+3c54MJEHgnjX1+NSKmij50XQMfFfhR70/sxPVQx4HSA3zztUcXjZX\nxefrOU8GTn602mrKyms2nlDvz+xENcjjACXalFTiQz3nKtmMen9mJ2rIepygqpGlH/Wcq2Qz6v2Z\nfWiCQb6hd+lBzR8pi9Vqljyn+ar/nErknFcx1HPOT7LnVYWfeM+ren/KQ6n71WoVnhqnuIf8zDPP\n4Pjx49BoNHjkkUfQ0NCg9FeoJEG+yDHmEuo5V8lm1Psze1DUIB88eBDnz5/Hli1bcPbsWTzyyCPY\nsmWLkl+hoqKioqKSlyha1LVv3z6sXr0aADBjxgwMDw/D6XQq+RUqKioqKip5iaIGub+/HxaLJfy/\nS0pKYLOJD6JXUVFRUVFRSXGVtVS9mMVihFarFhEoiVjBgEriqOc1NajnNTWo5zU1pPq8KmqQy8vL\n0d/fH/7ffX19sFr5e90AwG53Kfn14x61ajU1qOc1NajnNTWo5zU1pKPKWtGQ9ZIlS7B9+3YAwKlT\np1BeXg6TyaTkV6ioqKioqOQlinrITU1NmDVrFu666y5oNBps2rRJyY9XUVFRUVHJWxTPIX/7299W\n+iNVVFRUVFTynowqdamoqKioqKiEUIdLqKioqKioZAGqQVZRUVFRUckCVIOsoqKioqKSBagGWUVF\nRcWftmkAAATwSURBVEVFJQtQDbKKioqKikoWoBpkFRUVFRWVLCClWtYqqcHtduPhhx/GwMAAGIbB\nV77yFaxcuRIA0NLSgs9//vPo6OjI8FHmHnzndenSpXj44Ydx/vx5FBQU4Kc//SmKiooyfag5B9+5\nNZlM+PGPfwytVguj0Yjnn39ePbcJ4vF4cNttt+ErX/kKFi9ejO9+97tgWRZWqxUvvPACKIrK9CHm\nJLHn9Xvf+x78fj+0Wi1eeOEFUWnoRFA95Bxk9+7dmD17Nl577TW8+OKLePbZZwEADMPgN7/5jeI3\nyXiB77z+6U9/gsViwdatW3Hrrbfi8OHDmT7MnITv3P7whz/E008/jVdffRWNjY3q7PQk+OUvfxne\nzPz0pz/Fxo0bsXnzZkyZMgVbt27N8NHlLpHn9cUXX8Sdd96J1157DWvWrMF//ud/Kv59qoecg9x6\n663h/+7p6cGECRMAAL/61a+wceNGvPDCC5k6tJyG77zu3r0bX//61wEAGzZsyNSh5Tx851an02Fo\naAgAMDw8jOnTp2fq8HKas2fP4syZM1ixYgUA4MCBA3jyyScBACtXrsTLL7+MjRs3ZvAIc5PY87pp\n0ybQNA0AsFgsOHXqlOLfqRrkHOauu+5Cb28vfvWrX+HDDz9Ee3s7vvGNb6gGOUkiz+s///M/4733\n3sMLL7yAsrIybNq0CcXFxZk+xJwl8tzqdDrcc889KCwsRFFREb71rW9l+vBykueeew7f//73sW3b\nNgCh9AAXoi4tLVVn0idI7Hk1Go0AAJZlsXnzZnz1q19V/DtVg5zDvP766zh9+jS+853voLKyEo89\n9limDykviDyvgUAA06ZNw4MPPohf/OIX+PWvf42HHnoo04eYs0Se25KSEvzHf/wH5s+fj+eeew6b\nN2/GZz7zmUwfYk6xbds2zJs3D5MmTeL9u6qMnBhC55VlWXz3u9/FjTfeiMWLFyv+vapBzkFOnjyJ\n0tJSVFZW4rrrrsPo6CjOnDkTHuzR19eHe+65B6+99lqGjzS3iD2vLMuCIAgsXLgQALB06VL87Gc/\ny/BR5iZ85/bAgQOYP38+AKC5uRl//etfM3yUucc777yDixcv4p133kFvby8oioLRaITH44Fer8eV\nK1dQXl6e6cPMOfjOa0VFBbZt24YpU6bgwQcfTMn3qgY5Bzl8+DC6u7vx6KOPor+/H4FAALt27QJB\nhGr0Vq1apRrjBIg9ry6XC3fddRdaWlqwfv16nDp1CtOmTcv0YeYkfOe2trYWZ86cQU1NDU6cOIEp\nU6Zk+jBzjhdffDH83z/72c9QVVWFo0ePYvv27fjEJz6Bt956C8uWLcvgEeYmfOe1v78fOp0uXFOS\nCtRpTzmIx+PBo48+ip6eHng8Hjz44INYtWpV+O+rVq3Crl27MniEuQnfeV28eDEeeugh2Gw2GI1G\nPPfccygrK8v0oeYcfOe2uLgYzz//PHQ6HYqKivDMM8+gsLAw04eas3CGY+nSpXjooYfAMAwmTpyI\nH/7wh9DpdJk+vJyFO69/+tOfwDAMTCYTAGDGjBl44oknFP0u1SCrqKioqKhkAWofsoqKioqKShag\nGmQVFRUVFZUsQDXIKioqKioqWYBqkFVUVFRUVLIA1SCrqKioqKhkAapBVlFRUVFRyQJUg/z/26tj\nAQAAAIBB/tbT2FESAcCAkAFgIEUQlrCS/twkAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "6N0p91k2iFCP",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "**Try creating some synthetic features that do a better job with latitude.**\n",
+ "\n",
+ "For example, you could have a feature that maps `latitude` to a value of `|latitude - 38|`, and call this `distance_from_san_francisco`.\n",
+ "\n",
+ "Or you could break the space into 10 different buckets. `latitude_32_to_33`, `latitude_33_to_34`, etc., each showing a value of `1.0` if `latitude` is within that bucket range and a value of `0.0` otherwise.\n",
+ "\n",
+ "Use the correlation matrix to help guide development, and then add them to your model if you find something that looks good.\n",
+ "\n",
+ "What's the best validation performance you can get?"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "wduJ2B28yMFl",
+ "colab_type": "code",
+ "cellView": "form",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 622
+ },
+ "outputId": "8135d122-e764-47ab-eca6-b80ed4a05793"
+ },
+ "cell_type": "code",
+ "source": [
+ "#\n",
+ "# YOUR CODE HERE: Train on a new data set that includes synthetic features based on latitude.\n",
+ "#\n",
+ "def select_and_transform_features(source_df):\n",
+ " LATITUDE_RANGES = zip(range(32, 44), range(33, 45))\n",
+ " selected_examples = pd.DataFrame()\n",
+ " selected_examples[\"median_income\"] = source_df[\"median_income\"]\n",
+ " for r in LATITUDE_RANGES:\n",
+ " selected_examples[\"latitude_%d_to_%d\" % r] = source_df[\"latitude\"].apply(\n",
+ " lambda l: 1.0 if l >= r[0] and l < r[1] else 0.0)\n",
+ " return selected_examples\n",
+ "\n",
+ "selected_training_examples = select_and_transform_features(training_examples)\n",
+ "selected_validation_examples = select_and_transform_features(validation_examples)\n",
+ "_ = train_model(\n",
+ " learning_rate=0.01,\n",
+ " steps=500,\n",
+ " batch_size=5,\n",
+ " training_examples=selected_training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=selected_validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 18,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 229.13\n",
+ " period 01 : 218.85\n",
+ " period 02 : 208.68\n",
+ " period 03 : 198.58\n",
+ " period 04 : 188.60\n",
+ " period 05 : 178.76\n",
+ " period 06 : 169.07\n",
+ " period 07 : 159.60\n",
+ " period 08 : 150.33\n",
+ " period 09 : 141.30\n",
+ "Model training finished.\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGACAYAAACz01iHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xd8VFX+//HXnZZkksmkl0lIIyH0\n0EIJTUAgNBFB1gKW9es22fWr7lp+lu/u6tp1V93Fgh3XFUVEEQFFLCDSEQjpEGp6Jr2QZHJ/f6BZ\nEAgzIQM3yef5eOzjsclk7rmT9zn4yb3nnqOoqqoihBBCCNGJ6C71CQghhBBCuEoKGCGEEEJ0OlLA\nCCGEEKLTkQJGCCGEEJ2OFDBCCCGE6HSkgBFCCCFEp2O41CcghJYlJiYSFRWFXq8HwOFwkJyczAMP\nPIDZbG73cd9//33mz59/xvdXrFjBfffdx0svvcSECRNav9/Q0EBKSgpTpkzh8ccfb3e7zjpy5AiP\nPvooeXl5AHh5ebFo0SIuv/xyt7ftisWLF3PkyJEzfidbt27llltuITIy8oz3rF279mKd3gU5duwY\nkyZNIjY2FgBVVQkKCuL++++nb9++Lh3rmWeewWazce211zr9no8//pjly5ezdOlSl9oS4mKRAkaI\n81i6dClhYWEANDY2cscdd/Dyyy9zxx13tOt4JSUlvPrqq2ctYADCw8P59NNPTytgvvrqK3x9fdvV\nXnv88Y9/ZPbs2bz00ksA7NmzhxtvvJE1a9YQHh5+0c7jQoSHh3eaYuVc9Hr9aZ/hs88+47bbbmPd\nunWYTCanj3PXXXe54/SEuKTkFpIQLjCZTIwdO5aMjAwATpw4wUMPPcTUqVOZNm0ajz/+OA6HA4DM\nzEyuueYaUlNTmT17Nhs3bgTgmmuuIT8/n9TUVBobG89oY8iQIWzdupX6+vrW73322WeMHj269evG\nxkYeeeQRpk6dysSJE1sLDYDdu3dz1VVXkZqayvTp09m8eTNw8i/6MWPG8PbbbzNr1izGjh3LZ599\ndtbPmZ2dTVJSUuvXSUlJrFu3rrWQ++c//8n48eO58soreeWVV5g4cSIA9957L4sXL25936lfn++8\nHn30URYsWADAzp07mTt3LpMnT2b+/PkcPXoUOHkl6n//93+ZMGECCxYsoLCw8DyJnd2KFStYtGgR\nN954I08++SRbt27lmmuu4fbbb2/9j/2aNWuYOXMmqamp3HDDDRw5cgSAF154gQceeIB58+bx5ptv\nnnbc22+/nddff73164yMDMaMGUNLSwt///vfmTp1KlOnTuWGG26gqKjI5fOePn06DQ0NHDx4EIBl\ny5aRmprKxIkTufPOO2loaABO/t4fe+wxZs2axZo1a07L4Vz9sqWlhb/+9a9cdtllzJs3j8zMzNZ2\nt23bxpw5c5g+fTrTpk1jzZo1Lp+7EB1OFUKcU69evdSCgoLWrysqKtTrr79eXbx4saqqqvryyy+r\nt956q9rU1KTW19erc+fOVVeuXKk6HA512rRp6qpVq1RVVdW9e/eqycnJanV1tbplyxb18ssvP2t7\nH374oXrPPfeof/zjH1vfW11drU6aNEn94IMP1HvuuUdVVVX95z//qd54443qiRMn1NraWvXKK69U\nN2zYoKqqqs6cOVP99NNPVVVV1Y8++qi1raNHj6p9+/ZVly5dqqqqqn722Wfq5MmTz3oev//979UJ\nEyaob731lpqbm3vaa1lZWeqwYcPU4uJitampSf3tb3+rTpgwQVVVVb3nnnvUf/3rX60/e+rXbZ1X\nv3791BUrVrR+3uTkZHXTpk2qqqrqqlWr1Dlz5qiqqqrvvPOOev3116tNTU2q3W5XJ0yY0Po7OVVb\nv+Offs+DBg1S8/LyWn9+wIAB6ubNm1VVVdXjx4+rQ4cOVQ8dOqSqqqq+9tpr6o033qiqqqo+//zz\n6pgxY9SysrIzjrt69Wr1+uuvb/36ueeeUx9++GE1OztbnTJlitrY2Kiqqqq+/fbb6kcffXTO8/vp\n99KnT58zvp+cnKweOHBA3b59uzpq1Ci1sLBQVVVVffDBB9XHH39cVdWTv/dZs2apDQ0NrV//61//\narNffv311+qUKVPUmpoatb6+Xp03b566YMECVVVV9aqrrlK3bt2qqqqq5uXlqXfeeWeb5y7ExSBX\nYIQ4j4ULF5KamsqkSZOYNGkSI0eO5NZbbwXg66+/Zv78+RgMBjw9PZk1axbfffcdx44do7S0lBkz\nZgAwYMAAbDYb+/btc6rNGTNm8OmnnwKwfv16JkyYgE733+H61Vdfcd1112EymTCbzcyePZvPP/8c\ngJUrVzJt2jQAhg4d2nr1AqC5uZmrrroKgH79+pGfn3/W9p966imuv/56Vq1axcyZM5k4cSL/+c9/\n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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/first_steps_with_tensor_flow.ipynb b/first_steps_with_tensor_flow.ipynb
new file mode 100644
index 0000000..349fc8b
--- /dev/null
+++ b/first_steps_with_tensor_flow.ipynb
@@ -0,0 +1,965 @@
+{
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "name": "first_steps_with_tensor_flow.ipynb",
+ "version": "0.3.2",
+ "provenance": [],
+ "collapsed_sections": [
+ "JndnmDMp66FL",
+ "ajVM7rkoYXeL",
+ "ci1ISxxrZ7v0"
+ ],
+ "include_colab_link": true
+ },
+ "kernelspec": {
+ "name": "python2",
+ "display_name": "Python 2"
+ }
+ },
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "view-in-github",
+ "colab_type": "text"
+ },
+ "source": [
+ ""
+ ]
+ },
+ {
+ "metadata": {
+ "id": "JndnmDMp66FL",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "#### Copyright 2017 Google LLC."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "hMqWDc_m6rUC",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
+ "# you may not use this file except in compliance with the License.\n",
+ "# You may obtain a copy of the License at\n",
+ "#\n",
+ "# https://www.apache.org/licenses/LICENSE-2.0\n",
+ "#\n",
+ "# Unless required by applicable law or agreed to in writing, software\n",
+ "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
+ "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
+ "# See the License for the specific language governing permissions and\n",
+ "# limitations under the License."
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "4f3CKqFUqL2-",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "# First Steps with TensorFlow"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "Bd2Zkk1LE2Zr",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "**Learning Objectives:**\n",
+ " * Learn fundamental TensorFlow concepts\n",
+ " * Use the `LinearRegressor` class in TensorFlow to predict median housing price, at the granularity of city blocks, based on one input feature\n",
+ " * Evaluate the accuracy of a model's predictions using Root Mean Squared Error (RMSE)\n",
+ " * Improve the accuracy of a model by tuning its hyperparameters"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "MxiIKhP4E2Zr",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "The [data](https://developers.google.com/machine-learning/crash-course/california-housing-data-description) is based on 1990 census data from California."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "6TjLjL9IU80G",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Setup\n",
+ "In this first cell, we'll load the necessary libraries."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "rVFf5asKE2Zt",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "from __future__ import print_function\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "from IPython import display\n",
+ "from matplotlib import cm\n",
+ "from matplotlib import gridspec\n",
+ "from matplotlib import pyplot as plt\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "from sklearn import metrics\n",
+ "import tensorflow as tf\n",
+ "from tensorflow.python.data import Dataset\n",
+ "\n",
+ "tf.logging.set_verbosity(tf.logging.ERROR)\n",
+ "pd.options.display.max_rows = 10\n",
+ "pd.options.display.float_format = '{:.1f}'.format"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "ipRyUHjhU80Q",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Next, we'll load our data set."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "9ivCDWnwE2Zx",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "california_housing_dataframe = pd.read_csv(\"https://download.mlcc.google.com/mledu-datasets/california_housing_train.csv\", sep=\",\")"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "vVk_qlG6U80j",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "We'll randomize the data, just to be sure not to get any pathological ordering effects that might harm the performance of Stochastic Gradient Descent. Additionally, we'll scale `median_house_value` to be in units of thousands, so it can be learned a little more easily with learning rates in a range that we usually use."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "r0eVyguIU80m",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "california_housing_dataframe = california_housing_dataframe.reindex(\n",
+ " np.random.permutation(california_housing_dataframe.index))\n",
+ "california_housing_dataframe[\"median_house_value\"] /= 1000.0\n",
+ "california_housing_dataframe"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "HzzlSs3PtTmt",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Examine the Data\n",
+ "\n",
+ "It's a good idea to get to know your data a little bit before you work with it.\n",
+ "\n",
+ "We'll print out a quick summary of a few useful statistics on each column: count of examples, mean, standard deviation, max, min, and various quantiles."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "gzb10yoVrydW",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "california_housing_dataframe.describe()"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "Lr6wYl2bt2Ep",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Build the First Model\n",
+ "\n",
+ "In this exercise, we'll try to predict `median_house_value`, which will be our label (sometimes also called a target). We'll use `total_rooms` as our input feature.\n",
+ "\n",
+ "**NOTE:** Our data is at the city block level, so this feature represents the total number of rooms in that block.\n",
+ "\n",
+ "To train our model, we'll use the [LinearRegressor](https://www.tensorflow.org/api_docs/python/tf/estimator/LinearRegressor) interface provided by the TensorFlow [Estimator](https://www.tensorflow.org/get_started/estimator) API. This API takes care of a lot of the low-level model plumbing, and exposes convenient methods for performing model training, evaluation, and inference."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "0cpcsieFhsNI",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Step 1: Define Features and Configure Feature Columns"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "EL8-9d4ZJNR7",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "In order to import our training data into TensorFlow, we need to specify what type of data each feature contains. There are two main types of data we'll use in this and future exercises:\n",
+ "\n",
+ "* **Categorical Data**: Data that is textual. In this exercise, our housing data set does not contain any categorical features, but examples you might see would be the home style, the words in a real-estate ad.\n",
+ "\n",
+ "* **Numerical Data**: Data that is a number (integer or float) and that you want to treat as a number. As we will discuss more later sometimes you might want to treat numerical data (e.g., a postal code) as if it were categorical.\n",
+ "\n",
+ "In TensorFlow, we indicate a feature's data type using a construct called a **feature column**. Feature columns store only a description of the feature data; they do not contain the feature data itself.\n",
+ "\n",
+ "To start, we're going to use just one numeric input feature, `total_rooms`. The following code pulls the `total_rooms` data from our `california_housing_dataframe` and defines the feature column using `numeric_column`, which specifies its data is numeric:"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "rhEbFCZ86cDZ",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "# Define the input feature: total_rooms.\n",
+ "my_feature = california_housing_dataframe[[\"total_rooms\"]]\n",
+ "\n",
+ "# Configure a numeric feature column for total_rooms.\n",
+ "feature_columns = [tf.feature_column.numeric_column(\"total_rooms\")]"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "K_3S8teX7Rd2",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "**NOTE:** The shape of our `total_rooms` data is a one-dimensional array (a list of the total number of rooms for each block). This is the default shape for `numeric_column`, so we don't have to pass it as an argument."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "UMl3qrU5MGV6",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Step 2: Define the Target"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "cw4nrfcB7kyk",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Next, we'll define our target, which is `median_house_value`. Again, we can pull it from our `california_housing_dataframe`:"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "l1NvvNkH8Kbt",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "# Define the label.\n",
+ "targets = california_housing_dataframe[\"median_house_value\"]"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "4M-rTFHL2UkA",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Step 3: Configure the LinearRegressor"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "fUfGQUNp7jdL",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Next, we'll configure a linear regression model using LinearRegressor. We'll train this model using the `GradientDescentOptimizer`, which implements Mini-Batch Stochastic Gradient Descent (SGD). The `learning_rate` argument controls the size of the gradient step.\n",
+ "\n",
+ "**NOTE:** To be safe, we also apply [gradient clipping](https://developers.google.com/machine-learning/glossary/#gradient_clipping) to our optimizer via `clip_gradients_by_norm`. Gradient clipping ensures the magnitude of the gradients do not become too large during training, which can cause gradient descent to fail. "
+ ]
+ },
+ {
+ "metadata": {
+ "id": "ubhtW-NGU802",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "# Use gradient descent as the optimizer for training the model.\n",
+ "my_optimizer=tf.train.GradientDescentOptimizer(learning_rate=0.0000001)\n",
+ "my_optimizer = tf.contrib.estimator.clip_gradients_by_norm(my_optimizer, 5.0)\n",
+ "\n",
+ "# Configure the linear regression model with our feature columns and optimizer.\n",
+ "# Set a learning rate of 0.0000001 for Gradient Descent.\n",
+ "linear_regressor = tf.estimator.LinearRegressor(\n",
+ " feature_columns=feature_columns,\n",
+ " optimizer=my_optimizer\n",
+ ")"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "-0IztwdK2f3F",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Step 4: Define the Input Function"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "S5M5j6xSCHxx",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "To import our California housing data into our `LinearRegressor`, we need to define an input function, which instructs TensorFlow how to preprocess\n",
+ "the data, as well as how to batch, shuffle, and repeat it during model training.\n",
+ "\n",
+ "First, we'll convert our *pandas* feature data into a dict of NumPy arrays. We can then use the TensorFlow [Dataset API](https://www.tensorflow.org/programmers_guide/datasets) to construct a dataset object from our data, and then break\n",
+ "our data into batches of `batch_size`, to be repeated for the specified number of epochs (num_epochs). \n",
+ "\n",
+ "**NOTE:** When the default value of `num_epochs=None` is passed to `repeat()`, the input data will be repeated indefinitely.\n",
+ "\n",
+ "Next, if `shuffle` is set to `True`, we'll shuffle the data so that it's passed to the model randomly during training. The `buffer_size` argument specifies\n",
+ "the size of the dataset from which `shuffle` will randomly sample.\n",
+ "\n",
+ "Finally, our input function constructs an iterator for the dataset and returns the next batch of data to the LinearRegressor."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "RKZ9zNcHJtwc",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def my_input_fn(features, targets, batch_size=1, shuffle=True, num_epochs=None):\n",
+ " \"\"\"Trains a linear regression model of one feature.\n",
+ " \n",
+ " Args:\n",
+ " features: pandas DataFrame of features\n",
+ " targets: pandas DataFrame of targets\n",
+ " batch_size: Size of batches to be passed to the model\n",
+ " shuffle: True or False. Whether to shuffle the data.\n",
+ " num_epochs: Number of epochs for which data should be repeated. None = repeat indefinitely\n",
+ " Returns:\n",
+ " Tuple of (features, labels) for next data batch\n",
+ " \"\"\"\n",
+ " \n",
+ " # Convert pandas data into a dict of np arrays.\n",
+ " features = {key:np.array(value) for key,value in dict(features).items()} \n",
+ " \n",
+ " # Construct a dataset, and configure batching/repeating.\n",
+ " ds = Dataset.from_tensor_slices((features,targets)) # warning: 2GB limit\n",
+ " ds = ds.batch(batch_size).repeat(num_epochs)\n",
+ " \n",
+ " # Shuffle the data, if specified.\n",
+ " if shuffle:\n",
+ " ds = ds.shuffle(buffer_size=10000)\n",
+ " \n",
+ " # Return the next batch of data.\n",
+ " features, labels = ds.make_one_shot_iterator().get_next()\n",
+ " return features, labels"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "wwa6UeA1V5F_",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "**NOTE:** We'll continue to use this same input function in later exercises. For more\n",
+ "detailed documentation of input functions and the `Dataset` API, see the [TensorFlow Programmer's Guide](https://www.tensorflow.org/programmers_guide/datasets)."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "4YS50CQb2ooO",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Step 5: Train the Model"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "yP92XkzhU803",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "We can now call `train()` on our `linear_regressor` to train the model. We'll wrap `my_input_fn` in a `lambda`\n",
+ "so we can pass in `my_feature` and `target` as arguments (see this [TensorFlow input function tutorial](https://www.tensorflow.org/get_started/input_fn#passing_input_fn_data_to_your_model) for more details), and to start, we'll\n",
+ "train for 100 steps."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "5M-Kt6w8U803",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "_ = linear_regressor.train(\n",
+ " input_fn = lambda:my_input_fn(my_feature, targets),\n",
+ " steps=100\n",
+ ")"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "7Nwxqxlx2sOv",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Step 6: Evaluate the Model"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "KoDaF2dlJQG5",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Let's make predictions on that training data, to see how well our model fit it during training.\n",
+ "\n",
+ "**NOTE:** Training error measures how well your model fits the training data, but it **_does not_** measure how well your model **_generalizes to new data_**. In later exercises, you'll explore how to split your data to evaluate your model's ability to generalize.\n"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "pDIxp6vcU809",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "# Create an input function for predictions.\n",
+ "# Note: Since we're making just one prediction for each example, we don't \n",
+ "# need to repeat or shuffle the data here.\n",
+ "prediction_input_fn =lambda: my_input_fn(my_feature, targets, num_epochs=1, shuffle=False)\n",
+ "\n",
+ "# Call predict() on the linear_regressor to make predictions.\n",
+ "predictions = linear_regressor.predict(input_fn=prediction_input_fn)\n",
+ "\n",
+ "# Format predictions as a NumPy array, so we can calculate error metrics.\n",
+ "predictions = np.array([item['predictions'][0] for item in predictions])\n",
+ "\n",
+ "# Print Mean Squared Error and Root Mean Squared Error.\n",
+ "mean_squared_error = metrics.mean_squared_error(predictions, targets)\n",
+ "root_mean_squared_error = math.sqrt(mean_squared_error)\n",
+ "print(\"Mean Squared Error (on training data): %0.3f\" % mean_squared_error)\n",
+ "print(\"Root Mean Squared Error (on training data): %0.3f\" % root_mean_squared_error)"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "AKWstXXPzOVz",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Is this a good model? How would you judge how large this error is?\n",
+ "\n",
+ "Mean Squared Error (MSE) can be hard to interpret, so we often look at Root Mean Squared Error (RMSE)\n",
+ "instead. A nice property of RMSE is that it can be interpreted on the same scale as the original targets.\n",
+ "\n",
+ "Let's compare the RMSE to the difference of the min and max of our targets:"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "7UwqGbbxP53O",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "min_house_value = california_housing_dataframe[\"median_house_value\"].min()\n",
+ "max_house_value = california_housing_dataframe[\"median_house_value\"].max()\n",
+ "min_max_difference = max_house_value - min_house_value\n",
+ "\n",
+ "print(\"Min. Median House Value: %0.3f\" % min_house_value)\n",
+ "print(\"Max. Median House Value: %0.3f\" % max_house_value)\n",
+ "print(\"Difference between Min. and Max.: %0.3f\" % min_max_difference)\n",
+ "print(\"Root Mean Squared Error: %0.3f\" % root_mean_squared_error)"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "JigJr0C7Pzit",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Our error spans nearly half the range of the target values. Can we do better?\n",
+ "\n",
+ "This is the question that nags at every model developer. Let's develop some basic strategies to reduce model error.\n",
+ "\n",
+ "The first thing we can do is take a look at how well our predictions match our targets, in terms of overall summary statistics."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "941nclxbzqGH",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "calibration_data = pd.DataFrame()\n",
+ "calibration_data[\"predictions\"] = pd.Series(predictions)\n",
+ "calibration_data[\"targets\"] = pd.Series(targets)\n",
+ "calibration_data.describe()"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "E2-bf8Hq36y8",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Okay, maybe this information is helpful. How does the mean value compare to the model's RMSE? How about the various quantiles?\n",
+ "\n",
+ "We can also visualize the data and the line we've learned. Recall that linear regression on a single feature can be drawn as a line mapping input *x* to output *y*.\n",
+ "\n",
+ "First, we'll get a uniform random sample of the data so we can make a readable scatter plot."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "SGRIi3mAU81H",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "sample = california_housing_dataframe.sample(n=300)"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "N-JwuJBKU81J",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Next, we'll plot the line we've learned, drawing from the model's bias term and feature weight, together with the scatter plot. The line will show up red."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "7G12E76-339G",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "# Get the min and max total_rooms values.\n",
+ "x_0 = sample[\"total_rooms\"].min()\n",
+ "x_1 = sample[\"total_rooms\"].max()\n",
+ "\n",
+ "# Retrieve the final weight and bias generated during training.\n",
+ "weight = linear_regressor.get_variable_value('linear/linear_model/total_rooms/weights')[0]\n",
+ "bias = linear_regressor.get_variable_value('linear/linear_model/bias_weights')\n",
+ "\n",
+ "# Get the predicted median_house_values for the min and max total_rooms values.\n",
+ "y_0 = weight * x_0 + bias \n",
+ "y_1 = weight * x_1 + bias\n",
+ "\n",
+ "# Plot our regression line from (x_0, y_0) to (x_1, y_1).\n",
+ "plt.plot([x_0, x_1], [y_0, y_1], c='r')\n",
+ "\n",
+ "# Label the graph axes.\n",
+ "plt.ylabel(\"median_house_value\")\n",
+ "plt.xlabel(\"total_rooms\")\n",
+ "\n",
+ "# Plot a scatter plot from our data sample.\n",
+ "plt.scatter(sample[\"total_rooms\"], sample[\"median_house_value\"])\n",
+ "\n",
+ "# Display graph.\n",
+ "plt.show()"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "t0lRt4USU81L",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "This initial line looks way off. See if you can look back at the summary stats and see the same information encoded there.\n",
+ "\n",
+ "Together, these initial sanity checks suggest we may be able to find a much better line."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "AZWF67uv0HTG",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Tweak the Model Hyperparameters\n",
+ "For this exercise, we've put all the above code in a single function for convenience. You can call the function with different parameters to see the effect.\n",
+ "\n",
+ "In this function, we'll proceed in 10 evenly divided periods so that we can observe the model improvement at each period.\n",
+ "\n",
+ "For each period, we'll compute and graph training loss. This may help you judge when a model is converged, or if it needs more iterations.\n",
+ "\n",
+ "We'll also plot the feature weight and bias term values learned by the model over time. This is another way to see how things converge."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "wgSMeD5UU81N",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def train_model(learning_rate, steps, batch_size, input_feature=\"total_rooms\"):\n",
+ " \"\"\"Trains a linear regression model of one feature.\n",
+ " \n",
+ " Args:\n",
+ " learning_rate: A `float`, the learning rate.\n",
+ " steps: A non-zero `int`, the total number of training steps. A training step\n",
+ " consists of a forward and backward pass using a single batch.\n",
+ " batch_size: A non-zero `int`, the batch size.\n",
+ " input_feature: A `string` specifying a column from `california_housing_dataframe`\n",
+ " to use as input feature.\n",
+ " \"\"\"\n",
+ " \n",
+ " periods = 10\n",
+ " steps_per_period = steps / periods\n",
+ "\n",
+ " my_feature = input_feature\n",
+ " my_feature_data = california_housing_dataframe[[my_feature]]\n",
+ " my_label = \"median_house_value\"\n",
+ " targets = california_housing_dataframe[my_label]\n",
+ "\n",
+ " # Create feature columns.\n",
+ " feature_columns = [tf.feature_column.numeric_column(my_feature)]\n",
+ " \n",
+ " # Create input functions.\n",
+ " training_input_fn = lambda:my_input_fn(my_feature_data, targets, batch_size=batch_size)\n",
+ " prediction_input_fn = lambda: my_input_fn(my_feature_data, targets, num_epochs=1, shuffle=False)\n",
+ " \n",
+ " # Create a linear regressor object.\n",
+ " my_optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate)\n",
+ " my_optimizer = tf.contrib.estimator.clip_gradients_by_norm(my_optimizer, 5.0)\n",
+ " linear_regressor = tf.estimator.LinearRegressor(\n",
+ " feature_columns=feature_columns,\n",
+ " optimizer=my_optimizer\n",
+ " )\n",
+ "\n",
+ " # Set up to plot the state of our model's line each period.\n",
+ " plt.figure(figsize=(15, 6))\n",
+ " plt.subplot(1, 2, 1)\n",
+ " plt.title(\"Learned Line by Period\")\n",
+ " plt.ylabel(my_label)\n",
+ " plt.xlabel(my_feature)\n",
+ " sample = california_housing_dataframe.sample(n=300)\n",
+ " plt.scatter(sample[my_feature], sample[my_label])\n",
+ " colors = [cm.coolwarm(x) for x in np.linspace(-1, 1, periods)]\n",
+ "\n",
+ " # Train the model, but do so inside a loop so that we can periodically assess\n",
+ " # loss metrics.\n",
+ " print(\"Training model...\")\n",
+ " print(\"RMSE (on training data):\")\n",
+ " root_mean_squared_errors = []\n",
+ " for period in range (0, periods):\n",
+ " # Train the model, starting from the prior state.\n",
+ " linear_regressor.train(\n",
+ " input_fn=training_input_fn,\n",
+ " steps=steps_per_period\n",
+ " )\n",
+ " # Take a break and compute predictions.\n",
+ " predictions = linear_regressor.predict(input_fn=prediction_input_fn)\n",
+ " predictions = np.array([item['predictions'][0] for item in predictions])\n",
+ " \n",
+ " # Compute loss.\n",
+ " root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(predictions, targets))\n",
+ " # Occasionally print the current loss.\n",
+ " print(\" period %02d : %0.2f\" % (period, root_mean_squared_error))\n",
+ " # Add the loss metrics from this period to our list.\n",
+ " root_mean_squared_errors.append(root_mean_squared_error)\n",
+ " # Finally, track the weights and biases over time.\n",
+ " # Apply some math to ensure that the data and line are plotted neatly.\n",
+ " y_extents = np.array([0, sample[my_label].max()])\n",
+ " \n",
+ " weight = linear_regressor.get_variable_value('linear/linear_model/%s/weights' % input_feature)[0]\n",
+ " bias = linear_regressor.get_variable_value('linear/linear_model/bias_weights')\n",
+ "\n",
+ " x_extents = (y_extents - bias) / weight\n",
+ " x_extents = np.maximum(np.minimum(x_extents,\n",
+ " sample[my_feature].max()),\n",
+ " sample[my_feature].min())\n",
+ " y_extents = weight * x_extents + bias\n",
+ " plt.plot(x_extents, y_extents, color=colors[period]) \n",
+ " print(\"Model training finished.\")\n",
+ "\n",
+ " # Output a graph of loss metrics over periods.\n",
+ " plt.subplot(1, 2, 2)\n",
+ " plt.ylabel('RMSE')\n",
+ " plt.xlabel('Periods')\n",
+ " plt.title(\"Root Mean Squared Error vs. Periods\")\n",
+ " plt.tight_layout()\n",
+ " plt.plot(root_mean_squared_errors)\n",
+ "\n",
+ " # Output a table with calibration data.\n",
+ " calibration_data = pd.DataFrame()\n",
+ " calibration_data[\"predictions\"] = pd.Series(predictions)\n",
+ " calibration_data[\"targets\"] = pd.Series(targets)\n",
+ " display.display(calibration_data.describe())\n",
+ "\n",
+ " print(\"Final RMSE (on training data): %0.2f\" % root_mean_squared_error)"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "kg8A4ArBU81Q",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 1: Achieve an RMSE of 180 or Below\n",
+ "\n",
+ "Tweak the model hyperparameters to improve loss and better match the target distribution.\n",
+ "If, after 5 minutes or so, you're having trouble beating a RMSE of 180, check the solution for a possible combination."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "UzoZUSdLIolF",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "train_model(\n",
+ " learning_rate=0.00001,\n",
+ " steps=100,\n",
+ " batch_size=1\n",
+ ")"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "ajVM7rkoYXeL",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Solution\n",
+ "\n",
+ "Click below for one possible solution."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "T3zmldDwYy5c",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "train_model(\n",
+ " learning_rate=0.00002,\n",
+ " steps=500,\n",
+ " batch_size=5\n",
+ ")"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "M8H0_D4vYa49",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "This is just one possible configuration; there may be other combinations of settings that also give good results. Note that in general, this exercise isn't about finding the *one best* setting, but to help build your intutions about how tweaking the model configuration affects prediction quality."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "QU5sLyYTqzqL",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Is There a Standard Heuristic for Model Tuning?\n",
+ "\n",
+ "This is a commonly asked question. The short answer is that the effects of different hyperparameters are data dependent. So there are no hard-and-fast rules; you'll need to test on your data.\n",
+ "\n",
+ "That said, here are a few rules of thumb that may help guide you:\n",
+ "\n",
+ " * Training error should steadily decrease, steeply at first, and should eventually plateau as training converges.\n",
+ " * If the training has not converged, try running it for longer.\n",
+ " * If the training error decreases too slowly, increasing the learning rate may help it decrease faster.\n",
+ " * But sometimes the exact opposite may happen if the learning rate is too high.\n",
+ " * If the training error varies wildly, try decreasing the learning rate.\n",
+ " * Lower learning rate plus larger number of steps or larger batch size is often a good combination.\n",
+ " * Very small batch sizes can also cause instability. First try larger values like 100 or 1000, and decrease until you see degradation.\n",
+ "\n",
+ "Again, never go strictly by these rules of thumb, because the effects are data dependent. Always experiment and verify."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "GpV-uF_cBCBU",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 2: Try a Different Feature\n",
+ "\n",
+ "See if you can do any better by replacing the `total_rooms` feature with the `population` feature.\n",
+ "\n",
+ "Don't take more than 5 minutes on this portion."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "YMyOxzb0ZlAH",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "# YOUR CODE HERE"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "ci1ISxxrZ7v0",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Solution\n",
+ "\n",
+ "Click below for one possible solution."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "SjdQQCduZ7BV",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "train_model(\n",
+ " learning_rate=0.00002,\n",
+ " steps=1000,\n",
+ " batch_size=5,\n",
+ " input_feature=\"population\"\n",
+ ")"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ }
+ ]
+}
\ No newline at end of file
diff --git a/improving_neural_net_performance.ipynb b/improving_neural_net_performance.ipynb
new file mode 100644
index 0000000..46868bb
--- /dev/null
+++ b/improving_neural_net_performance.ipynb
@@ -0,0 +1,2001 @@
+{
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "name": "improving_neural_net_performance.ipynb",
+ "version": "0.3.2",
+ "provenance": [],
+ "collapsed_sections": [
+ "JndnmDMp66FL",
+ "jFfc3saSxg6t",
+ "FSPZIiYgyh93",
+ "GhFtWjQRzD2l",
+ "P8BLQ7T71JWd"
+ ],
+ "include_colab_link": true
+ },
+ "kernelspec": {
+ "name": "python2",
+ "display_name": "Python 2"
+ }
+ },
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "view-in-github",
+ "colab_type": "text"
+ },
+ "source": [
+ ""
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "JndnmDMp66FL"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "#### Copyright 2017 Google LLC."
+ ]
+ },
+ {
+ "metadata": {
+ "cellView": "both",
+ "colab_type": "code",
+ "id": "hMqWDc_m6rUC",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
+ "# you may not use this file except in compliance with the License.\n",
+ "# You may obtain a copy of the License at\n",
+ "#\n",
+ "# https://www.apache.org/licenses/LICENSE-2.0\n",
+ "#\n",
+ "# Unless required by applicable law or agreed to in writing, software\n",
+ "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
+ "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
+ "# See the License for the specific language governing permissions and\n",
+ "# limitations under the License."
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "eV16J6oUY-HN"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "# Improving Neural Net Performance"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "0Rwl1iXIKxkm"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "**Learning Objective:** Improve the performance of a neural network by normalizing features and applying various optimization algorithms\n",
+ "\n",
+ "**NOTE:** The optimization methods described in this exercise are not specific to neural networks; they are effective means to improve most types of models."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "lBPTONWzKxkn"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Setup\n",
+ "\n",
+ "First, we'll load the data."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "VtYVuONUKxko",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "from __future__ import print_function\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "from IPython import display\n",
+ "from matplotlib import cm\n",
+ "from matplotlib import gridspec\n",
+ "from matplotlib import pyplot as plt\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "from sklearn import metrics\n",
+ "import tensorflow as tf\n",
+ "from tensorflow.python.data import Dataset\n",
+ "\n",
+ "tf.logging.set_verbosity(tf.logging.ERROR)\n",
+ "pd.options.display.max_rows = 10\n",
+ "pd.options.display.float_format = '{:.1f}'.format\n",
+ "\n",
+ "california_housing_dataframe = pd.read_csv(\"https://download.mlcc.google.com/mledu-datasets/california_housing_train.csv\", sep=\",\")\n",
+ "\n",
+ "california_housing_dataframe = california_housing_dataframe.reindex(\n",
+ " np.random.permutation(california_housing_dataframe.index))"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "B8qC-jTIKxkr",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def preprocess_features(california_housing_dataframe):\n",
+ " \"\"\"Prepares input features from California housing data set.\n",
+ "\n",
+ " Args:\n",
+ " california_housing_dataframe: A Pandas DataFrame expected to contain data\n",
+ " from the California housing data set.\n",
+ " Returns:\n",
+ " A DataFrame that contains the features to be used for the model, including\n",
+ " synthetic features.\n",
+ " \"\"\"\n",
+ " selected_features = california_housing_dataframe[\n",
+ " [\"latitude\",\n",
+ " \"longitude\",\n",
+ " \"housing_median_age\",\n",
+ " \"total_rooms\",\n",
+ " \"total_bedrooms\",\n",
+ " \"population\",\n",
+ " \"households\",\n",
+ " \"median_income\"]]\n",
+ " processed_features = selected_features.copy()\n",
+ " # Create a synthetic feature.\n",
+ " processed_features[\"rooms_per_person\"] = (\n",
+ " california_housing_dataframe[\"total_rooms\"] /\n",
+ " california_housing_dataframe[\"population\"])\n",
+ " return processed_features\n",
+ "\n",
+ "def preprocess_targets(california_housing_dataframe):\n",
+ " \"\"\"Prepares target features (i.e., labels) from California housing data set.\n",
+ "\n",
+ " Args:\n",
+ " california_housing_dataframe: A Pandas DataFrame expected to contain data\n",
+ " from the California housing data set.\n",
+ " Returns:\n",
+ " A DataFrame that contains the target feature.\n",
+ " \"\"\"\n",
+ " output_targets = pd.DataFrame()\n",
+ " # Scale the target to be in units of thousands of dollars.\n",
+ " output_targets[\"median_house_value\"] = (\n",
+ " california_housing_dataframe[\"median_house_value\"] / 1000.0)\n",
+ " return output_targets"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "Ah6LjMIJ2spZ",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1205
+ },
+ "outputId": "b1e1f29a-5111-4d43-818f-640bb31dddab"
+ },
+ "cell_type": "code",
+ "source": [
+ "# Choose the first 12000 (out of 17000) examples for training.\n",
+ "training_examples = preprocess_features(california_housing_dataframe.head(12000))\n",
+ "training_targets = preprocess_targets(california_housing_dataframe.head(12000))\n",
+ "\n",
+ "# Choose the last 5000 (out of 17000) examples for validation.\n",
+ "validation_examples = preprocess_features(california_housing_dataframe.tail(5000))\n",
+ "validation_targets = preprocess_targets(california_housing_dataframe.tail(5000))\n",
+ "\n",
+ "# Double-check that we've done the right thing.\n",
+ "print(\"Training examples summary:\")\n",
+ "display.display(training_examples.describe())\n",
+ "print(\"Validation examples summary:\")\n",
+ "display.display(validation_examples.describe())\n",
+ "\n",
+ "print(\"Training targets summary:\")\n",
+ "display.display(training_targets.describe())\n",
+ "print(\"Validation targets summary:\")\n",
+ "display.display(validation_targets.describe())"
+ ],
+ "execution_count": 4,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training examples summary:\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " latitude longitude housing_median_age total_rooms total_bedrooms \\\n",
+ "count 12000.0 12000.0 12000.0 12000.0 12000.0 \n",
+ "mean 35.6 -119.6 28.6 2642.1 540.7 \n",
+ "std 2.1 2.0 12.7 2154.5 421.5 \n",
+ "min 32.5 -124.3 1.0 2.0 1.0 \n",
+ "25% 33.9 -121.8 18.0 1469.8 297.0 \n",
+ "50% 34.2 -118.5 29.0 2125.0 435.0 \n",
+ "75% 37.7 -118.0 37.0 3163.2 651.0 \n",
+ "max 42.0 -114.5 52.0 32627.0 6445.0 \n",
+ "\n",
+ " population households median_income rooms_per_person \n",
+ "count 12000.0 12000.0 12000.0 12000.0 \n",
+ "mean 1433.7 502.5 3.9 2.0 \n",
+ "std 1157.8 382.9 1.9 1.2 \n",
+ "min 3.0 1.0 0.5 0.1 \n",
+ "25% 792.0 282.8 2.6 1.5 \n",
+ "50% 1176.0 411.0 3.5 1.9 \n",
+ "75% 1728.0 607.0 4.7 2.3 \n",
+ "max 35682.0 6082.0 15.0 55.2 "
+ ],
+ "text/html": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "NqIbXxx222ea"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Train the Neural Network\n",
+ "\n",
+ "Next, we'll train the neural network."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "6k3xYlSg27VB",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def construct_feature_columns(input_features):\n",
+ " \"\"\"Construct the TensorFlow Feature Columns.\n",
+ "\n",
+ " Args:\n",
+ " input_features: The names of the numerical input features to use.\n",
+ " Returns:\n",
+ " A set of feature columns\n",
+ " \"\"\" \n",
+ " return set([tf.feature_column.numeric_column(my_feature)\n",
+ " for my_feature in input_features])"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "De9jwyy4wTUT",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def my_input_fn(features, targets, batch_size=1, shuffle=True, num_epochs=None):\n",
+ " \"\"\"Trains a neural network model.\n",
+ " \n",
+ " Args:\n",
+ " features: pandas DataFrame of features\n",
+ " targets: pandas DataFrame of targets\n",
+ " batch_size: Size of batches to be passed to the model\n",
+ " shuffle: True or False. Whether to shuffle the data.\n",
+ " num_epochs: Number of epochs for which data should be repeated. None = repeat indefinitely\n",
+ " Returns:\n",
+ " Tuple of (features, labels) for next data batch\n",
+ " \"\"\"\n",
+ " \n",
+ " # Convert pandas data into a dict of np arrays.\n",
+ " features = {key:np.array(value) for key,value in dict(features).items()} \n",
+ " \n",
+ " # Construct a dataset, and configure batching/repeating.\n",
+ " ds = Dataset.from_tensor_slices((features,targets)) # warning: 2GB limit\n",
+ " ds = ds.batch(batch_size).repeat(num_epochs)\n",
+ " \n",
+ " # Shuffle the data, if specified.\n",
+ " if shuffle:\n",
+ " ds = ds.shuffle(10000)\n",
+ " \n",
+ " # Return the next batch of data.\n",
+ " features, labels = ds.make_one_shot_iterator().get_next()\n",
+ " return features, labels"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "W-51R3yIKxk4",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def train_nn_regression_model(\n",
+ " my_optimizer,\n",
+ " steps,\n",
+ " batch_size,\n",
+ " hidden_units,\n",
+ " training_examples,\n",
+ " training_targets,\n",
+ " validation_examples,\n",
+ " validation_targets):\n",
+ " \"\"\"Trains a neural network regression model.\n",
+ " \n",
+ " In addition to training, this function also prints training progress information,\n",
+ " as well as a plot of the training and validation loss over time.\n",
+ " \n",
+ " Args:\n",
+ " my_optimizer: An instance of `tf.train.Optimizer`, the optimizer to use.\n",
+ " steps: A non-zero `int`, the total number of training steps. A training step\n",
+ " consists of a forward and backward pass using a single batch.\n",
+ " batch_size: A non-zero `int`, the batch size.\n",
+ " hidden_units: A `list` of int values, specifying the number of neurons in each layer.\n",
+ " training_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for training.\n",
+ " training_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for training.\n",
+ " validation_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for validation.\n",
+ " validation_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for validation.\n",
+ " \n",
+ " Returns:\n",
+ " A tuple `(estimator, training_losses, validation_losses)`:\n",
+ " estimator: the trained `DNNRegressor` object.\n",
+ " training_losses: a `list` containing the training loss values taken during training.\n",
+ " validation_losses: a `list` containing the validation loss values taken during training.\n",
+ " \"\"\"\n",
+ "\n",
+ " periods = 10\n",
+ " steps_per_period = steps / periods\n",
+ " \n",
+ " # Create a DNNRegressor object.\n",
+ " my_optimizer = tf.contrib.estimator.clip_gradients_by_norm(my_optimizer, 5.0)\n",
+ " dnn_regressor = tf.estimator.DNNRegressor(\n",
+ " feature_columns=construct_feature_columns(training_examples),\n",
+ " hidden_units=hidden_units,\n",
+ " optimizer=my_optimizer\n",
+ " )\n",
+ " \n",
+ " # Create input functions.\n",
+ " training_input_fn = lambda: my_input_fn(training_examples, \n",
+ " training_targets[\"median_house_value\"], \n",
+ " batch_size=batch_size)\n",
+ " predict_training_input_fn = lambda: my_input_fn(training_examples, \n",
+ " training_targets[\"median_house_value\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ " predict_validation_input_fn = lambda: my_input_fn(validation_examples, \n",
+ " validation_targets[\"median_house_value\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ "\n",
+ " # Train the model, but do so inside a loop so that we can periodically assess\n",
+ " # loss metrics.\n",
+ " print(\"Training model...\")\n",
+ " print(\"RMSE (on training data):\")\n",
+ " training_rmse = []\n",
+ " validation_rmse = []\n",
+ " for period in range (0, periods):\n",
+ " # Train the model, starting from the prior state.\n",
+ " dnn_regressor.train(\n",
+ " input_fn=training_input_fn,\n",
+ " steps=steps_per_period\n",
+ " )\n",
+ " # Take a break and compute predictions.\n",
+ " training_predictions = dnn_regressor.predict(input_fn=predict_training_input_fn)\n",
+ " training_predictions = np.array([item['predictions'][0] for item in training_predictions])\n",
+ " \n",
+ " validation_predictions = dnn_regressor.predict(input_fn=predict_validation_input_fn)\n",
+ " validation_predictions = np.array([item['predictions'][0] for item in validation_predictions])\n",
+ " \n",
+ " # Compute training and validation loss.\n",
+ " training_root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(training_predictions, training_targets))\n",
+ " validation_root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(validation_predictions, validation_targets))\n",
+ " # Occasionally print the current loss.\n",
+ " print(\" period %02d : %0.2f\" % (period, training_root_mean_squared_error))\n",
+ " # Add the loss metrics from this period to our list.\n",
+ " training_rmse.append(training_root_mean_squared_error)\n",
+ " validation_rmse.append(validation_root_mean_squared_error)\n",
+ " print(\"Model training finished.\")\n",
+ "\n",
+ " # Output a graph of loss metrics over periods.\n",
+ " plt.ylabel(\"RMSE\")\n",
+ " plt.xlabel(\"Periods\")\n",
+ " plt.title(\"Root Mean Squared Error vs. Periods\")\n",
+ " plt.tight_layout()\n",
+ " plt.plot(training_rmse, label=\"training\")\n",
+ " plt.plot(validation_rmse, label=\"validation\")\n",
+ " plt.legend()\n",
+ "\n",
+ " print(\"Final RMSE (on training data): %0.2f\" % training_root_mean_squared_error)\n",
+ " print(\"Final RMSE (on validation data): %0.2f\" % validation_root_mean_squared_error)\n",
+ "\n",
+ " return dnn_regressor, training_rmse, validation_rmse"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "KueReMZ9Kxk7",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 775
+ },
+ "outputId": "45fd70f1-cd09-40b6-8584-499e60c3b822"
+ },
+ "cell_type": "code",
+ "source": [
+ "_ = train_nn_regression_model(\n",
+ " my_optimizer=tf.train.GradientDescentOptimizer(learning_rate=0.0007),\n",
+ " steps=5000,\n",
+ " batch_size=70,\n",
+ " hidden_units=[10, 10],\n",
+ " training_examples=training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 8,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "WARNING: The TensorFlow contrib module will not be included in TensorFlow 2.0.\n",
+ "For more information, please see:\n",
+ " * https://github.com/tensorflow/community/blob/master/rfcs/20180907-contrib-sunset.md\n",
+ " * https://github.com/tensorflow/addons\n",
+ "If you depend on functionality not listed there, please file an issue.\n",
+ "\n",
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 167.12\n",
+ " period 01 : 141.43\n",
+ " period 02 : 124.62\n",
+ " period 03 : 112.03\n",
+ " period 04 : 106.84\n",
+ " period 05 : 103.49\n",
+ " period 06 : 104.53\n",
+ " period 07 : 102.56\n",
+ " period 08 : 102.75\n",
+ " period 09 : 101.98\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 101.98\n",
+ "Final RMSE (on validation data): 103.87\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGACAYAAACz01iHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xd0VVX+/vH3vbkJqYRUEkiht9Ah\n9BZaAsiIUlQkNnRmLKOjzIz6+6pTcFR0dGzgjFgQsAFjQ+nSUWog0kNPIJBKCimknd8fkStIEoJy\nS8LzWou1uOfuc85z7w4rH/Y5Z2+TYRgGIiIiInWI2dEBRERERK6WChgRERGpc1TAiIiISJ2jAkZE\nRETqHBUwIiIiUueogBEREZE6x+LoACLOrG3btkRERODi4gJAeXk50dHRPPXUU3h6ev7i4y5YsIBJ\nkyZdtv2zzz7jySef5D//+Q8xMTHW7cXFxfTr14+RI0fywgsv/OLz1lZycjLPPfccx44dA8DDw4OH\nHnqI4cOH2/zcV2PWrFkkJydf9p1s2bKFqVOnEhYWdtk+y5Yts1e8X+XkyZMMGzaM5s2bA2AYBoGB\ngfzf//0fHTp0uKpjvfzyyzRp0oTbbrut1vt8+eWXLFq0iHnz5l3VuUTsRQWMyBXMmzePkJAQAEpK\nSnj00Uf573//y6OPPvqLjpeRkcE777xTZQEDEBoaytdff31JAbNmzRoaNmz4i873S/zpT3/ixhtv\n5D//+Q8AiYmJ3HnnnSxdupTQ0FC75fg1QkND60yxUh0XF5dLPsOSJUt48MEHWb58OW5ubrU+zrRp\n02wRT8ShdAlJ5Cq4ubkxcOBA9u/fD8D58+d55plniI2NZdSoUbzwwguUl5cDcODAAW699Vbi4uK4\n8cYb2bBhAwC33norqampxMXFUVJSctk5unfvzpYtWygqKrJuW7JkCf3797e+Likp4dlnnyU2Npah\nQ4daCw2AnTt3cvPNNxMXF8fo0aP57rvvgMr/0Q8YMIC5c+cyduxYBg4cyJIlS6r8nElJSXTp0sX6\nukuXLixfvtxayL355psMHjyYcePG8fbbbzN06FAAnnjiCWbNmmXd7+LXV8r13HPPMWXKFAB27NjB\n+PHjGTFiBJMmTSIlJQWoHIn64x//SExMDFOmTOHMmTNX6LGqffbZZzz00EPceeedvPjii2zZsoVb\nb72VRx55xPrLfunSpdxwww3ExcVxxx13kJycDMAbb7zBU089xYQJE5gzZ84lx33kkUd47733rK/3\n79/PgAEDqKio4N///jexsbHExsZyxx13kJaWdtW5R48eTXFxMUePHgXg008/JS4ujqFDh/LYY49R\nXFwMVH7vzz//PGPHjmXp0qWX9EN1P5cVFRX84x//YMiQIUyYMIEDBw5Yz7t161ZuuukmRo8ezahR\no1i6dOlVZxe55gwRqVabNm2M06dPW1/n5OQYt99+uzFr1izDMAzjv//9r3HfffcZpaWlRlFRkTF+\n/Hjjiy++MMrLy41Ro0YZixcvNgzDMH744QcjOjrayM/PNzZv3mwMHz68yvP973//Mx5//HHjT3/6\nk3Xf/Px8Y9iwYcbChQuNxx9/3DAMw3jzzTeNO++80zh//rxRUFBgjBs3zli9erVhGIZxww03GF9/\n/bVhGIbx+eefW8+VkpJidOjQwZg3b55hGIaxZMkSY8SIEVXm+MMf/mDExMQYH3zwgXH48OFL3jt4\n8KDRs2dPIz093SgtLTXuv/9+IyYmxjAMw3j88ceNmTNnWtte/LqmXFFRUcZnn31m/bzR0dHGxo0b\nDcMwjMWLFxs33XSTYRiGMX/+fOP22283SktLjezsbCMmJsb6nVyspu/4wvfctWtX49ixY9b2nTp1\nMr777jvDMAzj1KlTRo8ePYzjx48bhmEY7777rnHnnXcahmEYr7/+ujFgwAAjKyvrsuN+8803xu23\n3259/dprrxnTp083kpKSjJEjRxolJSWGYRjG3Llzjc8//7zafBe+l/bt21+2PTo62jhy5Iixbds2\no2/fvsaZM2cMwzCMp59+2njhhRcMw6j83seOHWsUFxdbX8+cObPGn8u1a9caI0eONM6dO2cUFRUZ\nEyZMMKZMmWIYhmHcfPPNxpYtWwzDMIxjx44Zjz32WI3ZRexBIzAiVxAfH09cXBzDhg1j2LBh9OnT\nh/vuuw+AtWvXMmnSJCwWC+7u7owdO5ZNmzZx8uRJMjMzGTNmDACdOnWiSZMm7N69u1bnHDNmDF9/\n/TUAq1atIiYmBrP5p3+ua9asYfLkybi5ueHp6cmNN97IihUrAPjiiy8YNWoUAD169LCOXgCUlZVx\n8803AxAVFUVqamqV53/ppZe4/fbbWbx4MTfccANDhw7l448/BipHR6KjowkKCsJisXDDDTfU6jPV\n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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "flxmFt0KKxk9"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Linear Scaling\n",
+ "It can be a good standard practice to normalize the inputs to fall within the range -1, 1. This helps SGD not get stuck taking steps that are too large in one dimension, or too small in another. Fans of numerical optimization may note that there's a connection to the idea of using a preconditioner here."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "Dws5rIQjKxk-",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def linear_scale(series):\n",
+ " min_val = series.min()\n",
+ " max_val = series.max()\n",
+ " scale = (max_val - min_val) / 2.0\n",
+ " return series.apply(lambda x:((x - min_val) / scale) - 1.0)"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "MVmuHI76N2Sz"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 1: Normalize the Features Using Linear Scaling\n",
+ "\n",
+ "**Normalize the inputs to the scale -1, 1.**\n",
+ "\n",
+ "**Spend about 5 minutes training and evaluating on the newly normalized data. How well can you do?**\n",
+ "\n",
+ "As a rule of thumb, NN's train best when the input features are roughly on the same scale.\n",
+ "\n",
+ "Sanity check your normalized data. (What would happen if you forgot to normalize one feature?)\n"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "yD948ZgAM6Cx",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 656
+ },
+ "outputId": "b0431207-8503-4cc2-c622-4df5a6e0bd17"
+ },
+ "cell_type": "code",
+ "source": [
+ "def normalize_linear_scale(examples_dataframe):\n",
+ " \"\"\"Returns a version of the input `DataFrame` that has all its features normalized linearly.\"\"\"\n",
+ " #\n",
+ " # Your code here: normalize the inputs.\n",
+ " #\n",
+ " processed_features = pd.DataFrame()\n",
+ " processed_features[\"latitude\"] = linear_scale(examples_dataframe[\"latitude\"])\n",
+ " processed_features[\"longitude\"] = linear_scale(examples_dataframe[\"longitude\"])\n",
+ " processed_features[\"housing_median_age\"] = linear_scale(examples_dataframe[\"housing_median_age\"])\n",
+ " processed_features[\"total_rooms\"] = linear_scale(examples_dataframe[\"total_rooms\"])\n",
+ " processed_features[\"total_bedrooms\"] = linear_scale(examples_dataframe[\"total_bedrooms\"])\n",
+ " processed_features[\"population\"] = linear_scale(examples_dataframe[\"population\"])\n",
+ " processed_features[\"households\"] = linear_scale(examples_dataframe[\"households\"])\n",
+ " processed_features[\"median_income\"] = linear_scale(examples_dataframe[\"median_income\"])\n",
+ " processed_features[\"rooms_per_person\"] = linear_scale(examples_dataframe[\"rooms_per_person\"])\n",
+ " return processed_features\n",
+ " pass\n",
+ "\n",
+ "normalized_dataframe = normalize_linear_scale(preprocess_features(california_housing_dataframe))\n",
+ "normalized_training_examples = normalized_dataframe.head(12000)\n",
+ "normalized_validation_examples = normalized_dataframe.tail(5000)\n",
+ "\n",
+ "_ = train_nn_regression_model(\n",
+ " my_optimizer=tf.train.GradientDescentOptimizer(learning_rate=0.0007),\n",
+ " steps=3000,\n",
+ " batch_size=100,\n",
+ " hidden_units=[10, 10],\n",
+ " training_examples=normalized_training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=normalized_validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 12,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 232.32\n",
+ " period 01 : 222.96\n",
+ " period 02 : 206.05\n",
+ " period 03 : 180.28\n",
+ " period 04 : 147.49\n",
+ " period 05 : 120.61\n",
+ " period 06 : 116.72\n",
+ " period 07 : 114.44\n",
+ " period 08 : 112.05\n",
+ " period 09 : 109.52\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 109.52\n",
+ "Final RMSE (on validation data): 112.12\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "jFfc3saSxg6t"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Solution\n",
+ "\n",
+ "Click below for one possible solution."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "Ax_IIQVRx4gr"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Since normalization uses min and max, we have to ensure it's done on the entire dataset at once. \n",
+ "\n",
+ "We can do that here because all our data is in a single DataFrame. If we had multiple data sets, a good practice would be to derive the normalization parameters from the training set and apply those identically to the test set."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "D-bJBXrJx-U_",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 656
+ },
+ "outputId": "8e5ac34f-de64-427a-de66-470d34cd740f"
+ },
+ "cell_type": "code",
+ "source": [
+ "def normalize_linear_scale(examples_dataframe):\n",
+ " \"\"\"Returns a version of the input `DataFrame` that has all its features normalized linearly.\"\"\"\n",
+ " processed_features = pd.DataFrame()\n",
+ " processed_features[\"latitude\"] = linear_scale(examples_dataframe[\"latitude\"])\n",
+ " processed_features[\"longitude\"] = linear_scale(examples_dataframe[\"longitude\"])\n",
+ " processed_features[\"housing_median_age\"] = linear_scale(examples_dataframe[\"housing_median_age\"])\n",
+ " processed_features[\"total_rooms\"] = linear_scale(examples_dataframe[\"total_rooms\"])\n",
+ " processed_features[\"total_bedrooms\"] = linear_scale(examples_dataframe[\"total_bedrooms\"])\n",
+ " processed_features[\"population\"] = linear_scale(examples_dataframe[\"population\"])\n",
+ " processed_features[\"households\"] = linear_scale(examples_dataframe[\"households\"])\n",
+ " processed_features[\"median_income\"] = linear_scale(examples_dataframe[\"median_income\"])\n",
+ " processed_features[\"rooms_per_person\"] = linear_scale(examples_dataframe[\"rooms_per_person\"])\n",
+ " return processed_features\n",
+ "\n",
+ "normalized_dataframe = normalize_linear_scale(preprocess_features(california_housing_dataframe))\n",
+ "normalized_training_examples = normalized_dataframe.head(12000)\n",
+ "normalized_validation_examples = normalized_dataframe.tail(5000)\n",
+ "\n",
+ "_ = train_nn_regression_model(\n",
+ " my_optimizer=tf.train.GradientDescentOptimizer(learning_rate=0.005),\n",
+ " steps=2000,\n",
+ " batch_size=50,\n",
+ " hidden_units=[10, 10],\n",
+ " training_examples=normalized_training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=normalized_validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 13,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 157.18\n",
+ " period 01 : 112.32\n",
+ " period 02 : 99.94\n",
+ " period 03 : 84.12\n",
+ " period 04 : 76.29\n",
+ " period 05 : 73.53\n",
+ " period 06 : 71.91\n",
+ " period 07 : 70.82\n",
+ " period 08 : 70.18\n",
+ " period 09 : 69.81\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 69.81\n",
+ "Final RMSE (on validation data): 71.25\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "MrwtdStNJ6ZQ"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 2: Try a Different Optimizer\n",
+ "\n",
+ "** Use the Adagrad and Adam optimizers and compare performance.**\n",
+ "\n",
+ "The Adagrad optimizer is one alternative. The key insight of Adagrad is that it modifies the learning rate adaptively for each coefficient in a model, monotonically lowering the effective learning rate. This works great for convex problems, but isn't always ideal for the non-convex problem Neural Net training. You can use Adagrad by specifying `AdagradOptimizer` instead of `GradientDescentOptimizer`. Note that you may need to use a larger learning rate with Adagrad.\n",
+ "\n",
+ "For non-convex optimization problems, Adam is sometimes more efficient than Adagrad. To use Adam, invoke the `tf.train.AdamOptimizer` method. This method takes several optional hyperparameters as arguments, but our solution only specifies one of these (`learning_rate`). In a production setting, you should specify and tune the optional hyperparameters carefully."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "61GSlDvF7-7q",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 911
+ },
+ "outputId": "0cfc2814-4ddd-4fe6-e030-3ee97ac6316d"
+ },
+ "cell_type": "code",
+ "source": [
+ "#\n",
+ "# YOUR CODE HERE: Retrain the network using Adagrad and then Adam.\n",
+ "#\n",
+ "_, adagrad_training_losses, adagrad_validation_losses = train_nn_regression_model(\n",
+ " my_optimizer=tf.train.AdagradOptimizer(learning_rate=0.1),\n",
+ " steps=1000,\n",
+ " batch_size=200,\n",
+ " hidden_units=[10, 10],\n",
+ " training_examples=normalized_training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=normalized_validation_examples,\n",
+ " validation_targets=validation_targets)\n",
+ "_, adam_training_losses, adam_validation_losses = train_nn_regression_model(\n",
+ " my_optimizer=tf.train.AdamOptimizer(learning_rate=0.005),\n",
+ " steps=1000,\n",
+ " batch_size=200,\n",
+ " hidden_units=[10, 10],\n",
+ " training_examples=normalized_training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=normalized_validation_examples,\n",
+ " validation_targets=validation_targets)\n",
+ "plt.ylabel(\"RMSE\")\n",
+ "plt.xlabel(\"Periods\")\n",
+ "plt.title(\"Root Mean Squared Error vs. Periods\")\n",
+ "plt.plot(adagrad_training_losses, label='Adagrad training')\n",
+ "plt.plot(adagrad_validation_losses, label='Adagrad validation')\n",
+ "plt.plot(adam_training_losses, label='Adam training')\n",
+ "plt.plot(adam_validation_losses, label='Adam validation')\n",
+ "_ = plt.legend()"
+ ],
+ "execution_count": 14,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 107.26\n",
+ " period 01 : 78.52\n",
+ " period 02 : 71.75\n",
+ " period 03 : 70.92\n",
+ " period 04 : 70.49\n",
+ " period 05 : 70.03\n",
+ " period 06 : 69.54\n",
+ " period 07 : 69.18\n",
+ " period 08 : 69.00\n",
+ " period 09 : 68.74\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 68.74\n",
+ "Final RMSE (on validation data): 70.20\n",
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 198.02\n",
+ " period 01 : 117.48\n",
+ " period 02 : 109.61\n",
+ " period 03 : 100.25\n",
+ " period 04 : 85.25\n",
+ " period 05 : 72.95\n",
+ " period 06 : 69.79\n",
+ " period 07 : 69.08\n",
+ " period 08 : 68.51\n",
+ " period 09 : 68.23\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 68.23\n",
+ "Final RMSE (on validation data): 69.71\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjQAAAGACAYAAAC6OPj9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3XlcVPX+x/HXDMO+KKss5r6jggsp\n4oaWu780lUwlu1qWSZllLjet1FywtNw1zbVr6TWzRUvFfckFIVdccAFFNhcYdhg4vz+4TiKKqIwz\n5Of5eNzHg5mzvc/54uXT93zP+aoURVEQQgghhCjH1MYOIIQQQgjxpKSgEUIIIUS5JwWNEEIIIco9\nKWiEEEIIUe5JQSOEEEKIck8KGiGEEEKUexpjBxCiPKhbty5VqlTBzMwMgPz8fPz8/JgwYQI2NjaP\nvd/169cTFBRU7PuNGzcyfvx4Fi9eTGBgoP777OxsWrVqRadOnZgxY8ZjH7e0YmNjmTZtGpcvXwbA\n2tqakJAQXnjhBYMf+1EsXLiQ2NjYYtfk8OHDDB06lMqVKxfb5o8//nha8Z7ItWvX6NixI9WrVwdA\nURRcXFz4+OOPadCgwSPta9asWXh6evLqq6+Wepuff/6ZDRs2sGbNmkc6lhBPmxQ0QpTSmjVrcHd3\nByA3N5dRo0axZMkSRo0a9Vj7S05OZtmyZfctaAA8PDz47bffihQ0u3btwsHB4bGO9zhGjx7NSy+9\nxOLFiwE4fvw4gwcP5vfff8fDw+Op5XgSHh4e5aZ4eRAzM7Mi57BlyxZGjBjB1q1bsbCwKPV+Pvzw\nQ0PEE8IkyC0nIR6DhYUFbdq0ISoqCoCcnBw++eQTOnfuTNeuXZkxYwb5+fkAnD17lv79+9OlSxde\neukl9u3bB0D//v25fv06Xbp0ITc3t9gxmjZtyuHDh8nKytJ/t2XLFgICAvSfc3Nz+fzzz+ncuTMd\nOnTQFx4AkZGRvPzyy3Tp0oVu3bpx8OBBoPC/+Fu3bs3q1avp2bMnbdq0YcuWLfc9z/Pnz+Pj46P/\n7OPjw9atW/WF3fz582nXrh29evXim2++oUOHDgCMGzeOhQsX6re7+/PDck2bNo1BgwYBcOzYMfr0\n6cOLL75IUFAQV69eBQp7qt5//30CAwMZNGgQCQkJD2mx+9u4cSMhISEMHjyYmTNncvjwYfr378/I\nkSP1f/x///13evToQZcuXXjttdeIjY0FYN68eUyYMIG+ffuycuXKIvsdOXIky5cv13+OioqidevW\nFBQU8NVXX9G5c2c6d+7Ma6+9RmJi4iPn7tatG9nZ2Vy6dAmAdevW0aVLFzp06MAHH3xAdnY2UHjd\np0+fTs+ePfn999+LtMODfi8LCgqYPHky7du3p2/fvpw9e1Z/3CNHjtC7d2+6detG165d+f333x85\nuxAGowghHqpOnTpKfHy8/nNKSooycOBAZeHChYqiKMqSJUuUN998U8nLy1OysrKUPn36KJs2bVLy\n8/OVrl27Kr/++quiKIpy4sQJxc/PT0lLS1MOHTqkvPDCC/c93o8//qiMHTtWGT16tH7btLQ0pWPH\njsp///tfZezYsYqiKMr8+fOVwYMHKzk5OUpGRobSq1cvZefOnYqiKEqPHj2U3377TVEURfnpp5/0\nx7p69arSoEEDZc2aNYqiKMqWLVuUF1988b453n33XSUwMFBZtWqVEh0dXWTZuXPnlObNmytJSUlK\nXl6eMnz4cCUwMFBRFEUZO3assmDBAv26d38uKZe3t7eyceNG/fn6+fkp+/fvVxRFUX799Veld+/e\niqIoynfffacMHDhQycvLU27duqUEBgbqr8ndSrrGd66zr6+vcvnyZf36jRo1Ug4ePKgoiqLExcUp\nzZo1U65cuaIoiqJ8++23yuDBgxVFUZS5c+cqrVu3Vm7evFlsv5s3b1YGDhyo/zxnzhxlypQpyvnz\n55VOnTopubm5iqIoyurVq5WffvrpgfnuXJf69esX+97Pz0+5ePGicvToUcXf319JSEhQFEVRJk6c\nqMyYMUNRlMLr3rNnTyU7O1v/ecGCBSX+Xu7evVvp1KmTkp6ermRlZSl9+/ZVBg0apCiKorz88svK\n4cOHFUVRlMuXLysffPBBidmFeJqkh0aIUgoODqZLly507NiRjh070rJlS958800Adu/eTVBQEBqN\nBisrK3r27MmBAwe4du0aN27coHv37gA0atQIT09PTp48Wapjdu/end9++w2AsLAwAgMDUav//me7\na9cuBgwYgIWFBTY2Nrz00kts27YNgE2bNtG1a1cAmjVrpu/dANDpdLz88ssAeHt7c/369fse/4sv\nvmDgwIH8+uuv9OjRgw4dOvD9998Dhb0nfn5+uLq6otFo6NGjR6nOqaRceXl5vPjii/r9V6pUSd8j\n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\ng8eIaEB8sB4RpWb27Nloa2vDjh070NLSAiklwjDEww8/jOnTp6O5uRnTpk3D999/j/Xr12P69Ono\n6OhAqVTCypUrsW/fPkgpsWDBAixevBg9PT249957USgUMGXKFPT29gIA9u/fj/vuuw8AUCwW0djY\niJtuuinNt05Eg4yBhohSoZTCRx99hFmzZuH+++/H2rVrMXny5H5f0ldbW4uXX3654mdbW1sxatQo\nPPnkkygWi7juuuswb948fP7556iurkZbWxs6Oztx1VVXAQDef/99TJ06FY8++ih6e3vx2muvDfn7\nJaLTi4GGiIbMgQMH0NzcDADQWuOSSy7BokWL8PTTT+PBBx+Mjzt69Ci01gDs15L0tX37dixcuBAA\nUF1djZkzZ6KjowM//vgjZs2aBcB+4ezUqVMBAPPmzcMrr7yC5cuX44orrkBjY+NpfZ9ENPQYaIho\nyERzaJKOHDmCXC7Xb38kl8v12yeEqNg2xkAIAWNMxXcVRaGooaEB7777Lr766its3rwZ69evx4YN\nG0717RDRMMJJwUSUqpEjR2LSpEn47LPPAAC7du3CmjVrjvszF1xwAbZs2QIA6O7uRkdHB2bMmIGG\nhgZ88803AIC9e/di165dAIB33nkH3333HebMmYNVq1Zh7969kFKexndFREONFRoiSl1LSwsef/xx\nPP/885BSYvny5cc9vrm5GStXrsRtt92GUqmEpUuXYtKkSViwYAE++eQTLF68GJMmTcJ5550HADj3\n3HOxatUq5PN5GGNw5513Igj4vz+ivxJ+2zYRERFlHoeciIiIKPMYaIiIiCjzGGiIiIgo8xhoiIiI\nKPMYaIiIiCjzGGiIiIgo8xhoiIiIKPMYaIiIiCjz/gsY1VMEQgBdsgAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "UySPl7CAQ28C"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 3: Explore Alternate Normalization Methods\n",
+ "\n",
+ "**Try alternate normalizations for various features to further improve performance.**\n",
+ "\n",
+ "If you look closely at summary stats for your transformed data, you may notice that linear scaling some features leaves them clumped close to `-1`.\n",
+ "\n",
+ "For example, many features have a median of `-0.8` or so, rather than `0.0`."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "QWmm_6CGKxlH",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 715
+ },
+ "outputId": "46d18226-c36a-4ffb-c8db-8a41a0c21e4a"
+ },
+ "cell_type": "code",
+ "source": [
+ "_ = normalized_training_examples.hist(bins=20, figsize=(18, 12), xlabelsize=10)"
+ ],
+ "execution_count": 18,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\nzhx17NhR1113nSZPnqxRo0bpwIEDevTRR7Vp0yaZTCaPx3/22WcVGRmpK6+8UsnJySooKGhUnz0V\nX5K+/PJL3XDDDc4vDU++357gyfHjYm05T19OfHK1Z/Zx5VhNlavJ064jT3sfudp3ubq55unG9N1T\n+zT2OJxTt75c3aKKD/Hx8S4vIGM2m1VSUuJ8fPz4cfXr109ms1k2m009evSQ3W6Xw+G45B9uXfFT\nU1MbdZzCwkIlJCQ4H/94QZOFCxd6JfaFMe+66y7t27evScd+9OhRJScna/78+erZs6ekc9N0brzx\nRknS7bffru+++041NTUNVtvPq+v9DA8Pr/O5Y8eOyWw2KyAgoN59XNVQfEkqLy/XU089pWnTpmnI\nkCGSpM6dOys2NlaSdO2116pTp046duyYW4sxXSp+XFyc899Dhw51vt9NNX5J2rp1qwYNGuR8fDnv\n9+X0zRvvPy6tLefpy4lPrm49uZo83fi+kad9h1ztu1zdXPK05NtczTl128zVLf6yi0vp27evdu/e\nrbKyMp05c0ZWq1UDBgzQ4MGDlZ+fL+lcEhs4cKBbx2/scfbs2aMePXo4H7/44ovauXOnpHPTZ86v\n2urJ2P/5z3+UkpIih8Ohs2fPymq1qnv37k069lmzZmnu3Lm67bbbnG0rVqzQhx9+KOncKquhoaGN\n/tAMHjzYWXncu3evzGazsxp4zTXXqLy8XAcPHtTZs2dVWFiowYMHN7iPO2Nu6FiZmZl67LHHNHTo\nUGdbXl6eVq1aJencNKYTJ044V2T2ZPzTp08rKSnJOU3v888/d77fTTV+Sdq9e3etv/XLeb9d0RTv\nP7yjNefpxsQnV7euXE2erh95umUjV3svV/siT5+P66tczTl128zVBkcLn9u2detWrVq1Sv/5z38U\nGhqq8PBwrV69Wn/4wx90xx136Pbbb1d+fr5WrVrlnCL14IMPqqamRunp6fr2229lMpmUmZmpq666\nyuX49R3nwviSNGjQIBUVFTn3++qrrzRnzhz5+/vLYDDoxRdfVLdu3Twee8GCBdqxY4f8/PwUFRWl\nX/3qV0029g4dOiguLq5WRfrxxx/XbbfdpunTpzuTt6u3aVm4cKF27twpg8GgOXPm6J///KeCg4MV\nHR2tzz//3Fnxvvfee5WUlFTnPhd+kF1VX/whQ4bUes8l6f7779d9992n5557TmVlZbLb7Zo8ebLz\nujVPxo+OjlZOTo7ee+89/eQnP9Gtt96q2bNny2AwNMn4zy+U9MADD2jNmjXq1KmTpHOV+st5vy90\n/jZbhw4dkr+/vzp37qyoqChdc801Tfb+w3VtOU83Nj65unXlavI0ebolIlf7Llf7Kk9Lvs3VnFO3\nvVzd4osPAAAAAACgeWv1l10AAAAAAADfovgAAAAAAAC8iuIDAAAAAADwKooPAAAAAADAqyg+AAAA\nAAAAr6L4AAAAAAAAvIriAwAAAAAA8CqKDwAAAAAAwKsoPgAAAAAAAK+i+AAAAAAAALyK4gMAAAAA\nAPAqig8AAAAAAMCrKD4AAAAAAACvovgAAAAAAAC8iuIDAAAAAADwKooPAAAAAADAqyg+AAAAAAAA\nr6L4AAAAAAAAvIriAwAAAAAA8CqKDwAAAAAAwKsoPgAAAAAAAK+i+AAAAAAAALyK4gMAAAAAAPAq\nig8AAAAAAMCrKD7AJ4qLixUdHe3x42ZlZemtt96SJH366ac6fPiwy8e49dZbdfDgQU93DQAAAGgx\nJk6cqPfff/+S2/3pT39y/jsmJkYlJSXe7BZaMIoPaFVSUlKUkJAgSVq7dq1bxQcAQG2zZs3SsmXL\nJHnvxPIf//iHkpKSPH5cAID32Gw2rVy50vk4Pz9fnTp18mGP0JxRfIBPff/993rhhRc0cuRIjRo1\nSpmZmaqpqZEkRUVF6e2339aYMWM0ZMgQZWZmOvdbvny5Bg0apEceeUR//OMfFRUVJUlKTU3Vq6++\nqsWLF2vHjh2aPn26Nm7c6Gw/78LHf/3rXxUdHa1Ro0bVSp6SlJubq5iYGEVFRek3v/mNqqqqvP2S\nAECz5q0Tyz59+mjVqlUePy4AtDbFxcV64IEHlJmZqZEjRyoqKkp///vfGzyvvuWWW/R///d/Gj16\ntAYNGuScKbxhwwY9/vjjzmP/+PF5H3/8sR544AH9f+zdfVxUdf7//+cwwBIKKsRYdrXVZrp5nReJ\nYoIhF2ViiQppF7KlZaZFGRGutlmQRqllq1kqq9XykazICswVdzORtGldbftkF98KLxkUBAUD8fz+\n8Od8JFBkZBxgHvfbrduNec95n9frfWZ4e3rxPudERETojjvu0DfffCNJGjdunPbu3avIyEhVVVXp\n+uuv1/79+yVJf/vb3xQdHa3IyEg9+OCDOnTokKST5+ELFy7Ufffdp9DQUN13332qrKx04hFDc0Hx\nAS6VkZGh/fv366OPPtJ7772nbdu2ae3atfb3t27dqszMTL377rtatWqV9u/fr++++05vvPGGPvjg\nA7399tvKycmps9/p06erY8eOmjdvnqKjo88Yv6amRk8//bRmzZqlTz75RB4eHvZJetu2bVqwYIEy\nMjK0YcMGtW3bVgsWLDj4syIAACAASURBVGj6gwAATWz37t0aPHiwli5dqoiICEVEROjf//63Hnjg\nAYWEhOipp56SJK1fv14jRozQsGHDNHHiRPuJYUlJiSZOnKiwsDA98MADKi8vt+/79BPLRYsWKSIi\nQrfccosmTZqksrIySdIrr7yiv/zlL5oyZYqGDRum0aNHq6io6Kw5n3453tn6FxYW6q677lJ4eLju\nvPNOff3115KkvXv3KiEhQREREbrtttv0/vvvN+pYnO14AEBz88MPP6hHjx7Kzc3Vgw8+qNmzZzd4\nXv3zzz/rgw8+0FtvvaXnn39eJSUl5xTr+PHjSkpK0rPPPqvc3FyFhYXphRdekCQ9//zzuvTSS5WT\nkyNvb297n3//+9968803tXLlSuXk5KhTp05KT0+3v5+Tk6OXX35Zn376qQ4dOqRPP/20iY4MmjOK\nD3CpjRs3asyYMfL09JSPj49GjBihzz//3P7+iBEjZDab1bFjRwUGBmrfvn3aunWr+vfvL4vFot/9\n7ne68847HY7/008/qaqqSoMHD5YkjRo1yv7ehg0bFB0drY4dO0qS4uLitG7dOodjAcCFVFJSoqCg\nIOXm5ur666/Xo48+qrS0NGVnZ2vt2rX65ZdfNGPGDKWnp+sf//iHBgwYoNmzZ0uSli5dqg4dOmjD\nhg3685//rE2bNtXZ/86dO/XWW2/p3Xff1bp161RVVaVVq1bZ38/JyVFycrLWr1+vwMBAvfvuu43K\n/0z9Z86cqVtvvVWffvqpHnzwQc2YMcPe3r9/f+Xm5mrJkiWaM2eO/f4953IsCgsLz3g8AKC58fX1\nVVRUlCRp+PDh+uabb5Sbm3vW8+pT58zXXHONrr76av3nP/85p1ienp7avHmzevXqJUnq27evCgsL\nz9pn48aNioiIUGBgoCQpNja2Vi4333yz2rdvL09PT3Xu3Fn79u0798GjxfJ0dQJwb4cOHVK7du3s\nr9u1a6eDBw/aX7dt29b+s9lsVk1NjcrKymr1OVUccMThw4drxTh9v+Xl5fr000/tJ92GYai6utrh\n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\n+QAAAAAAAHAuKD4AAAAAAACnovgAAAAAAACciuIDAAAAAABwKooPAAAAAADAqSg+AAAAAAAAp6L4\nAAAAAAAAnIriAwAAAAAAcCqKDwAAAAAAwKkoPgAAAAAAAKei+AAAAAAAAJyK4gMAAAAAAHAqig8A\nAAAAAMCpKD4AAAAAAACnovgAAAAAAACcytPVCQAAnGfXrl166KGHdO+992r8+PFKSkrS119/rfbt\n20uSEhISNHToUGVnZysjI0MeHh4aM2aMYmNjVV1draSkJO3du1dms1mpqam64oorXDyi1mVE4geN\n7rMsKcwJmQAAADgXxQcAaKUqKir07LPPauDAgbXaH3vsMYWGhtbabtGiRcrKypKXl5dGjx6t8PBw\n5eXlyd/fX+np6dq0aZPS09M1f/78Cz0MAAAAtAJcdgEArZS3t7eWLl0qi8Vy1u22b9+u7t27y8/P\nTz4+PurTp4+sVqvy8/MVHh4uSQoODpbVar0QaQOA28nOztbtt9+uO+64Qxs3btS+ffs0YcIExcfH\na9q0aaqqqrJvd+eddyo2NlarV6+WJFVXVysxMVFxcXEaP368CgsLXTkUADgjVj4AQCvl6ekpT8+6\n0/yqVau0fPlyBQYGaubMmSouLlZAQID9/YCAANlstlrtHh4eMplMqqqqkre39xljdujgK09Pc6Nz\nDQrya3Qfd9XUx8rVx96V8d157K6O7+qxNyclJSVatGiR3n33XVVUVOiVV15Rbm6u4uPjFRUVpZde\neklZWVmKiYlhlRqAFs3h4sPcuXP15Zdf6vjx45o0aZK6d++uGTNmqKamRkFBQZo3b568vb25jhgA\nmpGRI0eqffv26tq1q15//XW9+uqr6t27d61tDMOot++Z2k9XUlLR6JyCgvxks5U3up+7aspj5epj\n78r47jx2V8d3JHZrLlbk5+dr4MCBatu2rdq2batnn31WYWFheuaZZyRJoaGhWrZsma6++mr7KjVJ\ntVapxcTESDq5Si05OdllYwGAs3HosostW7bou+++U2Zmpt544w09//zzWrhwoeLj4/X222/rqquu\nUlZWlv064hUrVmjlypXKyMhQaWmp1q5dK39/f73zzjuaPHmy0tPTm3pcAIB6DBw4UF27dpUkhYWF\nadeuXbJYLCouLrZvU1RUJIvFIovFIpvNJunksl7DMM666gEA0Hi7d+/WsWPHNHnyZMXHxys/P1+V\n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\nyBElJCQoPj5ec+bM0alTpyRJOTk5uu+++zRp0iRt3bpVklRXV6fk5GTFxcVp2rRpOnTokJnLAYAm\nsfMBAHzYwYMHlZiYqOPHj2vWrFmqqamR1WqVJIWFhclut6usrEyhoaHOc0JDQy847ufnJ4vFolOn\nTjnPb0y3bp0UEODvdp/h4cFun+Ot6xtduznUN69+R1672fXNXntbwy41AB0B4QMA+Kirr75as2bN\n0rhx43To0CE98MADOnPmjPNxh8PR6HnuHj9feXm1232GhwfLbj/h9nnuaOr6rVH7YqhvXv2OvHaz\n63tSu6OFFYWFhVq8eLGks7vUMjMz1bt3b+cuNUkNdqnFxsZKOrtLLSUlxbS+AeBiCB8AwEf16NFD\n48ePlyRdddVV6t69u/bv36/a2loFBQXp2LFjstlsstlsKisrc55XWlqqAQMGyGazyW63q0+fPqqr\nq5PD4bjorgcAgGfawy611giA3K3RFkMpenINPbmmrfXU0n4IHwDAR+Xk5Mhut2vGjBmy2+36/vvv\nde+99yovL08TJkzQzp07FRUVpYiICKWmpqqyslL+/v4qKipSSkqKqqqqlJubq6ioKOXn52vw4MFm\nLwkAfE572KXWWjtl3Klh9u6hxtCTa+jJNW2tJ1f6aS6cIHwAAB81evRoPfXUU/rggw9UV1enRYsW\n6aabbtK8efO0ZcsW9ezZU7GxsQoMDFRycrJmzJghi8WipKQkBQcHa/z48dqzZ4/i4uJktVqVlpZm\n9pIAwOewSw1AR+FS+PDNN99o5syZeuihhzRt2jQdOXKkxZ8T/9e//lWLFi2SJN14443O97UBALyj\nS5cueuWVVy44vmHDhguOxcTEKCYmpsGxczMbAGAcdqkB6Cia/ajN6upqLVmyREOGDHEeW7t2reLj\n47V582b16tVL2dnZqq6uVkZGhjZu3KhNmzYpKytLFRUV2rFjh0JCQvTGG28oMTFR6enpkqRnn31W\nKSkpevPNN1VVVaWPPvrIuFUCAAAAbdDo0aP12WefKT4+XjNnztSiRYv05JNPavv27YqPj1dFRYVi\nY2MVFBTk3KU2ffr0BrvU6uvrFRcXp9dff13JyclmLwkAGtXszger1ar169dr/fr1zmMtvQPvqVOn\nVFJSov79+zuvUVBQoBEjRnh9gQAAAEBbxS41AB1Fs+FDQECAAgIafltL78BbVlamkJAQ5/eeu8bF\n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\nrAaAto05DaC9sDh4YxgAAAAAADBQm7nhJAAAAAAA8E2EDwAAAAAAwFCm3fPBmz799FPNmTNHy5Yt\n06hRoy54PCcnR1lZWfLz89PkyZM1adIk1dXVaf78+Tp8+LD8/f21fPlyXXnllW7Vbe4aBw4c0IoV\nK5xfHzx4UBkZGfrkk0/09ttvq0ePHpKke+65R5MmTXJ73a6s4eabb9bAgQOdX2/cuFH19fUtXrur\n9d99911lZmbKz89PQ4YM0ZNPPqlt27bp+eef11VXXSVJioyM1OOPP+5y3WXLlqm4uFgWi0UpKSnq\n37+/87E9e/Zo9erV8vf31/Dhw5WUlNTsOe662LX27t2r1atXy8/PT71799azzz6rzz77THPmzNH1\n118vSbrhhhv0zDPPGFJ/9OjRuvTSS+Xv7y9JWrVqlXr06NEq6z927Jieeuop5/cdOnRIycnJqqur\na9Hz/VPffPONZs6cqYceekjTpk1r8FhrPP/wjFlzWmJWM6tbf1Yzp5nT7ZWZs7oxZs9vT3qSjJ3p\nnvZkxJxvjNmz392eWuNnd3d7ao3XCXd68uprh6Od++c//+lITEx0zJw50/Hhhx9e8PjJkycdd955\np6OystJRU1PjuOuuuxzl5eWObdu2ORYtWuRwOByOjz/+2DFnzhy3a7tzjePHjzvuv/9+x5kzZxxr\n1651bNq0ye16ntS/7bbbWtR3S+pXV1c7Ro0a5Thx4oSjvr7eMXHiRMe3337r+MMf/uBIS0vzqGZh\nYaHj0UcfdTgcDsfBgwcdkydPbvD4uHHjHIcPH3acOXPGERcX5/j222+bPceb9aOjox1HjhxxOBwO\nx+zZsx27du1y7N271zF79myPa7pTf9SoUY6qqiq3zvFm/XPq6uocU6dOdVRVVbXo+f6pkydPOqZN\nm+ZITU1t9N+Q0c8/PGPmnHY4mNXM6tad1cxp5nR7ZfasbozZ89vTnoyc6Z70ZMScb4zZs9+Tnoz+\n2d2Tnox+nfCkp3Na+trR7t92ER4erhdffFHBwcGNPl5cXKx+/fopODhYQUFBGjhwoIqKilRQUKDo\n6GhJZ1OaoqIit2u7c43XXntNDz74oPz8vPef3NM1eGPtrlzn5z//uXJyctSlSxdZLBZ17dpVFRUV\nHtU6v+Ydd9whSbr22mt1/PhxVVVVSTqbwl1yySW67LLL5OfnpxEjRqigoOCi53izviRt27ZNl156\nqSQpNDRU5eXlHq/Vk/reOqel13rrrbc0duxYde7c2aM6TbFarVq/fr1sNtsFj7XG8w/PmDmnJWY1\ns7p1ZzVzmjndXpk9qxtj9vxuaU/eOM8b1zZizjfVh5mz392eJON/dvekJ2+dY0RPLX3taPfhw89/\n/nPnlpTGlJWVKTQ01Pl1aGio7HZ7g+N+fn6yWCw6deqUW7VdvUZtba12796tMWPGOI/l5uZq+vTp\neuyxx3To0CG36rpT/9SpU0pOTtbUqVO1YcMGt/r2Rv1znzP99ddfq6SkRBEREZLObuubMWOGHnzw\nQX311Vdu1ezWrZvz63PPpyTZ7fYmn+umznFXc9c6t97S0lJ98sknGjFihKSz2wATExMVFxenTz75\nxKPartSXpIULFyouLk6rVq2Sw+Fo1fWfs3XrVk2cONH5tafP908FBAQoKCio0cda4/mHZ8yc0z+9\nPrOaWS0ZO6uZ08zp9srsWd1cTTPmt6c9GTnTPe3J23O+qT7MnP3u9iQZ/7O7Jz1Jxr5OeNqT1PLX\njnZ1z4etW7dq69atDY7Nnj1bUVFRLl/D0cQnizZ1/GK1i4uLXbrG+++/r5EjRzqT2BEjRuj222/X\nrbfeqnfeeUdLly7VunXrDKk/d+5c3XPPPbJYLJo2bZoGDRp0wfc0t/aW1Jekf/zjH3rqqaeUnp6u\nwMBARUREKDQ0VCNHjtQXX3yhefPm6e233262h8a40rs3znHnWt9//70SExO1cOFCdevWTVdffbVm\nzZqlcePG6dChQ3rggQe0c+dOWa1Wr9f/zW9+o6ioKF1yySVKSkpSXl6eSz17q74kffHFF7rmmmuc\nw9ybz7c3eHP9uJCZc7qp+sxqZrWZs5o57T7mtPHMntWu9tSa89ubPXlrpnuzJ8nYOd8Ys2e/q9dv\nzZ/dXemptV8nXOlJ8s5rR7sKHyZNmuT2zWJsNpvKysqcX5eWlmrAgAGy2Wyy2+3q06eP6urq5HA4\nLvoXqrHa8+fPd+ka+fn5iouLc3790xuKrFq1qtl1eFr//Lq33367vvnmG7fX3pL6R48eVVJSklau\nXKmbbrpJ0tmtPNdee60k6ZZbbtEPP/ygM2fOXDRtP6ex5zM8PLzRx44dOyabzabAwMAmz3HXxepL\nUlVVlR555BE98cQTGjZsmCSpR48eGj9+vCTpqquuUvfu3XXs2DGPbjLUXP3Y2Fjnn4cPH+58vltr\n/ZK0a9cuDRkyxPl1S57vlvRmxPOP5pk5p5uqz6xmVrfmrGZOu94bc9o8Zs9qV3tqzfntzZ68NdO9\n2ZO353xjzJ797vYkGf+zuyc9Gf064UlPkndeO9r92y6aExERof3796uyslInT55UUVGRBg0apKFD\nhyo3N1fS2YE1ePBgt6/t6jUOHDigPn36OL9eunSp9u3bJ+nsVpVzd1L1dv2//e1vSk5OlsPh0OnT\np1VUVKTrr7/eK2t3pb4k/e53v9OiRYt08803O4+tX79eO3bskHT2jtihoaEuD7mhQ4c6078vv/xS\nNpvNmb5dccUVqqqq0r///W+dPn1a+fn5Gjp06EXP8WTNF7tWWlqaHnzwQQ0fPtx5LCcnR6+99pqk\ns1vOvv/+e+fdl71Z/8SJE5oxY4Zzm91nn33mfL5ba/2StH///gZ/31vyfLujNZ5/GMPIOS0xq5nV\nrTurmdNNY063b0bP6saYPb896cnome5JT5L353xTfZg5+93tSTL+Z3d3e2qN1wl3ezrHG68dFkc7\n39u2a9cuvfbaa/rb3/6m0NBQhYeHKzMzU//93/+tW2+9Vbfccotyc3P12muvObc+3XPPPTpz5oxS\nU1P1j3/8Q1arVWlpabrsssvcqt3UNc6vLUlDhgxRQUGB87yvv/5aCxcuVEBAgCwWi5YuXapevXq5\nvXZX6j/33HPau3ev/Pz8NHr0aD3++ONeWbsr9bt27arY2NgG6fNDDz2km2++WU8//bRzKLv7UTGr\nVq3Svn37ZLFYtHDhQn311VcKDg5WdHS0PvvsM2e6feedd2rGjBmNnnP+Pxx3NVV/2LBhDZ53Sbr7\n7rt111136amnnlJlZaXq6uo0a9Ys5/vJvFk/OjpaWVlZ2r59u372s5/pF7/4hZ555hlZLJZWWf+5\nGx398pe/1IYNG9S9e3dJZ5P2ljzf5zv3kVolJSUKCAhQjx49NHr0aF1xxRWt9vzDfWbOaYlZzaxu\n/VnNnGZOt0dmz+rGmD2/Pe3JyJnuSU9GzfnGmD373emptX52d6en1nqdcLcnyTuvHe0+fAAAAAAA\nAG2bz7/tAgAAAAAAmIvwAQAAAAAAGIrwAQAAAAAAGIrwAQAAAAAAGIrwAQAAAAAAGIrwAQAAAAAA\nGIrwAQAAAAAAGOr/AamX+lEKGVttAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "Xx9jgEMHKxlJ"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "We might be able to do better by choosing additional ways to transform these features.\n",
+ "\n",
+ "For example, a log scaling might help some features. Or clipping extreme values may make the remainder of the scale more informative."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "baKZa6MEKxlK",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def log_normalize(series):\n",
+ " return series.apply(lambda x:math.log(x+1.0))\n",
+ "\n",
+ "def clip(series, clip_to_min, clip_to_max):\n",
+ " return series.apply(lambda x:(\n",
+ " min(max(x, clip_to_min), clip_to_max)))\n",
+ "\n",
+ "def z_score_normalize(series):\n",
+ " mean = series.mean()\n",
+ " std_dv = series.std()\n",
+ " return series.apply(lambda x:(x - mean) / std_dv)\n",
+ "\n",
+ "def binary_threshold(series, threshold):\n",
+ " return series.apply(lambda x:(1 if x > threshold else 0))"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "-wCCq_ClKxlO"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "The block above contains a few additional possible normalization functions. Try some of these, or add your own.\n",
+ "\n",
+ "Note that if you normalize the target, you'll need to un-normalize the predictions for loss metrics to be comparable."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "8ToG-mLfMO9P",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 656
+ },
+ "outputId": "cb31ac49-94d3-43cb-8d8e-ff22d19e6a0c"
+ },
+ "cell_type": "code",
+ "source": [
+ "def normalize(examples_dataframe):\n",
+ " \"\"\"Returns a version of the input `DataFrame` that has all its features normalized.\"\"\"\n",
+ " #\n",
+ " # YOUR CODE HERE: Normalize the inputs.\n",
+ " #\n",
+ " processed_features = pd.DataFrame()\n",
+ "\n",
+ " processed_features[\"households\"] = log_normalize(examples_dataframe[\"households\"])\n",
+ " processed_features[\"median_income\"] = log_normalize(examples_dataframe[\"median_income\"])\n",
+ " processed_features[\"total_bedrooms\"] = log_normalize(examples_dataframe[\"total_bedrooms\"])\n",
+ " \n",
+ " processed_features[\"latitude\"] = linear_scale(examples_dataframe[\"latitude\"])\n",
+ " processed_features[\"longitude\"] = linear_scale(examples_dataframe[\"longitude\"])\n",
+ " processed_features[\"housing_median_age\"] = linear_scale(examples_dataframe[\"housing_median_age\"])\n",
+ "\n",
+ " processed_features[\"population\"] = linear_scale(clip(examples_dataframe[\"population\"], 0, 5000))\n",
+ " processed_features[\"rooms_per_person\"] = linear_scale(clip(examples_dataframe[\"rooms_per_person\"], 0, 5))\n",
+ " processed_features[\"total_rooms\"] = linear_scale(clip(examples_dataframe[\"total_rooms\"], 0, 10000))\n",
+ "\n",
+ " return processed_features\n",
+ "\n",
+ "normalized_dataframe = normalize(preprocess_features(california_housing_dataframe))\n",
+ "normalized_training_examples = normalized_dataframe.head(12000)\n",
+ "normalized_validation_examples = normalized_dataframe.tail(5000)\n",
+ "\n",
+ "_ = train_nn_regression_model(\n",
+ " my_optimizer=tf.train.GradientDescentOptimizer(learning_rate=0.0007),\n",
+ " steps=5000,\n",
+ " batch_size=70,\n",
+ " hidden_units=[10, 10],\n",
+ " training_examples=normalized_training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=normalized_validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 20,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 210.88\n",
+ " period 01 : 132.74\n",
+ " period 02 : 113.62\n",
+ " period 03 : 111.86\n",
+ " period 04 : 109.83\n",
+ " period 05 : 107.25\n",
+ " period 06 : 104.09\n",
+ " period 07 : 99.79\n",
+ " period 08 : 95.01\n",
+ " period 09 : 90.05\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 90.05\n",
+ "Final RMSE (on validation data): 92.18\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGACAYAAACz01iHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xl4VNX9x/H3rJlMMlkmGzsJWEUI\nslsWEZBVxCqy1AVqLbX9KVSrtFpbtLUoilatGy64g7YqbqAoShEFWxcMIkjCGrawZN/3mfv7I2RM\nWEKATGYSPq/nyZOZe+/c+U5O8vDhnHPvMRmGYSAiIiLSgpgDXYCIiIjIyVKAERERkRZHAUZERERa\nHAUYERERaXEUYERERKTFUYARERGRFsca6AJEgtk555xDp06dsFgsAHg8HgYMGMCcOXNwOp2nfN43\n3niDqVOnHrX97bff5o477uDpp59mxIgRvu3l5eUMHjyYMWPGcP/995/y+zbWnj17mDdvHunp6QCE\nhoYya9YsRo0a5ff3PhkLFixgz549R/1MvvrqK2bMmEGHDh2Oes1HH33UXOWdln379jFy5EiSkpIA\nMAyD2NhY/vKXv9C9e/eTOtdDDz1Eu3btuOqqqxr9mvfee48lS5awaNGik3ovkeaiACNyAosWLaJN\nmzYAVFZWcsstt/DMM89wyy23nNL5srKyeO65544ZYADatm3L+++/Xy/AfPrpp0RERJzS+52KP/zh\nD1x22WU8/fTTAGzYsIFrr72WDz/8kLZt2zZbHaejbdu2LSasHI/FYqn3GZYvX87MmTNZsWIFdru9\n0eeZPXu2P8oTCSgNIYmcBLvdztChQ0lNTQWgoqKCu+66i7Fjx3LxxRdz//334/F4AEhLS+PKK69k\n3LhxXHbZZaxZswaAK6+8kv379zNu3DgqKyuPeo++ffvy1VdfUVZW5tu2fPlyhgwZ4nteWVnJPffc\nw9ixY7nooot8QQNg/fr1XHHFFYwbN47x48fz3//+F6j5H/0FF1zAK6+8wqWXXsrQoUNZvnz5MT/n\n1q1b6dWrl+95r169WLFihS/IPfHEEwwbNozLL7+cZ599losuugiAP/3pTyxYsMD3urrPT1TXvHnz\nmDZtGgDffvstkyZNYvTo0UydOpW9e/cCNT1Rv//97xkxYgTTpk3j4MGDJ2ixY3v77beZNWsW1157\nLQ888ABfffUVV155JTfffLPvH/sPP/yQCRMmMG7cOH7xi1+wZ88eAB5//HHmzJnD5MmTeemll+qd\n9+abb+aFF17wPU9NTeWCCy7A6/XyyCOPMHbsWMaOHcsvfvELDh06dNJ1jx8/nvLycnbu3AnA66+/\nzrhx47jooou49dZbKS8vB2p+7vfddx+XXnopH374Yb12ON7vpdfr5e9//zvDhw9n8uTJpKWl+d73\n66+/ZuLEiYwfP56LL76YDz/88KRrF2lyhogc19lnn20cOHDA9zw/P9+45pprjAULFhiGYRjPPPOM\ncf311xtVVVVGWVmZMWnSJOPdd981PB6PcfHFFxvLli0zDMMwvv/+e2PAgAFGUVGR8eWXXxqjRo06\n5vu99dZbxu2332784Q9/8L22qKjIGDlypPHmm28at99+u2EYhvHEE08Y1157rVFRUWGUlJQYl19+\nubFq1SrDMAxjwoQJxvvvv28YhmG88847vvfau3ev0b17d2PRokWGYRjG8uXLjdGjRx+zjt/97nfG\niBEjjJdfftnYvn17vX1btmwx+vfvb2RmZhpVVVXGDTfcYIwYMcIwDMO4/fbbjSeffNJ3bN3nDdXV\no0cP4+233/Z93gEDBhhr1641DMMwli1bZkycONEwDMNYvHixcc011xhVVVVGbm6uMWLECN/PpK6G\nfsa1P+fevXsb6enpvuN79uxp/Pe//zUMwzAyMjKMfv36Gbt27TIMwzCef/5549prrzUMwzAee+wx\n44ILLjBycnKOOu8HH3xgXHPNNb7njz76qDF37lxj69atxpgxY4zKykrDMAzjlVdeMd55553j1lf7\nczn33HOP2j5gwABjx44dxjfffGMMGjTIOHjwoGEYhnHnnXca999/v2EYNT/3Sy+91CgvL/c9f/LJ\nJxv8vVy9erUxZswYo7i42CgrKzMmT55sTJs2zTAMw7jiiiuMr776yjAMw0hPTzduvfXWBmsXaQ7q\ngRE5genTpzNu3DhGjhzJyJEjGThwINdffz0Aq1evZurUqVitVhwOB5deeilffPEF+/btIzs7m0su\nuQSAnj170q5dOzZu3Nio97zkkkt4//33AVi5ciUjRozAbP7xz/XTTz/l6quvxm6343Q6ueyyy/j4\n448BePfdd7n44osB6Nevn6/3AqC6uporrrgCgB49erB///5jvv+DDz7INddcw7Jly5gwYQIXXXQR\n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\nSuETn/gEtm/fjldeeQUGgwFHjhxBOBzGRz7yEQDA3/72N/h8Pjz88MOYnJzE73//+xX/foloeTDA\nENGyGx0dRWdnJwAgm83ihhtuwD333IOf//zn+Pa3v1143vj4OLLZLAD59h5znTlzBnfffTcAwGAw\nYMOGDTh79izOnz+PrVu3ApBvzOrz+QAA27dvx29/+1vs27cPH/rQh7Bz585l/T6JaOUwwBDRsptZ\nA1MsHo9Dq9XOe3yGVqud95ggCCV/z+VyEAQBuVyu5F4/MyGora0Nf/nLX/Dvf/8bx44dw6FDh/DM\nM89c6bdDRArARbxEVBEWiwVerxf/+te/AAA9PT149NFHL/maTZs24cSJEwCARCKBs2fPYv369Whr\na8N///tfAMDQ0BB6enoAAH/+85/x5ptvYtu2bThw4ACGhoaQTqeX8bsiopXCGRgiqpiDBw/i+9//\nPn79618jnU5j3759l3x+Z2cnHnroIXzmM5/B1NQU9u7dC6/Xix07duCf//wndu/eDa/Xi40bNwIA\n2tvbceDAAeh0OuRyOXzhC1+ARsMfe0TvB7wbNREREVUdtpCIiIio6jDAEBERUdVhgCEiIqKqwwBD\nREREVYcBhoiIiKoOAwwRERFVHQYYIiIiqjoMMERERFR1/h9OK6lILO8k/QAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "GhFtWjQRzD2l"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Solution\n",
+ "\n",
+ "Click below for one possible solution."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "OMoIsUMmzK9b"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "These are only a few ways in which we could think about the data. Other transformations may work even better!\n",
+ "\n",
+ "`households`, `median_income` and `total_bedrooms` all appear normally-distributed in a log space.\n",
+ "\n",
+ "`latitude`, `longitude` and `housing_median_age` would probably be better off just scaled linearly, as before.\n",
+ "\n",
+ "`population`, `totalRooms` and `rooms_per_person` have a few extreme outliers. They seem too extreme for log normalization to help. So let's clip them instead."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "XDEYkPquzYCH",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 656
+ },
+ "outputId": "7f69c7d1-7e1b-457c-ea21-ebb2ab7b77c9"
+ },
+ "cell_type": "code",
+ "source": [
+ "def normalize(examples_dataframe):\n",
+ " \"\"\"Returns a version of the input `DataFrame` that has all its features normalized.\"\"\"\n",
+ " processed_features = pd.DataFrame()\n",
+ "\n",
+ " processed_features[\"households\"] = log_normalize(examples_dataframe[\"households\"])\n",
+ " processed_features[\"median_income\"] = log_normalize(examples_dataframe[\"median_income\"])\n",
+ " processed_features[\"total_bedrooms\"] = log_normalize(examples_dataframe[\"total_bedrooms\"])\n",
+ " \n",
+ " processed_features[\"latitude\"] = linear_scale(examples_dataframe[\"latitude\"])\n",
+ " processed_features[\"longitude\"] = linear_scale(examples_dataframe[\"longitude\"])\n",
+ " processed_features[\"housing_median_age\"] = linear_scale(examples_dataframe[\"housing_median_age\"])\n",
+ "\n",
+ " processed_features[\"population\"] = linear_scale(clip(examples_dataframe[\"population\"], 0, 5000))\n",
+ " processed_features[\"rooms_per_person\"] = linear_scale(clip(examples_dataframe[\"rooms_per_person\"], 0, 5))\n",
+ " processed_features[\"total_rooms\"] = linear_scale(clip(examples_dataframe[\"total_rooms\"], 0, 10000))\n",
+ "\n",
+ " return processed_features\n",
+ "\n",
+ "normalized_dataframe = normalize(preprocess_features(california_housing_dataframe))\n",
+ "normalized_training_examples = normalized_dataframe.head(12000)\n",
+ "normalized_validation_examples = normalized_dataframe.tail(5000)\n",
+ "\n",
+ "_ = train_nn_regression_model(\n",
+ " my_optimizer=tf.train.AdagradOptimizer(learning_rate=0.15),\n",
+ " steps=1000,\n",
+ " batch_size=50,\n",
+ " hidden_units=[10, 10],\n",
+ " training_examples=normalized_training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=normalized_validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 21,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 80.56\n",
+ " period 01 : 73.50\n",
+ " period 02 : 71.36\n",
+ " period 03 : 72.02\n",
+ " period 04 : 70.15\n",
+ " period 05 : 69.16\n",
+ " period 06 : 69.24\n",
+ " period 07 : 69.42\n",
+ " period 08 : 68.82\n",
+ " period 09 : 68.54\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 68.54\n",
+ "Final RMSE (on validation data): 70.31\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "b7atJTbzU9Ca"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Optional Challenge: Use only Latitude and Longitude Features\n",
+ "\n",
+ "**Train a NN model that uses only latitude and longitude as features.**\n",
+ "\n",
+ "Real estate people are fond of saying that location is the only important feature in housing price.\n",
+ "Let's see if we can confirm this by training a model that uses only latitude and longitude as features.\n",
+ "\n",
+ "This will only work well if our NN can learn complex nonlinearities from latitude and longitude.\n",
+ "\n",
+ "**NOTE:** We may need a network structure that has more layers than were useful earlier in the exercise."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "T5McjahpamOc",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 656
+ },
+ "outputId": "b89370da-8134-4239-9a01-913741f00a63"
+ },
+ "cell_type": "code",
+ "source": [
+ "#\n",
+ "# YOUR CODE HERE: Train the network using only latitude and longitude\n",
+ "#\n",
+ "def location_location_location(examples_dataframe):\n",
+ " \"\"\"Returns a version of the input `DataFrame` that keeps only the latitude and longitude.\"\"\"\n",
+ " processed_features = pd.DataFrame()\n",
+ " processed_features[\"latitude\"] = linear_scale(examples_dataframe[\"latitude\"])\n",
+ " processed_features[\"longitude\"] = linear_scale(examples_dataframe[\"longitude\"])\n",
+ " return processed_features\n",
+ "\n",
+ "lll_dataframe = location_location_location(preprocess_features(california_housing_dataframe))\n",
+ "lll_training_examples = lll_dataframe.head(12000)\n",
+ "lll_validation_examples = lll_dataframe.tail(5000)\n",
+ "\n",
+ "_ = train_nn_regression_model(\n",
+ " my_optimizer=tf.train.AdagradOptimizer(learning_rate=0.01),\n",
+ " steps=1000,\n",
+ " batch_size=100,\n",
+ " hidden_units=[10, 10, 5, 5, 5],\n",
+ " training_examples=lll_training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=lll_validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 22,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 232.67\n",
+ " period 01 : 223.30\n",
+ " period 02 : 208.79\n",
+ " period 03 : 187.47\n",
+ " period 04 : 160.27\n",
+ " period 05 : 130.87\n",
+ " period 06 : 110.75\n",
+ " period 07 : 108.43\n",
+ " period 08 : 107.49\n",
+ " period 09 : 106.68\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 106.68\n",
+ "Final RMSE (on validation data): 109.16\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\nG3EaMGAAly5dIikpiUOHDtGrVy9MTExwcHC44TDbPyUnJxMeHn7Df9fPlfHx8cHHx0f32NzcnA4d\nOgCwZ88e2rVrR4MGDQAYPnw4+/fvp6ysDKgckXJ0dLxpm927d+fEiRNkZ2cDsHnzZsLDw7G1tSUz\nM5N169aRk5NDZGQkgwYNqtbP7W+KorBixQrc3Nzw8fFh27Zt9OvXDzc3NwBGjhyp2wcAOnTogJmZ\n2Q3rqGq/PHjwIN26dcPKygpzc3NdVgBOTk6sWbOGs2fP4uPjwyeffFKj2oXQB5kDI8Qd/D0HJjMz\nU3f4w8Sk8quTmZmJnZ2d7rV2dnZkZGSQmZmJjY0NKpVKt+zvX2LOzs533GanTp2YOnUq2dnZrF+/\nnueff143oRYgLy+Pjz76iE8//RSoPKTUsmVLANatW8e3335LQUEBFRUVKNfd7kyj0egmH6vVaioq\nKm65fTMzM8aNG8e4cePIzc3lt99+48MPP8Tb25ucnJwb5uM4OTnd8fNUpy5ra2sAcnNzuXz5MuHh\n4brlpqamZGZmkpOTg42Nje55W1tbCgoKbrm9O82BuT63fz7Oysq64TPa2NigKApZWVm3fO/fLC0t\n6dixIzt27KBVq1bk5ubSqlUrVCoVX3zxBYsWLeL999+nTZs2vPfee3ecT1ReXq77OSiKgr+/P3Pm\nzEGtVpOXl8fmzZvZvXu3bnlpaeltPx9Q5X6Zk5ODq6vrDc//7cMPP2Tu3Lk89dRTmJubM3ny5Bvy\nEcIQpIERopocHR2JjIzk448/Zu7cuQA4Ozvr/toGyM7OxtnZGScnJ3JyclAURffLIjs7u9q/7LVa\nLT169GDNmjVcvHiRkJCQGxoYV1dX/vWvf900ApGSksLUqVNZuXIlzZo148KFC/Tp06dGnzMzM5O4\nuDjdCIitrS0RERHs2rWLU6dOYWNjQ15e3g2v/9s/m6KcnJwa1+Xq6oqfnx+rV6++aZmtre1tt30/\nOTk5ER0drXuck5ODWq3GwcHhju/t06cPmzdvJisriz59+ujyb9++Pe3bt6ewsJDp06fzf//3f3cc\nyfjnJN7rubq6MnjwYF5//fUafa7b7ZdV/WydnZ15++23efvtt9m9ezcvvvgiXbp0wcrKqtrbFuJ+\nk0NIQtTAU089RXR0NAcOHAAqDxmsWrWK8vJyCgsL+eWXX+jWrRve3t64u7vrJslGRUWRnp5Oy5Yt\n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\nA0QrlchBe21kAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "P8BLQ7T71JWd"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Solution\n",
+ "\n",
+ "Click below for a possible solution."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "1hwaFCE71OPZ"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "It's a good idea to keep latitude and longitude normalized:"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "djKtt4mz1ZEc",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 656
+ },
+ "outputId": "18cddf67-64eb-4f5c-f764-c97c4400ed67"
+ },
+ "cell_type": "code",
+ "source": [
+ "def location_location_location(examples_dataframe):\n",
+ " \"\"\"Returns a version of the input `DataFrame` that keeps only the latitude and longitude.\"\"\"\n",
+ " processed_features = pd.DataFrame()\n",
+ " processed_features[\"latitude\"] = linear_scale(examples_dataframe[\"latitude\"])\n",
+ " processed_features[\"longitude\"] = linear_scale(examples_dataframe[\"longitude\"])\n",
+ " return processed_features\n",
+ "\n",
+ "lll_dataframe = location_location_location(preprocess_features(california_housing_dataframe))\n",
+ "lll_training_examples = lll_dataframe.head(12000)\n",
+ "lll_validation_examples = lll_dataframe.tail(5000)\n",
+ "\n",
+ "_ = train_nn_regression_model(\n",
+ " my_optimizer=tf.train.AdagradOptimizer(learning_rate=0.05),\n",
+ " steps=500,\n",
+ " batch_size=50,\n",
+ " hidden_units=[10, 10, 5, 5, 5],\n",
+ " training_examples=lll_training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=lll_validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 23,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 176.73\n",
+ " period 01 : 108.67\n",
+ " period 02 : 106.57\n",
+ " period 03 : 104.96\n",
+ " period 04 : 104.28\n",
+ " period 05 : 102.25\n",
+ " period 06 : 101.42\n",
+ " period 07 : 100.69\n",
+ " period 08 : 100.28\n",
+ " period 09 : 99.94\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 99.94\n",
+ "Final RMSE (on validation data): 102.55\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGACAYAAACz01iHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xl8FPXdB/DP7M5u9kyym+xmkyBs\nQEUFBFFaIiC3hKtWOepB1JbaPhXUKq1Hi7Y2KsarFQEVfCoanlaFeoCiVKuo6COKoTygIkWO3Mlu\nrt3s5thjnj82u7IkhCRkr+Tzfr14JTszO/Pd/IJ8/M13ZgRJkiQQERERJRBZrAsgIiIi6ikGGCIi\nIko4DDBERESUcBhgiIiIKOEwwBAREVHCYYAhIiKihCPGugCieDZ8+HAMHjwYcrkcAODz+TBu3Dis\nXLkSGo2m1/t95ZVXsHjx4g7LX331Vdxzzz145plnMHXq1NDylpYWXHrppbj88svx8MMP9/q43VVS\nUoKHHnoIR48eBQCo1WosX74cM2bMiPixe2LdunUoKSnp8DPZvXs3li5dikGDBnV4zzvvvBOt8s5I\nWVkZpk+fjpycHACAJElIT0/H73//e1xwwQU92tfjjz+OrKwsXHPNNd1+zxtvvIEtW7agqKioR8ci\nihYGGKLTKCoqgsViAQC0tbXh9ttvx7PPPovbb7+9V/uz2Wx47rnnOg0wAJCZmYk333wzLMB88MEH\nSE5O7tXxeuM3v/kNrrjiCjzzzDMAgH379uGGG27A22+/jczMzKjVcSYyMzMTJqycilwuD/sM27dv\nx7Jly7Bjxw4olcpu72fFihWRKI8opngKiagHlEolJk2ahG+++QYA0Nraivvuuw+zZs3C7Nmz8fDD\nD8Pn8wEADh48iKuvvhp5eXm44oor8PHHHwMArr76alRUVCAvLw9tbW0djjF27Fjs3r0bzc3NoWXb\nt2/HhAkTQq/b2trwwAMPYNasWZg2bVooaADA3r17cdVVVyEvLw9z5szBp59+CiDwf/QTJ07Eiy++\niPnz52PSpEnYvn17p5/z0KFDGD16dOj16NGjsWPHjlCQW7NmDSZPnowf//jHWL9+PaZNmwYAuPvu\nu7Fu3brQ+058fbq6HnroISxZsgQA8OWXX2LBggWYOXMmFi9ejNLSUgCBmahf//rXmDp1KpYsWYKq\nqqrTjFjnXn31VSxfvhw33HADHnnkEezevRtXX301brvtttA/9m+//TbmzZuHvLw8XH/99SgpKQEA\nPPXUU1i5ciUWLlyIjRs3hu33tttuw1//+tfQ62+++QYTJ06E3+/Hn//8Z8yaNQuzZs3C9ddfj+rq\n6h7XPWfOHLS0tODIkSMAgJdffhl5eXmYNm0a7rjjDrS0tAAI/NxXrVqF+fPn4+233w4bh1P9Xvr9\nfvzpT3/ClClTsHDhQhw8eDB03M8//xxXXnkl5syZg9mzZ+Ptt9/uce1EfU4iolM699xzpcrKytDr\nhoYG6brrrpPWrVsnSZIkPfvss9JNN90keTweqbm5WVqwYIH0+uuvSz6fT5o9e7a0bds2SZIk6f/+\n7/+kcePGSU6nU/rss8+kGTNmdHq8f/zjH9Jdd90l/eY3vwm91+l0StOnT5c2b94s3XXXXZIkSdKa\nNWukG264QWptbZVcLpf04x//WHr//fclSZKkefPmSW+++aYkSZL02muvhY5VWloqXXDBBVJRUZEk\nSZK0fft2aebMmZ3Wccstt0hTp06VXnjhBenw4cNh67799lvpkksukWpqaiSPxyP96le/kqZOnSpJ\nkiTddddd0tq1a0Pbnvi6q7pGjBghvfrqq6HPO27cOGnXrl2SJEnStm3bpCuvvFKSJEnatGmTdN11\n10kej0eqq6uTpk6dGvqZnKirn3Hw5zxmzBjp6NGjoe1HjRolffrpp5IkSVJ5ebl08cUXS8eOHZMk\nSZL++7//W7rhhhskSZKk1atXSxMnTpRqa2s77Pett96SrrvuutDrJ598UiooKJAOHTokXX755VJb\nW5skSZL04osvSq+99top6wv+XM4///wOy8eNGyd999130hdffCHl5uZKVVVVkiRJ0r333is9/PDD\nkiQFfu7z58+XWlpaQq/Xrl3b5e/lzp07pcsvv1xqamqSmpubpYULF0pLliyRJEmSrrrqKmn37t2S\nJEnS0aNHpTvuuKPL2omigTMwRKeRn5+PvLw8TJ8+HdOnT8f48eNx0003AQB27tyJxYsXQxRFqFQq\nzJ8/H5988gnKyspgt9sxd+5cAMCoUaOQlZWF/fv3d+uYc+fOxZtvvgkAeO+99zB16lTIZN//df3g\ngw9w7bXXQqlUQqPR4IorrsA///lPAMDrr7+O2bNnAwAuvvji0OwFAHi9Xlx11VUAgBEjRqCioqLT\n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\nAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "Dw2Mr9JZ1cRi"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "This isn't too bad for just two features. Of course, property values can still vary significantly within short distances."
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/intro_to_neural_nets.ipynb b/intro_to_neural_nets.ipynb
new file mode 100644
index 0000000..19148df
--- /dev/null
+++ b/intro_to_neural_nets.ipynb
@@ -0,0 +1,1229 @@
+{
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "name": "intro_to_neural_nets.ipynb",
+ "version": "0.3.2",
+ "provenance": [],
+ "collapsed_sections": [
+ "JndnmDMp66FL",
+ "O2q5RRCKqYaU",
+ "vvT2jDWjrKew"
+ ],
+ "include_colab_link": true
+ },
+ "kernelspec": {
+ "name": "python2",
+ "display_name": "Python 2"
+ },
+ "accelerator": "GPU"
+ },
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "view-in-github",
+ "colab_type": "text"
+ },
+ "source": [
+ ""
+ ]
+ },
+ {
+ "metadata": {
+ "id": "JndnmDMp66FL",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "#### Copyright 2017 Google LLC."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "hMqWDc_m6rUC",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
+ "# you may not use this file except in compliance with the License.\n",
+ "# You may obtain a copy of the License at\n",
+ "#\n",
+ "# https://www.apache.org/licenses/LICENSE-2.0\n",
+ "#\n",
+ "# Unless required by applicable law or agreed to in writing, software\n",
+ "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
+ "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
+ "# See the License for the specific language governing permissions and\n",
+ "# limitations under the License."
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "eV16J6oUY-HN",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "# Intro to Neural Networks"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "_wIcUFLSKNdx",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "**Learning Objectives:**\n",
+ " * Define a neural network (NN) and its hidden layers using the TensorFlow `DNNRegressor` class\n",
+ " * Train a neural network to learn nonlinearities in a dataset and achieve better performance than a linear regression model"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "_ZZ7f7prKNdy",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "In the previous exercises, we used synthetic features to help our model incorporate nonlinearities.\n",
+ "\n",
+ "One important set of nonlinearities was around latitude and longitude, but there may be others.\n",
+ "\n",
+ "We'll also switch back, for now, to a standard regression task, rather than the logistic regression task from the previous exercise. That is, we'll be predicting `median_house_value` directly."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "J2kqX6VZTHUy",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Setup\n",
+ "\n",
+ "First, let's load and prepare the data."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "AGOM1TUiKNdz",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "from __future__ import print_function\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "from IPython import display\n",
+ "from matplotlib import cm\n",
+ "from matplotlib import gridspec\n",
+ "from matplotlib import pyplot as plt\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "from sklearn import metrics\n",
+ "import tensorflow as tf\n",
+ "from tensorflow.python.data import Dataset\n",
+ "\n",
+ "tf.logging.set_verbosity(tf.logging.ERROR)\n",
+ "pd.options.display.max_rows = 10\n",
+ "pd.options.display.float_format = '{:.1f}'.format\n",
+ "\n",
+ "california_housing_dataframe = pd.read_csv(\"https://download.mlcc.google.com/mledu-datasets/california_housing_train.csv\", sep=\",\")\n",
+ "\n",
+ "california_housing_dataframe = california_housing_dataframe.reindex(\n",
+ " np.random.permutation(california_housing_dataframe.index))"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "2I8E2qhyKNd4",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def preprocess_features(california_housing_dataframe):\n",
+ " \"\"\"Prepares input features from California housing data set.\n",
+ "\n",
+ " Args:\n",
+ " california_housing_dataframe: A Pandas DataFrame expected to contain data\n",
+ " from the California housing data set.\n",
+ " Returns:\n",
+ " A DataFrame that contains the features to be used for the model, including\n",
+ " synthetic features.\n",
+ " \"\"\"\n",
+ " selected_features = california_housing_dataframe[\n",
+ " [\"latitude\",\n",
+ " \"longitude\",\n",
+ " \"housing_median_age\",\n",
+ " \"total_rooms\",\n",
+ " \"total_bedrooms\",\n",
+ " \"population\",\n",
+ " \"households\",\n",
+ " \"median_income\"]]\n",
+ " processed_features = selected_features.copy()\n",
+ " # Create a synthetic feature.\n",
+ " processed_features[\"rooms_per_person\"] = (\n",
+ " california_housing_dataframe[\"total_rooms\"] /\n",
+ " california_housing_dataframe[\"population\"])\n",
+ " return processed_features\n",
+ "\n",
+ "def preprocess_targets(california_housing_dataframe):\n",
+ " \"\"\"Prepares target features (i.e., labels) from California housing data set.\n",
+ "\n",
+ " Args:\n",
+ " california_housing_dataframe: A Pandas DataFrame expected to contain data\n",
+ " from the California housing data set.\n",
+ " Returns:\n",
+ " A DataFrame that contains the target feature.\n",
+ " \"\"\"\n",
+ " output_targets = pd.DataFrame()\n",
+ " # Scale the target to be in units of thousands of dollars.\n",
+ " output_targets[\"median_house_value\"] = (\n",
+ " california_housing_dataframe[\"median_house_value\"] / 1000.0)\n",
+ " return output_targets"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "pQzcj2B1T5dA",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1205
+ },
+ "outputId": "6b15f1d3-e97b-46df-b9ab-4dae09427a77"
+ },
+ "cell_type": "code",
+ "source": [
+ "# Choose the first 12000 (out of 17000) examples for training.\n",
+ "training_examples = preprocess_features(california_housing_dataframe.head(12000))\n",
+ "training_targets = preprocess_targets(california_housing_dataframe.head(12000))\n",
+ "\n",
+ "# Choose the last 5000 (out of 17000) examples for validation.\n",
+ "validation_examples = preprocess_features(california_housing_dataframe.tail(5000))\n",
+ "validation_targets = preprocess_targets(california_housing_dataframe.tail(5000))\n",
+ "\n",
+ "# Double-check that we've done the right thing.\n",
+ "print(\"Training examples summary:\")\n",
+ "display.display(training_examples.describe())\n",
+ "print(\"Validation examples summary:\")\n",
+ "display.display(validation_examples.describe())\n",
+ "\n",
+ "print(\"Training targets summary:\")\n",
+ "display.display(training_targets.describe())\n",
+ "print(\"Validation targets summary:\")\n",
+ "display.display(validation_targets.describe())"
+ ],
+ "execution_count": 4,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training examples summary:\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " latitude longitude housing_median_age total_rooms total_bedrooms \\\n",
+ "count 12000.0 12000.0 12000.0 12000.0 12000.0 \n",
+ "mean 35.6 -119.6 28.7 2653.8 541.1 \n",
+ "std 2.1 2.0 12.6 2215.6 428.3 \n",
+ "min 32.5 -124.3 1.0 2.0 2.0 \n",
+ "25% 33.9 -121.8 18.0 1461.0 296.0 \n",
+ "50% 34.2 -118.5 29.0 2119.5 431.0 \n",
+ "75% 37.7 -118.0 37.0 3156.2 650.0 \n",
+ "max 42.0 -114.3 52.0 37937.0 6445.0 \n",
+ "\n",
+ " population households median_income rooms_per_person \n",
+ "count 12000.0 12000.0 12000.0 12000.0 \n",
+ "mean 1429.8 502.6 3.9 2.0 \n",
+ "std 1142.5 390.7 1.9 1.0 \n",
+ "min 3.0 2.0 0.5 0.0 \n",
+ "25% 789.0 282.0 2.6 1.5 \n",
+ "50% 1167.0 408.0 3.6 1.9 \n",
+ "75% 1718.0 605.0 4.8 2.3 \n",
+ "max 28566.0 6082.0 15.0 52.0 "
+ ],
+ "text/html": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "RWq0xecNKNeG",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Building a Neural Network\n",
+ "\n",
+ "The NN is defined by the [DNNRegressor](https://www.tensorflow.org/api_docs/python/tf/estimator/DNNRegressor) class.\n",
+ "\n",
+ "Use **`hidden_units`** to define the structure of the NN. The `hidden_units` argument provides a list of ints, where each int corresponds to a hidden layer and indicates the number of nodes in it. For example, consider the following assignment:\n",
+ "\n",
+ "`hidden_units=[3,10]`\n",
+ "\n",
+ "The preceding assignment specifies a neural net with two hidden layers:\n",
+ "\n",
+ "* The first hidden layer contains 3 nodes.\n",
+ "* The second hidden layer contains 10 nodes.\n",
+ "\n",
+ "If we wanted to add more layers, we'd add more ints to the list. For example, `hidden_units=[10,20,30,40]` would create four layers with ten, twenty, thirty, and forty units, respectively.\n",
+ "\n",
+ "By default, all hidden layers will use ReLu activation and will be fully connected."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "ni0S6zHcTb04",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def construct_feature_columns(input_features):\n",
+ " \"\"\"Construct the TensorFlow Feature Columns.\n",
+ "\n",
+ " Args:\n",
+ " input_features: The names of the numerical input features to use.\n",
+ " Returns:\n",
+ " A set of feature columns\n",
+ " \"\"\" \n",
+ " return set([tf.feature_column.numeric_column(my_feature)\n",
+ " for my_feature in input_features])"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "zvCqgNdzpaFg",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def my_input_fn(features, targets, batch_size=1, shuffle=True, num_epochs=None):\n",
+ " \"\"\"Trains a neural net regression model.\n",
+ " \n",
+ " Args:\n",
+ " features: pandas DataFrame of features\n",
+ " targets: pandas DataFrame of targets\n",
+ " batch_size: Size of batches to be passed to the model\n",
+ " shuffle: True or False. Whether to shuffle the data.\n",
+ " num_epochs: Number of epochs for which data should be repeated. None = repeat indefinitely\n",
+ " Returns:\n",
+ " Tuple of (features, labels) for next data batch\n",
+ " \"\"\"\n",
+ " \n",
+ " # Convert pandas data into a dict of np arrays.\n",
+ " features = {key:np.array(value) for key,value in dict(features).items()} \n",
+ " \n",
+ " # Construct a dataset, and configure batching/repeating.\n",
+ " ds = Dataset.from_tensor_slices((features,targets)) # warning: 2GB limit\n",
+ " ds = ds.batch(batch_size).repeat(num_epochs)\n",
+ " \n",
+ " # Shuffle the data, if specified.\n",
+ " if shuffle:\n",
+ " ds = ds.shuffle(10000)\n",
+ " \n",
+ " # Return the next batch of data.\n",
+ " features, labels = ds.make_one_shot_iterator().get_next()\n",
+ " return features, labels"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "U52Ychv9KNeH",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def train_nn_regression_model(\n",
+ " learning_rate,\n",
+ " steps,\n",
+ " batch_size,\n",
+ " hidden_units,\n",
+ " training_examples,\n",
+ " training_targets,\n",
+ " validation_examples,\n",
+ " validation_targets):\n",
+ " \"\"\"Trains a neural network regression model.\n",
+ " \n",
+ " In addition to training, this function also prints training progress information,\n",
+ " as well as a plot of the training and validation loss over time.\n",
+ " \n",
+ " Args:\n",
+ " learning_rate: A `float`, the learning rate.\n",
+ " steps: A non-zero `int`, the total number of training steps. A training step\n",
+ " consists of a forward and backward pass using a single batch.\n",
+ " batch_size: A non-zero `int`, the batch size.\n",
+ " hidden_units: A `list` of int values, specifying the number of neurons in each layer.\n",
+ " training_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for training.\n",
+ " training_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for training.\n",
+ " validation_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for validation.\n",
+ " validation_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for validation.\n",
+ " \n",
+ " Returns:\n",
+ " A `DNNRegressor` object trained on the training data.\n",
+ " \"\"\"\n",
+ "\n",
+ " periods = 10\n",
+ " steps_per_period = steps / periods\n",
+ " \n",
+ " # Create a DNNRegressor object.\n",
+ " my_optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate)\n",
+ " my_optimizer = tf.contrib.estimator.clip_gradients_by_norm(my_optimizer, 5.0)\n",
+ " dnn_regressor = tf.estimator.DNNRegressor(\n",
+ " feature_columns=construct_feature_columns(training_examples),\n",
+ " hidden_units=hidden_units,\n",
+ " optimizer=my_optimizer,\n",
+ " )\n",
+ " \n",
+ " # Create input functions.\n",
+ " training_input_fn = lambda: my_input_fn(training_examples, \n",
+ " training_targets[\"median_house_value\"], \n",
+ " batch_size=batch_size)\n",
+ " predict_training_input_fn = lambda: my_input_fn(training_examples, \n",
+ " training_targets[\"median_house_value\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ " predict_validation_input_fn = lambda: my_input_fn(validation_examples, \n",
+ " validation_targets[\"median_house_value\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ "\n",
+ " # Train the model, but do so inside a loop so that we can periodically assess\n",
+ " # loss metrics.\n",
+ " print(\"Training model...\")\n",
+ " print(\"RMSE (on training data):\")\n",
+ " training_rmse = []\n",
+ " validation_rmse = []\n",
+ " for period in range (0, periods):\n",
+ " # Train the model, starting from the prior state.\n",
+ " dnn_regressor.train(\n",
+ " input_fn=training_input_fn,\n",
+ " steps=steps_per_period\n",
+ " )\n",
+ " # Take a break and compute predictions.\n",
+ " training_predictions = dnn_regressor.predict(input_fn=predict_training_input_fn)\n",
+ " training_predictions = np.array([item['predictions'][0] for item in training_predictions])\n",
+ " \n",
+ " validation_predictions = dnn_regressor.predict(input_fn=predict_validation_input_fn)\n",
+ " validation_predictions = np.array([item['predictions'][0] for item in validation_predictions])\n",
+ " \n",
+ " # Compute training and validation loss.\n",
+ " training_root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(training_predictions, training_targets))\n",
+ " validation_root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(validation_predictions, validation_targets))\n",
+ " # Occasionally print the current loss.\n",
+ " print(\" period %02d : %0.2f\" % (period, training_root_mean_squared_error))\n",
+ " # Add the loss metrics from this period to our list.\n",
+ " training_rmse.append(training_root_mean_squared_error)\n",
+ " validation_rmse.append(validation_root_mean_squared_error)\n",
+ " print(\"Model training finished.\")\n",
+ "\n",
+ " # Output a graph of loss metrics over periods.\n",
+ " plt.ylabel(\"RMSE\")\n",
+ " plt.xlabel(\"Periods\")\n",
+ " plt.title(\"Root Mean Squared Error vs. Periods\")\n",
+ " plt.tight_layout()\n",
+ " plt.plot(training_rmse, label=\"training\")\n",
+ " plt.plot(validation_rmse, label=\"validation\")\n",
+ " plt.legend()\n",
+ "\n",
+ " print(\"Final RMSE (on training data): %0.2f\" % training_root_mean_squared_error)\n",
+ " print(\"Final RMSE (on validation data): %0.2f\" % validation_root_mean_squared_error)\n",
+ "\n",
+ " return dnn_regressor"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "2QhdcCy-Y8QR",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 1: Train a NN Model\n",
+ "\n",
+ "**Adjust hyperparameters, aiming to drop RMSE below 110.**\n",
+ "\n",
+ "Run the following block to train a NN model. \n",
+ "\n",
+ "Recall that in the linear regression exercise with many features, an RMSE of 110 or so was pretty good. We'll aim to beat that.\n",
+ "\n",
+ "Your task here is to modify various learning settings to improve accuracy on validation data.\n",
+ "\n",
+ "Overfitting is a real potential hazard for NNs. You can look at the gap between loss on training data and loss on validation data to help judge if your model is starting to overfit. If the gap starts to grow, that is usually a sure sign of overfitting.\n",
+ "\n",
+ "Because of the number of different possible settings, it's strongly recommended that you take notes on each trial to help guide your development process.\n",
+ "\n",
+ "Also, when you get a good setting, try running it multiple times and see how repeatable your result is. NN weights are typically initialized to small random values, so you should see differences from run to run.\n"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "rXmtSW1yKNeK",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 656
+ },
+ "outputId": "e28b87dd-62da-4d3a-cb88-04b1ea303635"
+ },
+ "cell_type": "code",
+ "source": [
+ "dnn_regressor = train_nn_regression_model(\n",
+ " learning_rate=0.001,\n",
+ " steps=10000,\n",
+ " batch_size=50,\n",
+ " hidden_units=[10, 10],\n",
+ " training_examples=training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 11,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 144.15\n",
+ " period 01 : 114.16\n",
+ " period 02 : 107.14\n",
+ " period 03 : 103.90\n",
+ " period 04 : 99.23\n",
+ " period 05 : 99.60\n",
+ " period 06 : 97.93\n",
+ " period 07 : 98.08\n",
+ " period 08 : 96.94\n",
+ " period 09 : 99.94\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 99.94\n",
+ "Final RMSE (on validation data): 99.61\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGACAYAAACz01iHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xl4VOX9/vH3LNn3nYQtLLKHsKrs\nu0RBUVHqAlpF+6tKpWqrtUVbi1WxLhUErVQFQb8qihbcUNwAERQDgbAvCWvIvpE9M+f3BzIlAiEB\nJmeS3K/r8rqYOTPnfCafidw85zznsRiGYSAiIiLSiFjNLkBERESkvhRgREREpNFRgBEREZFGRwFG\nREREGh0FGBEREWl0FGBERESk0bGbXYCIJ+vcuTNt2rTBZrMB4HA46N+/PzNmzMDf3/+c9/vuu+8y\nadKkU55funQpDz/8MC+//DIjRoxwPV9eXs7AgQO57LLLeOqpp875uHV14MABnnjiCdLS0gDw8/Nj\n2rRpjB492u3Hro958+Zx4MCBU34m69evZ+rUqbRq1eqU93z22WcNVd55OXToEKNGjaJdu3YAGIZB\nZGQkf/nLX+jWrVu99vXss88SFxfHjTfeWOf3/Pe//+W9995j0aJF9TqWSENRgBE5i0WLFtGiRQsA\nKisrue+++/j3v//Nfffdd077y87O5j//+c9pAwxAbGwsH330UY0A8/XXXxMcHHxOxzsXf/jDH5gw\nYQIvv/wyACkpKdx66618+umnxMbGNlgd5yM2NrbRhJUzsdlsNT7DJ598wj333MOKFSvw9vau834e\neOABd5QnYiqdQhKpB29vb4YMGcL27dsBqKio4NFHH2Xs2LFcfvnlPPXUUzgcDgB27NjBDTfcQFJS\nEhMmTGD16tUA3HDDDRw5coSkpCQqKytPOUafPn1Yv349ZWVlruc++eQTBg0a5HpcWVnJ448/ztix\nYxk5cqQraABs3LiRa6+9lqSkJK644grWrl0LHP8X/eDBg3njjTe48sorGTJkCJ988slpP+euXbtI\nTEx0PU5MTGTFihWuIPfiiy8ybNgwrr76al555RVGjhwJwJ/+9CfmzZvnet/Jj89W1xNPPMHkyZMB\n+Omnn5g4cSJjxoxh0qRJHDx4EDg+EvX73/+eESNGMHnyZI4ePXqWjp3e0qVLmTZtGrfeeitPP/00\n69ev54YbbmD69Omuv+w//fRTxo8fT1JSErfccgsHDhwAYM6cOcyYMYPrrruOBQsW1Njv9OnTee21\n11yPt2/fzuDBg3E6nTz//POMHTuWsWPHcsstt5CZmVnvuq+44grKy8vZt28fAO+88w5JSUmMHDmS\n+++/n/LycuD4z/3JJ5/kyiuv5NNPP63RhzN9L51OJ3//+98ZPnw41113HTt27HAd94cffuCaa67h\niiuu4PLLL+fTTz+td+0iF5whImfUqVMnIyMjw/W4oKDAuPnmm4158+YZhmEY//73v40777zTqKqq\nMsrKyoyJEycaH374oeFwOIzLL7/cWL58uWEYhrF582ajf//+RnFxsbFu3Tpj9OjRpz3e+++/bzz0\n0EPGH/7wB9d7i4uLjVGjRhlLliwxHnroIcMwDOPFF180br31VqOiosIoKSkxrr76auOrr74yDMMw\nxo8fb3z00UeGYRjGBx984DrWwYMHjW7duhmLFi0yDMMwPvnkE2PMmDGnreN3v/udMWLECGPhwoXG\nnj17amzbuXOn0a9fPyMrK8uoqqoy7rrrLmPEiBGGYRjGQw89ZMydO9f12pMf11ZX9+7djaVLl7o+\nb//+/Y01a9YYhmEYy5cvN6655hrDMAxj8eLFxs0332xUVVUZeXl5xogRI1w/k5PV9jM+8XPu1auX\nkZaW5np9QkKCsXbtWsMwDOPw4cNG3759jfT0dMMwDOPVV181br31VsMwDGP27NnG4MGDjdzc3FP2\n+/HHHxs333yz6/ELL7xgzJw509i1a5dx2WWXGZWVlYZhGMYbb7xhfPDBB2es78TPpWvXrqc8379/\nf2Pv3r3Gjz/+aAwYMMA4evSoYRiG8cgjjxhPPfWUYRjHf+5XXnmlUV5e7no8d+7cWr+X33zzjXHZ\nZZcZx44dM8rKyozrrrvOmDx5smEYhnHttdca69evNwzDMNLS0oz777+/1tpFGoJGYETOYsqUKSQl\nJTFq1ChGjRrFpZdeyp133gnAN998w6RJk7Db7fj6+nLllVfy3XffcejQIXJychg3bhwACQkJxMXF\nsWXLljodc9y4cXz00UcArFy5khEjRmC1/u/X9euvv+amm27C29sbf39/JkyYwOeffw7Ahx9+yOWX\nXw5A3759XaMXANXV1Vx77bUAdO/enSNHjpz2+P/85z+5+eabWb58OePHj2fkyJH83//9H3B8dKR/\n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\nAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "O2q5RRCKqYaU",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Solution\n",
+ "\n",
+ "Click below to see a possible solution"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "j2Yd5VfrqcC3",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "**NOTE:** This selection of parameters is somewhat arbitrary. Here we've tried combinations that are increasingly complex, combined with training for longer, until the error falls below our objective (training is nondeterministic, so results may fluctuate a bit each time you run the solution). This may not be the best combination; others may attain an even lower RMSE. If your aim is to find the model that can attain the best error, then you'll want to use a more rigorous process, like a parameter search."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "IjkpSqmxqnSM",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 656
+ },
+ "outputId": "26a183b1-2895-4979-8e11-35136e1a1c3a"
+ },
+ "cell_type": "code",
+ "source": [
+ "dnn_regressor = train_nn_regression_model(\n",
+ " learning_rate=0.001,\n",
+ " steps=2000,\n",
+ " batch_size=100,\n",
+ " hidden_units=[10, 10],\n",
+ " training_examples=training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 12,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 167.85\n",
+ " period 01 : 170.59\n",
+ " period 02 : 166.65\n",
+ " period 03 : 167.46\n",
+ " period 04 : 166.50\n",
+ " period 05 : 161.52\n",
+ " period 06 : 157.01\n",
+ " period 07 : 153.52\n",
+ " period 08 : 153.38\n",
+ " period 09 : 145.57\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 145.57\n",
+ "Final RMSE (on validation data): 146.32\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "c6diezCSeH4Y",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 2: Evaluate on Test Data\n",
+ "\n",
+ "**Confirm that your validation performance results hold up on test data.**\n",
+ "\n",
+ "Once you have a model you're happy with, evaluate it on test data to compare that to validation performance.\n",
+ "\n",
+ "Reminder, the test data set is located [here](https://download.mlcc.google.com/mledu-datasets/california_housing_test.csv)."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "icEJIl5Vp51r",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 34
+ },
+ "outputId": "7a12ac8d-b043-4ac4-a84c-3a93cbfb3030"
+ },
+ "cell_type": "code",
+ "source": [
+ "california_housing_test_data = pd.read_csv(\"https://download.mlcc.google.com/mledu-datasets/california_housing_test.csv\", sep=\",\")\n",
+ "\n",
+ "# YOUR CODE HERE\n",
+ "test_examples = preprocess_features(california_housing_test_data)\n",
+ "test_targets = preprocess_targets(california_housing_test_data)\n",
+ "\n",
+ "predict_testing_input_fn = lambda: my_input_fn(test_examples, \n",
+ " test_targets[\"median_house_value\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ "\n",
+ "test_predictions = dnn_regressor.predict(input_fn=predict_testing_input_fn)\n",
+ "test_predictions = np.array([item['predictions'][0] for item in test_predictions])\n",
+ "\n",
+ "root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(test_predictions, test_targets))\n",
+ "\n",
+ "print(\"Final RMSE (on test data): %0.2f\" % root_mean_squared_error)"
+ ],
+ "execution_count": 13,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Final RMSE (on test data): 143.97\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "vvT2jDWjrKew",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Solution\n",
+ "\n",
+ "Click below to see a possible solution."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "FyDh7Qy6rQb0",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Similar to what the code at the top does, we just need to load the appropriate data file, preprocess it and call predict and mean_squared_error.\n",
+ "\n",
+ "Note that we don't have to randomize the test data, since we will use all records."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "vhb0CtdvrWZx",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 34
+ },
+ "outputId": "9d937361-2013-4d62-d0c7-29c584ab0d29"
+ },
+ "cell_type": "code",
+ "source": [
+ "california_housing_test_data = pd.read_csv(\"https://download.mlcc.google.com/mledu-datasets/california_housing_test.csv\", sep=\",\")\n",
+ "\n",
+ "test_examples = preprocess_features(california_housing_test_data)\n",
+ "test_targets = preprocess_targets(california_housing_test_data)\n",
+ "\n",
+ "predict_testing_input_fn = lambda: my_input_fn(test_examples, \n",
+ " test_targets[\"median_house_value\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ "\n",
+ "test_predictions = dnn_regressor.predict(input_fn=predict_testing_input_fn)\n",
+ "test_predictions = np.array([item['predictions'][0] for item in test_predictions])\n",
+ "\n",
+ "root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(test_predictions, test_targets))\n",
+ "\n",
+ "print(\"Final RMSE (on test data): %0.2f\" % root_mean_squared_error)"
+ ],
+ "execution_count": 14,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Final RMSE (on test data): 143.97\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/intro_to_pandas.ipynb b/intro_to_pandas.ipynb
new file mode 100644
index 0000000..c562a8f
--- /dev/null
+++ b/intro_to_pandas.ipynb
@@ -0,0 +1,1872 @@
+{
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "name": "intro_to_pandas.ipynb",
+ "version": "0.3.2",
+ "provenance": [],
+ "collapsed_sections": [
+ "JndnmDMp66FL",
+ "YHIWvc9Ms-Ll",
+ "TJffr5_Jwqvd"
+ ],
+ "include_colab_link": true
+ },
+ "kernelspec": {
+ "name": "python2",
+ "display_name": "Python 2"
+ }
+ },
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "view-in-github",
+ "colab_type": "text"
+ },
+ "source": [
+ ""
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "JndnmDMp66FL"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "#### Copyright 2017 Google LLC."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "hMqWDc_m6rUC",
+ "cellView": "both",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
+ "# you may not use this file except in compliance with the License.\n",
+ "# You may obtain a copy of the License at\n",
+ "#\n",
+ "# https://www.apache.org/licenses/LICENSE-2.0\n",
+ "#\n",
+ "# Unless required by applicable law or agreed to in writing, software\n",
+ "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
+ "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
+ "# See the License for the specific language governing permissions and\n",
+ "# limitations under the License."
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "rHLcriKWLRe4"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "# Intro to pandas"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "QvJBqX8_Bctk"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "**Learning Objectives:**\n",
+ " * Gain an introduction to the `DataFrame` and `Series` data structures of the *pandas* library\n",
+ " * Access and manipulate data within a `DataFrame` and `Series`\n",
+ " * Import CSV data into a *pandas* `DataFrame`\n",
+ " * Reindex a `DataFrame` to shuffle data"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "TIFJ83ZTBctl"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "[*pandas*](http://pandas.pydata.org/) is a column-oriented data analysis API. It's a great tool for handling and analyzing input data, and many ML frameworks support *pandas* data structures as inputs.\n",
+ "Although a comprehensive introduction to the *pandas* API would span many pages, the core concepts are fairly straightforward, and we'll present them below. For a more complete reference, the [*pandas* docs site](http://pandas.pydata.org/pandas-docs/stable/index.html) contains extensive documentation and many tutorials."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "s_JOISVgmn9v"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Basic Concepts\n",
+ "\n",
+ "The following line imports the *pandas* API and prints the API version:"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "aSRYu62xUi3g",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 34
+ },
+ "outputId": "7ca15d87-231b-4c5d-dd99-b822fc732415"
+ },
+ "cell_type": "code",
+ "source": [
+ "from __future__ import print_function\n",
+ "\n",
+ "import pandas as pd\n",
+ "pd.__version__"
+ ],
+ "execution_count": 1,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "u'0.22.0'"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 1
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "daQreKXIUslr"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "The primary data structures in *pandas* are implemented as two classes:\n",
+ "\n",
+ " * **`DataFrame`**, which you can imagine as a relational data table, with rows and named columns.\n",
+ " * **`Series`**, which is a single column. A `DataFrame` contains one or more `Series` and a name for each `Series`.\n",
+ "\n",
+ "The data frame is a commonly used abstraction for data manipulation. Similar implementations exist in [Spark](https://spark.apache.org/) and [R](https://www.r-project.org/about.html)."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "fjnAk1xcU0yc"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "One way to create a `Series` is to construct a `Series` object. For example:"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "DFZ42Uq7UFDj",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 85
+ },
+ "outputId": "8bf78419-3409-4f02-fc77-07f1833138f4"
+ },
+ "cell_type": "code",
+ "source": [
+ "pd.Series(['San Francisco', 'San Jose', 'Sacramento'])"
+ ],
+ "execution_count": 2,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "0 San Francisco\n",
+ "1 San Jose\n",
+ "2 Sacramento\n",
+ "dtype: object"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 2
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "U5ouUp1cU6pC"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "`DataFrame` objects can be created by passing a `dict` mapping `string` column names to their respective `Series`. If the `Series` don't match in length, missing values are filled with special [NA/NaN](http://pandas.pydata.org/pandas-docs/stable/missing_data.html) values. Example:"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "avgr6GfiUh8t",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 142
+ },
+ "outputId": "6f223cd2-8964-4e1c-96ce-811f72c418fd"
+ },
+ "cell_type": "code",
+ "source": [
+ "city_names = pd.Series(['San Francisco', 'San Jose', 'Sacramento'])\n",
+ "population = pd.Series([852469, 1015785, 485199])\n",
+ "\n",
+ "pd.DataFrame({ 'City name': city_names, 'Population': population })"
+ ],
+ "execution_count": 3,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
City name
\n",
+ "
Population
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
San Francisco
\n",
+ "
852469
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
San Jose
\n",
+ "
1015785
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
Sacramento
\n",
+ "
485199
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " City name Population\n",
+ "0 San Francisco 852469\n",
+ "1 San Jose 1015785\n",
+ "2 Sacramento 485199"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 3
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "oa5wfZT7VHJl"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "But most of the time, you load an entire file into a `DataFrame`. The following example loads a file with California housing data. Run the following cell to load the data and create feature definitions:"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "av6RYOraVG1V",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 297
+ },
+ "outputId": "bbf6226b-9aab-430b-da73-21b8acd4858c"
+ },
+ "cell_type": "code",
+ "source": [
+ "california_housing_dataframe = pd.read_csv(\"https://download.mlcc.google.com/mledu-datasets/california_housing_train.csv\", sep=\",\")\n",
+ "california_housing_dataframe.describe()"
+ ],
+ "execution_count": 4,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "
"
+ ],
+ "text/plain": [
+ " City name Population Area square miles Population density\n",
+ "0 San Francisco 852469 46.87 18187.945381\n",
+ "1 San Jose 1015785 176.53 5754.177760\n",
+ "2 Sacramento 485199 97.92 4955.055147"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 17
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "6qh63m-ayb-c"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Exercise #1\n",
+ "\n",
+ "Modify the `cities` table by adding a new boolean column that is True if and only if *both* of the following are True:\n",
+ "\n",
+ " * The city is named after a saint.\n",
+ " * The city has an area greater than 50 square miles.\n",
+ "\n",
+ "**Note:** Boolean `Series` are combined using the bitwise, rather than the traditional boolean, operators. For example, when performing *logical and*, use `&` instead of `and`.\n",
+ "\n",
+ "**Hint:** \"San\" in Spanish means \"saint.\""
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "zCOn8ftSyddH",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 142
+ },
+ "outputId": "9a66814d-d261-4c5b-9cfa-d58aa0c7e77f"
+ },
+ "cell_type": "code",
+ "source": [
+ "cities['Is wide and has saint name'] = (cities['Area square miles'] > 50) & cities['City name'].apply(lambda name: name.startswith('San'))\n",
+ "cities"
+ ],
+ "execution_count": 18,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
City name
\n",
+ "
Population
\n",
+ "
Area square miles
\n",
+ "
Population density
\n",
+ "
Is wide and has saint name
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
San Francisco
\n",
+ "
852469
\n",
+ "
46.87
\n",
+ "
18187.945381
\n",
+ "
False
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
San Jose
\n",
+ "
1015785
\n",
+ "
176.53
\n",
+ "
5754.177760
\n",
+ "
True
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
Sacramento
\n",
+ "
485199
\n",
+ "
97.92
\n",
+ "
4955.055147
\n",
+ "
False
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " City name Population Area square miles Population density \\\n",
+ "0 San Francisco 852469 46.87 18187.945381 \n",
+ "1 San Jose 1015785 176.53 5754.177760 \n",
+ "2 Sacramento 485199 97.92 4955.055147 \n",
+ "\n",
+ " Is wide and has saint name \n",
+ "0 False \n",
+ "1 True \n",
+ "2 False "
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 18
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "YHIWvc9Ms-Ll"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Solution\n",
+ "\n",
+ "Click below for a solution."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "T5OlrqtdtCIb",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 142
+ },
+ "outputId": "f7dbb8a5-0b91-40fc-b29f-b50d75fb03e9"
+ },
+ "cell_type": "code",
+ "source": [
+ "cities['Is wide and has saint name'] = (cities['Area square miles'] > 50) & cities['City name'].apply(lambda name: name.startswith('San'))\n",
+ "cities"
+ ],
+ "execution_count": 19,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
City name
\n",
+ "
Population
\n",
+ "
Area square miles
\n",
+ "
Population density
\n",
+ "
Is wide and has saint name
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
San Francisco
\n",
+ "
852469
\n",
+ "
46.87
\n",
+ "
18187.945381
\n",
+ "
False
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
San Jose
\n",
+ "
1015785
\n",
+ "
176.53
\n",
+ "
5754.177760
\n",
+ "
True
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
Sacramento
\n",
+ "
485199
\n",
+ "
97.92
\n",
+ "
4955.055147
\n",
+ "
False
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " City name Population Area square miles Population density \\\n",
+ "0 San Francisco 852469 46.87 18187.945381 \n",
+ "1 San Jose 1015785 176.53 5754.177760 \n",
+ "2 Sacramento 485199 97.92 4955.055147 \n",
+ "\n",
+ " Is wide and has saint name \n",
+ "0 False \n",
+ "1 True \n",
+ "2 False "
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 19
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "f-xAOJeMiXFB"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Indexes\n",
+ "Both `Series` and `DataFrame` objects also define an `index` property that assigns an identifier value to each `Series` item or `DataFrame` row. \n",
+ "\n",
+ "By default, at construction, *pandas* assigns index values that reflect the ordering of the source data. Once created, the index values are stable; that is, they do not change when data is reordered."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "2684gsWNinq9",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 34
+ },
+ "outputId": "3d043277-0673-482e-b630-35237aed02fd"
+ },
+ "cell_type": "code",
+ "source": [
+ "city_names.index"
+ ],
+ "execution_count": 20,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "RangeIndex(start=0, stop=3, step=1)"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 20
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "F_qPe2TBjfWd",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 34
+ },
+ "outputId": "04820fe4-8e73-4c35-bfcd-1a00de1537bd"
+ },
+ "cell_type": "code",
+ "source": [
+ "cities.index"
+ ],
+ "execution_count": 21,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "RangeIndex(start=0, stop=3, step=1)"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 21
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "hp2oWY9Slo_h"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Call `DataFrame.reindex` to manually reorder the rows. For example, the following has the same effect as sorting by city name:"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "sN0zUzSAj-U1",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 142
+ },
+ "outputId": "98feb2e1-fd7c-47b3-d86e-6c8572220f46"
+ },
+ "cell_type": "code",
+ "source": [
+ "cities.reindex([2, 0, 1])"
+ ],
+ "execution_count": 22,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
City name
\n",
+ "
Population
\n",
+ "
Area square miles
\n",
+ "
Population density
\n",
+ "
Is wide and has saint name
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
2
\n",
+ "
Sacramento
\n",
+ "
485199
\n",
+ "
97.92
\n",
+ "
4955.055147
\n",
+ "
False
\n",
+ "
\n",
+ "
\n",
+ "
0
\n",
+ "
San Francisco
\n",
+ "
852469
\n",
+ "
46.87
\n",
+ "
18187.945381
\n",
+ "
False
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
San Jose
\n",
+ "
1015785
\n",
+ "
176.53
\n",
+ "
5754.177760
\n",
+ "
True
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " City name Population Area square miles Population density \\\n",
+ "2 Sacramento 485199 97.92 4955.055147 \n",
+ "0 San Francisco 852469 46.87 18187.945381 \n",
+ "1 San Jose 1015785 176.53 5754.177760 \n",
+ "\n",
+ " Is wide and has saint name \n",
+ "2 False \n",
+ "0 False \n",
+ "1 True "
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 22
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "-GQFz8NZuS06"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Reindexing is a great way to shuffle (randomize) a `DataFrame`. In the example below, we take the index, which is array-like, and pass it to NumPy's `random.permutation` function, which shuffles its values in place. Calling `reindex` with this shuffled array causes the `DataFrame` rows to be shuffled in the same way.\n",
+ "Try running the following cell multiple times!"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "mF8GC0k8uYhz",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 142
+ },
+ "outputId": "8a969746-e6db-470c-bdbd-ca46c2383909"
+ },
+ "cell_type": "code",
+ "source": [
+ "cities.reindex(np.random.permutation(cities.index))"
+ ],
+ "execution_count": 23,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
City name
\n",
+ "
Population
\n",
+ "
Area square miles
\n",
+ "
Population density
\n",
+ "
Is wide and has saint name
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
San Francisco
\n",
+ "
852469
\n",
+ "
46.87
\n",
+ "
18187.945381
\n",
+ "
False
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
Sacramento
\n",
+ "
485199
\n",
+ "
97.92
\n",
+ "
4955.055147
\n",
+ "
False
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
San Jose
\n",
+ "
1015785
\n",
+ "
176.53
\n",
+ "
5754.177760
\n",
+ "
True
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " City name Population Area square miles Population density \\\n",
+ "0 San Francisco 852469 46.87 18187.945381 \n",
+ "2 Sacramento 485199 97.92 4955.055147 \n",
+ "1 San Jose 1015785 176.53 5754.177760 \n",
+ "\n",
+ " Is wide and has saint name \n",
+ "0 False \n",
+ "2 False \n",
+ "1 True "
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 23
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "fSso35fQmGKb"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "For more information, see the [Index documentation](http://pandas.pydata.org/pandas-docs/stable/indexing.html#index-objects)."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "8UngIdVhz8C0"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Exercise #2\n",
+ "\n",
+ "The `reindex` method allows index values that are not in the original `DataFrame`'s index values. Try it and see what happens if you use such values! Why do you think this is allowed?"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "PN55GrDX0jzO",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 173
+ },
+ "outputId": "7a90d1ec-a80c-42ed-c576-beecf41e2a6f"
+ },
+ "cell_type": "code",
+ "source": [
+ "# Your code here\n",
+ "cities.reindex([0, 4, 5, 2])"
+ ],
+ "execution_count": 25,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
City name
\n",
+ "
Population
\n",
+ "
Area square miles
\n",
+ "
Population density
\n",
+ "
Is wide and has saint name
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
San Francisco
\n",
+ "
852469.0
\n",
+ "
46.87
\n",
+ "
18187.945381
\n",
+ "
False
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
5
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
Sacramento
\n",
+ "
485199.0
\n",
+ "
97.92
\n",
+ "
4955.055147
\n",
+ "
False
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " City name Population Area square miles Population density \\\n",
+ "0 San Francisco 852469.0 46.87 18187.945381 \n",
+ "4 NaN NaN NaN NaN \n",
+ "5 NaN NaN NaN NaN \n",
+ "2 Sacramento 485199.0 97.92 4955.055147 \n",
+ "\n",
+ " Is wide and has saint name \n",
+ "0 False \n",
+ "4 NaN \n",
+ "5 NaN \n",
+ "2 False "
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 25
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "TJffr5_Jwqvd"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Solution\n",
+ "\n",
+ "Click below for the solution."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "8oSvi2QWwuDH"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "If your `reindex` input array includes values not in the original `DataFrame` index values, `reindex` will add new rows for these \"missing\" indices and populate all corresponding columns with `NaN` values:"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "yBdkucKCwy4x",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 173
+ },
+ "outputId": "4f30274c-43d3-47bb-ba7b-f76c252416d2"
+ },
+ "cell_type": "code",
+ "source": [
+ "cities.reindex([0, 4, 5, 2])"
+ ],
+ "execution_count": 26,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
City name
\n",
+ "
Population
\n",
+ "
Area square miles
\n",
+ "
Population density
\n",
+ "
Is wide and has saint name
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
San Francisco
\n",
+ "
852469.0
\n",
+ "
46.87
\n",
+ "
18187.945381
\n",
+ "
False
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
5
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
Sacramento
\n",
+ "
485199.0
\n",
+ "
97.92
\n",
+ "
4955.055147
\n",
+ "
False
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " City name Population Area square miles Population density \\\n",
+ "0 San Francisco 852469.0 46.87 18187.945381 \n",
+ "4 NaN NaN NaN NaN \n",
+ "5 NaN NaN NaN NaN \n",
+ "2 Sacramento 485199.0 97.92 4955.055147 \n",
+ "\n",
+ " Is wide and has saint name \n",
+ "0 False \n",
+ "4 NaN \n",
+ "5 NaN \n",
+ "2 False "
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 26
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "2l82PhPbwz7g"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "This behavior is desirable because indexes are often strings pulled from the actual data (see the [*pandas* reindex\n",
+ "documentation](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.reindex.html) for an example\n",
+ "in which the index values are browser names).\n",
+ "\n",
+ "In this case, allowing \"missing\" indices makes it easy to reindex using an external list, as you don't have to worry about\n",
+ "sanitizing the input."
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/logistic_regression.ipynb b/logistic_regression.ipynb
new file mode 100644
index 0000000..5e3bd56
--- /dev/null
+++ b/logistic_regression.ipynb
@@ -0,0 +1,1694 @@
+{
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "name": "logistic_regression.ipynb",
+ "version": "0.3.2",
+ "provenance": [],
+ "collapsed_sections": [
+ "JndnmDMp66FL",
+ "dPpJUV862FYI",
+ "i2e3TlyL57Qs",
+ "wCugvl0JdWYL"
+ ],
+ "include_colab_link": true
+ },
+ "kernelspec": {
+ "name": "python2",
+ "display_name": "Python 2"
+ }
+ },
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "view-in-github",
+ "colab_type": "text"
+ },
+ "source": [
+ ""
+ ]
+ },
+ {
+ "metadata": {
+ "id": "JndnmDMp66FL",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "#### Copyright 2017 Google LLC."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "hMqWDc_m6rUC",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
+ "# you may not use this file except in compliance with the License.\n",
+ "# You may obtain a copy of the License at\n",
+ "#\n",
+ "# https://www.apache.org/licenses/LICENSE-2.0\n",
+ "#\n",
+ "# Unless required by applicable law or agreed to in writing, software\n",
+ "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
+ "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
+ "# See the License for the specific language governing permissions and\n",
+ "# limitations under the License."
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "g4T-_IsVbweU",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "# Logistic Regression"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "LEAHZv4rIYHX",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "**Learning Objectives:**\n",
+ " * Reframe the median house value predictor (from the preceding exercises) as a binary classification model\n",
+ " * Compare the effectiveness of logisitic regression vs linear regression for a binary classification problem"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "CnkCZqdIIYHY",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "As in the prior exercises, we're working with the [California housing data set](https://developers.google.com/machine-learning/crash-course/california-housing-data-description), but this time we will turn it into a binary classification problem by predicting whether a city block is a high-cost city block. We'll also revert to the default features, for now."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "9pltCyy2K3dd",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Frame the Problem as Binary Classification\n",
+ "\n",
+ "The target of our dataset is `median_house_value` which is a numeric (continuous-valued) feature. We can create a boolean label by applying a threshold to this continuous value.\n",
+ "\n",
+ "Given features describing a city block, we wish to predict if it is a high-cost city block. To prepare the targets for train and eval data, we define a classification threshold of the 75%-ile for median house value (a value of approximately 265000). All house values above the threshold are labeled `1`, and all others are labeled `0`."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "67IJwZX1Vvjt",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Setup\n",
+ "\n",
+ "Run the cells below to load the data and prepare the input features and targets."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "fOlbcJ4EIYHd",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "from __future__ import print_function\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "from IPython import display\n",
+ "from matplotlib import cm\n",
+ "from matplotlib import gridspec\n",
+ "from matplotlib import pyplot as plt\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "from sklearn import metrics\n",
+ "import tensorflow as tf\n",
+ "from tensorflow.python.data import Dataset\n",
+ "\n",
+ "tf.logging.set_verbosity(tf.logging.ERROR)\n",
+ "pd.options.display.max_rows = 10\n",
+ "pd.options.display.float_format = '{:.1f}'.format\n",
+ "\n",
+ "california_housing_dataframe = pd.read_csv(\"https://download.mlcc.google.com/mledu-datasets/california_housing_train.csv\", sep=\",\")\n",
+ "\n",
+ "california_housing_dataframe = california_housing_dataframe.reindex(\n",
+ " np.random.permutation(california_housing_dataframe.index))"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "lTB73MNeIYHf",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Note how the code below is slightly different from the previous exercises. Instead of using `median_house_value` as target, we create a new binary target, `median_house_value_is_high`."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "kPSqspaqIYHg",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def preprocess_features(california_housing_dataframe):\n",
+ " \"\"\"Prepares input features from California housing data set.\n",
+ "\n",
+ " Args:\n",
+ " california_housing_dataframe: A Pandas DataFrame expected to contain data\n",
+ " from the California housing data set.\n",
+ " Returns:\n",
+ " A DataFrame that contains the features to be used for the model, including\n",
+ " synthetic features.\n",
+ " \"\"\"\n",
+ " selected_features = california_housing_dataframe[\n",
+ " [\"latitude\",\n",
+ " \"longitude\",\n",
+ " \"housing_median_age\",\n",
+ " \"total_rooms\",\n",
+ " \"total_bedrooms\",\n",
+ " \"population\",\n",
+ " \"households\",\n",
+ " \"median_income\"]]\n",
+ " processed_features = selected_features.copy()\n",
+ " # Create a synthetic feature.\n",
+ " processed_features[\"rooms_per_person\"] = (\n",
+ " california_housing_dataframe[\"total_rooms\"] /\n",
+ " california_housing_dataframe[\"population\"])\n",
+ " return processed_features\n",
+ "\n",
+ "def preprocess_targets(california_housing_dataframe):\n",
+ " \"\"\"Prepares target features (i.e., labels) from California housing data set.\n",
+ "\n",
+ " Args:\n",
+ " california_housing_dataframe: A Pandas DataFrame expected to contain data\n",
+ " from the California housing data set.\n",
+ " Returns:\n",
+ " A DataFrame that contains the target feature.\n",
+ " \"\"\"\n",
+ " output_targets = pd.DataFrame()\n",
+ " # Create a boolean categorical feature representing whether the\n",
+ " # median_house_value is above a set threshold.\n",
+ " output_targets[\"median_house_value_is_high\"] = (\n",
+ " california_housing_dataframe[\"median_house_value\"] > 265000).astype(float)\n",
+ " return output_targets"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "FwOYWmXqWA6D",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1205
+ },
+ "outputId": "9d650342-4997-4899-b600-24c514774aff"
+ },
+ "cell_type": "code",
+ "source": [
+ "# Choose the first 12000 (out of 17000) examples for training.\n",
+ "training_examples = preprocess_features(california_housing_dataframe.head(12000))\n",
+ "training_targets = preprocess_targets(california_housing_dataframe.head(12000))\n",
+ "\n",
+ "# Choose the last 5000 (out of 17000) examples for validation.\n",
+ "validation_examples = preprocess_features(california_housing_dataframe.tail(5000))\n",
+ "validation_targets = preprocess_targets(california_housing_dataframe.tail(5000))\n",
+ "\n",
+ "# Double-check that we've done the right thing.\n",
+ "print(\"Training examples summary:\")\n",
+ "display.display(training_examples.describe())\n",
+ "print(\"Validation examples summary:\")\n",
+ "display.display(validation_examples.describe())\n",
+ "\n",
+ "print(\"Training targets summary:\")\n",
+ "display.display(training_targets.describe())\n",
+ "print(\"Validation targets summary:\")\n",
+ "display.display(validation_targets.describe())"
+ ],
+ "execution_count": 4,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training examples summary:\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " latitude longitude housing_median_age total_rooms total_bedrooms \\\n",
+ "count 12000.0 12000.0 12000.0 12000.0 12000.0 \n",
+ "mean 35.6 -119.6 28.6 2635.0 537.8 \n",
+ "std 2.1 2.0 12.6 2165.7 420.8 \n",
+ "min 32.5 -124.3 1.0 2.0 1.0 \n",
+ "25% 33.9 -121.8 18.0 1454.0 296.0 \n",
+ "50% 34.2 -118.5 29.0 2122.0 432.0 \n",
+ "75% 37.7 -118.0 37.0 3144.5 646.0 \n",
+ "max 42.0 -114.3 52.0 37937.0 5471.0 \n",
+ "\n",
+ " population households median_income rooms_per_person \n",
+ "count 12000.0 12000.0 12000.0 12000.0 \n",
+ "mean 1427.4 500.5 3.9 2.0 \n",
+ "std 1149.1 386.3 1.9 1.2 \n",
+ "min 6.0 1.0 0.5 0.1 \n",
+ "25% 787.8 281.0 2.6 1.5 \n",
+ "50% 1162.0 407.0 3.6 1.9 \n",
+ "75% 1711.0 602.0 4.8 2.3 \n",
+ "max 35682.0 5189.0 15.0 55.2 "
+ ],
+ "text/html": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "uon1LB3A31VN",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## How Would Linear Regression Fare?\n",
+ "To see why logistic regression is effective, let us first train a naive model that uses linear regression. This model will use labels with values in the set `{0, 1}` and will try to predict a continuous value that is as close as possible to `0` or `1`. Furthermore, we wish to interpret the output as a probability, so it would be ideal if the output will be within the range `(0, 1)`. We would then apply a threshold of `0.5` to determine the label.\n",
+ "\n",
+ "Run the cells below to train the linear regression model using [LinearRegressor](https://www.tensorflow.org/api_docs/python/tf/estimator/LinearRegressor)."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "smmUYRDtWOV_",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def construct_feature_columns(input_features):\n",
+ " \"\"\"Construct the TensorFlow Feature Columns.\n",
+ "\n",
+ " Args:\n",
+ " input_features: The names of the numerical input features to use.\n",
+ " Returns:\n",
+ " A set of feature columns\n",
+ " \"\"\"\n",
+ " return set([tf.feature_column.numeric_column(my_feature)\n",
+ " for my_feature in input_features])"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "B5OwSrr1yIKD",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def my_input_fn(features, targets, batch_size=1, shuffle=True, num_epochs=None):\n",
+ " \"\"\"Trains a linear regression model.\n",
+ " \n",
+ " Args:\n",
+ " features: pandas DataFrame of features\n",
+ " targets: pandas DataFrame of targets\n",
+ " batch_size: Size of batches to be passed to the model\n",
+ " shuffle: True or False. Whether to shuffle the data.\n",
+ " num_epochs: Number of epochs for which data should be repeated. None = repeat indefinitely\n",
+ " Returns:\n",
+ " Tuple of (features, labels) for next data batch\n",
+ " \"\"\"\n",
+ " \n",
+ " # Convert pandas data into a dict of np arrays.\n",
+ " features = {key:np.array(value) for key,value in dict(features).items()} \n",
+ " \n",
+ " # Construct a dataset, and configure batching/repeating.\n",
+ " ds = Dataset.from_tensor_slices((features,targets)) # warning: 2GB limit\n",
+ " ds = ds.batch(batch_size).repeat(num_epochs)\n",
+ " \n",
+ " # Shuffle the data, if specified.\n",
+ " if shuffle:\n",
+ " ds = ds.shuffle(10000)\n",
+ " \n",
+ " # Return the next batch of data.\n",
+ " features, labels = ds.make_one_shot_iterator().get_next()\n",
+ " return features, labels"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "SE2-hq8PIYHz",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def train_linear_regressor_model(\n",
+ " learning_rate,\n",
+ " steps,\n",
+ " batch_size,\n",
+ " training_examples,\n",
+ " training_targets,\n",
+ " validation_examples,\n",
+ " validation_targets):\n",
+ " \"\"\"Trains a linear regression model.\n",
+ " \n",
+ " In addition to training, this function also prints training progress information,\n",
+ " as well as a plot of the training and validation loss over time.\n",
+ " \n",
+ " Args:\n",
+ " learning_rate: A `float`, the learning rate.\n",
+ " steps: A non-zero `int`, the total number of training steps. A training step\n",
+ " consists of a forward and backward pass using a single batch.\n",
+ " batch_size: A non-zero `int`, the batch size.\n",
+ " training_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for training.\n",
+ " training_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for training.\n",
+ " validation_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for validation.\n",
+ " validation_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for validation.\n",
+ " \n",
+ " Returns:\n",
+ " A `LinearRegressor` object trained on the training data.\n",
+ " \"\"\"\n",
+ "\n",
+ " periods = 10\n",
+ " steps_per_period = steps / periods\n",
+ "\n",
+ " # Create a linear regressor object.\n",
+ " my_optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate)\n",
+ " my_optimizer = tf.contrib.estimator.clip_gradients_by_norm(my_optimizer, 5.0)\n",
+ " linear_regressor = tf.estimator.LinearRegressor(\n",
+ " feature_columns=construct_feature_columns(training_examples),\n",
+ " optimizer=my_optimizer\n",
+ " )\n",
+ " \n",
+ " # Create input functions.\n",
+ " training_input_fn = lambda: my_input_fn(training_examples, \n",
+ " training_targets[\"median_house_value_is_high\"], \n",
+ " batch_size=batch_size)\n",
+ " predict_training_input_fn = lambda: my_input_fn(training_examples, \n",
+ " training_targets[\"median_house_value_is_high\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ " predict_validation_input_fn = lambda: my_input_fn(validation_examples, \n",
+ " validation_targets[\"median_house_value_is_high\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ "\n",
+ " # Train the model, but do so inside a loop so that we can periodically assess\n",
+ " # loss metrics.\n",
+ " print(\"Training model...\")\n",
+ " print(\"RMSE (on training data):\")\n",
+ " training_rmse = []\n",
+ " validation_rmse = []\n",
+ " for period in range (0, periods):\n",
+ " # Train the model, starting from the prior state.\n",
+ " linear_regressor.train(\n",
+ " input_fn=training_input_fn,\n",
+ " steps=steps_per_period\n",
+ " )\n",
+ " \n",
+ " # Take a break and compute predictions.\n",
+ " training_predictions = linear_regressor.predict(input_fn=predict_training_input_fn)\n",
+ " training_predictions = np.array([item['predictions'][0] for item in training_predictions])\n",
+ " \n",
+ " validation_predictions = linear_regressor.predict(input_fn=predict_validation_input_fn)\n",
+ " validation_predictions = np.array([item['predictions'][0] for item in validation_predictions])\n",
+ " \n",
+ " # Compute training and validation loss.\n",
+ " training_root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(training_predictions, training_targets))\n",
+ " validation_root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(validation_predictions, validation_targets))\n",
+ " # Occasionally print the current loss.\n",
+ " print(\" period %02d : %0.2f\" % (period, training_root_mean_squared_error))\n",
+ " # Add the loss metrics from this period to our list.\n",
+ " training_rmse.append(training_root_mean_squared_error)\n",
+ " validation_rmse.append(validation_root_mean_squared_error)\n",
+ " print(\"Model training finished.\")\n",
+ " \n",
+ " # Output a graph of loss metrics over periods.\n",
+ " plt.ylabel(\"RMSE\")\n",
+ " plt.xlabel(\"Periods\")\n",
+ " plt.title(\"Root Mean Squared Error vs. Periods\")\n",
+ " plt.tight_layout()\n",
+ " plt.plot(training_rmse, label=\"training\")\n",
+ " plt.plot(validation_rmse, label=\"validation\")\n",
+ " plt.legend()\n",
+ "\n",
+ " return linear_regressor"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "TDBD8xeeIYH2",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 741
+ },
+ "outputId": "9fae3e5e-634f-4d21-aa2a-e51299f74026"
+ },
+ "cell_type": "code",
+ "source": [
+ "linear_regressor = train_linear_regressor_model(\n",
+ " learning_rate=0.000001,\n",
+ " steps=200,\n",
+ " batch_size=20,\n",
+ " training_examples=training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 8,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "WARNING: The TensorFlow contrib module will not be included in TensorFlow 2.0.\n",
+ "For more information, please see:\n",
+ " * https://github.com/tensorflow/community/blob/master/rfcs/20180907-contrib-sunset.md\n",
+ " * https://github.com/tensorflow/addons\n",
+ "If you depend on functionality not listed there, please file an issue.\n",
+ "\n",
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 0.45\n",
+ " period 01 : 0.46\n",
+ " period 02 : 0.45\n",
+ " period 03 : 0.44\n",
+ " period 04 : 0.44\n",
+ " period 05 : 0.45\n",
+ " period 06 : 0.44\n",
+ " period 07 : 0.45\n",
+ " period 08 : 0.44\n",
+ " period 09 : 0.44\n",
+ "Model training finished.\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAAGACAYAAACgBBhzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xd41eX9//HnOSd77w0JCSsEQgZh\nhZWwwrBMEaForW1/1mId9eugorYqYlu1AqK1w1baKoIRByJ77yQQVgIkhOy99zqf3x+BIykrCUnO\nycn7cV1el+ecz3if3CecV+7Pfd8flaIoCkIIIYQQRkSt7wKEEEIIITqbBBwhhBBCGB0JOEIIIYQw\nOhJwhBBCCGF0JOAIIYQQwuhIwBFCCCGE0THRdwFC9GSDBg2ib9++aDQaAJqbm4mIiOCll17Cysqq\nw8f9/PPPWbRo0U3Px8bG8uKLL/Lhhx8SFRWle76uro6xY8cybdo0Vq9e3eHztlVGRgarVq0iLS0N\nAEtLS5YvX86UKVO6/NztsX79ejIyMm76mRw/fpxHH30UHx+fm/b5/vvvu6u8e5KVlcXkyZPp168f\nAIqi4OLiwm9/+1uGDBnSrmO9/fbbeHl58eCDD7Z5n6+++orNmzezYcOGdp1LiO4iAUeIe7RhwwY8\nPDwAaGho4Omnn+Yvf/kLTz/9dIeOV1hYyN/+9rdbBhwAT09Pvv3221YBZ+/evdjZ2XXofB3x7LPP\nMmfOHD788EMAEhMTefjhh9m2bRuenp7dVse98PT07DFh5nY0Gk2r9/Ddd9/xq1/9iu3bt2NmZtbm\n4/zmN7/pivKE0Cu5RCVEJzIzM2P8+PEkJSUBUF9fz8svv8z06dOZMWMGq1evprm5GYDk5GQWL15M\nTEwMc+bM4eDBgwAsXryYnJwcYmJiaGhouOkcYWFhHD9+nNraWt1z3333HZGRkbrHDQ0NvP7660yf\nPp3o6GhdEAE4deoU8+fPJyYmhpkzZ3LkyBGgpUdg3LhxfPLJJ9x3332MHz+e77777pbv89KlSwwf\nPlz3ePjw4Wzfvl0X9NatW8fEiROZO3cuH330EdHR0QC88MILrF+/XrffjY/vVteqVav48Y9/DEB8\nfDwLFixg6tSpLFq0iMzMTKClJ+upp54iKiqKH//4x+Tl5d2lxW4tNjaW5cuX8/DDD/OHP/yB48eP\ns3jxYp588kldGNi2bRuzZ88mJiaGhx56iIyMDADWrl3LSy+9xMKFC/nnP//Z6rhPPvkk//jHP3SP\nk5KSGDduHFqtlnfffZfp06czffp0HnroIfLz89td98yZM6mrq+PKlSsAbNy4kZiYGKKjo3nmmWeo\nq6sDWn7ub775Jvfddx/btm1r1Q63+1xqtVp+//vfM2nSJBYuXEhycrLuvCdOnGDevHnMnDmTGTNm\nsG3btnbXLkSnU4QQHTZw4EAlNzdX97isrExZunSpsn79ekVRFOUvf/mL8vOf/1xpbGxUamtrlQUL\nFihbtmxRmpublRkzZijffPONoiiKcubMGSUiIkKprKxUjh07pkyZMuWW5/viiy+U559/Xnn22Wd1\n+1ZWViqTJ09WNm3apDz//POKoijKunXrlIcfflipr69Xqqurlblz5yp79uxRFEVRZs+erXz77beK\noijKl19+qTtXZmamMmTIEGXDhg2KoijKd999p0ydOvWWdTzxxBNKVFSU8q9//UtJSUlp9drFixeV\nESNGKAUFBUpjY6Pyy1/+UomKilIURVGef/555f3339dte+PjO9UVFBSkxMbG6t5vRESEcujQIUVR\nFOWbb75R5s2bpyiKovz73/9Wli5dqjQ2NiolJSVKVFSU7mdyozv9jK//nENCQpS0tDTd9sOGDVOO\nHDmiKIqiZGdnK+Hh4crVq1cVRVGUv//978rDDz+sKIqirFmzRhk3bpxSXFx803G3bt2qLF26VPf4\nvffeU1577TXl0qVLyrRp05SGhgZFURTlk08+Ub788svb1nf95xIYGHjT8xEREUpqaqpy8uRJZcyY\nMUpeXp6iKIqycuVKZfXq1YqitPzc77vvPqWurk73+P3337/j53Lfvn3KtGnTlKqqKqW2tlZZuHCh\n8uMf/1hRFEWZP3++cvz4cUVRFCUtLU155pln7li7EN1BenCEuEfLli0jJiaGyZMnM3nyZEaPHs3P\nf/5zAPbt28eiRYswMTHBwsKC++67j8OHD5OVlUVRURGzZs0CYNiwYXh5eXH27Nk2nXPWrFl8++23\nAOzatYuoqCjU6h9+nffu3cuSJUswMzPDysqKOXPmsGPHDgC2bNnCjBkzAAgPD9f1fgA0NTUxf/58\nAIKCgsjJybnl+f/4xz+ydOlSvvnmG2bPnk10dDSffvop0NK7EhERgaurKyYmJsyePbtN7+lOdTU2\n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\nYII=\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "JjBZ_q7aD9gh",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 1: Can We Calculate LogLoss for These Predictions?\n",
+ "\n",
+ "**Examine the predictions and decide whether or not we can use them to calculate LogLoss.**\n",
+ "\n",
+ "`LinearRegressor` uses the L2 loss, which doesn't do a great job at penalizing misclassifications when the output is interpreted as a probability. For example, there should be a huge difference whether a negative example is classified as positive with a probability of 0.9 vs 0.9999, but L2 loss doesn't strongly differentiate these cases.\n",
+ "\n",
+ "In contrast, `LogLoss` penalizes these \"confidence errors\" much more heavily. Remember, `LogLoss` is defined as:\n",
+ "\n",
+ "$$Log Loss = \\sum_{(x,y)\\in D} -y \\cdot log(y_{pred}) - (1 - y) \\cdot log(1 - y_{pred})$$\n",
+ "\n",
+ "\n",
+ "But first, we'll need to obtain the prediction values. We could use `LinearRegressor.predict` to obtain these.\n",
+ "\n",
+ "Given the predictions and the targets, can we calculate `LogLoss`?"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "dPpJUV862FYI",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Solution\n",
+ "\n",
+ "Click below to display the solution."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "kXFQ5uig2RoP",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 347
+ },
+ "outputId": "e1347c32-4068-4fac-9399-0c0e76e7d658"
+ },
+ "cell_type": "code",
+ "source": [
+ "predict_validation_input_fn = lambda: my_input_fn(validation_examples, \n",
+ " validation_targets[\"median_house_value_is_high\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ "\n",
+ "validation_predictions = linear_regressor.predict(input_fn=predict_validation_input_fn)\n",
+ "validation_predictions = np.array([item['predictions'][0] for item in validation_predictions])\n",
+ "\n",
+ "_ = plt.hist(validation_predictions)"
+ ],
+ "execution_count": 9,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\nXz5lnyuuuEKFhYXx71955RW5XK7FHnXWpvuY2N7eXj3zzDNyuVxav3696uvrkzjp3EyXs7y8XBdf\nfHF83Z5++mktXbo0WaPOybFjx3T33XfrN7/5jbZu3TrlNjut53Q57bSeu3fv1vvvv68zZ87ozjvv\n1PXXXx+/zU7rOV3OlF5PCwvuzTfftHbt2mVZlmUdPnzYuu+++76zz1VXXbXYY82bvr4+63e/+51l\nWZb18ccfW5s3b55y+8aNG62TJ09ak5OTVk1NjfXRRx8lY8w5S5SzrKzM+vLLL5Mx2rwaHR21tm7d\naj366KPWq6+++p3b7bKeiXLaZT1DoZB1++23W5ZlWZ999pl1zTXXTLndLuuZKGcqryenvhdBKBRS\nRUWFJKmkpEThcDjJE82v831MrCQdP35cF110kS655BI5nU5dc801CoVCyRx31qbLaScej0cvvvii\nAoHAd26z03pOl9NO1qxZo2effVaSlJ2drfHxcU1OTkqy13pOlzPVUdSLIBqNyufzSZKcTqccDocm\nJiam7DMxMaGGhgZt2bJFL7/8cjLGnLVoNKolS5bEv//mY2IlKRKJxLOffVuqmS7nNx5//HHV1NTo\n6aefntGn8JnI7XYrMzPznLfZaT2ny/kNO6yny+VSVlaWJCkYDGr9+vXx0792Ws/pcn4jVdeTa9Tz\n7MCBAzpw4MCUbf39/VO+P9dfkB07duiXv/ylHA6Htm7dqqKiIuXn5y/orAsllf4BzMXZOX//+99r\n3bp1uuiii1RfX6/u7m7deOONSZoOc2W39XznnXcUDAbV1taW7FEW1PlypvJ6UtTzrLq6WtXV1VO2\nNTY2KhKJaOXKlYrFYrIsSx6PZ8o+NTU18a+vvvpqHTt2LGWKerqPiT37tlOnTqXsqcZEH4dbVVUV\n/3r9+vU6duxYyvxHMFN2Ws9E7LSehw8f1t69e/XSSy/J6/3vZ17bbT3Pl1NK7fXk1PciKC0tVVdX\nlySpp6dHxcXFU27/5z//qYaGBlmWpTNnzigcDmvFihXJGHVWpvuY2EsvvVRffvml/v3vf+vMmTPq\n6elRaWlpMsedtelyjoyMqK6uLn5J4+9//3tKreFM2Wk9p2On9RwZGdHu3bv1wgsvKCcnZ8ptdlrP\n6XKm+npyRL0IKisr1dvbq5qaGnk8HjU3N0uS9u3bpzVr1mj16tW6+OKLtWnTJjmdTpWXl0/5sR/T\nnetjYt988015vV5VVFRo165damhokPT1c/HjH/84yRPPTqKc69ev169//Wt973vf089+9rOUebV+\ntqNHj+rJJ5/UiRMn5Ha71d3drfLycl166aW2Ws9EOe2ynm+//baGhoa0ffv2+Lbi4mL99Kc/tdV6\nJsqZyuvJR4gCAGAwTn0DAGAwihoAAINR1AAAGIyiBgDAYBQ1AAAGo6gBADAYRQ0AgMEoagAADPb/\nAxNevDnOilsAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "rYpy336F9wBg",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 2: Train a Logistic Regression Model and Calculate LogLoss on the Validation Set\n",
+ "\n",
+ "To use logistic regression, simply use [LinearClassifier](https://www.tensorflow.org/api_docs/python/tf/estimator/LinearClassifier) instead of `LinearRegressor`. Complete the code below.\n",
+ "\n",
+ "**NOTE**: When running `train()` and `predict()` on a `LinearClassifier` model, you can access the real-valued predicted probabilities via the `\"probabilities\"` key in the returned dict—e.g., `predictions[\"probabilities\"]`. Sklearn's [log_loss](http://scikit-learn.org/stable/modules/generated/sklearn.metrics.log_loss.html) function is handy for calculating LogLoss using these probabilities.\n"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "JElcb--E9wBm",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def train_linear_classifier_model(\n",
+ " learning_rate,\n",
+ " steps,\n",
+ " batch_size,\n",
+ " training_examples,\n",
+ " training_targets,\n",
+ " validation_examples,\n",
+ " validation_targets):\n",
+ " \"\"\"Trains a linear classification model.\n",
+ " \n",
+ " In addition to training, this function also prints training progress information,\n",
+ " as well as a plot of the training and validation loss over time.\n",
+ " \n",
+ " Args:\n",
+ " learning_rate: A `float`, the learning rate.\n",
+ " steps: A non-zero `int`, the total number of training steps. A training step\n",
+ " consists of a forward and backward pass using a single batch.\n",
+ " batch_size: A non-zero `int`, the batch size.\n",
+ " training_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for training.\n",
+ " training_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for training.\n",
+ " validation_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for validation.\n",
+ " validation_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for validation.\n",
+ " \n",
+ " Returns:\n",
+ " A `LinearClassifier` object trained on the training data.\n",
+ " \"\"\"\n",
+ "\n",
+ " periods = 10\n",
+ " steps_per_period = steps / periods\n",
+ " \n",
+ " # Create a linear classifier object.\n",
+ " my_optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate)\n",
+ " my_optimizer = tf.contrib.estimator.clip_gradients_by_norm(my_optimizer, 5.0)\n",
+ " linear_classifier = tf.estimator.LinearClassifier(\n",
+ " feature_columns=construct_feature_columns(training_examples),\n",
+ " optimizer=my_optimizer)\n",
+ " \n",
+ " # Create input functions.\n",
+ " training_input_fn = lambda: my_input_fn(training_examples, \n",
+ " training_targets[\"median_house_value_is_high\"], \n",
+ " batch_size=batch_size)\n",
+ " predict_training_input_fn = lambda: my_input_fn(training_examples, \n",
+ " training_targets[\"median_house_value_is_high\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ " predict_validation_input_fn = lambda: my_input_fn(validation_examples, \n",
+ " validation_targets[\"median_house_value_is_high\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ " \n",
+ " # Train the model, but do so inside a loop so that we can periodically assess\n",
+ " # loss metrics.\n",
+ " print(\"Training model...\")\n",
+ " print(\"LogLoss (on training data):\")\n",
+ " training_log_losses = []\n",
+ " validation_log_losses = []\n",
+ " for period in range (0, periods):\n",
+ " # Train the model, starting from the prior state.\n",
+ " linear_classifier.train(\n",
+ " input_fn=training_input_fn,\n",
+ " steps=steps_per_period\n",
+ " )\n",
+ " # Take a break and compute predictions. \n",
+ " training_probabilities = linear_classifier.predict(input_fn=predict_training_input_fn)\n",
+ " training_probabilities = np.array([item['probabilities'] for item in training_probabilities])\n",
+ " \n",
+ " validation_probabilities = linear_classifier.predict(input_fn=predict_validation_input_fn)\n",
+ " validation_probabilities = np.array([item['probabilities'] for item in validation_probabilities])\n",
+ " \n",
+ " training_log_loss = metrics.log_loss(training_targets, training_probabilities)\n",
+ " validation_log_loss = metrics.log_loss(validation_targets, validation_probabilities)\n",
+ " # Occasionally print the current loss.\n",
+ " print(\" period %02d : %0.2f\" % (period, training_log_loss))\n",
+ " # Add the loss metrics from this period to our list.\n",
+ " training_log_losses.append(training_log_loss)\n",
+ " validation_log_losses.append(validation_log_loss)\n",
+ " print(\"Model training finished.\")\n",
+ " \n",
+ " # Output a graph of loss metrics over periods.\n",
+ " plt.ylabel(\"LogLoss\")\n",
+ " plt.xlabel(\"Periods\")\n",
+ " plt.title(\"LogLoss vs. Periods\")\n",
+ " plt.tight_layout()\n",
+ " plt.plot(training_log_losses, label=\"training\")\n",
+ " plt.plot(validation_log_losses, label=\"validation\")\n",
+ " plt.legend()\n",
+ "\n",
+ " return linear_classifier"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "VM0wmnFUIYH9",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 622
+ },
+ "outputId": "88f9a775-5fcf-46b2-a280-1339a3fe7235"
+ },
+ "cell_type": "code",
+ "source": [
+ "linear_classifier = train_linear_classifier_model(\n",
+ " learning_rate=0.000002,\n",
+ " steps=500,\n",
+ " batch_size=20,\n",
+ " training_examples=training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 12,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "LogLoss (on training data):\n",
+ " period 00 : 0.61\n",
+ " period 01 : 0.60\n",
+ " period 02 : 0.59\n",
+ " period 03 : 0.59\n",
+ " period 04 : 0.58\n",
+ " period 05 : 0.57\n",
+ " period 06 : 0.57\n",
+ " period 07 : 0.56\n",
+ " period 08 : 0.55\n",
+ " period 09 : 0.55\n",
+ "Model training finished.\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\nTkSuQmCC\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "i2e3TlyL57Qs",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Solution\n",
+ "\n",
+ "Click below to see the solution.\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "5YxXd2hn6MuF",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def train_linear_classifier_model(\n",
+ " learning_rate,\n",
+ " steps,\n",
+ " batch_size,\n",
+ " training_examples,\n",
+ " training_targets,\n",
+ " validation_examples,\n",
+ " validation_targets):\n",
+ " \"\"\"Trains a linear classification model.\n",
+ " \n",
+ " In addition to training, this function also prints training progress information,\n",
+ " as well as a plot of the training and validation loss over time.\n",
+ " \n",
+ " Args:\n",
+ " learning_rate: A `float`, the learning rate.\n",
+ " steps: A non-zero `int`, the total number of training steps. A training step\n",
+ " consists of a forward and backward pass using a single batch.\n",
+ " batch_size: A non-zero `int`, the batch size.\n",
+ " training_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for training.\n",
+ " training_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for training.\n",
+ " validation_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for validation.\n",
+ " validation_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for validation.\n",
+ " \n",
+ " Returns:\n",
+ " A `LinearClassifier` object trained on the training data.\n",
+ " \"\"\"\n",
+ "\n",
+ " periods = 10\n",
+ " steps_per_period = steps / periods\n",
+ " \n",
+ " # Create a linear classifier object.\n",
+ " my_optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate)\n",
+ " my_optimizer = tf.contrib.estimator.clip_gradients_by_norm(my_optimizer, 5.0) \n",
+ " linear_classifier = tf.estimator.LinearClassifier(\n",
+ " feature_columns=construct_feature_columns(training_examples),\n",
+ " optimizer=my_optimizer\n",
+ " )\n",
+ " \n",
+ " # Create input functions.\n",
+ " training_input_fn = lambda: my_input_fn(training_examples, \n",
+ " training_targets[\"median_house_value_is_high\"], \n",
+ " batch_size=batch_size)\n",
+ " predict_training_input_fn = lambda: my_input_fn(training_examples, \n",
+ " training_targets[\"median_house_value_is_high\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ " predict_validation_input_fn = lambda: my_input_fn(validation_examples, \n",
+ " validation_targets[\"median_house_value_is_high\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ " \n",
+ " # Train the model, but do so inside a loop so that we can periodically assess\n",
+ " # loss metrics.\n",
+ " print(\"Training model...\")\n",
+ " print(\"LogLoss (on training data):\")\n",
+ " training_log_losses = []\n",
+ " validation_log_losses = []\n",
+ " for period in range (0, periods):\n",
+ " # Train the model, starting from the prior state.\n",
+ " linear_classifier.train(\n",
+ " input_fn=training_input_fn,\n",
+ " steps=steps_per_period\n",
+ " )\n",
+ " # Take a break and compute predictions. \n",
+ " training_probabilities = linear_classifier.predict(input_fn=predict_training_input_fn)\n",
+ " training_probabilities = np.array([item['probabilities'] for item in training_probabilities])\n",
+ " \n",
+ " validation_probabilities = linear_classifier.predict(input_fn=predict_validation_input_fn)\n",
+ " validation_probabilities = np.array([item['probabilities'] for item in validation_probabilities])\n",
+ " \n",
+ " training_log_loss = metrics.log_loss(training_targets, training_probabilities)\n",
+ " validation_log_loss = metrics.log_loss(validation_targets, validation_probabilities)\n",
+ " # Occasionally print the current loss.\n",
+ " print(\" period %02d : %0.2f\" % (period, training_log_loss))\n",
+ " # Add the loss metrics from this period to our list.\n",
+ " training_log_losses.append(training_log_loss)\n",
+ " validation_log_losses.append(validation_log_loss)\n",
+ " print(\"Model training finished.\")\n",
+ " \n",
+ " # Output a graph of loss metrics over periods.\n",
+ " plt.ylabel(\"LogLoss\")\n",
+ " plt.xlabel(\"Periods\")\n",
+ " plt.title(\"LogLoss vs. Periods\")\n",
+ " plt.tight_layout()\n",
+ " plt.plot(training_log_losses, label=\"training\")\n",
+ " plt.plot(validation_log_losses, label=\"validation\")\n",
+ " plt.legend()\n",
+ "\n",
+ " return linear_classifier"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "UPM_T1FXsTaL",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 622
+ },
+ "outputId": "04e9168c-853b-4c23-b2eb-4303ede8b631"
+ },
+ "cell_type": "code",
+ "source": [
+ "linear_classifier = train_linear_classifier_model(\n",
+ " learning_rate=0.000005,\n",
+ " steps=500,\n",
+ " batch_size=20,\n",
+ " training_examples=training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 14,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "LogLoss (on training data):\n",
+ " period 00 : 0.61\n",
+ " period 01 : 0.58\n",
+ " period 02 : 0.56\n",
+ " period 03 : 0.56\n",
+ " period 04 : 0.54\n",
+ " period 05 : 0.54\n",
+ " period 06 : 0.53\n",
+ " period 07 : 0.54\n",
+ " period 08 : 0.53\n",
+ " period 09 : 0.53\n",
+ "Model training finished.\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "i-Xo83_aR6s_",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 3: Calculate Accuracy and plot a ROC Curve for the Validation Set\n",
+ "\n",
+ "A few of the metrics useful for classification are the model [accuracy](https://en.wikipedia.org/wiki/Accuracy_and_precision#In_binary_classification), the [ROC curve](https://en.wikipedia.org/wiki/Receiver_operating_characteristic) and the area under the ROC curve (AUC). We'll examine these metrics.\n",
+ "\n",
+ "`LinearClassifier.evaluate` calculates useful metrics like accuracy and AUC."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "DKSQ87VVIYIA",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 51
+ },
+ "outputId": "b559deef-4b0d-4eeb-c789-1c53c6d644ea"
+ },
+ "cell_type": "code",
+ "source": [
+ "evaluation_metrics = linear_classifier.evaluate(input_fn=predict_validation_input_fn)\n",
+ "\n",
+ "print(\"AUC on the validation set: %0.2f\" % evaluation_metrics['auc'])\n",
+ "print(\"Accuracy on the validation set: %0.2f\" % evaluation_metrics['accuracy'])"
+ ],
+ "execution_count": 15,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "AUC on the validation set: 0.72\n",
+ "Accuracy on the validation set: 0.76\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "47xGS2uNIYIE",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "You may use class probabilities, such as those calculated by `LinearClassifier.predict`,\n",
+ "and Sklearn's [roc_curve](http://scikit-learn.org/stable/modules/model_evaluation.html#roc-metrics) to\n",
+ "obtain the true positive and false positive rates needed to plot a ROC curve."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "xaU7ttj8IYIF",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 347
+ },
+ "outputId": "1842e6ca-153f-4182-d956-7ecd855bc575"
+ },
+ "cell_type": "code",
+ "source": [
+ "validation_probabilities = linear_classifier.predict(input_fn=predict_validation_input_fn)\n",
+ "# Get just the probabilities for the positive class.\n",
+ "validation_probabilities = np.array([item['probabilities'][1] for item in validation_probabilities])\n",
+ "\n",
+ "false_positive_rate, true_positive_rate, thresholds = metrics.roc_curve(\n",
+ " validation_targets, validation_probabilities)\n",
+ "plt.plot(false_positive_rate, true_positive_rate, label=\"our model\")\n",
+ "plt.plot([0, 1], [0, 1], label=\"random classifier\")\n",
+ "_ = plt.legend(loc=2)"
+ ],
+ "execution_count": 16,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeEAAAFKCAYAAAAqkecjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3WlgVOX59/HvTCZ7Qsi+B0IgySTI\nvu8iCAqICASQxVattbVaW/23Sp9qW7fWWrtoF2u1VlAhQEBARARFZN+XhGwkIQvZ90y22c7zgjqS\nspPlTDLX543nnJnMXLkZ55dr5pz71iiKoiCEEEKILqdVuwAhhBDCUUkICyGEECqREBZCCCFUIiEs\nhBBCqERCWAghhFCJhLAQQgihEl1XP2FFRUOHPp6vrwc1NU0d+piOSMax/WQM20/GsP1kDNuvM8Yw\nMND7ise7fSes0zmpXUKPIOPYfjKG7Sdj2H4yhu3XlWPY7UNYCCGE6K4khIUQQgiVSAgLIYQQKpEQ\nFkIIIVQiISyEEEKoREJYCCGEUImEsBBCCKESCWE7sm/f17z00q+uevs777zFhg1ru64gIYQQneqG\nQjgrK4tp06axevXqy27bv38/CxYsYNGiRfz1r3/t8AKFEEKInuq601Y2NTXxwgsvMHbs2Cve/uKL\nL/LOO+8QHBzMsmXLmDFjBv379+/wQjuT2Wzm1Vdforj4AkajkYcffpRRo8awYMEc3n9/LR4eHrz5\n5p/o1y8GgIMH91NZWcGvf/0ygYFBAGzbtoWTJ49TW1tLXl4ujzzyA3bu/Izz5/N47rkXSUwcSHLy\nR+zatQOAiRMns2zZd8jJOceLLz5Hr14+hIVF2GrasCGZnTu3o9FomThxCkuWLOv6gRFCCNGprhvC\nLi4uvP3227z99tuX3VZYWIiPjw+hoaEATJ48mQMHDrQrhJO/OMeRjPIbvr+TkwaLRbnmfUbGB5E0\n9eo1ff75dlxcXHjzzX9SWVnBj370fdasSbnq/cvKSvnHP95Fo9G0OV5YWMDf/vYvtmzZxOrV7/Hu\nux/w6adb2LnzM3x9ffn00y28/fb7ADzyyAPcfvs03nvvXzz44CNMnDiF1157BbMZiosvsHv3Lv72\nt3cA+MEPHuL226fd6JAIIYS4RacK88lLu8A9+jFotZ3/je11Q1in06HTXfluFRUV+Pn52fb9/Pwo\nLCy85uP5+npcc15Odw8XnJw0V739Sq53f3cPl6tOng1QUJDD5MkTCAz0JjDQGw8PN5ydLTg5aQkI\n8MLT0xMPDxe8vd0AGDZsCEFBvdo8hre3G0OHDiYoqBf9+kWSkKAnJKQ3fftGkJV1lrKyAoYPH0Zo\nqC8Ao0aNpLy8kKKifKZMGY+fnzeTJ09gz549XLiQS3FxEU899RgARmMLLS21eHq64uXlds3fpT06\n63EdiYxh+8kYtp+M4bW1tJrJzK9h/5litFoNZ85VotVqMHhm0dDrNGitzLxtOJH+AZ1eS5evonS9\nlSnmjIlizpioG368wEDvG1qZ6Vr3aW42UVfXZLtPc3ML1dVNWK0KlZUGmpqs1Nc30dDQAoDJpFz2\neA0NLRiNVioqGqira8ZsVmzbzc1G6utbaG422n6uvr6RhoZWTCYL1dWNWCzO1NY20tJioqnJzOjR\n4/jZz37R5jl27foKZ+eWDl+JCm58HMXVyRi2n4xh+8kYXlvKnhy27s9vc0zj2ohzdCpOvWrA7Ezv\nqtG4WV07dByv9odRu0I4KCiIyspK235ZWRlBQUHteUhV6PUJHD9+lGnTZlBWVopWq8Xb2xsPD0+q\nqipxdQ0nLe0MsbFxt/wcsbFxvPvuPzGbzQCcPZvGihUPEhXVh4yMdEaPHsvx48cAiIvT8/e/v0FL\nSwuurq78+c9/4Ac/+FGH/K5CCNGTmS1W6gxG8krqqapvIb+sgYNpZVe875jEIAJjythddgCzYmZI\n4G0sjptHv/DQLvtDpl0hHBERgcFgoKioiJCQEL788ktee+21jqqty9xxx52cOHGMxx//Pmazif/7\nv5UAzJ+fxM9//hOiovoQHd2vXc8RGhrGPffM4/HHH8FqVZgzZy4hIaE88MBDvPzyr1m37iPCwsIx\nm02EhISQlLSExx77HlqtlkmTpuDq6tYRv6oQQvQoiqJwOL2cL48XkVVUd837Bvt54OPpQi9PF5Jm\nhLI6fR07S3Px1HmwPC6J4UGDLzvXp7NpFEW55llNqamp/O53v+PChQvodDqCg4OZOnUqERERTJ8+\nnSNHjtiC98477+Shhx665hN29F8X8tFLx5BxbD8Zw/aTMWy/njqGZouVhiYT50vqUYDGZhMH0krJ\nKKi97L6uzk7ERvamT4g3Xm46EqL9CA/wRKPRYFWsfH3hIJtytmG0GBkckMiiuPvwcf324+LOGMOr\nfRx93RDuaBLC9knGsf1kDNtPxrD9esIYllU30WK0APDliQuk5VVTVd9yzZ8ZkxjMgskx+Hq7XrWb\nrWyuZnV6Mtm1uXjo3EmKvZcRwUMuu39XhnCXn5glhBBC5BTXcTK7kqOZFfh6uQCQV9pA63/D93+5\nujiBAtGh3sRG9sbDzRmT2cKQAYGEB3he87msipW9Fw6xMecTjBYjtwUksCTuPnxce13z57qChLAQ\nQogOZVUUSqqayLlQh/V/PmxNy63mbH4Nza1m27Gy6rZXzThpNQwZEIDffy8L9fV2ZeboG79q5lJV\nzTV8kLGOzJpzuOvceSBhMSODh3b5d79XIyEshBDihlmsVowmq22/scVEdlEdBWUN1DUar3om8pUE\n+LjxvTkJRAZ54eJ8cf4IDXRIQCqKwr7iQ6Sc20qrxchAfz1L4u+jt6tPux+7I0kICyGEaKO51Uyt\nodW2v+9MKdsO5hPq70FJ1bXneviGh6uOEfGBeHu4tPm4WAH8e7kRFeyFm0vnRFB1Sw0fpK8noyYb\nd50by/VJjA4Zbjfd76UkhIUQwoG1Gi1kFtbw0a5zlFU34e6qa/NR8aVKqprwdNPR1GJmcP9vZ5Oq\nbzKS0NeX+ChfPN2ciQr2UiXwFEVhf8lhUrK30mJpJcE/jqXxC+yu+72UhHAHeuih5bz44u8IDQ3r\n8McuKSnm//2/n/POO6va9TgHD+6npKSYefMW8PrrvyM19TRPPPEU6emnWLLkux1UrRDC3qXlVXMm\nt4odR9pONdzcaiY80JOWVgu39bs4LbHZouDr7cq9E6PtspsEqGmp5YOM9aRXZ+Hm5May+IWMCR1h\nt/V+Q0LYwYwZM862feDAft59dzXe3t5Mnz6521/WIIS4nNlipcVooajcQH2TkfW7c6isu/xyn3kT\noxk3MBR/n+41MZCiKBwsOcr67C20WFrQ+8WyNH4Bvm691S7thkgIc3EZwkuXJ1yzZjVnz6ZhNBq5\n9975zJlzLy+99CsCAgLJzEynrKyU5557kbi4eP70p9+TmnqGqKg+mM0mAMrLy3jlld9gMpnQarU8\n88wv0Wg0vPDCc4SHR3DmzGnmzZtPTs45zp5NZd68hcyfn9Smpg8++A+7d+9Co9Hy6KM/atNd79jx\nKevXr8XJSUvfvjH8/Oe/oLS0lBde+CVarRaLxcJzz70AaC47dvz4UXJzc/Dz86OqqoKf//wnLFmy\njN27P+eXv3yJr776gjVrVuPkpCMuTs/jj//ksvH5ZvlGIYR9aW41s/fUBfaeKOJ0ThUNTaar3tfT\nTUd4oBfThkcwPC7Q7jvGK6ltrePDjA2kVWXg5uTK/fHzGRc6qlv9LnYXwinntnKi/MwN399Jq8Fi\nvfZ8I0ODbuO+/rOveZ9vlic0Go2EhITx+OM/pbW1haSke5kz514AjEYjr7/+Jps2rWf79k9wcXHh\nzJnTvP32f6ioKGfx4nkA/Otf/2D27LncccedfPnlTt5995889ND3yc7O4pVXXqO+vp7ly5NYt24z\nRqORX/ziZ21CuLCwgN27d/HWW+9RXHyB1avf44EHvp2JrLm5mT/84Q28vb157LHvkZNzjiNHDjJy\n5Gi+852HyczMoLKyktTUU5cd+8b9968gJWUdr732FzIyzgIX147+z3/e4R//+DcuLi788pfPcPr0\nyTbj051e3EL0ZN/Ms9RitPD8u4ev2N1+Q9/Hl4YmE8NiA2hqNXP70HBC/a99ba09UxSFQ6XHWJ+9\nmWZzC/G+A1iqX4Cfm6/apd00uwthtej1CWg0GlxdXamvr+PRRx9Ep9NRW1tju8/gwUMBCAwM5uzZ\nNM6fzyUhYSBarZbg4BDCwsIByMxM59FHLy64MGzYCN57718AhIdH4OPTG2dnF3x9/QgMDKKpqYnG\nRkObWrKyMm2PGxERyTPP/JKSkmLb7b169eLZZ58CID8/j7q6WkaNGsPKlf9HQ0MDt99+BwMHDsLD\nw/2yYwUF5686Bnl5uZSVlfLTn16svbHRQGlpaZvxEUKox2pVePWjE2QVXj5V4zcCfd0J9fNgweQY\nQvw90Dl1/pq4Xam2tY6PMjaQWpWBq5MLS+LuY3zY6G77/mR3IXxf/9nX7Vov1VHTi+l0zgCcOHGM\n48eP8uab/0Sn0zF9+kTbfZycvl0HWVEUFAW02m//4a3Wb66d09j+SjWZzGg02st+/n8f61JOTlqs\nV+nuTSYTr7/+Ku+99yH+/gH87GdPAtCvX3/ee+8jDh8+yD/+8SazZt3DXXfNvuzYtTg7X/wI+vXX\n32xzfNu2LbbxEUJ0HatV4UxuFX9efxpfb1dqGlrb3B4fdfF7z6KKRn6SNJjo0F49YtrKK1EUhcOl\nx1mXvZlmczNxvv1ZGr8Qf/fu1/1eyu5CWG11dbUEBQWj0+nYu/crLBYrJtOVv1eJiupDcvKHKIpC\nWVmprVv9ZmnE6dNncvLkMeLj9TdVQ1ycnvfeewez2Ux9fR2///0rPPHETwFoamrEyckJf/8AyspK\nychIx2w2s3PnZ4SFhTNp0hR8fHrz5Zef4+zsfNmx2Nj4qz5vVFRfzp/Po6amGl9fP9555y3uuWfe\nTdUuhGi/FqOZl94/xoXKRtuxmoZWAnzcqGlo5alFQ4jv073D52bUtTbwUeYGzlSexcXJhcVx85gQ\nNqbbdr+XkhD+HyNGjOaDD/7Dj370CBMnTmbcuAm89torV7xv//4D6Ncvhu9//7tERkYxYEAsAA8/\n/CivvPICW7ZsQqdz5tlnf2lbR/hGhIaGMWPG3fzoR4+gKArf//5jttt8fHozcuRoHn54Bf37D+D+\n+5fzl7+8zrPPPscf//gq7u4eaLVannzy/2htbeW1115uc+zs2dSrPq+bmxs//vFTPP30j3FxcWbA\ngDgCAgJvuG4hxK07llnBrmOFOGk1pJ2vaXPbzFFRzBnfF3dXx3rLVhSFI2UnWJf1MU3mZmJ7x7BU\nv5AAdz+1S+swsoqSAGQcO4KMYfv11DG0WhWaWs2U1zSzP7XENiFGal41ft6uV1yOD+CROQmMSQy5\nqefqKWNYb2xgTUYKpyrTcNE6c2//WUwMH4NW0/nfccsqSkII0QOczqniT+tOXfM+5TXNtu2Evr4s\nuzMODzcdvTxcOrs8u6QoCsfKT5GctYlGUxMDevdjmX4hAe7+apfWKSSEhRCigyiKQs6FejILa9jw\nVe5ltw8dEIDZojBxUCi9vVzR6TREBXmj0XTMogXdXYPRwJrMjZysOIOz1pmFA+YyKWJsl3S/apEQ\nFkKIW2S2WEnNrebr08XklzVQU9/K/36/FxHoya8f7F4TSKjhWNnF7tdgaiTGpy/L9EkEeQRc/we7\nOQlhIYS4QVZFoanFTEFZAx/tyuZCReNl93Fx1jIyLojwQC9uHxp+cTF6cVUNRgNrszZxovw0zlpn\n5g+Yw5SI8T26+72UhLAQQlxHUYWBjXtyOZFdedltGmDcwBAmDw0nPMDT4c5gbo8T5WdYk5mCwdRI\nP5++LNcvJMjDsa7IkFeLEEJcoqjcgKH54twAFyob+eDzrMvuEx7oyYi4IPqEeDOkf8//yLSjGYyN\nJGdt4lj5KZy1Ou7rP5vbIyc4TPd7KQlhIYT4rx1HClmzK/uKt0WHejN7bF+GxjpWp9bRTlaksiYj\nhQaTgeheUSzXJxHs6biLwkgICyEcXlOLmV++c8g2LaSvtysTB4UCYFXg7jFRuLnI22V7GEyNrMv6\nmKNlJ9FpdczrP4upkRMdsvu9lLyqhBAORVEU8koaqKxrprKuhZPnKjlXVGe7PdjXnZceGYNWzmbu\nMKcq0vgocwMNRgN9e0WxXL+QEM9gtcuyCxLCQogeTVEUjmdVUFHbwq5jRVTVX33JvycXDmZQTM+c\nFEINjaYm1mVt5kjZcXQaJ+6NuZupkRNx0soZ49+QEBZC9Ehmi5X80gZeWnXsircPjvHnthh/LFaF\noQMCCPBx7+IKe7YzlWf5KGMDdcYG+nhHsjwhiVDpfi8jISyE6BEURWHfmVKSvzwHYDvD+Rv9I3yY\nMTKKfmG98PV2VaNEh9BkamJ99hYOlR7DSePEPf1mMi1qsnS/VyEhLITo9vacKua9TzMuO+6i05IY\n7cfkIeHyMXMXSK1M58OMDdQZ64nyDme5fhFhXje3AIWjkRAWQtg9q1Uhu6iWgnIDWo2Gk9kV+Hi5\nklFQQ3V924XuJw8J467RUQT5eqhUreNpMjWz4dwWDpYcxUnjxJx+M5geNUW63xsgISyEsEuKorB+\ndw6fHiq4ofsPjPbjiQWD0Dk59iUvXS2tKpMPM9ZT21pHpFcYyxMWEe4VqnZZ3YaEsBDC7rz64fHL\n1tj1dNORGO3HkP4BKEBUkBeuLk54ujnLVJEqaDY3k5K9lf0lR9BqtMyKns6MPlOl+71J8soVQtgF\nRVE4llHGr94+2Ob4ihlxTBochlYr1+3ai/SqLFZnrKO2tY5wr1CW6xcR6R2mdlndkoSwEEI1hmYT\nJ7Ir2Lw3j6r/+W534qBQvnu3XqXKxJU0m1vYeG4r+4oPo9VoubvvNGb0nYpOK1Fyq2TkhBCq+Pum\nVI5klF92fOiAAB6bd5t0vnYmozqb1enrqGmtJcwzhBUJi4j0Dle7rG5PQlgI0akURaGqrgUr8PWp\nYmoNrew7U2q73dfblcmDw7gtxp9Rg8KpqGhQr1hxmRZzCxtztrH3wkG0Gi139b2DmX3vkO63g8go\nCiE6nKIoKAq0GM386E9fX/V+cydEM3dCdBdWJm5GZvU5PshYR1VLDaGewazQLyKqV4TaZfUoEsJC\niA5jtlj5/Egh63bnXHbb+IEhmCxWAnu7M25gCCF+HmhkkQS71GJu5eOcbey5cACtRsuMPlO5K3oa\nztL9djgZUSFEh/hgRxa7jhe1Oabv40tzq5mHZicQHuCpUmXiZmTX5LAqfR1VLdWEeAazQp9En16R\napfVY0kICyHaLa+kvk0A3zEsgiXTB8hygN1Iq8XIxzmf8lXRPjRouLPP7dzddxrOTs5ql9ajSQgL\nIW6J1arwxfEiDmeU29bj1WjgnZ9PVbkycbOya3JZnbGOyuYqgj2CWK5PItonSu2yHIKEsBDilvzf\n3/dT09D22t63np6iTjHilhgtRjbnbGd30T4ApkVNZnb0ndL9diEJYSHEDTmeVcHRjHI0Gg0H0r69\nxOjuMX0YHhdIdGgvFasTN+tcbR6r05OpaK4i2CPwv91vH7XLcjgSwkKIq2puNfPampPkldRf8fa7\nx/RhwZSYLq5KtIfRYmJL7na+LNwLwB2Rk5jdbwYu0v2qQkJYCNGGyWxly/7znMmtIr+07cQZ8VG9\neWhWAnBxkg2Z1ap7ya3LZ1X6WsqbKglyD2CZPomY3n3VLsuhSQgLIWhqMfHJwXw+PXjlZQNfeHg0\nYf5yXW93ZbSY2Jr3GV8UXJw4ZWrkROb0m4GLk4vKlQkJYSEcUIvRTH5pAx98noUCXKhobHO7p5uO\nZXfGkdDXF28PeaPuzvLq8lmVnkxZUwWB7v4s0yfRv7fMUmYvbiiEX375ZU6dOoVGo2HlypUMGjTI\ndtsHH3zA5s2b0Wq1DBw4kF/84hedVqwQ4tbVNxl5+q/7cXXW0thibnObp9vFt4K7x/Zhxqgoub63\nBzBZTHyS9zk7C75CQeH2iAncEzNTul87c90QPnz4MPn5+axdu5acnBxWrlzJ2rVrATAYDLzzzjvs\n2LEDnU7Hgw8+yMmTJxkyZEinFy6EuD6rVSGzoIZthwpIy6sGLk4tGR7oSXOrmRFxQcwZ3xdPNzkp\npyfJry/k/bNrKW0qJ8DNj2X6hQzwlRPo7NF1Q/jAgQNMmzYNgJiYGOrq6jAYDHh5eeHs7IyzszNN\nTU14eHjQ3NyMj49PpxcthLi+phbTFRdPeOWRMQT7eahQkehsJquZD09v4uP0HSgoTI4Yx9yYu3GV\n7tduXTeEKysrSUxMtO37+flRUVGBl5cXrq6uPPbYY0ybNg1XV1dmzZpFdLR81yCEmqxWhdO5VRy9\nZK3eUfogxiSGMKR/gIqVic6UX1/IqvRkShrL8HfzZZl+IbG+/dUuS1zHTZ+YpSiKbdtgMPDWW2+x\nfft2vLy8eOCBB8jIyCA+Pv6qP+/r64FO53Rr1V5FYKB3hz6eo5JxbD81x7C4wkD6+Wr+tOZEm+Nz\nJvbjkXtvU6mqmyevw5tjspjYcHYbm9J3YFWs3Nl/EssGzcPN2U3t0rq1rnodXjeEg4KCqKystO2X\nl5cTGBgIQE5ODpGRkfj5+QEwYsQIUlNTrxnCNTVN7a25jcBAb1kEvAPIOLafWmN4IquCN1LOXHb8\n9mHhRAR6MXFQaLf5t5XX4c0paChi1dlkihtL8XPzZVn8QibEDaWiooEGTGqX1211xuvwaqF+3RAe\nP348b7zxBosXLyYtLY2goCC8vLwACA8PJycnh5aWFtzc3EhNTWXy5MkdWrgQ4sqaW8089sc9bY5F\nBHqS0NeP6SMi8feRTqinMlvNbD//BZ/lf4FVsTIhbDTz+s/CTSf/5t3NdUN42LBhJCYmsnjxYjQa\nDc8//zwpKSl4e3szffp0HnroIVasWIGTkxNDhw5lxIgRXVG3EA6rsNzA6h2ZZP935SKAyUPCmD85\nBi93Ocu5pytsKGZV+louGErwde3NUv0C9H6xapclbpFGufRL3i7QGS2+fHzVfjKO7dcVY7j9UAHJ\nX55rc+y1H47Dr1fP6IDkdXh1FquF7flfsP38LqyKlfFho5jXfzbu/9P9yhi2n119HC2EsA9/35TK\nkf+e8ezuquPl743Gx8tV5apEVyhqKGZVejJFhmJ6u/qwNH4BCf5xapclOoCEsBB2zqoo/OrdIxRV\nGABwc3HijScnyqxWDsBitbAj/0s+Pb8Li2JhbOhI5g+YjbvOXe3SRAeREBbCThVVGFi9I4uswlrb\nsduHhbP8TumAHMEFQwmr0pMpbLiAj0svluoXkOh/9StPRPckISyEnalvNFLfaOS5dw+3Ob5iRhxT\nhoarVJXoKharhc8LdrMtbycWxcKYkBHMHzAHD2fpfnsiCWEh7IDZYmX7oQJ2HS+izmBsc9vvHh2L\nfy83WbvXARQbSlmVnkxBQxE+Lt7cH7+AgQF6tcsSnUhCWAiVtRjN/PD1ttf7hvp7EBnkxd1j+hDY\nWzqgns5itbCrYA+f5O3ArFgYHTKcBQPm4OEsc3z3dBLCQqjs0gCeNbYPs8f2xdWlY6d2FfarpLGM\nVenJ5NcX0svFm/vj53NbQILaZYkuIiEsRBczW6zUGlppNVn528Zvp5v81XdHEhUs8yY7CqtiZVfB\nHrbm7cBsNTMyeCgLY+fiKd2vQ5EQFqILvbP1LPtSSy87Pm9SPwlgB1LaWM7q9GTy6gvwdvFiSdx8\nBgcmXv8HRY8jISxEJ6trNPLFsSK27D/f5vi4gSHUNRq5c2Qkt/XzV6c40aWsipUvCr9mS+5nmK1m\nRgQPYWHsXLycPdUuTahEQliIDlZe24yhycS5C3Vs2ZdHY4u5ze3Thkdw/3SZ69fRlDVVsDo9mdy6\nfLycPVmSsIQhQd1niUnROSSEheggp7Iq+H9v7b/ibe6uOhZMiWHy4DC51MjBWBUruwv3sjl3Oyar\nmWFBg0iKvRdvFy+1SxN2QEJYiA7w3qfp7DlVYtsfGO1HWIAn3h7OJPT1Izq0l4rVCbWUN1WwKn0d\nuXXn8XL2ZEXCYoYFDVK7LGFHJISFuAVmi5UjGeVs+jqXitoW2/Gg3u48/92RuLvK/1qOzKpY+apo\nPx/nfIrJamJo4G0sipsn3a+4jLxTCHGTahpaeeqv+y47fufoPiya0g+NLKzg0Cqaqlidkcy52jw8\nnT1Yrk9iePBgtcsSdkpCWIgbUF3fwr+3pWNVID2/xnb83gnR3DUmCp2TlqCgXrKOqwOzKlb2FB3g\n45xtGK0mBgcOZHHcPHq5yKVn4uokhIW4jj+vO8WpnKrLjv/mwVFEBMnHiwIqm6tYnb6O7NpcPHUe\nLI1fwPDgIfKpiLguCWEhrsJssfKzv++n9r8LKgyI8GHxHQOIDPJCq9HIWc4Cq2Jl74WDbMzZhtFi\nZFBAIovj7sPHVbpfcWMkhIW4gqYWE7/69xFbAP/w3oGMiA9SuSphT6qaq1mdsZ6smnN46NxZkrCY\nkcFDpfsVN0VCWIj/kVNcx0vvH7Ptf292ggSwsFEUhb3Fh9h4biutFiO3BehZEjcfH1e5DE3cPAlh\nIS5RWdt8WQCPHRiiYkXCnlQ11/BhxnoyarJx17mzQr+IUSHDpPsVt0xCWAjAqijUNrTys38csB17\n6+kpOOu0KlYl7IWiKOwvPkzKua20WFoZ6B/Pkvj59Hb1Ubs00c1JCAuHtvNoIR/uzL7s+F9/MkkC\nWABQ01LLBxnrSa/Owl3nxjJ9EmNChkv3KzqEhLBwOK1GC58dKWDT13ltjocHeuLuomPR1P4y45VA\nURQOlBxhQ/ZWWiwtJPjFcX/8fHzdeqtdmuhB5J1GOJTmVjOP/XFPm2OebjreeHKSShUJe1TTUsuH\nGRs4W52Jm5MbS+MXMjZ0hHS/osNJCAuHUVnb3OY73xUz4xgeG4i3h4uKVQl7oigKB0uOsuHcFprN\nLej9Ylkav0C6X9FpJIRFj2axWmlsNvP50UI+OZBvO/7aD8fh18tNxcqEvaltrePDjA2kVWXg5uTK\n/fHzGRc6Srpf0akkhEWPVWthfdv/AAAgAElEQVRo5advXr7Qwh8fn4CPp3S/4iJFUThcepx12Ztp\nNjcT7zuApfoF+Ln5ql2acAASwqJHenvLWQ6kldr246N6ExvZm7kToqWzETZ1rfV8lLmBM5XpuDq5\nsDjuPiaEjZbXiOgyEsKiR/n8SCEf7Wp7ydHK5cPpHy7Xc4pvKYrCkbITrMv6mCZzM7G+/VkWvwB/\ndz+1SxMORkJY9AiKonA8q6JNAC+e2p9pIyPRSlcjLlHX2sCazBROV6bh4uTCoth5TAgfjVYj14WL\nrichLHqEf245y6GzZQD4ervyh8fGq1yRsDeKonCs7CTJWR/TaG5iQO9+LNMnESDdr1CRhLDo1qxW\nheyiWlsA3zEsgsXT+qtclbA39cYG1mRu5FRFKi5aZxbGzmVS+FjpfoXqJIRFt5X8xTm2Hy5oc2zp\nnbEqVSPskaIoHC8/xdqsTTSamojxiWa5PolAD3+1SxMCkBAW3dRf1p/m5LlK2/7ohGAWTolRsSJh\nbxqMBtZkbuRkxRmctc4sGHAPkyPGSfcr7IqEsOg2zBYrW/efZ/O+87Zj4weGsGJmHM46J/UKE3bn\nePlp1mZuxGBqJManL8v0SQR5BKhdlhCXkRAW3UJ9k5En/7K3zbH4qN48NDtBpYqEPTIYG1mbtZHj\n5adx1uqYP2AOUyLGS/cr7JaEsLB7m/fmsWnvtysezZvUj1lj+qDVyqVH4lsny8+wJnMjDSYD/Xz6\nsEyfRLBHoNplCXFNEsLCrp3IrrAFsM5JwzNLh9MvrJfKVQl7YjA1kpy5iWPlp3DW6pjXfxZTIydK\n9yu6BQlhYZdyLtSxZf95TudUARDg48arPxinclXC3pyqSOWjzBQajAaie0WxXJ9EsGeQ2mUJccMk\nhIVdSc2r4otjF9qc+ezl7sxvvz9WxaqEvWk0NbEu62OOlJ1Ap9Vxb8zd3BE1Sbpf0e1ICAu7YLZY\neeT3u9sc8/V25eFZeuL7+MqE+sLmdEUaH2WmUG9soE+vSFbokwjxDFa7LCFuiYSwUJWiKLy06hi5\nxfW2Yz5eLjwwM57BMf4SvsKmydTEuuzNHC49jk7jxNx+d3FH1CSctHJ5mui+JISFKhqajLyefIr8\n0oY2x1cuG07/CFnxSLR1pvIsH2VsoM7YQJR3BMv1SYR5hahdlhDtJiEsutzaL7L57HChbV/npOHh\n2QmM0stHiqKtJlMz67M3c6j0GE4aJ+b0m8n0qMnS/YoeQ0JYdKn80oY2AfzU4iEk9pVVbMTl0qoy\n+DBjA7WtdUR6h7Ncn0S4V6jaZQnRoW4ohF9++WVOnTqFRqNh5cqVDBo0yHZbSUkJP/3pTzGZTCQk\nJPCb3/ym04oV3dumr3PbTDn57jNT1StG2K1mczMbsrdyoOQIThonZkfP4M4+U6T7FT3SdUP48OHD\n5Ofns3btWnJycli5ciVr16613f7b3/6WBx98kOnTp/PrX/+a4uJiwsLCOrVo0b2U1TTx7FsH2xz7\ny48nqlSNsGcnS87yt0PvU9taR4RXGCsSFkn3K3q064bwgQMHmDZtGgAxMTHU1dVhMBjw8vLCarVy\n7NgxXn/9dQCef/75zq1WdDsZ+TW8+tEJ2/7YxGAemp2AVs56FpdoNreQkr2V/SWH0Wq0zIqezow+\nU6X7FT3edUO4srKSxMRE276fnx8VFRV4eXlRXV2Np6cnr7zyCmlpaYwYMYKnnnrqmo/n6+uBroNX\nvAkM9O7Qx3NUHT2OG77I5r1Pztr2//WL6QT7eXToc9gbeS3evNOl6fz96Cqqmmro4xPOY6MfoK9v\npNpldWvyOmy/rhrDmz4xS1GUNttlZWWsWLGC8PBwHnnkEXbv3s2UKVOu+vM1NU23VOjVBAZ6U1HR\ncP07imvqyHG0WhX+8XEqRzMrAAj19+BX3x2J1mLp0f9W8lq8OS3mFjae+4S9xYfQarTc1Xcay0fM\npaa6WcaxHeR12H6dMYZXC/XrhnBQUBCVld9OIVheXk5g4MWVSXx9fQkLCyMqKgqAsWPHkp2dfc0Q\nFj1bdX0LT/9tv21/6IAAHp8/6Bo/IRxRRnU2H2Ssp7qlhjDPEJYnJBHlHYHOSS7YEI7luhOtjh8/\nns8++wyAtLQ0goKC8PLyAkCn0xEZGcn58+dtt0dHR3detcKufX26uE0Az50QzY/uu03FioS9aTG3\nsiZzI2+cfJva1jpm9r2Dn498gijvCLVLE0IV1/2zc9iwYSQmJrJ48WI0Gg3PP/88KSkpeHt7M336\ndFauXMkzzzyDoijExsYydapcduKIqutb+Pe2DNv+738wDn8fNxUrEvYmq+Ycq9PXUdVSQ6hnMMv1\nSfTpJd/9CsemUS79krcLdMbn7PL9R/u1Zxw3782zrfkLjnv9r7wWr6zVYuTjnG18VbQfDRqm95nC\n3dHTcdZe3gPIGLafjGH72dV3wkJcy6GzZW0C+M0n5fpf8a3smhxWp6+jsqWaEI8glick0bdXlNpl\nCWE3JITFLUvNq+KtzWkABPi48eoPxqlckbAXrRYjm3M+ZXfRvovdb9QUZkVPx9nJWe3ShLArEsLi\nplkVhdTcKv607jQAQb3def67I1WuStiLc7V5rEpPprK5imCPIJbrk4j2ke5XiCuREBY3LeWrXLYd\nzLftv/i90eicrnuivejhjBYjm3O3s7twHwDToiYzK/pOXKT7FeKqJITFTWloMtoCeExCMA/O0ksA\nC3LrzrPqbDLlzZUEeQSwXJ9EP5++apclhN2TEBY3TFEU/rDmpG3/kXsSr3Fv4QiMFhNbcrfzZeFe\nAKZGTmROv5nS/QpxgySExQ371b+PUFhuAOCFh0apXI1QW25dPqvS11LeVEmguz/L9YuI6d1X7bKE\n6FYkhMV1fX2qmH9/+u1EHNNGRBAe6KViRUJNJouJrXk72FWwB4DbIydwT7+ZuDi5qFyZEN2PhLC4\npryS+jYBPG9iNHPGy9SkjiqvroBV6cmUNZUT4O7Pcn0S/XvL60GIWyUhLK6oxWjmy+MXWLc7x3bM\nUWfCEhe730/yPmdnwVcoKEyOGM/cmLtwle5XiHaREBaXaTVa+OHre9oc+/tTk1WqRqgtv76Q99OT\nKW0sI8DNj2X6hQzwjVG7LCF6BAlh0UZDk5Ef/2WvbX/p9FhGJwTj6uykYlVCDSarmU/zdvJ5wW6s\nipVJ4eOYG3MXbjpXtUsToseQEBZtHMkot22/8v0xBPt6qFiNUEtBfRGr0pMpbizF382XZfqFxPr2\nV7ssIXocCWHRxjcTcTx4t14C2AGZrWY+Pb+LHflfYlWsTAgfw7yYu3HTybKUQnQGCWFhk/zlOarr\nWwGIjfRRuRrR1Qoailh19mL36+vam2X6hcT7DVC7LCF6NAlhgdWq8OPXd5N7oQ6AO0dGEiRdsMMw\nW81sP/8Fn+V/gVWxMj5sNPP6z8Jdul8hOp2EsOC1NSdsATx+YAiL75Dux1EUNRTzfvpaLhhK8HXt\nzdL4Bej9Y9UuSwiHISEsyCioBeDeCdHcM0EmXnAEFquFz/K/4NPzu7AqVsaFjuK+AbNw17mrXZoQ\nDkVC2MElf3HOti0B7BguGEpYdXYthYZierv6cH/8AhL949QuSwiHJCHsoA6mlbJmVzb1TSYApo6I\nVLki0dksVgs78nfz6fmdWBQLY0NHMn/AbOl+hVCRhLADMjSb+OeWs7b9uMje/HjRUKqqDCpWJTpT\nsaGUVelrKWi4gI9LL+6Pn8/AAL3aZQnh8CSEHUx2US2vrD5u2/9mPmitVqNWSaITWawWdhZ8xba8\nzzErFkaHDGfBgDl4OMvZ70LYAwlhB3Emt4rNe/PIKa63HXvpe6NVrEh0tpLGMladTSa/oRAfF2+W\nxM/ntoAEtcsSQlxCQtgBNLWY+WPyKdt+RKAnv3pwFFqNdL89kcVqYVfhHj7J3YFZsTAqZBgLB9wj\n3a8QdkhCuIe7UGHgl+8ctu2/8eREPN2cVaxIdKbSxjLeT08mv76QXi7eLIm7j0GBiWqXJYS4Cgnh\nHiq/tIFfv3ekzbEXHx4tAdxDWRUruwr2sDVvB2armRHBQ1gYOxcvZ0+1SxNCXIOEcA9UUNY2gF10\nWv70xATcXOSfuycqayxnVfo68urz8Xb2YnHifQwJHKh2WUKIGyDvyj3Qxj25tu2//HgiXu7S/fZE\nVsXKF4VfszX3M0xWM8ODBpMUey9eLtL9CtFdSAj3MKm5VZzKqQLgNw+OkgDuocqaKlidnkxuXT5e\nzp48kLCEoUG3qV2WEOImSQj3IFZF4fVLz4IO8lKxGtEZrIqV3UX72JzzKSarmWFBg0iKvRdvF/m3\nFqI7khDuQVZ/lmnbfuvpKeoVIjpFeVMlq9PXkVOXh5ezJysSFjMsaJDaZQkh2kFCuAfZfbIYgIdm\n6XHWaVWuRnQUq2JlT9EBNuVsw2Q1MSTwNhbHzZPuV4geQEK4B9E5aTFbrIy/LVTtUkQHqWyuYnX6\nOrJrc/F09mC5fiHDggajkYlWhOgRJIR7iL+mnMFssdIvrJfapYgOYFWsfH3hIJvOfYLRamJw4EAW\nx82jl4u32qUJITqQhHAP8OHOLI5lVQAwMj5I5WpEe1U2V7M6PZns2lw8dO7cH7+AEcFDpPsVogeS\nEO7mjCYLO48WATAgwocZo6JUrkjcKqtiZe+FQ2zM+QSjxciggEQWx92Hj6t0v0L0VBLC3Vhzq5nH\n/rjHtv/ssuEqViPao6q5hg8y1pFZcw4PnTtLEhYzMniodL9C9HASwt2U1arwt02ptn1ZlrB7UhSF\nvcWH2HhuK60WIwP99SyJv4/erj5qlyaE6AISwt1QbnE9L75/1La//M5YQv1lqsLuprqlhg/S15NR\nk427zo0V+kWMChkm3a8QDkRCuJsprW5qE8DTR0QyZWi4ihWJm6UoCvtLDpOSvZUWSyuJ/vHcHz9f\nul8hHJCEcDey93QJ725Lt+3/46nJuDg7qViRuFk1LbV8kLGe9Oos3JzcWBa/kDGhI6T7FcJBSQh3\nE00t5jYB/NefTJIA7kYUReFAyVE2ZG+hxdJCgl8c98fPx9ett9qlCSFUJCHcDdQ1GvnJG3tt++8+\nM1XFasTNqm2t44OM9ZytysTNyZWl8QsYGzpSul8hhISwvdtzqpj3Ps2w7T//nZEqViNuhqIoHCo9\nxvrszTSbW4j3HcBS/QL83HzVLk0IYSckhO1YXaOxTQC/+eREPNxkfeDuoLa1jo8yNpBalYGrkwtL\n4u5jfNho6X6FEG3cUAi//PLLnDp1Co1Gw8qVKxk06PLl0/7whz9w8uRJVq1a1eFFOqp3tp61bctH\n0N2DoigcLj3OuuzNNJubifPtz9L4hfi7S/crhLjcdUP48OHD5Ofns3btWnJycli5ciVr165tc59z\n585x5MgRnJ2lS+tIqXnVAPzx8QkqVyJuRE1zHW+d+Q9nKtNxcXJhcdw8JoSNke5XCHFV1w3hAwcO\nMG3aNABiYmKoq6vDYDDg5fXtWqa//e1v+clPfsKbb77ZeZU6mA92ZNm2fTxdVKxEXI+iKBwpO8H6\nc5tpNDYR2zuGpfqFBLj7qV2aEMLOXTeEKysrSUxMtO37+flRUVFhC+GUlBRGjRpFePiNTRjh6+uB\nTtexl9YEBvasCe4NzSZ2Hb+4KMO4QaFd9vv1tHHsCrUt9bx99EOOXDiFq5MLDw1bzPT+E9FqtGqX\n1m3J67D9ZAzbr6vG8KZPzFIUxbZdW1tLSkoK//73vykrK7uhn6+pabrZp7ymwEBvKioaOvQx1WS2\nWHnk97tt+w/fre+S36+njWNnUxSFY2UnSc76mEZzEwN69+OJ8d9B2+xGVWWj2uV1W/I6bD8Zw/br\njDG8WqhfN4SDgoKorKy07ZeXlxMYGAjAwYMHqa6uZunSpRiNRgoKCnj55ZdZuXJlB5XtWAzNJp74\n89e2/RcelkUZ7FGD0cCazBROVqTionVmYexcJoWPJdjLh4pmefMTQty464bw+PHjeeONN1i8eDFp\naWkEBQXZPoqeOXMmM2fOBKCoqIhnn31WAvgWKYrSJoB/umgw4QGyKIO9OVZ2iuSsTRhMjcT4RLNc\nn0Sgh7/aZQkhuqnrhvCwYcNITExk8eLFaDQann/+eVJSUvD29mb69OldUaND+OxwoW37FyuGExMm\nk/nbkwajgbVZmzhRfhpnrTMLBtzD5Ihx8t2vEKJdbug74aeffrrNfnx8/GX3iYiIkGuEb1GtoZXk\nL88BsGTaAAlgO3Oi/AxrMlMwmBrp59OX5fqFBHkEql2WEKIHkBmz7MBP39xn2542PELFSsSlDMZG\nkrM2caz8FM5aHfP7z2ZK5ATpfoUQHUZCWGXniups268+OlYmdrATJytSWZORQoPJQHSvPizXLyTY\nM0jtsoQQPYyEsMr2nikGYFhsIAG93VWuRhhMjazL+pijZSfRaXXM6z+LqZFy3a8QonNICKvIalXY\nc6oEgLkTolWuRpyqSOOjzA00GA307RXFcn0SIdL9CiE6kYSwShRF4eFXv7TthwfK5UhqaTQ1sS5r\nM0fKjqPT6rg35m7uiJok3a8QotNJCKukoMxg23522TC08l2wKs5UnuXDjA3UGxvo4x3J8oQkQj2D\n1S5LCOEgJIRVciK7AoCxicEMiOitcjWOp8nUxPrsLRwqPYZO48TcfndxR9QknLQdO6+5EEJci4Sw\nCtLyqtm87zyABLAKUivT+TBjA3XGeqK8w1muX0SYV4jaZQkhHJCEcBezWK38Ye1J2/6kwWEqVuNY\nmkzNbDi3hYMlR3HSODGn3wymR02R7lcIoRoJ4S5maDLZtt/5+e1yXXAXSavK5MOM9dS21hHpHc5y\nfRLhXqFqlyWEcHASwl1s28ECACbcFioB3AWazc2kZG9lf8kRtBots6Pv5M4+t0v3K4SwCxLCXejD\nnVnsPFoEyCVJXSG9KovVGeuoba0jwiuM5fokIrzl438hhP2QEO4iNQ2ttgAGuHNkpIrV9GzN5hY2\nntvKvuLDaDVa7u47jRl9p6LTystdCGFf5F2pC5RUNfKLtw/Z9t99ZqqK1fRsGdXZrE5fR01rLeFe\noSzXLyJSul8hhJ2SEO4C//g4zbb94sOjVayk52oxt7Dx3CfsLT6EVqPlrr53MLPvHdL9CiHsmrxD\ndYHmVjMAL31vNKH+8l1wR8usPsfqjHVUt9QQ5hnCcn0SUb1kSUghhP2TEO5khmYTlXUt6Jw0EsAd\nrMXcysc529hz4QBajZaZfaYyM3oaztL9CiG6CXm36mRP/PlrAMwWReVKepbsmhxWpa+jqqWaEM9g\nVuiT6NNLTnYTQnQvEsKd6HB6mW379z8Yp2IlPUerxcjHOdv4qmg/GjTc2ed27o6eLt2vEKJbkneu\nTlJc2Wg7ISvY1x1/HzeVK+r+smtyWZ2eTGVLNcEeQaxISKJvryi1yxJCiFsmIdwJzBYr/+9f316S\n9JuH5Izo9jBajGzO2c7uon0ATI+awqzo6Tg7OatcmRBCtI+EcAczW6z84A9f2fZf+f4YnHWyOPyt\nOlebx+r0ZCqaqwj2CGS5Polonz5qlyWEEB1CQrgDWaxWHvn9btv+U4uHEOzroV5B3ZjRYmRL7md8\nWbgXgDuiJjE7egYu0v0KIXoQCeEO0mI088PX99j2l8+II7Gvn4oVdV+5dedZdTaZ8uZKgtwDWJ6Q\nRD+fvmqXJYQQHU5CuIN8fbrEtv39exIZnRCsYjXdk9FiYmveZ3xRcPGyrqmRE5nTbwYuTi4qVyaE\nEJ1DQrgD5JXU89HObABWzIiTAL4FeXX5rEpPpqypgkB3f5bpk+jfO1rtsoQQolNJCLeT0WThhf8c\nte1PGCQLxd8Mk8XEJ3mfs7Pg4slst0dM4J6YmdL9CiEcgoRwO2UU1Ni233p6CjonORP6Rp2vL2DV\n2WRKm8oJcPNjmT6JAb791C5LCCG6jIRwOzS1mPnTutMAzBwdJZci3SCT1cy2vM/5PH83CgqTI8Yz\nN+YuXKX7FUI4GAnhdvjnlm+XKJw+QuYtvhH59YWsSk+mpLEMfzdflumTiPWNUbssIYRQhYTwLapv\nMnI6pwqAlcuH4+vtqnJF9s1kNbM9byc7CnZjVaxMCh/L3Ji7cdPJuAkhHJeE8C1oNVl4+q/7bPt9\nQ7xVrMb+FTQUsepsMsWNpfi5+bIsfiFxfv3VLksIIVQnIXyTFEW5bFpKORnrysxWM9vP7+Kz/C+x\nKlYmhI9hXszduOlkMQshhAAJ4Zu2ed952/Zj8wbKtJRXUdhQzKr0tVwwlODr2ptl+oXE+w1Quywh\nhLArEsI3obymiY/35gEwc1QUw+OCVK7I/lisFrbnf8H287uwKlbGh41iXv/ZuEv3K4QQl5EQvgnH\nsips20lT5TvN/1XUUMyq9GSKDMX4uvZmafwC9P6xapclhBB2S0L4Jqz7Mge4ODe0+JbFamFH/pds\nO78Tq2JlXOhI7hswG3edu9qlCSGEXZMQvgUj4gPVLsFuXDCUsCo9mcKGC/R29eH++Pkk+serXZYQ\nQnQLEsI36GBaKQDBfh44aeVsaIvVwucFu9mWtxOLYmFM6Ajm95+Dh7N0v0IIcaMkhG/Qxq9zARgY\nLWsEFxtKWZWeTEFDET4uvbg/fj4DA/RqlyWEEN2OhPANsFoVKmpbAFgyzXEvs7FYLews+IpteZ9j\nViyMDhnOggFz8HCWy7SEEOJWSAjfgN9/dMK2rdVoVKxEPSWNZaw6m0x+QyG9XLy5P34+twUkqF2W\nEEJ0axLC11HfaCSzsBaA79zleCccWRUruwr2sDVvB2armZHBw1gYew+e0v0KIUS7SQhfx9tbzwLg\n4apj0uAwlavpWqWN5axOTyavvgBvFy+WxM1ncKBcniWEEB1FQvgamlvNpOVVA/D4/NtUrqbrWBUr\nXxR+zZbczzBbzYwIHsLC2Ll4OXuqXZoQQvQoNxTCL7/8MqdOnUKj0bBy5UoGDRpku+3gwYO8/vrr\naLVaoqOjeemll9D2kEt43tr87XrBcVG+KlbSdcqaKlh1Npm8+ny8nb1YnHgfQwIHql2WEEL0SNcN\n4cOHD5Ofn8/atWvJyclh5cqVrF271nb7c889x/vvv09ISAhPPPEEX3/9NZMnT+7UortKc6sZcIwu\n2Gq18kXBHjbnbsdkNTM8aDBJsffi5SLdrxBCdJbrhvCBAweYNm0aADExMdTV1WEwGPDy8gIgJSXF\ntu3n50dNTU0nltu1iioMACT27dnXBpc3VfCX02+RWZmDl7MnKxIWMyxo0PV/UAghRLtcN4QrKytJ\nTPz2ZBw/Pz8qKipswfvNf8vLy9m3bx8//vGPO6nUrtfcagHAxdlJ5Uo6h1Wx8lXRfj7O+RST1cTQ\noEEsir0XbxcvtUsTQgiHcNMnZimKctmxqqoqHn30UZ5//nl8fa/93amvrwc6XceGWmCgd4c+ntWq\nMPf/NgPg4abr8Me3B6WGCv5+eBXpFdl4u3jy2PAHGBc1XO2yur2e+FrpajKG7Sdj2H5dNYbXDeGg\noCAqKytt++Xl5QQGfruAgcFg4Hvf+x5PPvkkEyZMuO4T1tQ03WKpVxYY6E1FRUOHPuahs2W27Xsn\nRHf446vJqljZU3SAj3O2YbSaGBI4kEVx84gJD+tRv6caOuO16GhkDNtPxrD9OmMMrxbq1z2Nefz4\n8Xz22WcApKWlERQUZPsIGuC3v/0tDzzwAJMmTeqgUtX3zVnRC6bEMG1EpMrVdJzK5ir+cuKfrMv+\nGGetM99NvJ+HBy6nl4v81SyEEGq4bic8bNgwEhMTWbx4MRqNhueff56UlBS8vb2ZMGECmzZtIj8/\nn/Xr1wMwe/ZsFi1a1OmFd5b6RqNte8aonhHAVsXK3gsH2ZizDaPFyOCARBbF3YePq4SvEEKo6Ya+\nE3766afb7MfHfzt9Y2pqasdWpLKdxwoBGBTj3yOWLKxqrmZ1+jqyanPw0Llzf8ISRgQPQeOgc2AL\nIYQ9kRmzLqEoClv35wMwbmCIytW0j6Io7C0+yMZzn9BqMXJbgJ4lcfPxce2ldmlCCCH+S0L4El+f\nLrFtj4gPUrGS9qlqruHDjPVk1GTjrnNnhX4Ro0KGSfcrhBB2RkL4Eqm5VQBMGRreLZcsVBSF/cWH\nSTm3lRZLKwP941kSP5/erj5qlyaEEOIKJIT/q6CsgaOZFQBMGdL9Vkuqaanlg4z1pFdn4a5zY7k+\nidEhw6X7FUIIOyYhDPzyX4e4UNlo248I7D4zRimKwoGSI2zI3kqLpYUE/ziWxi+Q7lcIIboBhw9h\nk9lqC2AnrYa//mQSWm336B5rWmr5MGMDZ6szcXNyY2n8QsaGjpDuVwghugmHD+GdRy9ekhTg48ar\nPxincjU3RlEUDpYcZcO5LTSbW9D7xbI0fgG+br3VLk0IIcRNcPgQ/upUMQD6Pt1jveDa1jo+zNhA\nWlUGbk6u3B8/n3Gho6T7FUKIbsjhQ7i6vhWAB2bGX+ee6lIUhUOlx1ifvYVmczPxvgNYql+An1v3\n+ONBCCHE5Rw6hBVFwWyxotFg198D17bW8VFGCqlV6bg6ubAk7j7Gh42W7lcIIbo5hw7h41kXL0kK\nC/BUuZIrUxSFI2UnWJf1MU3mZmJ9+7MsfgH+7n5qlyaEEKIDOHQIZxfVATAyzv5mx6prbWBNZgqn\nK9NwcXJhUew8JoSPRqvp/vNZCyGEuMhhQ1hRFHYcuXhm9G0x/ipX8y1FUThWdpLkrI9pNDcR2zuG\npfqFBEj3K4QQPY5DhvChs2W2NYMB+oTYx5J+9cYG1mRu5FRFKi5aZ5Ji72Vi+BjpfoUQoodyyBC+\nNIAfnZuo+jzRiqJwvPwUa7M20Whqon/vaJbFJxHoYT8duhBCiI7ncCHcarLYtt99ZqqKlVzUYDSw\nJnMjJyvO4Kx1ZsGAe5gcMU66XyGEcAAOF8LffA8cE6b+urrHy0+zNnMjBlMjMT59WaZPIsgjQO2y\nhBBCdBGHC+HahouTc3TGsqUAAAv3SURBVMRFqTfJRYPRQHLWJo6Xn8ZZ68z8AXOYEjFeul8hhHAw\nDhfC+1JLAJis0nKFJ8rPsCYzBYOpkX4+fVimTyLYI1CVWoQQQqjLoULYqigYTVbg4oINXclgaiQ5\ncxPHyk/hrNVxX//Z3B45QbpfIYRwYA4Vwml51QBoNZounfLxVEUqH2Wm0GA0EN0riuX6JII97W+C\nECGEEF3LoULY+N8zo2eMiuyS5zOYGlmX9TFHy06i0+qY138WUyMnSvcrhBACcLAQPl/aAECwn0en\nP9fpijQ+ykyh3thAn16RrNAnEeIZ3OnPK4QQovtwqBDen1oKgIdr5/3aTaYm1mVv5nDpcXQaJ+bG\n3MUdkZNw0jp12nMKIYTonhwmhDPya6j57+VJAyJ8OuU5zlSe5f+3d/8xUd93HMefdwf4AxC5lkN+\nKuLaUTobm+picFIRRK1rssRxEEFjjE0TtWnTpamkKWSr2CbaLEv7R9c0+wPcqrXXrt2sNGk03RR/\npsOCUhGrA0V+Sz3kh6ff/eGkOvXQndz37ng9/rrzc/flxTuSF5/v6ff7l4aP6R26RGp0MiUZBSRG\nTRmVryUiIsFvzJRw9aF/Dz+OiRr3QI99+Uo/Oxs/4+CFo9gsNp6dvpjc1GztfkVExKsxUcKGYVDb\n1AXAprU/f6DHru9q4M8NH3NxsJfU6CRKMpza/YqIyD0ZEyXc1tM//NgRO+GBHLPf08/Oxs850HoE\nm8XGsrR8Fk19WrtfERG5Z2OihI9+1w5A1uNTsFl9/+9Bx7u+Y1vDTi4O9pISlUjJY06SohJ8Pq6I\niIwtY6KEqw9dv2nDz9J9uzVgv2cAV+Pf2N96CKvFyjNpeeRPzdHuV0RE/i8hX8IDQx7c/VcAmOlD\nCZ/oPsm2EzvpGbxIUlQCJRlOUqLNuf60iIiEhpAv4U++/h6ApLhIxkfc/7c74BnAderv7Dt/EKvF\nytJpueRPyyHMGvKjExGRURbyTeLuHwLg10/PuO/3NnQ3sq1hJ90DPSRGTmHlY05SopMedEQRERmj\nQr6Ea+rbAJieOOme3zPgGeTTpl3841wNVouVJdMWsnjaQu1+RUTkgQrpVrl0eWj4ceT4e/tWT/ac\nourER3QN9JAQGc/KDCepk5JHK6KIiIxhIV3CP/RdL+G0hEkj3rpwwDPIX5u+4Otz+7FgIX9qDkvS\ncgnX7ldEREZJSDfM6dYfAHg0ZbLX1zX2NFF54iO6BrqZEhnPyowCpk7yz+0ORURk7ArpEv7TrgYA\n7rYJHrw6xGdNX7C3ZR8WLOSlPs0zaXmE28L9mFJERMaqkC3hG6eiAX41f/pt66cufk/liR109ncR\nP9FBSUYBaTGp/owoIiJjXMiW8L66VgDCw6yE2X68VOXQ1SE+O72bvc37AMhNzWZZ2iLtfkVExO9C\ntoQ9Vw0AVuY/OvxnTRfPUHViB+39nTgmPkxJhpPpMVPNiigiImNcSJZw/6CHT74+DUDc5AkMXb3C\n56d3s6f5nwAsTJnPsun5RGj3KyIiJgrJEj7233sHAxDZw+bDf6T9cieOCQ9TnFFA+uRppmUTERG5\nISRLuKb+Aliukjm3gz/8qxqAnJRf8Mvp+UTYIkxOJyIicl3IlfCRhna+vdDEuMe/5bSnj4cnPERJ\nRgEzJqeZHU1EROQWIVXCmyoPcdZylHGPfY/FAk8nZ/Fs+hLGafcrIiIB6J5KuKKigtraWiwWC6Wl\npcycOXN4bf/+/bz99tvYbDbmz5/PunXrRi2sN18cq6UldjfhE90YgxPZMKeYnz50/3dOEhER8ZcR\nS/jQoUOcPXuW7du309TURGlpKdu3bx9ef+ONN/jggw+Ij4+nuLiY/Px8ZszwX/ld6LnEpuoqLoR9\ni3WiwaTLP6F8ySrtfkVEJOBZR3pBTU0Nubm5AKSnp9Pb24vb7QagubmZmJgYEhISsFqtZGdnU1NT\nM7qJb1LXfJ71n/6WtvBjGEPjGTwxm98tWaMCFhGRoDDiTrizs5PMzMzh53a7nY6ODqKioujo6MBu\nt9+y1tzc7PV4sbETCQuz+RD5R30tl7CM78PTlsJvcoqZsyL5lqtjyf2Ji4s2O0LQ0wx9pxn6TjP0\nnb9meN//MMswDJ++YE/PZZ/ef7OfJz/Kwszf4+4dvH7s7r4HduyxJi4umo6OS2bHCGqaoe80Q99p\nhr4bjRnerdRH3DY6HA46OzuHn7e3txMXF3fHtba2NhwOh69Z78uECJ16FhGR4DRiCWdlZVFdff2C\nF/X19TgcDqKiogBITk7G7XbT0tKCx+Nhz549ZGVljW5iERGREDHi6egnn3ySzMxMCgsLsVgslJWV\n4XK5iI6OJi8vj/Lycl5++WUAli5dSlqaLoohIiJyLyyGrx/y3qfROM+uzz98pzn6TjP0nWboO83Q\ndwH1mbCIiIiMDpWwiIiISVTCIiIiJlEJi4iImEQlLCIiYhKVsIiIiElUwiIiIiZRCYuIiJjE7xfr\nEBERkeu0ExYRETGJSlhERMQkKmERERGTqIRFRERMohIWERExiUpYRETEJEFVwhUVFTidTgoLCzl2\n7Ngta/v372f58uU4nU7effddkxIGPm8zPHDgAAUFBRQWFrJx40auXbtmUsrA5m2GN2zdupWSkhI/\nJwse3mbY2tpKUVERy5cv5/XXXzcpYXDwNsdt27bhdDopKipi06ZNJiUMfCdPniQ3N5eqqqrb1vzS\nK0aQOHjwoPHcc88ZhmEYp06dMgoKCm5ZX7JkiXH+/Hnj6tWrRlFRkdHY2GhGzIA20gzz8vKM1tZW\nwzAMY8OGDcbevXv9njHQjTRDwzCMxsZGw+l0GsXFxf6OFxRGmuELL7xgfPnll4ZhGEZ5eblx7tw5\nv2cMBt7meOnSJWPBggXGlStXDMMwjNWrVxvffPONKTkDWV9fn1FcXGy89tprRmVl5W3r/uiVoNkJ\n19TUkJubC0B6ejq9vb243W4AmpubiYmJISEhAavVSnZ2NjU1NWbGDUjeZgjgcrmYMmUKAHa7nZ6e\nHlNyBrKRZgjw5ptv8tJLL5kRLyh4m+G1a9c4evQoOTk5AJSVlZGYmGha1kDmbY7h4eGEh4dz+fJl\nPB4P/f39xMTEmBk3IEVERPD+++/jcDhuW/NXrwRNCXd2dhIbGzv83G6309HRAUBHRwd2u/2Oa/Ij\nbzMEiIqKAqC9vZ19+/aRnZ3t94yBbqQZulwu5syZQ1JSkhnxgoK3GXZ3dxMZGcnmzZspKipi69at\nZsUMeN7mOG7cONatW0dubi4LFizgiSeeIC0tzayoASssLIzx48ffcc1fvRI0Jfy/DF1t02d3mmFX\nVxfPP/88ZWVlt/yAy53dPMOLFy/icrlYvXq1iYmCz80zNAyDtrY2Vq5cSVVVFcePH2fv3r3mhQsi\nN8/R7Xbz3nvvsXv3br766itqa2tpaGgwMZ3cTdCUsMPhoLOzc/h5e3s7cXFxd1xra2u74+mFsc7b\nDOH6D+7atWt58cUXmTdvnhkRA563GR44cIDu7m5WrFjB+vXrqa+vp6KiwqyoAcvbDGNjY0lMTCQ1\nNRWbzcbcuXNpbGw0K2pA8zbHpqYmUlJSsNvtRERE8NRTT1FXV2dW1KDkr14JmhLOysqiuroagPr6\nehwOx/Dp0+TkZNxuNy0tLXg8Hvbs2UNWVpaZcQOStxnC9c8yV61axfz5882KGPC8zXDx4sXs2rWL\nHTt28M4775CZmUlpaamZcQOStxmGhYWRkpLCmTNnhtd1GvXOvM0xKSmJpqYmBgYGAKirq2PatGlm\nRQ1K/uqVoLqL0pYtWzhy5AgWi4WysjKOHz9OdHQ0eXl5HD58mC1btgCwaNEi1qxZY3LawHS3Gc6b\nN4/Zs2cza9as4dcuW7YMp9NpYtrA5O3v4Q0tLS1s3LiRyspKE5MGLm8zPHv2LK+++iqGYfDII49Q\nXl6O1Ro0+wW/8jbHDz/8EJfLhc1mY9asWbzyyitmxw04dXV1vPXWW5w7d46wsDDi4+PJyckhOTnZ\nb70SVCUsIiISSvTrpYiIiElUwiIiIiZRCYuIiJhEJSwiImISlbCIiIhJVMIiIiImUQmLiIiYRCUs\nIiJikv8AgGEkzuM6BFcAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "PIdhwfgzIYII",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "**See if you can tune the learning settings of the model trained at Task 2 to improve AUC.**\n",
+ "\n",
+ "Often times, certain metrics improve at the detriment of others, and you'll need to find the settings that achieve a good compromise.\n",
+ "\n",
+ "**Verify if all metrics improve at the same time.**"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "XKIqjsqcCaxO",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 656
+ },
+ "outputId": "4fa1da4b-cc00-4fa0-a850-b96fae1013c4"
+ },
+ "cell_type": "code",
+ "source": [
+ "# TUNE THE SETTINGS BELOW TO IMPROVE AUC\n",
+ "linear_classifier = train_linear_classifier_model(\n",
+ " learning_rate=0.000005,\n",
+ " steps=500,\n",
+ " batch_size=20,\n",
+ " training_examples=training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=validation_examples,\n",
+ " validation_targets=validation_targets)\n",
+ "\n",
+ "evaluation_metrics = linear_classifier.evaluate(input_fn=predict_validation_input_fn)\n",
+ "\n",
+ "print(\"AUC on the validation set: %0.2f\" % evaluation_metrics['auc'])\n",
+ "print(\"Accuracy on the validation set: %0.2f\" % evaluation_metrics['accuracy'])"
+ ],
+ "execution_count": 19,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "LogLoss (on training data):\n",
+ " period 00 : 0.59\n",
+ " period 01 : 0.57\n",
+ " period 02 : 0.56\n",
+ " period 03 : 0.55\n",
+ " period 04 : 0.54\n",
+ " period 05 : 0.54\n",
+ " period 06 : 0.54\n",
+ " period 07 : 0.53\n",
+ " period 08 : 0.53\n",
+ " period 09 : 0.52\n",
+ "Model training finished.\n",
+ "AUC on the validation set: 0.73\n",
+ "Accuracy on the validation set: 0.77\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "wCugvl0JdWYL",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Solution\n",
+ "\n",
+ "Click below for a possible solution."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "VHosS1g2aetf",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "One possible solution that works is to just train for longer, as long as we don't overfit. \n",
+ "\n",
+ "We can do this by increasing the number the steps, the batch size, or both.\n",
+ "\n",
+ "All metrics improve at the same time, so our loss metric is a good proxy\n",
+ "for both AUC and accuracy.\n",
+ "\n",
+ "Notice how it takes many, many more iterations just to squeeze a few more \n",
+ "units of AUC. This commonly happens. But often even this small gain is worth \n",
+ "the costs."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "dWgTEYMddaA-",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 656
+ },
+ "outputId": "6dce2c24-0acb-49c2-fcb5-d3c416494258"
+ },
+ "cell_type": "code",
+ "source": [
+ "linear_classifier = train_linear_classifier_model(\n",
+ " learning_rate=0.000003,\n",
+ " steps=20000,\n",
+ " batch_size=500,\n",
+ " training_examples=training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=validation_examples,\n",
+ " validation_targets=validation_targets)\n",
+ "\n",
+ "evaluation_metrics = linear_classifier.evaluate(input_fn=predict_validation_input_fn)\n",
+ "\n",
+ "print(\"AUC on the validation set: %0.2f\" % evaluation_metrics['auc'])\n",
+ "print(\"Accuracy on the validation set: %0.2f\" % evaluation_metrics['accuracy'])"
+ ],
+ "execution_count": 20,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "LogLoss (on training data):\n",
+ " period 00 : 0.49\n",
+ " period 01 : 0.48\n",
+ " period 02 : 0.47\n",
+ " period 03 : 0.47\n",
+ " period 04 : 0.47\n",
+ " period 05 : 0.47\n",
+ " period 06 : 0.47\n",
+ " period 07 : 0.47\n",
+ " period 08 : 0.47\n",
+ " period 09 : 0.46\n",
+ "Model training finished.\n",
+ "AUC on the validation set: 0.80\n",
+ "Accuracy on the validation set: 0.79\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/multi_class_classification_of_handwritten_digits.ipynb b/multi_class_classification_of_handwritten_digits.ipynb
new file mode 100644
index 0000000..fab13ac
--- /dev/null
+++ b/multi_class_classification_of_handwritten_digits.ipynb
@@ -0,0 +1,2803 @@
+{
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "name": "multi-class_classification_of_handwritten_digits.ipynb",
+ "version": "0.3.2",
+ "provenance": [],
+ "collapsed_sections": [
+ "JndnmDMp66FL",
+ "266KQvZoMxMv",
+ "6sfw3LH0Oycm"
+ ],
+ "include_colab_link": true
+ },
+ "kernelspec": {
+ "name": "python2",
+ "display_name": "Python 2"
+ }
+ },
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "view-in-github",
+ "colab_type": "text"
+ },
+ "source": [
+ ""
+ ]
+ },
+ {
+ "metadata": {
+ "id": "JndnmDMp66FL",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "#### Copyright 2017 Google LLC."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "hMqWDc_m6rUC",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
+ "# you may not use this file except in compliance with the License.\n",
+ "# You may obtain a copy of the License at\n",
+ "#\n",
+ "# https://www.apache.org/licenses/LICENSE-2.0\n",
+ "#\n",
+ "# Unless required by applicable law or agreed to in writing, software\n",
+ "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
+ "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
+ "# See the License for the specific language governing permissions and\n",
+ "# limitations under the License."
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "mPa95uXvcpcn",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "# Classifying Handwritten Digits with Neural Networks"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "Fdpn8b90u8Tp",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ ""
+ ]
+ },
+ {
+ "metadata": {
+ "id": "c7HLCm66Cs2p",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "**Learning Objectives:**\n",
+ " * Train both a linear model and a neural network to classify handwritten digits from the classic [MNIST](http://yann.lecun.com/exdb/mnist/) data set\n",
+ " * Compare the performance of the linear and neural network classification models\n",
+ " * Visualize the weights of a neural-network hidden layer"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "HSEh-gNdu8T0",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Our goal is to map each input image to the correct numeric digit. We will create a NN with a few hidden layers and a Softmax layer at the top to select the winning class."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "2NMdE1b-7UIH",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Setup\n",
+ "\n",
+ "First, let's download the data set, import TensorFlow and other utilities, and load the data into a *pandas* `DataFrame`. Note that this data is a sample of the original MNIST training data; we've taken 20000 rows at random."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "4LJ4SD8BWHeh",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 233
+ },
+ "outputId": "1ecf29a7-10e1-4e5b-fbf1-c27f3d8ac648"
+ },
+ "cell_type": "code",
+ "source": [
+ "from __future__ import print_function\n",
+ "\n",
+ "import glob\n",
+ "import math\n",
+ "import os\n",
+ "\n",
+ "from IPython import display\n",
+ "from matplotlib import cm\n",
+ "from matplotlib import gridspec\n",
+ "from matplotlib import pyplot as plt\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "import seaborn as sns\n",
+ "from sklearn import metrics\n",
+ "import tensorflow as tf\n",
+ "from tensorflow.python.data import Dataset\n",
+ "\n",
+ "tf.logging.set_verbosity(tf.logging.ERROR)\n",
+ "pd.options.display.max_rows = 10\n",
+ "pd.options.display.float_format = '{:.1f}'.format\n",
+ "\n",
+ "mnist_dataframe = pd.read_csv(\n",
+ " \"https://download.mlcc.google.com/mledu-datasets/mnist_train_small.csv\",\n",
+ " sep=\",\",\n",
+ " header=None)\n",
+ "\n",
+ "# Use just the first 10,000 records for training/validation.\n",
+ "mnist_dataframe = mnist_dataframe.head(10000)\n",
+ "\n",
+ "mnist_dataframe = mnist_dataframe.reindex(np.random.permutation(mnist_dataframe.index))\n",
+ "mnist_dataframe.head()"
+ ],
+ "execution_count": 2,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
0
\n",
+ "
1
\n",
+ "
2
\n",
+ "
3
\n",
+ "
4
\n",
+ "
5
\n",
+ "
6
\n",
+ "
7
\n",
+ "
8
\n",
+ "
9
\n",
+ "
...
\n",
+ "
775
\n",
+ "
776
\n",
+ "
777
\n",
+ "
778
\n",
+ "
779
\n",
+ "
780
\n",
+ "
781
\n",
+ "
782
\n",
+ "
783
\n",
+ "
784
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
7768
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
...
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
7062
\n",
+ "
8
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
...
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
7993
\n",
+ "
1
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
...
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
5794
\n",
+ "
6
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
...
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
7173
\n",
+ "
3
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
...
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
5 rows × 785 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " 0 1 2 3 4 5 6 7 8 9 ... 775 776 777 \\\n",
+ "7768 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 \n",
+ "7062 8 0 0 0 0 0 0 0 0 0 ... 0 0 0 \n",
+ "7993 1 0 0 0 0 0 0 0 0 0 ... 0 0 0 \n",
+ "5794 6 0 0 0 0 0 0 0 0 0 ... 0 0 0 \n",
+ "7173 3 0 0 0 0 0 0 0 0 0 ... 0 0 0 \n",
+ "\n",
+ " 778 779 780 781 782 783 784 \n",
+ "7768 0 0 0 0 0 0 0 \n",
+ "7062 0 0 0 0 0 0 0 \n",
+ "7993 0 0 0 0 0 0 0 \n",
+ "5794 0 0 0 0 0 0 0 \n",
+ "7173 0 0 0 0 0 0 0 \n",
+ "\n",
+ "[5 rows x 785 columns]"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 2
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "kg0-25p2mOi0",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Each row represents one labeled example. Column 0 represents the label that a human rater has assigned for one handwritten digit. For example, if Column 0 contains '6', then a human rater interpreted the handwritten character as the digit '6'. The ten digits 0-9 are each represented, with a unique class label for each possible digit. Thus, this is a multi-class classification problem with 10 classes."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "PQ7vuOwRCsZ1",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ ""
+ ]
+ },
+ {
+ "metadata": {
+ "id": "dghlqJPIu8UM",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Columns 1 through 784 contain the feature values, one per pixel for the 28×28=784 pixel values. The pixel values are on a gray scale in which 0 represents white, 255 represents black, and values between 0 and 255 represent shades of gray. Most of the pixel values are 0; you may want to take a minute to confirm that they aren't all 0. For example, adjust the following text block to print out the values in column 72."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "2ZkrL5MCqiJI",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 419
+ },
+ "outputId": "37d777d8-84ca-4150-9622-94b184c55135"
+ },
+ "cell_type": "code",
+ "source": [
+ "mnist_dataframe.loc[:, 72:72]"
+ ],
+ "execution_count": 3,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
72
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
7768
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
7062
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
7993
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
5794
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
7173
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
...
\n",
+ "
...
\n",
+ "
\n",
+ "
\n",
+ "
8082
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
2317
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
804
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
3102
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
258
\n",
+ "
0
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
10000 rows × 1 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " 72\n",
+ "7768 0\n",
+ "7062 0\n",
+ "7993 0\n",
+ "5794 0\n",
+ "7173 0\n",
+ "... ..\n",
+ "8082 0\n",
+ "2317 0\n",
+ "804 0\n",
+ "3102 0\n",
+ "258 0\n",
+ "\n",
+ "[10000 rows x 1 columns]"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 3
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "vLNg2VxqhUZ",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Now, let's parse out the labels and features and look at a few examples. Note the use of `loc` which allows us to pull out columns based on original location, since we don't have a header row in this data set."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "JfFWWvMWDFrR",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def parse_labels_and_features(dataset):\n",
+ " \"\"\"Extracts labels and features.\n",
+ " \n",
+ " This is a good place to scale or transform the features if needed.\n",
+ " \n",
+ " Args:\n",
+ " dataset: A Pandas `Dataframe`, containing the label on the first column and\n",
+ " monochrome pixel values on the remaining columns, in row major order.\n",
+ " Returns:\n",
+ " A `tuple` `(labels, features)`:\n",
+ " labels: A Pandas `Series`.\n",
+ " features: A Pandas `DataFrame`.\n",
+ " \"\"\"\n",
+ " labels = dataset[0]\n",
+ "\n",
+ " # DataFrame.loc index ranges are inclusive at both ends.\n",
+ " features = dataset.loc[:,1:784]\n",
+ " # Scale the data to [0, 1] by dividing out the max value, 255.\n",
+ " features = features / 255\n",
+ "\n",
+ " return labels, features"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "mFY_-7vZu8UU",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 346
+ },
+ "outputId": "16d7d650-f54e-4c38-dfdf-58db51e92ec2"
+ },
+ "cell_type": "code",
+ "source": [
+ "training_targets, training_examples = parse_labels_and_features(mnist_dataframe[:7500])\n",
+ "training_examples.describe()"
+ ],
+ "execution_count": 5,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "kMQD0Uq3RqTX",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "The calibration data shows most scatter points aligned to a line. The line is almost vertical, but we'll come back to that later. Right now let's focus on the ones that deviate from the line. We notice that they are relatively few in number.\n",
+ "\n",
+ "If we plot a histogram of `rooms_per_person`, we find that we have a few outliers in our input data:"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "POTM8C_ER1Oc",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 347
+ },
+ "outputId": "445e8b46-1b13-4b00-b659-fb9cbf296569"
+ },
+ "cell_type": "code",
+ "source": [
+ "plt.subplot(1, 2, 2)\n",
+ "_ = california_housing_dataframe[\"rooms_per_person\"].hist()"
+ ],
+ "execution_count": 9,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\nVcX69eu5dOkS6enpeL3eW7NCEYmwjE/nAfo2MJ1bMrfbwVLf4Zj8vl1rH43J68wU025jJ2PaXsT0\nll5EZi8FL2IQBS9iEAUvYhAFL2IQBS9iEAUvYhAFL2IQBS9iEAUvYhAFL2IQBS9iEAUvYhAFL2IQ\nBS9iEAUvYhAFL2IQBS9iEAUvYhAFL2IQBS9iEAUvYhAFL2IQBS9iEAUvYpBpBX/mzBmWLFnC3r17\nAfj00095+umnKSsr4+mnn44c9dzc3Mzy5cspKiri0KFDAITDYXw+HyUlJZSVldHd3Q3A6dOnKS4u\npri4mA0bNtyKtYnIVaYMfnh4mE2bNpGTkxMZ27p1KytWrGDv3r0UFBTwhz/8geHhYerr69m9ezd7\n9uyhoaGBgYEBjhw5gtPpZP/+/VRUVFBXVwdAdXU1VVVVHDhwgPPnz3Ps2LFbt0oRAaYRvM1mY8eO\nHROOc96wYQOPPfYYAElJSQwMDNDZ2UlqaioOhwO73U5mZiaBQAC/309BQQEAXq+XQCDA2NgYPT09\npKWlAZCfn4/f778V6xORK0wZvNVqxW63TxhLTEwkPj6eixcvsm/fPpYuXUooFMLlckWucblcBIPB\nCeNxcXFYLBZCoRBOpzNybXJycuSxQERunSmPi76eixcvsnr1ah566CFycnL485//POH71zuU9lrj\n0znANikpEas1PrrJRmGyEzhni7mwhljRXlwWdfC/+MUvWLBgAc899xwAHo+HUCgU+X5fXx8ZGRl4\nPB6CwSApKSmEw2HGx8dxu90MDAxEru3t7Z3wyHAt/f3DU84pln/U2X68sGlHJE/GtL2I+XHRzc3N\nJCQk8Pzzz0fG0tPT6erqYnBwkKGhIQKBAFlZWeTm5tLS0gJAe3s72dnZJCQksHDhQk6ePAlAW1sb\neXl50UxFRG7AlO/wp06dora2lp6eHqxWK62trfz73//ma1/7GitXrgTgvvvuY+PGjfh8PsrLy7FY\nLFRWVuJwOCgsLKSjo4OSkhJsNhs1NTUAVFVVsX79ei5dukR6ejper/fWrlREsIxP5wH6NjCdWzK3\n28FS3+GY/L5dax+NyevMFNNuYydj2l7E/JZeRGYnBS9iEAUvYhAFL2IQBS9iEAUvYhAFL2IQBS9i\nEAUvYhAFL2IQBS9iEAUvYhAFL2IQBS9iEAUvYhAFL2IQBS9iEAUvYhAFL2IQBS9iEAUvYhAFL2IQ\nBS9iEAUvYhAFL2KQaQV/5swZlixZwt69ewH49NNPWblyJaWlpbzwwguMjY0Bl8+cW758OUVFRRw6\ndAiAcDiMz+ejpKSEsrIyuru7ATh9+jTFxcUUFxezYcOGW7E2EbnKlMEPDw+zadMmcnJyImPbtm2j\ntLSUffv2sWDBApqamhgeHqa+vp7du3ezZ88eGhoaGBgY4MiRIzidTvbv309FRQV1dXUAVFdXU1VV\nxYEDBzh//jzHjh27dasUEWAawdtsNnbs2DHhOOcTJ06wePFiAPLz8/H7/XR2dpKamorD4cBut5OZ\nmUkgEMDv91NQUACA1+slEAgwNjZGT08PaWlpE15DRG6tKU+PtVqtWK0TLxsZGcFmswGQnJxMMBgk\nFArhcrki17hcri+Nx8XFYbFYCIVCOJ3OyLX/eY3JJCUlYrXGT39lNymWZ83PlLmwhljRXlw2ZfBT\nud7hszcyPp0DbPv7h6e8JpZ/1Nl+2qhpJ6ZOxrS9iPnpsYmJiYyOjgLQ29uLx+PB4/EQCoUi1/T1\n9UXG//PuHQ6HGR8fx+12MzAwELn2P68hIrdWVMF7vV5aW1sBaGtrIy8vj/T0dLq6uhgcHGRoaIhA\nIEBWVha5ubm0tLQA0N7eTnZ2NgkJCSxcuJCTJ09OeA0RubWmvKU/deoUtbW19PT0YLVaaW1t5dVX\nX2Xt2rU0NjYyf/58li1bRkJCAj6fj/LyciwWC5WVlTgcDgoLC+no6KCkpASbzUZNTQ0AVVVVrF+/\nnkuXLpGeno7X673lixUxnWV8Og/Qt4HpPIO53Q6W+g7H5PftWvtoTF5nppj23DoZ0/Yi5s/wIjI7\nKXgRgyh4EYMoeBGDKHgRgyh4EYMoeBGDKHgRgyh4EYMoeBGDKHgRgyh4EYMoeBGDKHgRgyh4EYMo\neBGDKHgRgyh4EYMoeBGDKHgRgyh4EYMoeBGDKHgRgyh4EYNEdZjk0NAQa9as4fPPPyccDlNZWYnb\n7Wbjxo0A3H///fzqV78CYOfOnbS0tGCxWHjuuef43ve+x7lz5/D5fJw7d47ExETq6uqYN29ezBYl\nItcWVfB/+tOfuPfee/H5fPT29vLUU0/hdrupqqoiLS0Nn8/HsWPHWLhwIe+88w4HDhzg/PnzlJaW\nsmjRIhoaGvjud7/LT3/6UxobG9mxYwcvvfRSrNcmIleJ6pY+KSkpcvrr4OAg8+bNo6enh7S0NADy\n8/Px+/2cOHGCvLw8bDYbLpeLb3zjG3z00Uf4/X4KCgomXCsit15Uwf/gBz/g7NmzFBQUUFZWxurV\nq3E6nZHvJycnEwwGCYVCuFyuyLjL5frSeHJyMn19fTe5DBGZjqhu6Q8fPsz8+fP5/e9/z+nTpyMn\nxf7H9c6nvNb4dM+yTEpKxGqNj2a6UZnsQL7ZYi6sIVa0F5dFFXwgEGDRokUApKSk8MUXX3DhwoXI\n93t7e/F4PHg8Hj755JNrjgeDQRwOR2RsKv39w1NeE8s/6mw/bdS0E1MnY9pexPz02AULFtDZ2QlA\nT08Pd9xxB/fddx8nT54EoK2tjby8PB566CGOHj3K2NgYvb299PX18a1vfYvc3FxaWlomXCsit15U\n7/BPPvkkVVVVlJWVceHCBTZu3Ijb7Wb9+vVcunSJ9PR0vF4vACtWrKCsrAyLxcLGjRuJi4tj5cqV\nvPTSS5SWluJ0OtmyZUtMFyUi12YZn+5D9Aybzi2Z2+1gqe9wTH7frrWPxuR1Zoppt7GTMW0vYn5L\nLyKzk4IXMYiCFzGIghcxiIIXMYiCFzGIghcxiIIXMYiCFzGIghcxiIIXMYiCFzGIghcxiIIXMYiC\nFzGIghcxiIIXMYiCFzGIghcxiIIXMYiCFzGIghcxiIIXMYiCFzGIghcxSFRHTQE0Nzezc+dOrFYr\nzz//PPfffz+rV6/m4sWLuN1utmzZgs1mo7m5mYaGBuLi4lixYgVFRUWEw2HWrl3L2bNniY+P55VX\nXuGee+6J5bpE5Bqieofv7++nvr6effv2sX37dv7yl7+wbds2SktL2bdvHwsWLKCpqYnh4WHq6+vZ\nvXs3e/bsoaGhgYGBAY4cOYLT6WT//v1UVFRQV1cX63WJyDVEFbzf7ycnJ4c777wTj8fDpk2bOHHi\nBIsXLwYgPz8fv99PZ2cnqampOBwO7HY7mZmZBAIB/H4/BQUFAHi9XgKBQOxWJCLXFdUt/b/+9S9G\nR0epqKhgcHCQVatWMTIygs1mAyA5OZlgMEgoFMLlckV+zuVyfWk8Li4Oi8XC2NhY5OdF5NaI+hl+\nYGCA3/zmN5w9e5af/OQnXHkI7fUOpL3R8SslJSVitcZHN9koTHYC52wxF9YQK9qLy6IKPjk5me98\n5ztYrVa++c1vcscddxAfH8/o6Ch2u53e3l48Hg8ej4dQKBT5ub6+PjIyMvB4PASDQVJSUgiHw4yP\n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\nfIzt3Nflkr4AAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "9l0KYpBQu8ed",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 3: Clip Outliers\n",
+ "\n",
+ "See if you can further improve the model fit by setting the outlier values of `rooms_per_person` to some reasonable minimum or maximum.\n",
+ "\n",
+ "For reference, here's a quick example of how to apply a function to a Pandas `Series`:\n",
+ "\n",
+ " clipped_feature = my_dataframe[\"my_feature_name\"].apply(lambda x: max(x, 0))\n",
+ "\n",
+ "The above `clipped_feature` will have no values less than `0`."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "rGxjRoYlHbHC",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 347
+ },
+ "outputId": "677af3a4-1364-47c4-945c-a233504f8732"
+ },
+ "cell_type": "code",
+ "source": [
+ "# YOUR CODE HERE\n",
+ "california_housing_dataframe[\"rooms_per_person\"] = (\n",
+ " california_housing_dataframe[\"rooms_per_person\"]).apply(lambda x: min(x, 5))\n",
+ "\n",
+ "_ = california_housing_dataframe[\"rooms_per_person\"].hist()"
+ ],
+ "execution_count": 30,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ],
+ "text/plain": [
+ " median_house_value\n",
+ "count 5000.0\n",
+ "mean 204.3\n",
+ "std 113.2\n",
+ "min 26.6\n",
+ "25% 118.5\n",
+ "50% 178.4\n",
+ "75% 261.9\n",
+ "max 500.0"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 7
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "z3TZV1pgfZ1n",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 1: Examine the Data\n",
+ "Okay, let's look at the data above. We have `9` input features that we can use.\n",
+ "\n",
+ "Take a quick skim over the table of values. Everything look okay? See how many issues you can spot. Don't worry if you don't have a background in statistics; common sense will get you far.\n",
+ "\n",
+ "After you've had a chance to look over the data yourself, check the solution for some additional thoughts on how to verify data."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "4Xp9NhOCYSuz",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Solution\n",
+ "\n",
+ "Click below for the solution."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "gqeRmK57YWpy",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Let's check our data against some baseline expectations:\n",
+ "\n",
+ "* For some values, like `median_house_value`, we can check to see if these values fall within reasonable ranges (keeping in mind this was 1990 data — not today!).\n",
+ "\n",
+ "* For other values, like `latitude` and `longitude`, we can do a quick check to see if these line up with expected values from a quick Google search.\n",
+ "\n",
+ "If you look closely, you may see some oddities:\n",
+ "\n",
+ "* `median_income` is on a scale from about 3 to 15. It's not at all clear what this scale refers to—looks like maybe some log scale? It's not documented anywhere; all we can assume is that higher values correspond to higher income.\n",
+ "\n",
+ "* The maximum `median_house_value` is 500,001. This looks like an artificial cap of some kind.\n",
+ "\n",
+ "* Our `rooms_per_person` feature is generally on a sane scale, with a 75th percentile value of about 2. But there are some very large values, like 18 or 55, which may show some amount of corruption in the data.\n",
+ "\n",
+ "We'll use these features as given for now. But hopefully these kinds of examples can help to build a little intuition about how to check data that comes to you from an unknown source."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "fXliy7FYZZRm",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 2: Plot Latitude/Longitude vs. Median House Value"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "aJIWKBdfsDjg",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Let's take a close look at two features in particular: **`latitude`** and **`longitude`**. These are geographical coordinates of the city block in question.\n",
+ "\n",
+ "This might make a nice visualization — let's plot `latitude` and `longitude`, and use color to show the `median_house_value`."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "5_LD23bJ06TW",
+ "colab_type": "code",
+ "cellView": "both",
+ "outputId": "e22229d8-cde0-4f1b-e7dc-41f34f7c21e1",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 498
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "plt.figure(figsize=(13, 8))\n",
+ "\n",
+ "ax = plt.subplot(1, 2, 1)\n",
+ "ax.set_title(\"Validation Data\")\n",
+ "\n",
+ "ax.set_autoscaley_on(False)\n",
+ "ax.set_ylim([32, 43])\n",
+ "ax.set_autoscalex_on(False)\n",
+ "ax.set_xlim([-126, -112])\n",
+ "plt.scatter(validation_examples[\"longitude\"],\n",
+ " validation_examples[\"latitude\"],\n",
+ " cmap=\"coolwarm\",\n",
+ " c=validation_targets[\"median_house_value\"] / validation_targets[\"median_house_value\"].max())\n",
+ "\n",
+ "ax = plt.subplot(1,2,2)\n",
+ "ax.set_title(\"Training Data\")\n",
+ "\n",
+ "ax.set_autoscaley_on(False)\n",
+ "ax.set_ylim([32, 43])\n",
+ "ax.set_autoscalex_on(False)\n",
+ "ax.set_xlim([-126, -112])\n",
+ "plt.scatter(training_examples[\"longitude\"],\n",
+ " training_examples[\"latitude\"],\n",
+ " cmap=\"coolwarm\",\n",
+ " c=training_targets[\"median_house_value\"] / training_targets[\"median_house_value\"].max())\n",
+ "_ = plt.plot()"
+ ],
+ "execution_count": 8,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwEAAAHhCAYAAAA2xLK+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xl8VMeZ8PvfWXrVLiF2EDuIHQwY\nMGBbBgOxHS9ZbMdJ7CTzTiZ7JhNneRPfTDLJZPH1jW9y40zmZmI74yVOBhtveLchNsbsZjU7CCHQ\nvvbe55x6/2ghqeluIWFACD3fzyex1Ms51Q1U1VP1VJWmlFIIIYQQQggh+g29twsghBBCCCGEuLgk\nCBBCCCGEEKKfkSBACCGEEEKIfkaCACGEEEIIIfoZCQKEEEIIIYToZyQIEEIIIYQQop+RIEBcEHfe\neSePP/54yuNPPfUUd955Z5fv/e1vf8sPfvADAO6++2727NmT8potW7ZQVlZ21nLs2LGDffv2AfDY\nY4/x4IMPdqf43VJWVsa1117LihUrWLJkCZ/97GdZt25dt9575MgRNm/efN7KIoQQl4sf/ehHrFix\nghUrVjBlypT2enbFihUEAoEeXWvFihXU1dV1+ZoHHniAJ5988sMUOcnEiRNZtmwZy5cvZ8mSJXzx\ni19k+/bt3Xpv5zZLiAvN7O0CiMvTbbfdxqpVq7jrrruSHn/22We57bbbun2dRx999EOVY9WqVVxx\nxRVMmjSJT3/60x/qWuncf//9zJkzB4ANGzbw/e9/n29/+9vceOONXb7v9ddfx7Is5s6de97LJIQQ\nfdmPf/zj9p/Lysr41a9+1V7P9tTLL7981tf8y7/8yzlduyv//d//zeDBg1FK8fLLL/PlL3+Z3/zm\nN2et8zu3WUJcaDITIC6IlStXsm/fPioqKtofO3HiBB988AErV64E4G9/+xsrV67k+uuv56677qKy\nsjLlOmVlZWzZsgWAhx56iKuvvppbbrmFd999t/014XCYb37zmyxfvpyysjJ++ctfAvDkk0/y7LPP\ncv/99/Pwww8nzTCcPHmSL3zhCyxfvpwbb7yR1atXt5dx0aJF/PnPf+amm25i8eLFrFmzplufecGC\nBfz7v/87v/rVr1BK4TgOP/7xj9vLde+99xKPx3nzzTf5wx/+wJ///Gd+8YtfAPC73/2O5cuXs3Tp\nUr74xS/S0tLS069cCCH6hc985jP8+te/ZuXKlWzbto26ujq+8IUvsGLFCsrKynj44YfbXztx4kSq\nqqrYuHEjt99+Ow888AArV66krKyMTZs2AfC9732Phx56CEi0OX/5y1/4+Mc/zqJFi9rraID/+I//\nYMGCBXzsYx/j8ccf79ZstKZprFy5km9961s88MADQPfbrExtiBDniwQB4oLIzs5m6dKlPPvss+2P\nPf/881x33XVkZ2dTX1/PT37yEx5++GFeffVVRo4c2V4Jp3Po0CEeeeQRVq1axapVq9i/f3/7c08+\n+STBYJCXX36ZZ555hqeffpotW7Zw5513Mn36dO69914+97nPJV3vvvvuY968ebzyyiv84Q9/4Kc/\n/SknTpwAoLGxEV3Xef755/nf//t/9yiFaP78+bS2tnL06FFee+01tmzZwgsvvMBLL73Enj17WLNm\nDWVlZSxbtozPfvazfO9732P37t08/vjjrFq1ildffZVYLMZjjz3W7XsKIUR/s3v3bl588UVmz57N\n73//e4YPH87LL7/Mo48+ygMPPMCpU6dS3rN3715mzJjBSy+9xKc+9Sl+//vfp7325s2beeqpp1i1\nahWPPfYYVVVVHDx4kD/+8Y88++yzPPHEE92aYeisrKyMHTt2EIlEut1mZWpDhDhfJAgQF8xtt93G\n888/3/77c889154KVFRUxNatWxk8eDAAc+bMSZo1ONPmzZuZO3cuAwYMwDAMPvrRj7Y/9/nPf56H\nHnoITdPIy8tj/Pjx7R36dOLxOO+++y6f+tSnABg2bBhXXnkl7733HgCWZbWXc8qUKZw8ebLbn1nX\ndfx+P4FAgOXLl7Nq1SpcLhcej4dp06al/YxTp05l7dq1ZGdno+s6s2bN6vK7EEKI/u7qq69G1xNd\nmB/+8Ifcd999AIwYMYLi4uK0bUBWVhZLly4Fuq7bb7rpJgzDYNCgQRQVFXHq1Ck2b97MvHnzGDhw\nIB6Ph4997GM9Km92djaO4xAMBrvdZnW3DRHiXMmaAHHBzJ8/n2g0yo4dO9B1nXA4zPz58wGwbZvf\n/OY3vPnmm9i2TTAYZPTo0Rmv1dzcTE5OTvvvubm57T8fO3aMX/ziFxw5cgRd16mqqupy3UFTUxNK\nqZTrNTQ0AGAYBn6/H0h06h3H6fZnjkQi1NfXU1hYSENDA//2b//G3r170TSNuro67r777pT3hMNh\n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\nrXwrknAgDpTOWCUZNmTJLx4wa85iKyBmhfuDQFFzFMmkweR4hXjCwjB0pAwH4vacpK87XLCv6pMc\nOa2Yng4oVjRKdYuTozWuXDN/7bNZRTPTddL5RLPCkJLccoUWhUcjXjKiuSLiYkR0rSb7zl8meXgX\n3cc+yya7HS69ikJehkW2H/4VRj/3Tfb+9T0sv2ULya4MXtXlxL8/x/jTJwHoedt2zHTo/S8dGiS9\ncTUnvvI4anYgLr3rw3P3k3K+8qClas8sMc3j8o4RJusJptwkmlCYlo6zQPI5ZgtMo7X2va4LEnGN\nStVi98wKni9meGRkGZlCuDjOFhSeGxD48ymobiOgUfUIAolu6mhCYBj6XKpPMqlTrfqLlH262nRe\nf11zymnExcELGgG33nrr3L+Hh4fp6gqLHz/96U9zxx138IlPfOLle7qIiB8RQ4dNfT70rcY9vBZ1\n/MCi/SpQDP3gIBN7Hl60vfPaVeRWpLFSGun+HJPHikhfMrpvjPxAjlgmBgLGjV4OXf5h3Fhz98PJ\nmk17rjHn/a/WBUPF+a+coUnyacWx0z6HDlepzbaMF0KjUfcJfJe4pRjoM7j28nmt61QyFKkLZBiu\nNU2NiRmDbz1Q4o03plEKphoGQvPwvYCpiQq5QhLD0GffieTqdYpLVrdKO4qI+I8RzRURFyVC4BdW\nI7blaVszRlvgIY0AP1EAw0ZOlhn+iy+iGg5Tu4daXiKWgOrZPPlA4hbLmJkk7lRYHyANq+V5EzM6\n7Vmf+Dm7NXxyTBEzAtbmijwxmgBdI50y8DxvVjVOoOmc15FzdteEk+LEaApPGQv2CUxLx/N8GhUH\npRSGZWDZJhpizvsPYOiKK9frvPlVNlPlgIee9ShXJdm0xttuzuM2mhWAIi4OXnRNwO23387IyAif\n/vSnOX78OAcPHuSDH/xgNLBHXDQYb3kf/rc+R3B4DxoSZ9ph6sgUE3smmg9WitzGHtyRUWLpGG1r\n2pl4fgK/7jO+fwIFjCy/mufe8nGWt7Vuf+4FGpWGhm0opquC/UclbuChCWg0fGxDUpyyKc+4cwbA\nouc1NF59tcXKZYtniNqs0EIyoaGUZOezJSYnXYrjdWK2YLyiMzLamCvympmqUZmpk8klSMQNfu1n\nddrSF1YE4PFnSjzy5BS1uk9vV4zbbumio9B64oy4sInmioiLDiFQyQJBcj5f/qyLROtOkty8nsrO\n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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "32_DbjnfXJlC",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Wait a second...this should have given us a nice map of the state of California, with red showing up in expensive areas like the San Francisco and Los Angeles.\n",
+ "\n",
+ "The training set sort of does, compared to a [real map](https://www.google.com/maps/place/California/@37.1870174,-123.7642688,6z/data=!3m1!4b1!4m2!3m1!1s0x808fb9fe5f285e3d:0x8b5109a227086f55), but the validation set clearly doesn't.\n",
+ "\n",
+ "**Go back up and look at the data from Task 1 again.**\n",
+ "\n",
+ "Do you see any other differences in the distributions of features or targets between the training and validation data?"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "pECTKgw5ZvFK",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Solution\n",
+ "\n",
+ "Click below for the solution."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "49NC4_KIZxk_",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Looking at the tables of summary stats above, it's easy to wonder how anyone would do a useful data check. What's the right 75th percentile value for total_rooms per city block?\n",
+ "\n",
+ "The key thing to notice is that for any given feature or column, the distribution of values between the train and validation splits should be roughly equal.\n",
+ "\n",
+ "The fact that this is not the case is a real worry, and shows that we likely have a fault in the way that our train and validation split was created."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "025Ky0Dq9ig0",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 3: Return to the Data Importing and Pre-Processing Code, and See if You Spot Any Bugs\n",
+ "If you do, go ahead and fix the bug. Don't spend more than a minute or two looking. If you can't find the bug, check the solution."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "JFsd2eWHAMdy",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "When you've found and fixed the issue, re-run `latitude` / `longitude` plotting cell above and confirm that our sanity checks look better.\n",
+ "\n",
+ "By the way, there's an important lesson here.\n",
+ "\n",
+ "**Debugging in ML is often *data debugging* rather than code debugging.**\n",
+ "\n",
+ "If the data is wrong, even the most advanced ML code can't save things."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "dER2_43pWj1T",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Solution\n",
+ "\n",
+ "Click below for the solution."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "BnEVbYJvW2wu",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "The code that randomizes the data (`np.random.permutation`) is commented out, so we're not doing any randomization prior to splitting the data.\n",
+ "\n",
+ "If we don't randomize the data properly before creating training and validation splits, then we may be in trouble if the data is given to us in some sorted order, which appears to be the case here."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "xCdqLpQyAos2",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 4: Train and Evaluate a Model\n",
+ "\n",
+ "**Spend 5 minutes or so trying different hyperparameter settings. Try to get the best validation performance you can.**\n",
+ "\n",
+ "Next, we'll train a linear regressor using all the features in the data set, and see how well we do.\n",
+ "\n",
+ "Let's define the same input function we've used previously for loading the data into a TensorFlow model.\n"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "rzcIPGxxgG0t",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def my_input_fn(features, targets, batch_size=1, shuffle=True, num_epochs=None):\n",
+ " \"\"\"Trains a linear regression model of multiple features.\n",
+ " \n",
+ " Args:\n",
+ " features: pandas DataFrame of features\n",
+ " targets: pandas DataFrame of targets\n",
+ " batch_size: Size of batches to be passed to the model\n",
+ " shuffle: True or False. Whether to shuffle the data.\n",
+ " num_epochs: Number of epochs for which data should be repeated. None = repeat indefinitely\n",
+ " Returns:\n",
+ " Tuple of (features, labels) for next data batch\n",
+ " \"\"\"\n",
+ " \n",
+ " # Convert pandas data into a dict of np arrays.\n",
+ " features = {key:np.array(value) for key,value in dict(features).items()} \n",
+ " \n",
+ " # Construct a dataset, and configure batching/repeating.\n",
+ " ds = Dataset.from_tensor_slices((features,targets)) # warning: 2GB limit\n",
+ " ds = ds.batch(batch_size).repeat(num_epochs)\n",
+ " \n",
+ " # Shuffle the data, if specified.\n",
+ " if shuffle:\n",
+ " ds = ds.shuffle(10000)\n",
+ " \n",
+ " # Return the next batch of data.\n",
+ " features, labels = ds.make_one_shot_iterator().get_next()\n",
+ " return features, labels"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "CvrKoBmNgRCO",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Because we're now working with multiple input features, let's modularize our code for configuring feature columns into a separate function. (For now, this code is fairly simple, as all our features are numeric, but we'll build on this code as we use other types of features in future exercises.)"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "wEW5_XYtgZ-H",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def construct_feature_columns(input_features):\n",
+ " \"\"\"Construct the TensorFlow Feature Columns.\n",
+ "\n",
+ " Args:\n",
+ " input_features: The names of the numerical input features to use.\n",
+ " Returns:\n",
+ " A set of feature columns\n",
+ " \"\"\" \n",
+ " return set([tf.feature_column.numeric_column(my_feature)\n",
+ " for my_feature in input_features])"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "D0o2wnnzf8BD",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Next, go ahead and complete the `train_model()` code below to set up the input functions and calculate predictions.\n",
+ "\n",
+ "**NOTE:** It's okay to reference the code from the previous exercises, but make sure to call `predict()` on the appropriate data sets.\n",
+ "\n",
+ "Compare the losses on training data and validation data. With a single raw feature, our best root mean squared error (RMSE) was of about 180.\n",
+ "\n",
+ "See how much better you can do now that we can use multiple features.\n",
+ "\n",
+ "Check the data using some of the methods we've looked at before. These might include:\n",
+ "\n",
+ " * Comparing distributions of predictions and actual target values\n",
+ "\n",
+ " * Creating a scatter plot of predictions vs. target values\n",
+ "\n",
+ " * Creating two scatter plots of validation data using `latitude` and `longitude`:\n",
+ " * One plot mapping color to actual target `median_house_value`\n",
+ " * A second plot mapping color to predicted `median_house_value` for side-by-side comparison."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "UXt0_4ZTEf4V",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def train_model(\n",
+ " learning_rate,\n",
+ " steps,\n",
+ " batch_size,\n",
+ " training_examples,\n",
+ " training_targets,\n",
+ " validation_examples,\n",
+ " validation_targets):\n",
+ " \"\"\"Trains a linear regression model of multiple features.\n",
+ " \n",
+ " In addition to training, this function also prints training progress information,\n",
+ " as well as a plot of the training and validation loss over time.\n",
+ " \n",
+ " Args:\n",
+ " learning_rate: A `float`, the learning rate.\n",
+ " steps: A non-zero `int`, the total number of training steps. A training step\n",
+ " consists of a forward and backward pass using a single batch.\n",
+ " batch_size: A non-zero `int`, the batch size.\n",
+ " training_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for training.\n",
+ " training_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for training.\n",
+ " validation_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for validation.\n",
+ " validation_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for validation.\n",
+ " \n",
+ " Returns:\n",
+ " A `LinearRegressor` object trained on the training data.\n",
+ " \"\"\"\n",
+ "\n",
+ " periods = 10\n",
+ " steps_per_period = steps / periods\n",
+ " \n",
+ " # Create a linear regressor object.\n",
+ " my_optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate)\n",
+ " my_optimizer = tf.contrib.estimator.clip_gradients_by_norm(my_optimizer, 5.0)\n",
+ " linear_regressor = tf.estimator.LinearRegressor(\n",
+ " feature_columns=construct_feature_columns(training_examples),\n",
+ " optimizer=my_optimizer\n",
+ " )\n",
+ " \n",
+ " # Create input functions.\n",
+ " training_input_fn = lambda: my_input_fn(\n",
+ " training_examples, \n",
+ " training_targets[\"median_house_value\"], \n",
+ " batch_size=batch_size)\n",
+ " predict_training_input_fn = lambda: my_input_fn(\n",
+ " training_examples, \n",
+ " training_targets[\"median_house_value\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ " predict_validation_input_fn = lambda: my_input_fn(\n",
+ " validation_examples, validation_targets[\"median_house_value\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ "\n",
+ " # Train the model, but do so inside a loop so that we can periodically assess\n",
+ " # loss metrics.\n",
+ " print(\"Training model...\")\n",
+ " print(\"RMSE (on training data):\")\n",
+ " training_rmse = []\n",
+ " validation_rmse = []\n",
+ " for period in range (0, periods):\n",
+ " # Train the model, starting from the prior state.\n",
+ " linear_regressor.train(\n",
+ " input_fn=training_input_fn,\n",
+ " steps=steps_per_period,\n",
+ " )\n",
+ " # Take a break and compute predictions.\n",
+ " training_predictions = linear_regressor.predict(input_fn=predict_training_input_fn)\n",
+ " training_predictions = np.array([item['predictions'][0] for item in training_predictions])\n",
+ " \n",
+ " validation_predictions = linear_regressor.predict(input_fn=predict_validation_input_fn)\n",
+ " validation_predictions = np.array([item['predictions'][0] for item in validation_predictions])\n",
+ " \n",
+ " \n",
+ " # Compute training and validation loss.\n",
+ " training_root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(training_predictions, training_targets))\n",
+ " validation_root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(validation_predictions, validation_targets))\n",
+ " # Occasionally print the current loss.\n",
+ " print(\" period %02d : %0.2f\" % (period, training_root_mean_squared_error))\n",
+ " # Add the loss metrics from this period to our list.\n",
+ " training_rmse.append(training_root_mean_squared_error)\n",
+ " validation_rmse.append(validation_root_mean_squared_error)\n",
+ " print(\"Model training finished.\")\n",
+ "\n",
+ " # Output a graph of loss metrics over periods.\n",
+ " plt.ylabel(\"RMSE\")\n",
+ " plt.xlabel(\"Periods\")\n",
+ " plt.title(\"Root Mean Squared Error vs. Periods\")\n",
+ " plt.tight_layout()\n",
+ " plt.plot(training_rmse, label=\"training\")\n",
+ " plt.plot(validation_rmse, label=\"validation\")\n",
+ " plt.legend()\n",
+ "\n",
+ " return linear_regressor"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "zFFRmvUGh8wd",
+ "colab_type": "code",
+ "outputId": "4065f1c0-2c1c-4670-a158-37a9465b9f91",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 741
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "linear_regressor = train_model(\n",
+ " # TWEAK THESE VALUES TO SEE HOW MUCH YOU CAN IMPROVE THE RMSE\n",
+ " learning_rate=0.0001,\n",
+ " steps=100,\n",
+ " batch_size=1,\n",
+ " training_examples=training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 12,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "WARNING: The TensorFlow contrib module will not be included in TensorFlow 2.0.\n",
+ "For more information, please see:\n",
+ " * https://github.com/tensorflow/community/blob/master/rfcs/20180907-contrib-sunset.md\n",
+ " * https://github.com/tensorflow/addons\n",
+ "If you depend on functionality not listed there, please file an issue.\n",
+ "\n",
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 225.98\n",
+ " period 01 : 213.53\n",
+ " period 02 : 202.07\n",
+ " period 03 : 192.19\n",
+ " period 04 : 183.53\n",
+ " period 05 : 177.77\n",
+ " period 06 : 173.37\n",
+ " period 07 : 170.90\n",
+ " period 08 : 169.22\n",
+ " period 09 : 168.57\n",
+ "Model training finished.\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGACAYAAACz01iHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xd4VNX28PHvmZn03klACEUIpFKi\ndCkCoUkPNaAgqIAUsV/x59V7UVFRkN6kqZTQi4CINBUQEkLovQZI7z057x++5opADHAmmSTr8zw+\nj9P2WjMrQ1b2OWdvRVVVFSGEEEKIckRX1gkIIYQQQjwsaWCEEEIIUe5IAyOEEEKIckcaGCGEEEKU\nO9LACCGEEKLckQZGCCGEEOWOoawTEMKU1atXj+rVq6PX6wEoKCggODiY9957D2tr60ced/Xq1YSG\nht5z/7p163jnnXeYO3cubdu2Lbo/Ozub5s2b07FjRz755JNHjltS165dY8qUKVy+fBkAKysrxo4d\ny7PPPmv02A9j9uzZXLt27Z7P5NChQ4wYMYJq1ard85rt27eXVnqP5caNG7Rv356aNWsCoKoqrq6u\n/Otf/6JBgwYPNdYXX3yBl5cXAwcOLPFrNm7cSHh4OMuXL3+oWEKUFmlghPgHy5cvp0qVKgDk5uYy\nceJE5s2bx8SJEx9pvLi4OBYuXHjfBgbA09OTLVu23NXA/Pzzz9jb2z9SvEfx+uuv06NHD+bOnQtA\nVFQUw4YN44cffsDT07PU8ngcnp6e5aZZeRC9Xn/Xe9i2bRtjxoxhx44dmJubl3icSZMmGSM9IcqU\nHEIS4iGYm5vTqlUrTp8+DUBOTg7vv/8+nTp1onPnznzyyScUFBQAcObMGQYMGEBISAg9evRg//79\nAAwYMICYmBhCQkLIzc29J0ajRo04dOgQWVlZRfdt27aNFi1aFN3Ozc3lP//5D506daJdu3ZFjQZA\nZGQkvXv3JiQkhC5duvDrr78Cf/xF37JlS5YtW0b37t1p1aoV27Ztu+/7PHfuHIGBgUW3AwMD2bFj\nR1EjN3PmTJ555hl69uzJ/PnzadeuHQBvv/02s2fPLnrdX2//U15TpkxhyJAhABw9epQ+ffrQoUMH\nQkNDuX79OvDHTNSECRNo27YtQ4YM4fbt2/9Qsftbt24dY8eOZdiwYUydOpVDhw4xYMAAxo8fX/TL\n/ocffqBbt26EhIQwdOhQrl27BsDXX3/Ne++9R9++fVmyZMld444fP57FixcX3T59+jQtW7aksLCQ\nL7/8kk6dOtGpUyeGDh3KnTt3HjrvLl26kJ2dzaVLlwBYtWoVISEhtGvXjtdee43s7Gzgj8/9448/\npnv37vzwww931eFBP5eFhYV8+OGHtGnThr59+3LmzJmiuIcPH6ZXr1506dKFzp0788MPPzx07kJo\nThVCPFDdunXVW7duFd1OTk5WBw8erM6ePVtVVVWdN2+eOnLkSDUvL0/NyspS+/Tpo27YsEEtKChQ\nO3furG7evFlVVVU9fvy4GhwcrKalpakHDx5Un3322fvGW7t2rfrWW2+pr7/+etFr09LS1Pbt26tr\n1qxR33rrLVVVVXXmzJnqsGHD1JycHDUjI0Pt2bOnunv3blVVVbVbt27qli1bVFVV1fXr1xfFun79\nutqgQQN1+fLlqqqq6rZt29QOHTrcN49XX31Vbdu2rbp06VL1woULdz129uxZtUmTJmpsbKyal5en\nvvLKK2rbtm1VVVXVt956S501a1bRc/96u7i8fH191XXr1hW93+DgYPXAgQOqqqrq5s2b1V69eqmq\nqqorVqxQBw8erObl5amJiYlq27Ztiz6TvyruM/7zcw4KClIvX75c9Hx/f3/1119/VVVVVW/evKk2\nbtxYvXLliqqqqrpo0SJ12LBhqqqq6owZM9SWLVuqCQkJ94y7detWdfDgwUW3p0+frn700UfquXPn\n1I4dO6q5ubmqqqrqsmXL1PXr1z8wvz8/l/r1699zf3BwsHrx4kX1999/V5s1a6bevn1bVVVVnTx5\nsvrJJ5+oqvrH5969e3c1Ozu76PasWbOK/bncs2eP2rFjRzU9PV3NyspS+/btqw4ZMkRVVVXt3bu3\neujQIVVVVfXy5cvqa6+9VmzuQpQGmYER4h+EhYUREhJC+/btad++PU2bNmXkyJEA7Nmzh9DQUAwG\nA5aWlnTv3p1ffvmFGzduEB8fT9euXQHw9/fHy8uL6OjoEsXs2rUrW7ZsAWDXrl20bdsWne5/X9ef\nf/6ZQYMGYW5ujrW1NT169GDnzp0AbNiwgc6dOwPQuHHjotkLgPz8fHr37g2Ar68vMTEx943/2Wef\nMXjwYDZv3ky3bt1o164d33//PfDH7EhwcDBubm4YDAa6detWovdUXF55eXl06NChaHwPD4+iGadu\n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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "I-La4N9ObC1x",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Solution\n",
+ "\n",
+ "Click below for a solution."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "Xyz6n1YHbGef",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def train_model(\n",
+ " learning_rate,\n",
+ " steps,\n",
+ " batch_size,\n",
+ " training_examples,\n",
+ " training_targets,\n",
+ " validation_examples,\n",
+ " validation_targets):\n",
+ " \"\"\"Trains a linear regression model of multiple features.\n",
+ " \n",
+ " In addition to training, this function also prints training progress information,\n",
+ " as well as a plot of the training and validation loss over time.\n",
+ " \n",
+ " Args:\n",
+ " learning_rate: A `float`, the learning rate.\n",
+ " steps: A non-zero `int`, the total number of training steps. A training step\n",
+ " consists of a forward and backward pass using a single batch.\n",
+ " batch_size: A non-zero `int`, the batch size.\n",
+ " training_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for training.\n",
+ " training_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for training.\n",
+ " validation_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for validation.\n",
+ " validation_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for validation.\n",
+ " \n",
+ " Returns:\n",
+ " A `LinearRegressor` object trained on the training data.\n",
+ " \"\"\"\n",
+ "\n",
+ " periods = 10\n",
+ " steps_per_period = steps / periods\n",
+ " \n",
+ " # Create a linear regressor object.\n",
+ " my_optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate)\n",
+ " my_optimizer = tf.contrib.estimator.clip_gradients_by_norm(my_optimizer, 5.0)\n",
+ " linear_regressor = tf.estimator.LinearRegressor(\n",
+ " feature_columns=construct_feature_columns(training_examples),\n",
+ " optimizer=my_optimizer\n",
+ " )\n",
+ " \n",
+ " # Create input functions.\n",
+ " training_input_fn = lambda: my_input_fn(\n",
+ " training_examples, \n",
+ " training_targets[\"median_house_value\"], \n",
+ " batch_size=batch_size)\n",
+ " predict_training_input_fn = lambda: my_input_fn(\n",
+ " training_examples, \n",
+ " training_targets[\"median_house_value\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ " predict_validation_input_fn = lambda: my_input_fn(\n",
+ " validation_examples, validation_targets[\"median_house_value\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ "\n",
+ " # Train the model, but do so inside a loop so that we can periodically assess\n",
+ " # loss metrics.\n",
+ " print(\"Training model...\")\n",
+ " print(\"RMSE (on training data):\")\n",
+ " training_rmse = []\n",
+ " validation_rmse = []\n",
+ " for period in range (0, periods):\n",
+ " # Train the model, starting from the prior state.\n",
+ " linear_regressor.train(\n",
+ " input_fn=training_input_fn,\n",
+ " steps=steps_per_period,\n",
+ " )\n",
+ " # Take a break and compute predictions.\n",
+ " training_predictions = linear_regressor.predict(input_fn=predict_training_input_fn)\n",
+ " training_predictions = np.array([item['predictions'][0] for item in training_predictions])\n",
+ " \n",
+ " validation_predictions = linear_regressor.predict(input_fn=predict_validation_input_fn)\n",
+ " validation_predictions = np.array([item['predictions'][0] for item in validation_predictions])\n",
+ " \n",
+ " \n",
+ " # Compute training and validation loss.\n",
+ " training_root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(training_predictions, training_targets))\n",
+ " validation_root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(validation_predictions, validation_targets))\n",
+ " # Occasionally print the current loss.\n",
+ " print(\" period %02d : %0.2f\" % (period, training_root_mean_squared_error))\n",
+ " # Add the loss metrics from this period to our list.\n",
+ " training_rmse.append(training_root_mean_squared_error)\n",
+ " validation_rmse.append(validation_root_mean_squared_error)\n",
+ " print(\"Model training finished.\")\n",
+ "\n",
+ " # Output a graph of loss metrics over periods.\n",
+ " plt.ylabel(\"RMSE\")\n",
+ " plt.xlabel(\"Periods\")\n",
+ " plt.title(\"Root Mean Squared Error vs. Periods\")\n",
+ " plt.tight_layout()\n",
+ " plt.plot(training_rmse, label=\"training\")\n",
+ " plt.plot(validation_rmse, label=\"validation\")\n",
+ " plt.legend()\n",
+ "\n",
+ " return linear_regressor"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "i1imhjFzbWwt",
+ "colab_type": "code",
+ "outputId": "963f26b1-73d7-47c4-f76d-344ab28b7254",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 622
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "linear_regressor = train_model(\n",
+ " learning_rate=0.00003,\n",
+ " steps=500,\n",
+ " batch_size=5,\n",
+ " training_examples=training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 14,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 219.12\n",
+ " period 01 : 202.05\n",
+ " period 02 : 187.84\n",
+ " period 03 : 177.13\n",
+ " period 04 : 170.59\n",
+ " period 05 : 168.71\n",
+ " period 06 : 168.22\n",
+ " period 07 : 169.08\n",
+ " period 08 : 170.43\n",
+ " period 09 : 171.23\n",
+ "Model training finished.\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\nsmc9FeT9JAAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "65sin-E5NmHN",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 5: Evaluate on Test Data\n",
+ "\n",
+ "**In the cell below, load in the test data set and evaluate your model on it.**\n",
+ "\n",
+ "We've done a lot of iteration on our validation data. Let's make sure we haven't overfit to the pecularities of that particular sample.\n",
+ "\n",
+ "Test data set is located [here](https://download.mlcc.google.com/mledu-datasets/california_housing_test.csv).\n",
+ "\n",
+ "How does your test performance compare to the validation performance? What does this say about the generalization performance of your model?"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "icEJIl5Vp51r",
+ "colab_type": "code",
+ "cellView": "both",
+ "outputId": "91e0f94c-522d-4a5e-aebe-4e7814c03e00",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 34
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "california_housing_test_data = pd.read_csv(\"https://download.mlcc.google.com/mledu-datasets/california_housing_test.csv\", sep=\",\")\n",
+ "#\n",
+ "# YOUR CODE HERE\n",
+ "#\n",
+ "testexamples = preprocess_features(california_housing_test_data)\n",
+ "testtargets = preprocess_targets(california_housing_test_data)\n",
+ "\n",
+ "predictTest= lambda: my_input_fn(\n",
+ " testexamples, \n",
+ " testtargets[\"median_house_value\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ "\n",
+ "testpredictions = linear_regressor.predict(input_fn=predictTest)\n",
+ "testpredictions = np.array([item['predictions'][0] for item in testpredictions])\n",
+ "\n",
+ "root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(testpredictions, testtargets))\n",
+ "\n",
+ "print(\"RMSE: %0.2f\" % root_mean_squared_error)"
+ ],
+ "execution_count": 15,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "RMSE: 162.85\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "yTghc_5HkJDW",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Solution\n",
+ "\n",
+ "Click below for the solution."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "_xSYTarykO8U",
+ "colab_type": "code",
+ "outputId": "08c0dfca-85a6-48e4-ca35-67a73e304456",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 34
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "california_housing_test_data = pd.read_csv(\"https://download.mlcc.google.com/mledu-datasets/california_housing_test.csv\", sep=\",\")\n",
+ "\n",
+ "test_examples = preprocess_features(california_housing_test_data)\n",
+ "test_targets = preprocess_targets(california_housing_test_data)\n",
+ "\n",
+ "predict_test_input_fn = lambda: my_input_fn(\n",
+ " test_examples, \n",
+ " test_targets[\"median_house_value\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ "\n",
+ "test_predictions = linear_regressor.predict(input_fn=predict_test_input_fn)\n",
+ "test_predictions = np.array([item['predictions'][0] for item in test_predictions])\n",
+ "\n",
+ "root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(test_predictions, test_targets))\n",
+ "\n",
+ "print(\"Final RMSE (on test data): %0.2f\" % root_mean_squared_error)"
+ ],
+ "execution_count": 16,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Final RMSE (on test data): 162.85\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file