diff --git a/labs/2019/lab7_clustering_sol.ipynb b/labs/2019/lab7_clustering_sol.ipynb new file mode 100644 index 0000000..61fafbe --- /dev/null +++ b/labs/2019/lab7_clustering_sol.ipynb @@ -0,0 +1,992 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Lab 7: Clustering\n", + "In this lab we'll try to get a better sense of all the clustering algorithms discussed in class. One of the many reasons to cluster is that it can help us better understand our data beyond looking at dsitributions of individual variables. To that end, we'll also get some more practice with data visualization techniques that may be helpful for your projects and future data analysis.\n", + "\n", + "Before we jump into using real data, we'll use a toy dataset." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "import pandas as pd\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We'll begin by messing around the Iris dataset, which is a fairly easy, small 3-way classification dataset. The dataset consists of 150 irises that each fall into one of 3 classes(Setosa, Versicolour, and Virginica). Each iris comes with 4 features: sepal length, sepal width, petal length, and petal width." + ] + }, + { + "cell_type": "code", + "execution_count": 155, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']\n", + "['setosa' 'versicolor' 'virginica']\n" + ] + } + ], + "source": [ + "from sklearn.datasets import load_iris\n", + "data = load_iris()\n", + "# x is a n*4 matrix\n", + "x = data.data\n", + "# y is a size-n vector\n", + "y = data.target\n", + "print(data.feature_names)\n", + "print(data.target_names)" + ] + }, + { + "cell_type": "code", + "execution_count": 156, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['target_names', 'data', 'target', 'DESCR', 'feature_names']" + ] + }, + "execution_count": 156, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data.keys()" + ] + }, + { + "cell_type": "code", + "execution_count": 157, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "there are 150 samples\n", + "(array([[ 5.1, 3.5, 1.4, 0.2],\n", + " [ 4.9, 3. , 1.4, 0.2],\n", + " [ 4.7, 3.2, 1.3, 0.2],\n", + " [ 4.6, 3.1, 1.5, 0.2],\n", + " [ 5. , 3.6, 1.4, 0.2],\n", + " [ 5.4, 3.9, 1.7, 0.4],\n", + " [ 4.6, 3.4, 1.4, 0.3],\n", + " [ 5. , 3.4, 1.5, 0.2],\n", + " [ 4.4, 2.9, 1.4, 0.2],\n", + " [ 4.9, 3.1, 1.5, 0.1]]), array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", + " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", + " 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", + " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", + " 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", + " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", + " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]))\n" + ] + } + ], + "source": [ + "print(\"there are {} samples\".format(len(x)))\n", + "print(x[:10],y)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To get a better sense of the distributions of the data. Let's first plot histograms of each of the four features:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nA76UuuXrr2+vAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nRK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# YOUR CODE HERE\n", + "for i,feature in enumerate(data.feature_names):\n", + " plt.hist(x[:,i])\n", + " plt.title(feature)\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From the names of the features, it probably makes most sense to scatter the sepal length vs the sepal width and the petal length vs petal width. Use plt.scatter to visualize " + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Make a dataframe out of the data to make it easier to do filtering/grouping operations later\n", + "col_names = ['sep_len', 'sep_wid', 'pet_len', 'pet_wid']\n", + "df = pd.DataFrame(data.data)\n", + "df.rename(columns=lambda x: col_names[x], inplace=True)\n", + "df['target'] = data.target" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5,1,u'sepal length vs sepal width')" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n/x9CUmoCfu4AQAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Scatter the sep_len vs sep_wid\n", + "# YOUR CODE HERE\n", + "# This is what the scatter plot should look like:\n", + "plt.scatter(df.sep_len, df.sep_wid)\n", + "plt.title(\"sepal length vs sepal width\")" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5,1,u'petal length vs petal width')" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n59gnGddKRj5rxj7vcUUqokanZcx6UCsPvci6LOuFwawZ+7zHFamIGp2WMTMrEefczaxwrWS7y5BV\nT9Otdbu5m9m0aGXO+E7MLz8durluX1A1s2nRSra7DFn1NN1ct5u7mU2LVrLdZciqp+nmut3czWxa\ntJLtLkNWPU031+3mbmbTopVsdxmy6mm6uW5fUDWzadFKtrsMWfU03Vy3c+5mZiXinLuZTZt25oJf\ntWx+aedp77Z6JuIjdzNrSepc8C3M+/7WV83nqk3bSjdPe7fU4/nczWxapM4F38K87+s2DpVynvZu\nq2cybu5m1pJ2M9wjTc4WdPs87d1Wz2Tc3M2sJe1muPuk1OXdPk97t9UzGTd3M2tJ6lzwLcz7vnr5\nglLO095t9UzGaRkza0m7c8GvWjafgYPnlG6e9m6rZzJOy5iZlUhuOXdJC4BLgJcAzwEXRcSFDWME\nXAgcC/wWeGdEbJ5K4WY2dc1y2O3m0quunfx6t2bfJz1yl3QAcEBEbJa0D7AJWBURt9eNORb4K2rN\nfTlwYUQsn2i7PnI3y1ezHHZarryVXHpRufJOaSe/XkT2Pbece0Q8OHoUHhFPAncAjVUfD1wSNbcA\ns5NfCmbWIc1y2Gm58lZy6d2a485LO/n1bs6+t5SWkbQIWAZsbHhrPjBU93or438BIOl0SYOSBoeH\nh1ur1Mwm1Cxv3SxX3u52q6Kd/Ho3Z98zN3dJewNXAe+PiCca305ZZdz/oiLioogYiIiBefPmtVap\nmU2oWd66Wa683e1WRTv59W7Ovmdq7pL6qTX2yyJifcqQrcCCutcHAQ+0X56ZZdUsh52WK28ll96t\nOe68tJNf7+bse5a0jIAvAHdExAVNhl0NnCHpq9QuqD4eEQ/mV6aZTWaiHHZarjxtbLP1q6yd/Ho3\nZ9+zpGVeDXwP2EItCgnwYWAhQER8NvkFsBZ4A7Uo5LsiYsIojNMyZmatyy3nHhHfJ/2cev2YAN6b\nvTwz66S0LPbgfY+xbuMQIxH0SaxevoBzVi3NtG43HJnWK0ONnebpB8wqrjGLvW37Dj5wxW2M1EUh\nRyK49Jb7AcY0+LR1z16/BaBrmmcZaiyCJw4zq7i0LPbIc+mnY9dtHBrzuptz3KPKUGMR3NzNKq6V\nzHVjJr6bc9yjylBjEdzczSqulcx1Yya+m3Pco8pQYxHc3M0qLi2L3TcjPSOxevmCMa+7Occ9qgw1\nFsEXVM0qrlkWO0tapptz3KPKUGMRPJ+7mVmJ5JZzN7PudMrnbuYHdz+2+/WKxXN46by9M2XXIf9s\n+JoNW8btO8sTl1qtp4pzr08HH7mblVBjY5/IqUcuHNfg856HfM2GLbtz8vVm8Pxt7RPtI2s9ZZt7\nfTrkNp+7mXWfrI0dxmfXIf9seNo+YGxjn2gfWeup6tzr08HN3azi0uZzzzsb3sqc8Wn7yFpPVede\nnw5u7mYVlzafe97Z8FbmjE/bR9Z6qjr3+nRwczcroRWL52Qe25hdh/yz4Wn7gPENptk+stZT1bnX\np4Obu1kJXXbaUeMa/IrFczj1yIW7j6L7pNSLqVDLhp97wlLmz56JgPmzZ7Z1YfGcVUtT933B2w/P\ntI+s9bRTd96fuds5LWNmViJOy5iZ9TDfxGRWoE7dVNNLN+9YjZu7WUE69ZAJP8yiN/m0jFlBOnVT\nTa/dvGM1bu5mBenUTTW9dvOO1bi5mxWkUzfV9NrNO1bj5m5WkE7dVNNrN+9YjS+omhWkUw+Z8MMs\nepNvYjIzKxE/rMOsBDrxgIp2990p3VZP2bm5mxUka/58OnLq3ZZ977Z6qsAXVM0K0okHVLS7707p\ntnqqwM3drCCdeEBFu/vulG6rpwrc3M0K0okHVLS7707ptnqqwM3drCCdeEBFu/vulG6rpwp8QdWs\nIFnz59ORU++27Hu31VMFzrmbmZVIbjl3SRcDxwEPR8TLU95fCXwD+FWyaH1EfKy1cs3Kqd1s9vKP\nX8dDTz67+/X+++zJ2cceOm6bkO2ods2GLazbOMRIBH0Sq5cv4JxVS1PrzLpNK6dJj9wlvQZ4Crhk\ngub+wYg4rpUd+8jdyq4xmw2188RZn8vZ2Nib6Z8hEOwcef6/1bT9rNmwhUtvuX/c+isWz2Hz/Y+P\nqTPrNq375PaYvYi4CXgsl6rMKqTdbHaWxg6w87kY04Sb7WfdxqHU9X9w92Pj6sy6TSuvvNIyR0m6\nTdK3JL2s2SBJp0salDQ4PDyc067NilF0NrtxPyM5XD9zrrw68mjum4GDI+Iw4J+BDc0GRsRFETEQ\nEQPz5s3LYddmxSk6m924nz4p921aebXd3CPiiYh4Kvn5GqBf0ty2KzPrcu1ms/ffZ89M4/pniP6+\nsY07bT+rly9IXX/F4jnj6sy6TSuvtpu7pJdItUMGSUck23y03e2adbtVy+Zz7glLmT97JgLmz57Z\n0gXJjR85elyD33+fPfnU2w8fs83zTzqM8088bNL9nLNqKaceuXD3EXyfxKlHLuSy044aV2fWbVp5\nZUnLrANWAnOBh4CPAv0AEfFZSWcA7wF2ATuAMyPih5Pt2GkZM7PW5ZZzj4jVk7y/FljbQm1mXaVT\n84g3y6BnqWfwvsfGrTtw8Jyuz6l7jvbi+A5V62ntZtWzapZBP/XIhWMafFo9fTPEyHPj/zttXN5t\nOfVOfbe9Jrecu1mVdWoe8WYZ9MblafWkNfa05d2WU/cc7cVyc7ee1qmserMMeuPydvfbTTn1ou8D\n6HVu7tbTOpVVb5ZBb1ze7n67Kade9H0Avc7N3Xpap+YRb5ZBb1yeVk/fjCa/GGZ0d07dc7QXy83d\nelq7WfWsmmXQG9MyafV84qTDUtf9xEndnVPv1Hdr6ZyWMTMrkdxy7mZlkHee+pTP3cwP7n5+MtQV\ni+fw0nl7j8uaA6nZ9bRMe1ouHcbPqZ62zEe71iofuVvp5Z2nbmzsrVqy3yx++fDT45bPENSnF/v7\nBFGbfnf3Ms+zbpNwzt16Rt556nYaO5Da2GFsY4daA9/ZsNDzrFte3Nyt9HohT12lz2Kd4eZupdcL\neeoqfRbrDDd3K72889QrFs9pq54l+81KXd4YV+/vU+0ce/0yz7NuOXFzt9LLO0992WlHjWvwKxbP\nSc2apy277syVqcsveFvDPO0nHsb5DVl1z7NueXFaxsysRJxzN8soLSMP2bLmreTr28nie150a5WP\n3K2npWXks2bNW8nXt5PF97zoVs85d7MM0jLyWbPmreTr28nie150mwo3d+tpreTHG8e2kq9vJ4vf\nCzl+y5+bu/W0VvLjjWNbyde3k8XvhRy/5c/N3XpaWkY+a9a8lXx9O1l8z4tuU+G0jPW00QuSU0nL\nNFs37SJnK2PzXNd6l9MyZmYl4py7dVwZstjtZNrNysTN3XLRmMXetn0HZ6/fAtA1jTKtxrOuvG3M\nnOrdWLfZVPiCquWiDFns1Ex7ypzq3Va32VS4uVsuypDFbifTblY2bu6WizJksdvJtJuVjZu75aIM\nWezUTHvKnOrdVrfZVPiCquWiDFnsdjLtZmXjnLuZWYnkNiukpIslPSzpZ03el6RPS7pL0k8lvXIq\nBZuZWX6ynJb5ErAWuKTJ+28EliT/lgP/mvxfs8zWbNjCuo1DjETQJ7F6+QLOWbV0yuMg/4djgE/f\nWHlM2twj4iZJiyYYcjxwSdTO79wiabakAyLiwZxqtIpbs2ELl95y/+7XIxG7X9c37qzjoL2bqlJv\ndrritjEP8PDNTtbt8kjLzAeG6l5vTZaZZbJu41Cm5VnHQf4Px8j6AA+zbpFHc1fKstSrtJJOlzQo\naXB4eDiHXVsVjDS5qN+4POs4mJ6HY7Q71qyT8mjuW4EFda8PAh5IGxgRF0XEQEQMzJs3L4ddWxX0\nKe34YPzyrONgeh6O0e5Ys07Ko7lfDfxZkpo5Enjc59utFauXL8i0POs4yP/hGFkf4GHWLSa9oCpp\nHbASmCtpK/BRoB8gIj4LXAMcC9wF/BZ413QVa9U0ejF0shRM1nEwPQ/HmOr2zIrgm5jMzEokt5uY\nzMysfNzczcwqyM3dzKyC3NzNzCrIzd3MrILc3M3MKsjN3cysgtzczcwqyM3dzKyC3NzNzCrIzd3M\nrILc3M3MKsjN3cysgtzczcwqyM3dzKyC3NzNzCrIzd3MrILc3M3MKsjN3cysgtzczcwqyM3dzKyC\n3NzNzCrIzd3MrILc3M3MKmiPogsokw23buP8a+/kge07OHD2TM465hBWLZtfdFlmZuO4uWe04dZt\nnL1+Czt2jgCwbfsOzl6/BcAN3sy6jk/LZHT+tXfubuyjduwc4fxr7yyoIjOz5tzcM3pg+46WlpuZ\nFcnNPaMDZ89sabmZWZHc3DM665hDmNnfN2bZzP4+zjrmkIIqMjNrzhdUMxq9aOq0jJmVgZt7C1Yt\nm+9mbmalkOm0jKQ3SLpT0l2SPpTy/jslDUv6SfLv3fmX2p023LqNFeddz0s/9E1WnHc9G27dVnRJ\nZmaTH7lL6gM+AxwNbAV+LOnqiLi9YejXIuKMaaixazn7bmbdKsuR+xHAXRFxT0Q8C3wVOH56yyoH\nZ9/NrFtlae7zgaG611uTZY3eKumnkq6UtCBtQ5JOlzQoaXB4eHgK5XYXZ9/NrFtlae5KWRYNr/8d\nWBQRrwD+E/hy2oYi4qKIGIiIgXnz5rVWaRdy9t3MulWW5r4VqD8SPwh4oH5ARDwaEc8kLz8HvCqf\n8rqbs+9m1q2yNPcfA0skvVTSnsDJwNX1AyQdUPfyLcAd+ZXYvVYtm8+5Jyxl/uyZCJg/eybnnrDU\nF1PNrHCTpmUiYpekM4BrgT7g4oj4uaSPAYMRcTXw15LeAuwCHgPeOY01dxVn382sGymi8fR5ZwwM\nDMTg4GBH99nKfOynfO5mfnD3Y7tfr1g8h5MGFo5bH7Ldteq54M0sD5I2RcTApON6pbk3ZtKhdn48\n7TRKY2MfJcZeSe7vEwTsfO75pWnbbGXfZmYTydrce2bisFYy6WmNHcZHhHaOxJjG3mybzsObWaf1\nTHPvZCa9cZvOw5tZp/VMc+9kJr1xm87Dm1mn9UxzbyWTvmLxnNRtNN7N1d8n+meMXZq2TefhzazT\neqa5t5JJv+y0o8Y1+BWL5/DJtx8+Zv3zTzyM8086bNJtOg9vZp3WM2kZM7MqcFrGzKyH9dSTmNZs\n2MK6jUOMRNAnsXr5An41/NS4m5UuO+2ozDcd+eYkM+tGPXNaZs2GLVx6y/2Zxi7ZbxZbf/O7SW86\n8s1JZtZpPi3TYN3GockHJX758NOZbjryzUlm1q16prmP5PAXim9OMrOy6Jnm3qe0Z460xjcnmVlZ\n9ExzX7089cl/qZbsNyvTTUe+OcnMulXPNPdzVi3l1CMX7j6C75M49ciFqTcrXXfmykw3HfnmJDPr\nVj2TljEzq4KsaZnS5dyz5srTMu0b73mUXz789O4xS/abxa+Gn2ZX3e+3PQR3nfsmXvHRb/PEM88n\nYfbdq4+Ze/bx0JPP7l62/z57cvaxhzoPb2Zdp1RH7llz5a1k2vPmPLyZTadK5tyz5spbybTnzXl4\nM+sGpWruWXPleWTa2+E8vJkVrVTNPWuuPI9MezuchzezopWquWfNlbeSac+b8/Bm1g1K1dyz5sqb\nZdqX7DdrzLgl+81ij4aD/D0E9573Jvbda2wz3nevPvbfZ88xy/bfZ08+1fAAD+fhzawblCotY2bW\n6yqbc0/TToa82bpHX3DDuEz8dWeunKZPYGaWr9IfubeTIW+27r4vGHuz0ig3eDMrWiVz7mnayZA3\nWzetsQNjjuTNzLpZ6Zt7Oxly58zNrKpK39zbyZA7Z25mVVX65t5OhrzZuo2Rx1GNUUozs25V+ube\nToa82bobP3J0aibeF1PNrCxKn5YxM+sluaZlJL1B0p2S7pL0oZT395L0teT9jZIWtV6ymZnlZdLm\nLqkP+AzwRuBQYLWkQxuG/U/gNxHxX4BPAv+Yd6FmZpZdliP3I4C7IuKeiHgW+CpwfMOY44EvJz9f\nCbxWKnhqRjOzHpaluc8H6p9+sTVZljomInYBjwO/17ghSadLGpQ0ODw8PLWKzcxsUlmae9oReONV\n2CxjiIiLImIgIgbmzZuXpT4zM5uCLM19K1A/QfpBwAPNxkjaA3gR8FgeBZqZWeuyzAr5Y2CJpJcC\n24CTgT9tGHM18OfAzcCJwPUxScZy06ZNj0i6r/WSd5sLPNLG+t2kSp8FqvV5qvRZoFqfp1c/y8FZ\nBk3a3CNil6QzgGuBPuDiiPi5pI8BgxFxNfAF4CuS7qJ2xH5yhu22dV5G0mCWrGcZVOmzQLU+T5U+\nC1Tr8/izTCzTfO4RcQ1wTcOyv637+XfASXkWZmZmU1f66QfMzGy8Mjf3i4ouIEdV+ixQrc9Tpc8C\n1fo8/iwTKGxuGTMzmz5lPnI3M7Mm3NzNzCqodM1d0sWSHpb0s6JraZekBZK+K+kOST+X9L6ia5oq\nSS+Q9CNJtyWf5e+Lrqldkvok3SrpP4qupV2S7pW0RdJPJJV+rm1JsyVdKekXyX8/RxVd01RIOiT5\n/8novyckvT+XbZftnLuk1wBPAZdExMuLrqcdkg4ADoiIzZL2ATYBqyLi9oJLa1kyUdysiHhKUj/w\nfeB9EXFLwaVNmaQzgQFg34g4ruh62iHpXmAgIipx04+kLwPfi4jPS9oTeGFEbC+6rnYkM/BuA5ZH\nRDs3eAIlPHKPiJuoyNQGEfFgRGxOfn4SuIPxk7KVQtQ8lbzsT/6V68ihjqSDgDcBny+6FhtL0r7A\na6jdPElEPFv2xp54LXB3Ho0dStjcqyp5wMkyYGOxlUxdchrjJ8DDwHURUdrPAnwK+BvguaILyUkA\n35G0SdLpRRfTpt8HhoEvJqfNPi+pCg84PhlYl9fG3Ny7gKS9gauA90fEE0XXM1URMRIRh1ObXO4I\nSaU8bSbpOODhiNhUdC05WhERr6T20J33Jqc3y2oP4JXAv0bEMuBpYNwT4sokObX0FuCKvLbp5l6w\n5Pz0VcBlEbG+6HrykPyJfAPwhoJLmaoVwFuS89RfBf67pEuLLak9EfFA8n8fBr5O7SE8ZbUV2Fr3\nl+GV1Jp9mb0R2BwRD+W1QTf3AiUXIb8A3BERFxRdTzskzZM0O/l5JvA64BfFVjU1EXF2RBwUEYuo\n/al8fUScWnBZUyZpVnLBnuT0xeuB0qbNIuLXwJCkQ5JFrwVKF0JosJocT8lAxonDuomkdcBKYK6k\nrcBHI+ILxVY1ZSuAdwBbknPVAB9OJmormwOALydX/GcA/zciSh8hrIj9ga8nT77cA7g8Ir5dbElt\n+yvgsuR0xj3AuwquZ8okvRA4GviLXLdbtiikmZlNzqdlzMwqyM3dzKyC3NzNzCrIzd3MrILc3M3M\nKsjN3cysgtzczcwq6P8DTKwCVPKAS1oAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Scatter the pet_len vs pet_wid\n", + "# YOUR CODE HERE\n", + "# This is what the scatter plot should look like:\n", + "plt.scatter(df.pet_len, df.pet_wid)\n", + "plt.title(\"petal length vs petal width\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It may be hard to see anything interesting from just monochromatic scatter plots. Let's color in the datapoints according to their class. Hint: try grouping by the target value and then do plt.scatter on each group with different colors." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Write a function to plot a scatter plot of two columns of a dataframe that color points\n", + "# according to their class.\n", + "# YOUR CODE HERE\n", + "\n", + "groups = df.groupby('target')\n", + "\n", + "# Plot\n", + "fig, ax = plt.subplots()\n", + "for name_idx, group in groups:\n", + " ax.scatter(group.sep_len, group.sep_wid, label=data.target_names[name_idx])\n", + "ax.legend()\n", + "plt.title(\"sepal length vs sepal width\")\n", + "plt.show()\n", + "\n", + "fig, ax = plt.subplots()\n", + "for name_idx, group in groups:\n", + " ax.scatter(group.pet_len, group.pet_wid, label=data.target_names[name_idx])\n", + "ax.legend()\n", + "plt.title(\"petal length vs petal width\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nM4ahQ4cyY8YMli5diogwfvx4Zs2axfLly2lqauL+++9ny5YtzJkzh7feeova2lomT54MwCmnnMLC\nhQtZsmQJ48aN4yc/+UkAoxIsO6FqCipx0tSqZTqWvZ1ryeX/vqysjJtuuolbbrmF0aNHc+CBB/Lm\nm29y5plnArBr1y569eq1x+veeecdjjjiCI488kgALr/8cu677z6+853vUFJSwpVXXsmoUaMYPdpp\niLtu3TouuugiNmzYwGeffdbmWvT2ZMndFNz5g/pYMu9g2utcy5FHHklNTQ3PPvsskyZN4swzz2TA\ngAEsWLBgr6/LdNOizp078/rrr/Piiy/y+OOPc++99/LSSy9x3XXXceONN3Luuecyf/58Kisrc4q7\nPdhhGWNM3rXXuZb169fTpUsXLr30Um666SYWLVpEfX19S3LfuXMnb731FgD7778/27ZtA+Doo49m\nzZo1rFy5EoBHHnmE0047je3bt9PQ0MDZZ5/NL3/5S5YuXQpAQ0MDffo4OyQPP5y2lVbB2Z67MSbv\nbh55VKvrGyCYcy3Lly/n5ptvplOnThQXF3P//ffTuXNnrr/+ehoaGmhqauKGG25gwIABjB8/nmuu\nuYbS0lIWLFjA7373O8aOHUtTUxPHHXcc11xzDVu2bOG8886jsbERVeUXv/gFAJWVlYwdO5Y+ffpQ\nUVHB6tWrc4q7PRTsHqpDhw5Vu1mHMfGxYsUKvvSlL/le3q5M9pZuTEWkRlWHer3W9tyNMQVh51ra\nlx1zN8aYGLLkbowxMWTJ3RhjYsiSuzHGxJAld2OMiSFL7iZn7dEAypiwuP3223nhhReyft38+fNb\n2hUUgpVCmpzYzTZMHKgqqkqnTnvu79555515iaGpqYnOnYNLybbnbnJiN9swbVY7G34xECq7O//W\nzs55lbfccgu//vWvW55XVlbys5/9jLvvvpvjjjuO8vJy7rjjDgDWrFnDl770Ja699loGDx7M2rVr\nGT9+PAMHDqSsrKzlatTx48dTVVUFwBtvvMFJJ53EMcccw/HHH8+2bdtobGxkwoQJlJWVMWjQIF5+\n+eU94tqyZQvnn38+5eXlVFRUUFtb2xLf1VdfzYgRI7jsssty3v5kltxNTuxmG6ZNamfD09dDw1pA\nnX+fvj7nBD9u3DhmzZrV8nz27Nn06NGDf/zjH7z++ussXbqUmpoa/va3vwFON8jLLruMJUuWsGnT\nJurq6njzzTdZvnw5EyZMaLXuzz77jIsuuoipU6eybNkyXnjhBUpLS7nvvvsAp/XBzJkzufzyy/e4\nsfUdd9zBoEGDqK2t5cc//nGrRF5TU8Mf//hHHnvssZy2PZUld5MTu9mGaZMX74SdKTsAO3c403Mw\naNAgPvzwQ9avX8+yZcs48MADqa2t5fnnn2fQoEEMHjyYt99+m3/84x8AHH744VRUVADQv39/Vq1a\nxXXXXcef//xnunXr1mrd77zzDr169eK4444DoFu3bnTu3JlXXnmFb3zjG4DTgOzwww/n3XffbfXa\n5GVOP/10Nm/eTENDAwDnnnsupaXB/75Ycjc5sZttmDZpWJfd9CyMGTOGqqoqZs2axbhx41BVJk2a\nxNKlS1m6dCkrV67km9/8JgBdu3Zted2BBx7IsmXLGDZsGPfddx9XXnllq/WqKiKyx/v56c+VbpnE\nupJjCJIld5OT8wf14a6vldGneykC9Oleyl1fK7OTqWbvDuib3fQsjBs3jscff5yqqirGjBnDyJEj\n+e1vf8v27dsBqKur48MPP9zjdZs2baK5uZkLL7yQH/7whyxevLjV/KOPPpr169fzxhtvALBt2zaa\nmpo49dRTmTFjBgDvvvsu77//Pkcd1XrnJnmZ+fPnc8ghh+zxl0HQrFrG5MwaQJmsnXG7c4w9+dBM\ncakzPUcDBgxg27Zt9OnTh169etGrVy9WrFjBiSeeCMB+++3Ho48+SlFR67846+rqmDBhAs3NzQDc\nddddrebvs88+zJo1i+uuu44dO3ZQWlrKCy+8wLXXXss111xDWVkZnTt3Zvr06ey7776tXltZWcmE\nCRMoLy+nS5cueekBby1/Y87aqpp8ybblL7WznWPsDeucPfYzbofyr7dfgBFkLX9NWlaDbkKt/OuW\nzNuRHXOPMatBN6bjsuQeY1aDbkzHZck9xqwG3ZiOy5J7jFkNujEdl51QjbHESVOrljGm47HkHnNW\ng246uvXr13P99de3NP/y68orr+TGG2/ky1/+csZlHnjgAbp06RJ4068g+K5zF5EioBqoU9XRKfP2\nBX4PDAE2Axep6pq9rc/q3E02rF4//LKucy+woFvstodc6tyzOeY+EViRYd43gX+p6heBXwD/k8V6\njdmrRL1+3dYdKLvr9e2mINE2b9U8RlSNoPzhckZUjWDeqnk5rzNTy9+BAwcCMH36dMaOHcs555zD\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nrkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# This is what the output should look like:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From the plots, its clear that we can easily cluster the data into 3 clusters. Let's see if KMeans and Meanshift can recover these clusters." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## KMeans\n", + "Now that we have a good sense of what the Iris dataset looks like, we'll try running a few clustering algorithms on the data starting with KMeans.\n", + "Ref: http://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html\n", + "\n", + "Run KMeans with n_clusters = 2, 3, 4 plot a color coded(according to the cluster value) scatter plot for petal length vs petal width(or any two features of your choice). You should be able to modify the function you wrote above to color the datapoints according to its cluster value." + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "from sklearn.cluster import KMeans, MeanShift, DBSCAN\n", + "X = df[['pet_len','pet_wid']]" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEICAYAAACktLTqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3X+cHXV97/HXm82GxPAjAgFJQkg0\nNII/kZUfFwtUtCCmkmuVglUaQdEWq1wsrdheFB96S4vFYrGlWLxIlSAXMUIuEq0U8BfgBgSESEFQ\nswlKCCQQDRKWT/+YWfbs2Tm7c/ac3Zk55/18PPaRc+bMmfmcsyefMzvznu8oIjAzs86yQ9EFmJlZ\n+7m5m5l1IDd3M7MO5OZuZtaB3NzNzDqQm7uZWQdycy8hSSFpcYPHbpL0nqmuKV13w7o6haSjJA20\nuIwFkrZK6mnw+MclfWmM5y+X9N1Wamiw3K2SXjzG4z+T9IZ2r3ecmibltZqbuzVQ5JdI1UXELyJi\np4gYHG9eSQvTL81pU1DXThHxULreyyR9cqLLkvRmSd+VtFnSLyV9XtLO7avWWuXmbmYTsSvwSWAu\nsD8wHzi/0IpsBDf3cUj6K0nrJT0l6X5JR6fTd5D0EUk/lbRJ0lWSdksfG9oaO03SBkmPSPpwzTIP\nlvSDdKvnEUkXSZo+wfpOkbRW0hOSVkvat+axkPR+SQ+kj39OktLHeiT9g6THJD0s6QNDW5CSPgX8\nLnBR+qf8RTWrfEPW8upqmitp29D7kU47MF1Xr6TFkm6WtCWd9pUGr22GpC+l7+9mST+UtFf62K6S\nLk3fv/WSPjm0GyT9U/97kv4pXcdPhn5v6ePvTt+zpyQ9JOl9Od/rcyX9U3q7V9KvJf19en+mpKcl\nvbB+a1zSovT1PiXpW8AeNYu9Jf13c/peH1azvk+n7/PDkt7UoKZ3S7qu5v6Dkq6qub9O0qvT25G+\n96cBfwz8ZbrO62oW+WpJd6fv21ckzchab0RcERE3RMRvIuIJ4PPA4WO8d/tIukbSxvT3eVGD+S5M\na35S0hpJv1vz2MGS+tPHfiXpgnT6RD8nuT6HlRUR/mnwAywB1gFz0/sLgZekt88AbiXZYtkR+Fdg\nRc18AawAZgGvADYCb0gfPwg4FJiWzrsWOKNmvQEsblDTTcB70tvLgAdJtpymAX8DfL9uOauA2cCC\n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\nylhZ83Y29zWXNZ7u5j7pKrtbxswmqNWseV4x2Nx0ays3d7Nu02rWPC/1NDfd2srN3azbtJo1z+ug\n5c1Nt7ZyczfrNq88Af7gs7DrPoCSf//gs+2PEi69APpOHd5SV09y3/vbp0SlD6ia2QS1mjXPa+kF\nbuYFcXOvc8opp7Bq1Sr23HNPfvzjHxddjtnkaGZM9HaPn553PPdmxn1vdYz4qTDFNWqSRwloqK+v\nL/r7+0dMW7t2Lfvvv38h9Qy55ZZb2GmnnTj55JPHbO5lqNVsQupz7pCMzyKNHDq3dya86h1w1xX5\n5s2zaydr3VnPzTtfs/MWpY01SloTEX3jzVftfe6TcJbdEUccwW677daG4sxKqpkx0ddc1t7x0/OO\n597MuO+tjhE/FQqosbq7ZabqLDuzTtNMnr2ZTHqe5ebN2DeTxZ+q3H4rCqixulvuVfi2NiujZvLs\nzWTS8yw3b8a+mSz+VOX2W1FAjdVt7lX4tjYro2bGRD9oeXvHT8+bsW8miz9Vuf1WFFBjdZt7Fb6t\nzcooK+e+7J/h+M+Nzr4vvSD/vHl2h+bN2DeTxZ+q3H4rCqixummZSTpCftJJJ3HTTTfx2GOPsdde\ne3Huuedy6qmnjprPaRkzK0LetEx1D6i2ekWXBlasWNGG4swMmJxMe5mUuO7qNneYurPszKx5eRNt\nVU2+lbzu6u5zN7Nym4xMe5mUvO7SNfeijgE0owo1mhVuMjLtZVLyukvV3GfMmMGmTZtK3Twjgk2b\nNjFjxoyiSzErt8nItJdJyesu1T73+fPnMzAwwMaNG4suZUwzZsxg/vxy/ALNSuvoc7ITbVmZ9jzz\nlU3J6y5Vc+/t7WXRokVFl2Fm7ZA30TZJybdJV/K6S5VzNzOzsXV+zt3MipN3jPe806qQfS9bPePw\nlruZNSfr7PCe6RCRDAc8JGvc96z5Wh3PfSqUqJ7uGM/dzKZeVr578JmRDRuyx33Pmq8K2fey1ZOD\nm7uZNWcyctxlz76XrZ4c3NzNrDmTkeMue/a9bPXk4OZuZs3JGpu8Z3qyj71W1rjvWfO1Op77VChb\nPTm4uZtZc7LGJj/+c8k47+ON+541X6vjuU+FstWTg9MyZmYV0racu6R9gMuBFwHPAZdExIV18wi4\nEDgO+A2wPCLumEjhZtaCqcifd5pW8uslzr6Pu+UuaW9g74i4Q9LOwBpgWUTcVzPPccCfkzT3Q4AL\n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\nrkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nde4ikl3n3nMuS9Yu2fZ8+pjp7LXx06nUr1+0eEXkfuPuJ+l21TRLTbySu0hOVSZ2gCVrl7BlQzc9\nfi4wdPXrFy1esW0/5ft9tnsDy/64vuZ+4sbTaNzNVBOvE6oiOVWZ2EtaR/yhz7LBrl+v7L/koT+8\nEms/ceNpNO5mqolXchdpAoNdv17Zfy2V+4kbT6NxN1NNvJK7SBMY7Pr1yv5rqdxP3HgajbuZauKV\n3EVyavqY6ZHLe958a59lg12/Xtl/yZFv3T3WfuLG02jczVQTr+QuklNXH3d1nwQ/fcx0Th3/5W1H\n0q1mnDl978j69ctmTmb8yOEYMH7kcC6bOXnAJxXnzZjMmdP37rPfH517RKz9xI2n0biTft1Zpjp3\nEZEcUZ27SA7c+cydzF82n7VvrmXMiDHMmTqHk/Y9KfH9NEttt2yn5C6SkjufuZO5D89lU88mANa8\nuYa5D88FSDTBN1Ntt2ynMXeRlMxfNn9bYi/Z1LOJ+cvmJ7qfZqrtlu2U3EVSsvbNtXUtH6hmqu2W\n7ZTcRVIyZsSYupYPVDPVdst2Su4iKZkzdQ7tre29lrW3tjNn6pxE99NMtd2ynU6oiqSkdNJ0sKtl\nNN95c1Kdu4hIjsStc9ewjIhIAWlYRiRFcS9iGoyLnbJ2YVPW4sk7JXeRlMS9iGkwLnbK2oVNWYun\nCDQsI5KSuBcxDcbFTlm7sClr8RSBkrtISuJexDQYFztl7cKmrMVTBEruIimJexHTYFzslLULm7IW\nTxEouYukJO5FTINxsVPWLmzKWjxFoBOqIimJexHTYFzslLULm7IWTxHoIiYRkRxJ7GYdZvY94GTg\nJXd/Z8T6Y4DbgGfDRbe4+yX1hSuSX43UoB9747G8tOmlbc9Ht4/mwndf2Kc/iH/kPm/JPBY9tYit\nvpUWa2HW/rOYMnpKn+03rz9ER8oFVvPI3cyOBjYA1/aT3P/R3U+uZ8c6cpciqKxBh2A8fO5fza2Z\n4CsTezXDbBhmxuatm2vuY96Sedz45I19+mi1Vnp8e6lhm+3IpjUz+dOrB29bNryttbD3Ey2SxKYf\ncPcHgVcSiUqkYBqpQY+T2AG2+JZeib2/fSx6alFkH+WJHWCz/xnb/e5ey1RXXixJVcscYWaPmdnd\nZvaOao3M7Dwz6zSzzu7u7oR2LZKeobrhRtx9bPWtsbe3ttf6LFNdeXEkkdyXAfu4+8HAt4DF1Rq6\n+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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "pd.options.mode.chained_assignment = None\n", + "\n", + "for n_clusters in [2,3,4]:\n", + " kmeans = KMeans(n_clusters=n_clusters).fit(X)\n", + " X['pred_label'] = pd.Series(kmeans.labels_)\n", + "\n", + " groups = X.groupby('pred_label')\n", + "\n", + " # Plot\n", + " fig, ax = plt.subplots()\n", + " for pred_class, group in groups:\n", + " ax.scatter(group.pet_len, group.pet_wid, label=pred_class)\n", + " ax.legend()\n", + " plt.title(\"sepal length vs sepal width with {} classes\".format(n_clusters))\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## MeanShift\n", + "Use MeanShift to cluster the data points. Remember that the bandwidth parameter of MeanShift determines how much to weigh the neighbors of each point when cluster centroids are recomputed. Vary the bandwidth parameter from very low to very high and see how the clustering changes. As with KMeans, plot a color coded scatter plot." + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nLiKSQ/8f9BvFtUvlTB8AAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for bandwidth in [0.4,0.6,1.2]:\n", + " X = df[['pet_len','pet_wid']]\n", + " meanshift = MeanShift(bandwidth=bandwidth).fit(X)\n", + " X['pred_label'] = pd.Series(meanshift.labels_)\n", + "\n", + " groups = X.groupby('pred_label')\n", + "\n", + " # Plot\n", + " fig, ax = plt.subplots()\n", + " for pred_class, group in groups:\n", + " ax.scatter(group.pet_len, group.pet_wid, label=pred_class)\n", + " ax.legend()\n", + " plt.title(\"sepal length vs sepal width with bandwidth {}\".format(bandwidth))\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### DBSCAN\n", + "The last clustering algorithm we'll explore in today's lab is dbscan.\n", + "Ref: http://scikit-learn.org/stable/modules/generated/sklearn.cluster.dbscan.html\n", + "dbscan has many parameters that you can set but we will mostly be concerned with:\n", + "- eps: max distance \n", + "- min_samples: minimum number of points within a neighborhood of a point for it to be considered a \"core\" point\n", + "\n", + "Run DBScan with varying epsilon and min_sample values to get a sense of how they affect the resulting clusters. First fix the min_sample values and vary epsilon to see how epsilon affects the clustering. Then use the epsilon that gave the \"best\" results and vary the min_sample values. Plot the color coded scatter plots as we did for KMeans and MeanShift. How do the clusters look as eps and min_samples are varied?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Applying Clustering to Real Data\n", + "The Iris dataset is a super simple dataset but served us well in better understanding kmeans, meanshift and dbscan. Let's now apply these clustering techniques to real data. For this we'll use the credit-loan dataset from assignment 2." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "PersonID 41016\n", + "SeriousDlqin2yrs 41016\n", + "RevolvingUtilizationOfUnsecuredLines 41016\n", + "age 41016\n", + "zipcode 41016\n", + "NumberOfTime30-59DaysPastDueNotWorse 41016\n", + "DebtRatio 41016\n", + "MonthlyIncome 33042\n", + "NumberOfOpenCreditLinesAndLoans 41016\n", + "NumberOfTimes90DaysLate 41016\n", + "NumberRealEstateLoansOrLines 41016\n", + "NumberOfTime60-89DaysPastDueNotWorse 41016\n", + "NumberOfDependents 39979\n", + "dtype: int64\n" + ] + } + ], + "source": [ + "loan_df = pd.read_csv('../data/credit-data.csv')\n", + "print(loan_df.count())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Prepping the Data\n", + "Before we do any sort of clustering, we need to prep the data a bit. Use the functions you'e written for your ML pipeline to clean the data, deal with missing values. We'll also get rid of the categorical features(PersonID and zipcode) - why shouldn't we include these two features when clustering on this data?" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
RevolvingUtilizationOfUnsecuredLinesageNumberOfTime30-59DaysPastDueNotWorseDebtRatioNumberOfOpenCreditLinesAndLoansNumberOfTimes90DaysLateNumberRealEstateLoansOrLinesNumberOfTime60-89DaysPastDueNotWorse
01.000000550505.0000002000
10.5477457100.4595657020
20.0442805100.0145205000
30.9142495540.79487512030
40.0265994500.0499664000
\n", + "
" + ], + "text/plain": [ + " RevolvingUtilizationOfUnsecuredLines age \\\n", + "0 1.000000 55 \n", + "1 0.547745 71 \n", + "2 0.044280 51 \n", + "3 0.914249 55 \n", + "4 0.026599 45 \n", + "\n", + " NumberOfTime30-59DaysPastDueNotWorse DebtRatio \\\n", + "0 0 505.000000 \n", + "1 0 0.459565 \n", + "2 0 0.014520 \n", + "3 4 0.794875 \n", + "4 0 0.049966 \n", + "\n", + " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n", + "0 2 0 \n", + "1 7 0 \n", + "2 5 0 \n", + "3 12 0 \n", + "4 4 0 \n", + "\n", + " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \n", + "0 0 0 \n", + "1 2 0 \n", + "2 0 0 \n", + "3 3 0 \n", + "4 0 0 " + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Do any necessary preprocessing: fill nans, drop rows if needed, etc\n", + "# For simplicity, simply drop PersonID, zipcode, MonthlyIncome and NumberOfDependents. \n", + "# also remember to drop the label SeriousDlqin2yrs \n", + "df = loan_df.drop(['PersonID', 'zipcode', 'MonthlyIncome','NumberOfDependents', 'SeriousDlqin2yrs'], axis=1)\n", + "df.dropna()\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
01234567
00.0000450.3863640.0000004.724704e-030.0357140.00.000000.0
10.0000250.5681820.0000004.299618e-060.1250000.00.062500.0
20.0000020.3409090.0000001.358502e-070.0892860.00.000000.0
30.0000420.3863640.0408167.436728e-060.2142860.00.093750.0
40.0000010.2727270.0000004.674778e-070.0714290.00.000000.0
\n", + "
" + ], + "text/plain": [ + " 0 1 2 3 4 5 6 7\n", + "0 0.000045 0.386364 0.000000 4.724704e-03 0.035714 0.0 0.00000 0.0\n", + "1 0.000025 0.568182 0.000000 4.299618e-06 0.125000 0.0 0.06250 0.0\n", + "2 0.000002 0.340909 0.000000 1.358502e-07 0.089286 0.0 0.00000 0.0\n", + "3 0.000042 0.386364 0.040816 7.436728e-06 0.214286 0.0 0.09375 0.0\n", + "4 0.000001 0.272727 0.000000 4.674778e-07 0.071429 0.0 0.00000 0.0" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Normalize the columns\n", + "from sklearn import preprocessing\n", + "\n", + "x = df.values #returns a numpy array\n", + "min_max_scaler = preprocessing.MinMaxScaler()\n", + "x_scaled = min_max_scaler.fit_transform(x)\n", + "df = pd.DataFrame(x_scaled)\n", + "df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now apply any of the three clustering algorithms from above on the data." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "# Do some clustering with kmeans/meanshift/dbscan\n", + "from sklearn.cluster import DBSCAN\n", + "dbscan = DBSCAN(eps=0.5, min_samples=10).fit(df)\n", + "pred_labels = pd.Series(dbscan.labels_)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Counter({0: 40902, 1: 114})" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from collections import Counter\n", + "plt.hist(pred_labels)\n", + "Counter(pred_labels)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We'd like to visualize the clusters just as we did for the Iris Dataset, but we can't realy visualize 9 dimensions. So instead, we'll use PCA to project our data onto a 2-dimensional subspace and then plot our 2-d points. Before we do PCA, also make sure to normalize the columns! If we don't normalize, a column like MonthlyIncome will completely drown out all the other columns which almost all have values in the range 0-10." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from sklearn.decomposition import PCA\n", + "# Run PCA to get a 2-dimensional projection of the data\n", + "pca = PCA(n_components=2)\n", + "X=df\n", + "pca.fit(X)\n", + "projection = pca.transform(X)\n", + "plt.scatter(projection[:,0], projection[:,1])" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(6620, 34396)\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "dlq_filter = (loan_df.SeriousDlqin2yrs==1)\n", + "1.*sum(dlq_filter)/len(dlq_filter)\n", + "\n", + "dlq_group = projection[dlq_filter]\n", + "not_dlq_group = projection[~dlq_filter]\n", + "print(len(dlq_group),len(not_dlq_group))\n", + "plt.scatter(dlq_group[:,0], dlq_group[:,1])\n", + "plt.scatter(not_dlq_group[:,0], not_dlq_group[:,1])\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Scatter the 2-dimensional projected datapoints color coded by cluster value and then do the same plot except color coded by their SeriousDlqin2yrs value. Try to reuse some of the functions you've written for the previous part of of the lab.\n", + "\n", + "It can be hard to see any coherent pattern when there is so much data. Here are some ways around this:\n", + "- Plot a smaller subset of the data\n", + "- Plot different classes/clusters of the data separately(but using shared axes) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Food for thought\n", + "- Does it matter if you perform clustering and then PCA or PCA then clustering?\n", + "- How can we better select the parameters in our clustering algorithms? " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.14" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +}