{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "##
NYU CSCI-UA 9473 Introduction to ML
\n", " ###
Unsupervised Learning (Part I)
\n", "\n", "
This week we will review some of the unsupervised learning models. Starting with the A priori algorithm, we will see how one can predict the probability of having customers simultaneously purchasing particular items from a grocery store or super market. We will then implement K-means and K-medoid and study how to determine the optimal value for K through the elbow method. We will implement the main Hierarchical clustering algorithms. Finally we will apply those algorithms to image segmentation and community detection.
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Part I Market Basket Analysis\n", "\n", "#### Market Basket analysis and the A priori algorithm\n", "\n", "Market basket analysis works by grouping together items that are frequently purchased together. Download the following two grocery datasets from \n", "\n", "- The [github of Jose Zuniga](https://github.com/jzuniga123/SPS/blob/master/DATA%20624/GroceryDataSet.csv). \n", "- [Kaggle's Basketballoptimisation page](https://www.kaggle.com/shwetabh123/basketballoptimisation)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\"Drawing\"\n", "\n", "image credit: [www.hybridexcellence.com](http://www.hybridexcellence.com/super-market-rack.aspx) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Association rule analysis is powerful approach that is used to mine commercial databases. The idea is to find product that are often purchased simultaneously. If the customers are represented by a vector $\\boldsymbol X\\in \\mathbb{N}^D$ (for ex. dummy encoding), where $D$ is the number of products that can be purchased, we then look for those entries in $X$ that often take the value $1$ simultaneously. \n", "\n", "For the two dataset above, we can represent the basket of each customer through a one hot encoding where we set the $(i,j)$ entry to $1$ is customer $i$ purchased any quantity of item $j$ (note that we could be more accurate and use additional binary variables to encode the exact quantity of each item that is being purchased). From this, the whole idea of Market Basket Analysis is to find subsets $\\mathcal{K}$ of the indices $1, \\ldots, num_items$ that maximize the probability\n", "\n", "$$P\\left[\\bigcap_{k\\in \\mathcal{K}} (X_k = 1)\\right] = P\\left[\\prod_{k\\in \\mathcal{K}} X_k = 1\\right]$$\n", "\n", "Given our encoding, we can replace the probability by its empirical version and try to find a subset $\\mathcal{K}$ that maximizes the quantity\n", "\n", "$$P_{emp} = \\frac{1}{N_{cust}} \\sum_{i\\in cust} \\prod_{k\\in \\mathcal{K}} X_{i,k}$$\n", "\n", "where $X_{i,k}$ is the binary variable associated to customer $i$ and item $k$.\n", "\n", "__Exercise II.1.1__ Represent each of the datasets above using an appropriate one hot encoding. " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "# put your code here\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Exercise II.1.1 The A priori algorithm__\n", "\n", "Running through all possible item sets ($2^{\\text{num items}}$) can be intractable on large datasets. It is however possible to use efficient algorithms that lead to a substantial reduction reagrding the number of passes over the data they require. This is the case of the A priori algorithm. The algorithm proceeds as follows\n", "\n", "- The first pass over the data computes the supports of all size 1 itemsets\n", "- The second step computes the support of all size 2 itemsets that can be formed from pairs of the single itemsets that survived the first step.\n", "- At the $k$ step (size $k$ itemsets), we only consider those size $k$ itemsets that are formed by an item set which appeared at the previous step together with a single item that as retained by step 1. \n", "- The itemsets with support less than the threshold are discarded. \n", "\n", "The key idea here is that we can focus our attention only on those itemsets of size $K$ for which all of the size $K-1$ subitemsets appeared at the previous step. That reduces the number of itemsets we need to consider and leads to a significant reduction in the computational cost.\n", "\n", "In pseudo code, we have \n", "\n", "- Build all size one itemsets and store them in $S_1$\n", "\n", "- for k=1,...desired size\n", "\n", " Go over all possible size K-1 itemsets $S_{k-1}$ and build the size K sets $S_k$ from $S_{k-1}$ and any elements from the size $S_1$ that are not alread in $S_{k-1}$ and such that all size $k-1$ subitemsets $S\\subset S_k$ are in $S_{k-1}$\n", "\n", "- Count the support and discard the itemset if the prevalence (i.e the empirical probability defined above) is lower than some threshold $t$. \n", "\n", "__Code the 'A priori algorithm' and apply it to the grocery datasets that you loaded above__. You can downsample those datasets if it makes it easier. " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# put the code here\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once all the itemsets have been computed, they can be used to define association rules. For any two subsets, $A$ and $B$ of the item set $\\mathcal{K}$, $A\\cup B = \\mathcal{K}$, one can define the total $T(A\\Rightarrow B)$ to be the probability of observing the item set. and use $C(A\\Rightarrow B)$ to encode an estimate of the posterior \n", "\n", "$$C(A\\Rightarrow B) = P(A\\Rightarrow B) = \\frac{T(A\\Rightarrow B)}{T(A)}$$\n", "\n", "where $T(A)$ is the empirical probability of observing the item set $A$.\n", "\n", "Together those two quantitities can be used to predict the items $B$ that a customer might want to purchase given that he bought the items in $A$. Or conversely, the items $A$ that are usually bought by customer that buy the items B. I.e. If we set thresholds $t$ on both $C(A\\Rightarrow B)>t$ and $T(A\\Rightarrow B)$ we could look for all transactions that have some proudct as consequent and for which the probability estimates $C(A\\Rightarrow B)$ and $T(A\\Rightarrow B)$ are sufficiently large. \n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "\n", "### Part II: Clustering\n", "\n", "\n", "##### Exercise 1.1. General K means\n", "\n", "Consider the dataset given below. Implement the K means algorithm and run it on top of this dataset. " ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n5oCYRQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn.datasets import make_blobs\n", "import matplotlib.pyplot as plt\n", "\n", "n_samples = 500\n", "random_state = 170\n", "X, y = make_blobs(n_samples=n_samples, centers = 4,random_state=random_state)\n", "\n", "plt.scatter(X[:,1], X[:,0])\n", "plt.show()\n", "\n", "\n", "def Kmeans(data, K):\n", " \n", " '''function should implement a simple K means clustering with random \n", " initilization of the centroids. K is the number of clusters'''\n", "\n", "\n", " return " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Exercise 1.2. The Elbow method\n", "\n", "Run your algorithm with a number of clusters $K=1,2,3,4,5,6,7,8,9$ and $10$. For each of those values, Compute the Within-Cluster-Sum of Squared Error (i.e. $E = \\sum_{\\mathcal{C}_k}\\sum_{i\\in \\mathcal{C}_k} (c_k - x_i)^2$) then plot this error as a function of $K$. What do you notice?\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Exercise 1.3. The importance of initialization\n", "\n", "Extend your implementation of K means from the previous exercise so that it takes an additional argument specifying the initialization. You should contain implementations of each of the following approaches\n", "\n", "- Random partitioning (the method starts from a random assignment of the points)\n", "- Forgy (The method picks $K$ feature vectors at random and assign the remaining points to the nearest centroid)\n", "- K means++ (see below)\n", "- MacQueen (see below)\n", "- Kauffman (see below)\n", "\n", "In the Macqueen Approach proposed by MacQueen (1967), one chooses K instances of the database (seeds) at random. We then assign, following the instance order, the rest of the instances to the cluster with nearest centroid. After each assignment a recalculation of the centroids has to be carried out\n", "\n", "In the Kauffman approach, we first select the most centrally located instance. Then for every non selected instance $x_i$ repeat the following steps:\n", " - For every non selected instance $x_j$ calculate $C_{ji} = \\max(D_j -d_{ji},0)$ where $d_{ji} = \\|x_i - x_j\\|$ and $D_j = \\min_{s} d_{sj}$. $s$ being one of the selected seeds\n", " - Calculate the gain of selecting $x_i$ as $\\sum_{j} C_{ji}$\n", "Select the not yet selected instance $x_i$ which maximizes $\\sum_{j} C_{ji}$. If there are $K$ selected seeds then stop. Otherwise go to step 2. \n", "\n", "In K means++, we choose a center uniformly at random among the points. For each point $x_i$ from $\\mathcal{D}$, compute the distance $D(x_i)$ between $x_i$ and the nearest centroid that has already been chosen. Choose a new point at random as the next center using a weighted probability distribution where a new point is chosen with probability proportional to $D^2(x_i)$. Repeat the steps until $K$ centers have been chosen.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def Kmeans(data, initialization):\n", " \n", " '''function should implement K means clustering for each of the \n", " initializations listed above'''\n", "\n", "\n", "\n", "\n", "\n", " return " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Exercise 1.4. Semisupervised: Constrained K means. \n", "\n", "Clustering is traditionally viewed as an unsupervised method for data analysis. In some cases however, information about the problem domain might be available in addition to the the data instances themselves. Within such a framework, one approach is to define so-called 'Must Link' and 'Cannot link'. The former referring to points that must be placed in the same cluster. The latter referring to points that cannot be placed in the same cluster. One can then extend K-means as follows\n", "\n", "1. Let $C_1, \\ldots C_K$ denote the initial cluster centers\n", "2. For each point $x_i$ in the dataset $\\mathcal{D}$, assign the point to the closest cluster $C_j$ such that the point does not violate any of the constraint. If no such cluster exist, return Failure\n", "3. For each cluster $C_j$, update its center by averaging al the points $d_j$ that have been assigned to it\n", "4. Iterate between (2) and (3) until convergence \n", "5. Return ${C_1, \\ldots C_K}$\n", "\n", "The constraint check can be carried out as follows. For every point $d_i$ in the dataset with closest cluster $C_j$, you need to check that for every $(d_i,d_k)$ in the set of all constraints, the constraint is satisfied. \n", "\n", "Apply this extension to the dataset below. setting as the 'Must link' a unique cluster for all the samples in consi and as 'Cannot link' a different cluster for the points in distinct consi, consj." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYAAAAD8CAYAAAB+UHOxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi40LCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcv7US4rQAAIABJREFUeJztnXuQVdWd77+/bqBBKgF5TPOyxb5B\nrsFwo7fLSUfK4vpEcUCNSSTWDOYm02McSzIpTel1xkvMdeKMqbFIZZKR8TqSKSpKmChmIAEfwyWJ\nMCO+UGRA0kWUpm2RBJIoNND9u3+cfcjp03uf/Vr7sfb+fqq6us/u3XutvXvt32+t32uJqoIQQkj5\naMq6A4QQQrKBCoAQQkoKFQAhhJQUKgBCCCkpVACEEFJSqAAIIaSkUAEQQkhJoQIghJCSQgVACCEl\nZUTWHWjEpEmTdObMmVl3gxBCrOHFF198T1UnBzk31wpg5syZ2L59e9bdIIQQaxCRXwY914gJSEQe\nEZF3ReR1j9/PF5EjIvKK83WPiXYJIYREx9QK4FEA3wbwvQbn/FRVrzbUHiGEkJgYWQGo6hYAvzJx\nLUIIIemQZhRQp4i8KiI/FpE5KbZLCCHEhbScwC8BOFNVfyciVwF4EsAstxNFpAtAFwC0tbWl1D1C\nCCkfqawAVPU3qvo75+cNAEaKyCSPc1eqaoeqdkyeHCiSiRBCSARSUQAiMkVExPn5AqfdQ2m0TQgh\nxB0jJiAR+T6A+QAmich+AP8bwEgAUNV/AHA9gC+JyEkARwHcoNyLMnf0re5D993d6H+rHy1tLWi/\nrx2tN7Zm3S1CSEIYUQCqusTn999GJUyU5JS+1X3Y3bUbgx8MAgD6f9mP3V27AcAaJZCWAqOiJEWB\ntYAIAKD77u5Twr/K4AeD6L67O6MehaOqwPp/2Q/o7xVY3+o+K9shJA2oAAgAoP+t/lDH80ZaCsx2\nRUlILVQABADQ0tYS6njeSEuB2a4oCamFCoAAANrva0fTaUOHQ9NpTWi/rz2jHoUjLQVmu6IkpBYq\nAAKg4uidvXI2Ws5sAQRoObMFs1fOtsa5mZYCs11RElJLrstBk3RpvbHVGoFfT7XfSUfnpNVOFUYc\nkSSRPIfjd3R0KPcDKC4Ubo2pD80FKqsNm1ZmJH1E5EVV7QhyLk1AJBMYTukPI45I0lABkEygcPOH\nEUckaagASCZQuPnDiCOSNFQAJBMo3PxhxBFJGioAkgkUbv7YHppL8g/DQEkmpB1OaSs2h+aS/EMF\nQDKjLMKN4a4kr9AEREhA+lb3YevMrdjctBlbZ24NFLLKcFeSZ6gACAlAVEHOcFeSZ6gACAlAVEHO\ncFeSZ6gAiFGimElsIKogZ7gryTNUAMQYebR3m1JIUQU5w11JnqECIMbIm73bpEKKKsgZy0/yDMNA\niTHyZu9upJDCCuA4eQtlCXcl9mFEAYjIIwCuBvCuqp7r8nsBsALAVQA+AHCTqr5kom2SH1raWiqz\nbZfjWWBaIVGQk6JhygT0KIAFDX5/JYBZzlcXgO8aapfkiLzZu8vogC2qE54kgxEFoKpbAPyqwSmL\nAXxPK2wDMF5Epppom+SHsPbupITVky/34ML7n8O3PnYEx0cO3fCoyA7YPDrhSb5JywcwHcDbNZ/3\nO8d6608UkS5UVgloa2tLpXPEHEHNJPW7XVWFVfUaUXny5R7c9cPXcPTEAHrmAIp+fPqnozDhN00Y\nXfAyDCZ9HqQc5M4JrKorAawEKltCZtwd4kHc+jZJCasHNu7G0RMDpz5vmzOAbXOOYvr4Mfj5nZ2R\nr5sVYZ5z3pzwJP+kFQbaA+CMms8znGPEQkyYGpISVgcOHw113I282NHDPucy+jxIPNJSAE8B+BOp\n8AkAR1R1mPmH2IGJeP+khNW08WNCHa8nT3b0sM85b054kn+MKAAR+T6ArQBmi8h+EfmCiNwsIjc7\np2wA0A1gL4B/BHCLiXZJNpiYvSclrO64YjbGjGwecmzMyGbcccXsQH+fp2S2sM+ZSWckLEZ8AKq6\nxOf3CuDPTbRFssdEvH9SG8Jcc950ABVfwIHDRzFt/BjcccXsU8f9yJMdPcpzZq4CCQNLQZDQmJq9\nt97Yis59nZg/OB+d+zqHCa6otvhrzpuOO66YjWnjx+DA4aN4YONuPPlyMJdTnuzoSZp08uLnINmS\nuyggkn/S2M4xTphobSgoAPQcPoq7fvgaAAxbCTz5cs+Q1cL/+tOp+NBfHxxiBkrKju4X4RP0OYeN\nyEoqBJfYh1SsM/mko6NDt2/fnnU3SAZsnbnV3fxxZgs69zUO57zw/ufQ4xL1UwkFvfjU53pFAVT8\nBd8cfSYm/OPhRLdwrBfCQEXRhLXZR7lOnGdL8o+IvKiqHUHO5QqA5JJjb/VDPI77ETQUtD5nAACO\nnhjAX4/txc/3XYwkMZUHEeU6efJzkGyhD4DkksPj3FemXsdrCRoKaiJnICqmhHCU6+TJz0GyhQqA\n5JI18/rRP2KosO8foVgzz19ABg0FjZszEAdTQjjKdZgvQKpQARQcW6M93rpwFP5pQT/e+/AgFIr3\nPjyIf1rQj7cuHNXw7/pW96H12rfwnftG48GHTkPnzmZMHz8G37juY8McwHFzBuJgSghHuQ7zBUgV\nOoELjClHYxZ4OWjdBHkVt/vV0YIfLBrAj89yzwmojwIKkzMQl7j1lExfhxSDME5gKoACY3u0R1jh\n7HW/7314ELd/qWLX91MihNgOo4AIAPujPa45b7qroPZSDF73NfE3v48nOnpiAA9s3B1YAXB2TYoM\nFUCBydsWjVXiCNVGSV6tHvd76MNDV7luUT5ufQJQuoQpKrxyQSdwgTHhaDTtRI5bbdMrdv+Bjbtd\n77d/hGLtRceHHKuP8vHq05vL3sxNYbg0yFMlVJIOVAAFJm60RxICIW61zUax+/X3OzB1BFZffQLb\n5gx1JNdH+Xj16eShk65tpWFCyyJ6K0+VUEk60ARUcOJUh0xi1664folp48e4lnmozurr7/e3L/fg\nFz6O5LACPWkTWla1emz3GZHwUAEQT5IQCHH9EndcMds1PNQrdt/LkRykT80Tm6FHNZXCcLVktbdv\nXn1GJDloAiKeJFEyIK5f4przpuMb130M08ePgQCeSV4m+nT2irMzSZjKaibODOHywRUA8aT9vnbX\nRLI4AiFMKWmviJQgs3qTfUo7CiarmXgaZb5JvmAiGGlIlFrzprJbbc1ijkuZ753Eh5nAJBNMCi4T\nWcw2x7Tb3HeSLcwEJplg0nkZxw7+5Ms92HT/biz+oaDlZCUL2LYkLu7tS9KACoAYI67Qri3vcO+U\nUWjuHR6H72cHr2YKf/0no04J/yppRNIQYhNGooBEZIGI7BaRvSJyp8vvbxKRgyLyivP1RRPtknwR\nNWqoKrR7Dh+FolLeYdUffgAdPVSAB3FAVzOFa+v/1MKYdkJ+T2wFICLNAP4ewJUAPgpgiYh81OXU\nx1X1487Xw3HbJfkjahihW3mHLbNP4AeLBkKHYFYzhevr/1RJKpLG1n0XSLkxYQK6AMBeVe0GABF5\nDMBiAG8YuDaxiKhhhF7lHX581lF85/Fwe/NWM4XXXnQcn/9JyxAzUFIx7Vll7hISFxMmoOkA3q75\nvN85Vs+nRGSHiKwVkTO8LiYiXSKyXUS2Hzx40ED3ikeeZ5utN7aic18n5g/OR+e+zkAC0OTWjNVd\nvrbNGRiyo9jA1BGJhVGyhg6xlbQygX8EYKaqzgXwNIBVXieq6kpV7VDVjsmTJ6fUPXsoYsVGk1sz\n1mYK//ucATx4F3DkpbNxyYF5nslmcZUpa+gQWzFhAuoBUDujn+EcO4WqHqr5+DCAvzXQbikxFWqZ\npzjzalavqa0Zg2YKmzLdsIYOsRUTCuAFALNE5CxUBP8NAD5Xe4KITFXVXufjIgC7DLRbSkzMNvNo\nszZd3iEIppRpEiUzCEmD2CYgVT0J4FYAG1ER7GtUdaeI3Csii5zTbhORnSLyKoDbANwUt92yYqJA\nG23WFUyZbuLuu0BIVhhJBFPVDQA21B27p+bnuwDcZaKtsmNitpmlzTpp01OY65s03TBzl9gIy0Fb\nhonZZhJlnoOQtAM77PVZ/the8hwJZxMsBldCwhZtMzVrN1HgzfT18+QMJ8FgtdTGhCkGxxVACQmz\nijA5a0/a9BTl+tW8hXP++RwAwK4/3sUZZc6hD8scLAZXUoLarE1W+Ew6XDLq9fMYFUW8Yd6FObgC\nIA0x+bIlbXOfeNXEUMercEZpF1n5sIoIFQBpiMmXLelwyUMbDoU6XoUzSrug894cNAGRhphOckoy\nXDKqII9rmqIjOV24d7E5qABIQ2x62aIK8jhKjv6DbGDehRmoAIgvtrxsUQV5HCVn0klOSNpQAZDC\nEEeQR1Vy9B8Qm6ECIIUi7dUKK4ESm2EUECExYEQKsRkqAEJiwEqgxGZoAiLWk3UYpi1OckLq4QqA\npIrpKo5F3CKTkLSgAiCpkYSwZhkHQqJDBUBSIwlhzTBMQqJDBUBSIwlhzcJghESHCoCkRhLCmmGY\nhESHCqCEZLWdXhLCmmGYhETHSBioiCwAsAJAM4CHVfX+ut+3APgegP8O4BCAz6rqPhNtk3BkWbws\nqcJyDMMkJBqx9wQWkWYAewBcBmA/gBcALFHVN2rOuQXAXFW9WURuAHCtqn7W79rcE9g8Se/LS4gJ\nss7tsJm09wS+AMBeVe1W1eMAHgOwuO6cxQBWOT+vBXCJiIiBtklIGDVDkiauiZG5HelhQgFMB/B2\nzef9zjHXc1T1JIAjABrv00cSgVEzJElMCO+85nZk5TtLktw5gUWkS0S2i8j2gwcPZt2dwsGoGZIk\nJoR3HlepRV2VmFAAPQDOqPk8wznmeo6IjAAwDhVn8DBUdaWqdqhqx+TJkw10j9TCqBmSJCaEdx5X\nqXldlcTFRBTQCwBmichZqAj6GwB8ru6cpwAsBbAVwPUAntO43mcSGUbNkKQwsT+C6X2oTZDHVYkJ\nYq8AHJv+rQA2AtgFYI2q7hSRe0VkkXPa/wUwUUT2AvgKgDvjtkvKRxFtsEXDhIkxj6vUPK5KTBA7\nDDRJGAZKqtTnLwAVwZK1YCDDKWIIp03jL0wYKBUAsQLmL5CssUWxhVEA3BCGWEFRbbDEHoroO8td\nGCghbhTVBktIllABECtg/gIh5qECIFaQx8gQQmyHPgALscUZZZoi2mBJepT1vWkEFYBlZFnOmRSf\nogpJvjfu0ARkGUVNSSfZU9R6NwDfGy+oACyD4ZAkKYosJE28N0XMRKcCsAyGQ5KkKPLkIu57U9TV\nERVAQiQ1W2A4JEmKvE0uTL5Dcd+boq6OqAASIMnZAsMhSVIkPbkII9BNv0Nx35uiro5YCygBWLeG\n2EpSUUBhi6nl7R3KW38awVpAGVPU2QLJL6YEd1K5Fo1MKG7t5e0dyuMeBSagCSgB8mZLTZMiRkrk\nHRsclGEFet7eoaKaXqkAEqCsjlobBFERscFBGVag5/Edar2xFZ37OjF/cD4693UaFf5ZTZyoABKg\nqLMFP2wQREUkb+YSN8IK9DK9Q1lOnOgDSIgy1q2xQRAVERP78CZN9V0I46coyzsU1j9iEq4AiDHy\nZrctC3k0l7hxyoTyyrvoXPanaH1zNvDgucCONVl3LVOynDhRARBj2CKIioZV5pIda4Af3QYceRuA\nVr7/6DZPJVCGoIIsJ040AQWgqBUSTRNlmU/MYI255Nl7gRNHhx47cbRyfO5nhhwuSwXPLENMYykA\nEZkA4HEAMwHsA/AZVf21y3kDAF5zPr6lqovitJsmZRmEprBGEJFIxJ4MHdkf+HiWtvE0yXLiFNcE\ndCeAZ1V1FoBnnc9uHFXVjztf1gh/IN3IlrjLXZPL5TIsvUkG5RnGzQh8PCvbeBZjP8kQ00bEVQCL\nAaxyfl4F4JqY18sdaQ3CuC+XyVAyxvOXg7D/ZyOToUvuAUaOGXps5JjK8TqysI2XbezHVQCtqtrr\n/PwOAC+1NVpEtovINhGxSkmkNQjjvlwmVyqM50+HrFdZYf/PYSZDnvc29zPAH30LGHcGAKl8/6Nv\nDbP/A9kEFZRt7Pv6AETkGQBTXH51d+0HVVUR8aosd6aq9ohIO4DnROQ1Vf2FR3tdALoAoK2tza97\niZOWgybuSsPkSoXx/MmTB99SlPIMQfINfO9t7mdcBX49WdjGyzb2fVcAqnqpqp7r8rUOQJ+ITAUA\n5/u7Htfocb53A9gM4LwG7a1U1Q5V7Zg8eXKEWzJLWiF2cVcaJlcqjOdPnrRnmm4z8qTKM5i8N9O2\ncb9VV9nGflwT0FMAljo/LwWwrv4EETldRFqcnycBuBDAGzHbTZU0HDRxl7sml8uM50+eNGeaXnbt\niVdNTKQ8Q2r3tmNNJZFs+fhACWV9q/uw6/O7hjyHXZ/fNUQJlG3sx1UA9wO4TETeBHCp8xki0iEi\nDzvnnANgu4i8CuDfANyvqlYpgDSIu9IwuVKxKrHIUtKcaXrNyA9tOBT6/xxkMpTKvYVMKAOAPcv2\nACfqDp5wjjuUbeyXckMYJnaRrAm7QUocNjdtBtxecwHmD8432hYQ8d52rKkkgx3ZXwkJveSexn6C\nB891hH8d484A/uJ11z/ZLJs9Lzdf53u3ZYA0ZQ43hGlAHpxvhKTp4Ey7WFzoe6vO5qsZwtXZPOCt\nBEIklGVNnmVO6VYANm3tRogJ0lxtRCLCbD7K3/xs0s9w8tDJYcdHTByBee/NC9PjUKQtc8KsAEpX\nDK5sYV6E5N6uHWU2HyKhrMqsFbMgo2TIMRklmLViVtCeRiLPMqd0JiAbaqcTYhqjNZrC2uv9GDfD\nYzbvUTYC+H17IfqRVc2dPMuc0imAom7unHfoeC8IUez1flxyz9BrAr6z+VPthWwzi2KFeZY5pTMB\n5X45nCJplSIoW32VQtOonHNUQpSHAKKN2yzLbuRZ5pTOCRwF07PXpGbDYa6bpmOQjnfzZLaiWj4e\nnjGlyw8n3nyUcZt7J7hh6AQ2iOnZa1Kz4UwqOwYkz06wWrIuzhaUTFdUAcs5J/Uso4zbshV4CwMV\ngA+mB09SgzHJyo5xsaG+ShJCNU9CMA5D7uOBFejbeenQE+rs9VGeZdBnFWXc2jIByQIqAB9MD56k\nBmOUyo5hjsfBhvoqpoVqkrP0TOsI9TZj97/eir6918LLXh/2WYZ5VlHGrQ0TkKygAvDB9OBJajAm\nVdnRBHl2glUxLVSTnKVnXkfomKD7Z39Wsfn/xevDnLVhn2WYZxVl3NowAckKKgAfTA+epAZj2OtG\nFcpRzRpZbXkXFNNCNclZepoCLcp9hH2WYdqIMm5tmIBkRenyAMJiOnkkqWSU1htbceTnR3Bg5QFg\nAEAzMGXpFN8XI0y7ea5pEhfTsdpJJv/kvY5Q2GcZto0osfxZxP/bAMNALWJ993qseGkF3nn/HUwZ\nOwXLzl+Ghe0LAZgJdWt0faD44ZwmQyuLEnoY9T7yGpJcBsKEgVIBWML67vVY/vxyHBs4durY6ObR\nWP7J5VjYvjC2cPa7PpB+WWHbKUr2cxr3UZRnVUtW90QFYBlBBsrlay9H7/u9w/526tip2HT9ptjC\n2e/6QPFXANYTokZPIsLJdI0gi8lyVcNEMIsIGgL3zvvvuP599XhcJ6bf9QFGU+SaEDtkJRKiGrJ9\nGxLu4mBL8hkVQMYEHShTxk5x/fvq8bjC2e/6QHrRFGUQEMYJUaMnEeEUsP3Iyifk/r8miTIebUk+\nowLImKADZdn5yzC6efSQY6ObR2PZ+csAxBfOftevknQ4JwvHRSRETf1Qwimo4A3YfiTlE2H/X1NE\nHY+2JJ9RAWRM0IGysH0hln9yOaaOnQqBYOrYqUMctEA84Rzk+mlgy9K5nsxXLQFr9AAhhFMYwRuw\n/Ugz4yQqkAYk6ni0xVxKBZAxYQbKwvaF2HT9JuxYugObrt/kKZzXd6/H5Wsvx9xVc3H52suxvnt9\noL5Ur//0iKfxtdu/hrEfGZu6MLNl6VyLqVVLLCUSYoeswGMujOAN2H6kmXGG+/9GHY+2JJ/FUgAi\n8mkR2SkigyLi6XUWkQUisltE9orInXHaLBphBsqeW/Zg84jN2CybsXnEZuy5Zc+wc6rhnL3v90Kh\n6H2/F8ufXx5YCWRtgrFl6VyLiVVL7OceoqZ+4DEXRvAGbD/SzDjE6sY0ccZj3rPfgZhhoCJyDoBB\nAA8BuF1Vh8VsikgzgD0ALgOwH8ALAJao6ht+1y9LGGgQ9tyyBwe+e2DY8Wlfmoazv3P2qc9Bwjkb\nkXWop41JQSbyI7J+7q5E2aw9AKFDUOt3IQMqq4sGm8aYwsbxmFoYqKruUtXdPqddAGCvqnar6nEA\njwFYHKfdMnJg5XDh73Y8SDhnI7I2wdiydK7FxKrF5HM35o9wMev07bwUWx9YEevaoWfGIXcMO9VX\nA8/BxvEYhjRqAU0HUDuN2A/gD71OFpEuAF0A0NbWllinrMs8HAh2fMrYKa4rAK8wz3pM17CJ8pxt\nq9tioo6QqeceuV5ToyQu53jf3muw+1+XYvCYhLu2CULu/2uybpVt4zEMvgpARJ4B4CY97lbVdaY7\npKorAawEKiYg09cHLC1q1gx3JdA89OOy85dh+fPLMeenc7DoXxbh9EOn4/DEwxhz9xiXPx5e/+cr\ny76C0/7yNCNF0ax8zhEwUZzNVDG6Rv4Iz/74bfTuCN7umVsxeGyokvK9tg9JTcQiPYcS4qsAVPVS\nv3N86AFwRs3nGc6xzDA5OEwMYL8ibABw/IbjGLl6JAQy5Pi0rmlDPi9sX4jmdc1oerQJo46PAgCc\nfuh0NP1lE/r+oG9I3+rr//S+34u/mvxX+Pr/+TrGrRgX+6Us00sYd5ZoqsKn8TDLmlm3afNgkhOE\nrE2ZtpCGCegFALNE5CxUBP8NAD6XQruemBocJgawmxBe/vxyADilBNZ3r8fyBctx9YGrMe//zUPT\nYBMGmwYxsGRgiAO4yrgV49B/3H+mtuKlFUOKvwHAsYFj+Lsz/g6b9vk7jP3gSxgOE6aGSKakgNE+\nps2DSU4QkizHXSTihoFeKyL7AXQCWC8iG53j00RkAwCo6kkAtwLYCGAXgDWqujNet+NhKtTQRPif\nlxBe8dKKYeesXboWX37ky7jt0dvw5Ue+jG9e800Aw+P+j7019HpV6gVvXIexHzaGdNpOkmGWppOb\ngk4Qojhz4/Q186S+FIkbBfSEqs5Q1RZVbVXVK5zjB1T1qprzNqjq2ar6X1T1vridjkuQwRFkEJiY\n4QYRwo3OcYv7PzzhsOv59YI3SP2fONiSDVkkIkWtBEziMh0RE2SCEDU/Is6Od2UqRVLKTGC/wRF0\nEJiY4QYRwo3OcVtBrPvUOhwfdXzIMTfBG7T+T1SKHkJnEpOzziTDLE0mNwWZIMRZZUfpq62lSKLC\n/QBcCJqUY2K3pMGpg3hs0WPY+omtp35fvxFLdZbvFtnz1QlfhbpkIXU834GujV0NHYp9q/uw86s7\nIb2CX0/4NbbcuAWXLbss9fo/eSGr0GAbk41M4ffM096EyER7WYeYh0kE457ALgQ17USJ3Kh/2ZsO\nNGHJqiU4bdRpeO7851yjgBpF9lz8xYvx7PnPDmun57IedD7knUFa7UfTB5UZ2IRDE3Ddw9dh9gWz\ngRJaaLIMWS1KtFQSOR9pO3Pjtmdb6HMpTUB+hDHthF1mur3sclTw2XWfbVjkbdyKcaeEf5XBDwax\naO2iSGacsi11/cjyeRQhWiop23nafqS47dn2XlEBuJDkoIv6snv9vqm3KVIZ56IIHVN28yyfRxGi\npZISfGn7keK2Z9t7RROQC6aSctyIusRs9Hfz2+cPEfjVsNBGiWW2x0mbXmpn+TxMZQGHwbSdOknB\nl3Yphjjt2fZecQXgQVKlXKOuLoL+XdBy0FmHaMadvZuecWb5PNKe5SZhrjG1irE9Bj/r9yosVAAp\nE/Zlr74Qu/54F2SMYMTEEQ3/LkhiWZR+mMSEADI948w6ZDXN2vFJmGtMCL4ixOBnPY7CwjDQHBMl\nPHDuqrmuYaECwY6lOxLraxhM1L7PZf18S0gqtDKuWYn/UzOkth8ASZYoM7VGSWNRt4o0jYnZu21L\n7TyRlNM57irGNgdqEaACMExYG2YjoRzlhfDK7r1oxkWxtoo0iQkBZNtSO0vqx+TEqybmUnkWIRrK\nNqgADBLWhunnsI3yQixsX+gaFrpl/5ZAvoE0MDV7t2HP1Uak4fB0G5PvrHoHU5ZOyZ3y5KoufegD\nMEhYG6bf/r0mSwSY8A2YDB3MOl3eNGHvJ63yD7bZ1Ys2LrKApSAMEXYwhjXZ+FUCNZmPEHerSNNx\n90XaZi/Ks0mr/INtdvUijQsbKKwJKO7yOkpIWliTTZBKoKbMHHErf9qW4p4mUZ5NWpvA065OGlFI\nBWAinjjKS+1mw5RRgpO/O+n6ciZdjrkWL99A0Mqfts0k0yTKszGZONVorNOuThpRSAVgYrYa5aWu\nj0wZMXEEVBUDhwZcX864Qjko1Rni2I+Mxddu/xqeHvG0Z9E5LziT9CbKszElmP3GOqOlKtieYZwU\nhfQBmJitRq3pUWvD3DpzK04eOjnk9/V23oXtCxOtv2/Kdp9FvRpbiPJs0twEvux2ddtKNKdJIVcA\nJmarJmZoeTCbmLLdcybpTdRnY8K/w5WZP/RfeVPIFYCJ2aqJGVqcyoCmwuFMKqGyzyQbkdWzyXJl\nZkvIZh4mYnkllgIQkU8DWA7gHAAXqKpr0L6I7APwWwADAE4GjVGNiqnlddyXOurLaXLJalt5WhKO\nJEuXN8ImswrfAW9iJYKJyDkABgE8BOB2HwXQoarvhbm+bYlgbkSZJZlM3inzfrMkOWxKMCvbO5Ba\nIpiq7nIajHOZQhNlFWHabAOkP0MkxcYmswrfAW/S8gEogE0iogAeUtWVKbVrJaaXrHmw3ce1F9ti\nby4LtplV8vAO5BHfKCAReUZEXnf5WhyinXmqej6AKwH8uYhc1KC9LhHZLiLbDx48GKKJ4lC05J24\niXlF2CikaBRtjJYVXwWgqpeq6rkuX+uCNqKqPc73dwE8AeCCBueuVNUOVe2YPHly0CYKRdFCLuOG\n4TGML38UbYyWlcRNQCIyFkDQDId2AAAGlklEQVSTqv7W+flyAPcm3a7tFGnJGtdebJO9uUwUaYyW\nlViJYCJyrYjsB9AJYL2IbHSOTxORDc5prQB+JiKvAvgPAOtV9Sdx2iV2ETdZiclOhCRDLAWgqk+o\n6gxVbVHVVlW9wjl+QFWvcn7uVtX/5nzNUdX7THQ8C8pWT8TU/ca1F9PeTEgyFDITOAlsSnwxgcn7\njRuGxzA+QpKBO4IFJOnEl7zttmVTog/JHwzbzQ7uCJYASToiTc62TV2LjlcSlbKtlm2mkNVAkyBJ\nR6TJMEdT16LjlUSFYbv2QAUQkCQdkSZn26auRccriQpXj/ZABRCQJBNfTM62TV2LiT4kKlw92gN9\nACFIKvHFZE13k9diog+JAnePsweuAHKAydk2Z+4kazgG7YFhoMQ6GGJIiDcMAyWFhSGGhJiDJqAc\nU7bSE0FgiCEh5uAKIKdwpusOQwwJMQdXADmFM113GGJIiDmoAHKKrTPdpM1WTFAjxBxUADnFxplu\nGls3MsSQEHPQB5BTbEymaWS2MimgmaBGiBm4AsgpNs50bTVbEVJWuALIMbbNdFvaWtz3EMix2YqQ\nMsMVADEGHbSE2AUVADGGjWYrQsoMTUDEKLaZrQgpM7FWACLygIj8p4jsEJEnRGS8x3kLRGS3iOwV\nkTvjtEkIIcQMcU1ATwM4V1XnAtgD4K76E0SkGcDfA7gSwEcBLBGRj8ZslxBCSExiKQBV3aSqJ52P\n2wDMcDntAgB7VbVbVY8DeAzA4jjtEkIIiY9JJ/D/BPBjl+PTAbxd83m/c4wQQkiG+DqBReQZAFNc\nfnW3qq5zzrkbwEkAq+N2SES6AHQBQFtbW9zLEUII8cBXAajqpY1+LyI3AbgawCXqvr1YD4Azaj7P\ncI55tbcSwEqgsiOYX/8IIYREI24U0AIAXwWwSFU/8DjtBQCzROQsERkF4AYAT8VplxBCSHzi+gC+\nDeBDAJ4WkVdE5B8AQESmicgGAHCcxLcC2AhgF4A1qrozZruEEEJikutN4UXkIIBfZt2PGEwC8F7W\nnTAA7yNf8D7yRd7u40xVnRzkxFwrANsRke2q2pF1P+LC+8gXvI98YfN9sBYQIYSUFCoAQggpKVQA\nybIy6w4YgveRL3gf+cLa+6APgBBCSgpXAIQQUlKoAAwiIp8WkZ0iMiginlEBIrJPRF5zcie2p9nH\nIIS4j1yX+RaRCSLytIi86Xw/3eO8Aed/8YqI5CZJ0e/5ikiLiDzu/P7fRWRm+r30J8B93CQiB2v+\nB1/Mop9+iMgjIvKuiLzu8XsRkW8597lDRM5Pu49hoQIwy+sArgOwJcC5/0NVP57T8DHf+7CkzPed\nAJ5V1VkAnnU+u3HU+V98XFUXpdc9bwI+3y8A+LWqfgTAgwD+Jt1e+hNinDxe8z94ONVOBudRAAsa\n/P5KALOcry4A302hT7GgAjCIqu5S1d1Z9yMuAe/DhjLfiwGscn5eBeCaDPsSliDPt/b+1gK4REQk\nxT4GwYZxEghV3QLgVw1OWQzge1phG4DxIjI1nd5FgwogGxTAJhF50al+aiM2lPluVdVe5+d3AHjt\nVTlaRLaLyDYRyYuSCPJ8T53jlFw5AmBiKr0LTtBx8inHbLJWRM5w+b0N2PBODIF7AockSHnsAMxT\n1R4R+QNU6ij9pzO7SA1D95E5je6j9oOqqoh4hbyd6fw/2gE8JyKvqeovTPeVePIjAN9X1X4R+TNU\nVjUXZ9ynUkAFEBK/8tgBr9HjfH9XRJ5AZZmcqgIwcB+hynwnRaP7EJE+EZmqqr3OUvxdj2tU/x/d\nIrIZwHkAslYAQZ5v9Zz9IjICwDgAh9LpXmB870NVa/v8MIC/TaFfSZCLdyIMNAGljIiMFZEPVX8G\ncDkqTlfbsKHM91MAljo/LwUwbGUjIqeLSIvz8yQAFwJ4I7UeehPk+dbe3/UAnvPYkyNLfO+jzk6+\nCJWqwTbyFIA/caKBPgHgSI0JMp+oKr8MfQG4FhW7Xz+APgAbnePTAGxwfm4H8KrztRMVk0vmfQ97\nH87nqwDsQWW2nMf7mIhK9M+bAJ4BMME53gHgYefnTwJ4zfl/vAbgC1n3u9HzBXAvKvtvAMBoAD8A\nsBfAfwBoz7rPEe/jG8678CqAfwPwX7Pus8d9fB9AL4ATzvvxBQA3A7jZ+b2gEvH0C2csdWTdZ78v\nZgITQkhJoQmIEEJKChUAIYSUFCoAQggpKVQAhBBSUqgACCGkpFABEEJISaECIISQkkIFQAghJeX/\nA7arTfyg767SAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import scipy.io\n", "import matplotlib.pyplot as plt\n", "\n", "cluster1 = scipy.io.loadmat('cluster1.mat')['cluster1']\n", "cluster2 = scipy.io.loadmat('cluster2.mat')['cluster2']\n", "cluster3 = scipy.io.loadmat('cluster3.mat')['cluster3']\n", "\n", "cons1 = scipy.io.loadmat('cons1.mat')['cons1']\n", "cons2 = scipy.io.loadmat('cons2.mat')['cons2']\n", "cons3 = scipy.io.loadmat('cons3.mat')['cons3']\n", "\n", "\n", "plt.scatter(cons1[:,0], cons1[:,1])\n", "plt.scatter(cons2[:,0], cons2[:,1])\n", "plt.scatter(cons3[:,0], cons3[:,1])\n", "\n", "plt.scatter(cluster1[:,0], cluster1[:,1], c='m')\n", "plt.scatter(cluster2[:,0], cluster2[:,1], c='m')\n", "plt.scatter(cluster3[:,0], cluster3[:,1], c='m')\n", "\n", "plt.show()\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Exercise 1.5. Image segmentation\n", "\n", "K-means is commonly used in computer vision as a form of image segmentation. To each pixel of an image is associated its color described in RGB. The image to be segmented can then be represented as a set of points in a 3D data space. Consider the image below. By carefully initializing K means with the right number of clusters (and possibly merging subclusters), try to separate the parrot from the background. You might want to downsample the image" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\n", "import matplotlib.pyplot as plt\n", "import matplotlib.image as mpimg\n", "img = mpimg.imread('KmeansParrot.jpg')\n", "imgplot = plt.imshow(img)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise 2. hierarchical clustering\n", "\n", "##### Exercise 2.1. Agglomerative clustering\n", "\n", "On the dataset below, implement and apply each of the agglomerative clustering approaches covered during the lectures. " ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAD4CAYAAADhNOGaAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAv4ElEQVR4nO2df5Qc1XXnv3d6SqJHdmhpkQNqGKQQIsVEQWMULEebjSXbyAYDY3AQDiTZZE90SOLsipDZDIY1IrEPkygOxHFiR0l8zvpYsSUsGMOKBOxIiROdlW2JmUGWEbHMD6EWaxSjkW1NI/XM3P2ju5rq6le/uru6qqe/n3MGuqteV90e1bz73v0pqgpCCCHdS0/SAhBCCEkWKgJCCOlyqAgIIaTLoSIghJAuh4qAEEK6nN6kBWiECy64QJcuXZq0GIQQ0lEcPHjwP1R1sft4RyqCpUuX4sCBA0mLQQghHYWIvGQ6TtMQIYR0OVQEhBDS5VAREEJIlxOrIhCR5SIy7vj5gYhsdo15p4icdoz5aJwyEUIIqSVWZ7GqPgdgFQCISAZAAcCjhqH/qqrvj1MWQgghZtoZNfQuAN9VVaPXmnQ2o2MFbH3yOZyYLGJJLouhDcsxOJBPWixCSAja6SO4FcAXPM69Q0QmROQfROSKNspEWsDoWAF3P3IIhckiFEBhsoi7HzmE0bFC0qIRQkLQFkUgIvMA3ADgYcPppwFcqqpXAvgLAKMe19gkIgdE5MDJkydjk5VEZ+uTz6FYmqk5VizNYOuTzyUkESEkCu3aEbwPwNOq+j33CVX9gar+qPL6CQCWiFxgGLdNVVer6urFi+sS40iCnJgsRjpOCEkX7VIEH4KHWUhELhQRqby+uiLT99skF2kBS3LZSMcJIekidkUgIn0A3gPgEcexO0TkjsrbDwL4lohMAPgkgFuVbdM8GR0rYO3IHiwb3o21I3tSYYcf2rAcWStTcyxrZTC0YXlCEhFCohB71JCqTgH4T65jn3G8/hSAT8Utx1zAdsra9njbKQsg0Qgd+96MGiKkM+nIonOdTDNhln5O2aQn3cGBfOIyEEIag4qgjTS7ok+zU5Z5BIR0Lqw11EaaDbP0cr7m+qymZWsG5hEQ0tlQEbSRZlf0QxuWw8pI3fFTUyXcO3qoKdkaZXSsgLt2TjCPgJAOhoqgjTQbZjk4kMeCeWZr3vb9x2JZgftFKdk7gRmPIK80mKwIIcFQEbSRVoRZni6WjMcVwJbHDjcjXh1BJh+TqcsJ8wgI6QyoCNqE7UwtlmaQKefPIZ/L4oGbVtY4VYPyBPwm18liKdKuIOhe9z9+2Nfk47fiZx4BIZ0Do4bagDtaaEa1OlG6lUBQVNHQhuW4c8c4vDLuNu8Yx9Ynn/OM2rEVUmGyCAGq13Hf697RQzg1Zd592ApgSS6LgkEZZETqFBwhJL1IJybxrl69Wjupef3akT3GCTOfy2Lf8PrAcQv7LPTN662GZvbN68F3Xj3je08BcNuafnxscGX1mFvRmMiIeNr83XKbrpe1MlQChKQUETmoqqvdx7kjaANho4W8xp2aKlVX5yZFYUJRdiCvvnRRTeavnxIAEKgEAFRNPswoJmRuQEXQBrxMKG57v9e4RlGU7fxbHjuMSQ8nc1RyWatmondmFNtmpzt3jFMpENJB0FncBsJEC42OFTB1brrl9z41VWqZEgCALTeY+waNjhUw9PBETYTR0MMTTCojpAOgImgDgwN5PHDTSuSyb2QAn2e98au3be1eztm00FOfy1Zly2OHUZqtNSuVZrXlIa2EkNZDRdBGzk7PVl+fmipVY/LD2O7TwKzCM1vYa9fRyt0IISQeqAjahF+doU7KwO0kWQkh4aAiaBN+kUNeSWI+lpjE6BEx2v0XehS+8zpOCEkPVARtwq/O0LoV5h7MP3/ZIuRTVqZhRtVYWfS+66+oK4hnZQT3XW92LhNC0gMVQZvwixzae+Sk8TMvfr+IfcPr8dDGVQ3tDuxSFq2mWJrB/Y8frilPAQBbP3gl8rksBOWks60fvJLho4R0AO3oWfyiiBwSkXERqUsHljKfFJGjIvKMiLwtbpmSwI4cck6UdgZuUMLZ4EAeP3/ZIuOYPsv8T5i1MvjQ2y9piewmTk2V6orRAcC+4fV4YeQ67BteTyVASIfQrh3BOlVdZUptBvA+AJdXfjYB+HSbZGo7gwN57Btejwc3rgIA3LljHGtH9uD8rNmO7jQnvfh9s7KYb2Wq5iNnMbubr8pj18FwMfx+YaFhYf8BQjqXNJiGbgTwOS2zH0BORC5KWqi4MJV2PnNuGpZrNnYnnPmVn7CzkZ3F7HY/80rokNRffnt/zU7l9jX9dWasMISNKAqqekoIaS/tKDGhAJ4SEQXw16q6zXU+D+Blx/vjlWOvOAeJyCaUdwzo7++PT9qYMYWRlmYUC/ssqL4Rd28nnNl5BmFLA9r2+yjJaXuPnKwpfgcAqy9dZLyOAMhaPZgqzcJNmP4DzfZtJoS0nnYogrWqekJE3gLgKyJyRFW/5jhvMkzUzXsVBbINKFcfjUfU+PFb2Tt3BaemSvi9HePIZASlmWhfN2qGcmGyiLUje+oKx2198rm6aymAeb0ZKKRGoVk9gqlz01g2vNu3zpBfPgUVASHJELtpSFVPVP7/KoBHAVztGnIcgNOreTGAE3HLlRR+q2Z3iYZZILISaAQBjF3IvJTW6WKpxvGdy1qAlBVQUPP6Zvs2E0JaT6yKQEQWiMib7dcArgHwLdewxwD8aiV6aA2A06r6CuYopjBSU0P6RslamZqaRmFwqxp7he6X+zA4kMfQhuVYkstisliqU1gm5/HoWAE9HiGtXg5zQloFfVPexL0j+HEA/yYiEwC+AWC3qv6jiNwhIndUxjwB4HkARwH8DYDfjlmmSLT64TGFkXo1pI+K3Rns/Vc272s/MVn0zX1wOr39rmET1Oj+zLlp/mGS2Ajqv93txOojUNXnAVxpOP4Zx2sF8DtxytEofo5NoPGGLM4a/gCwbHh3S+T9xC1XVm37zWKv3B+4aWVNPwPbiW3qZ+zGuaMIGl+aUfoJSGzQN+UPG9P44PXw3P/4Ybxemm1Z5EvYhjRBbSTvrPQrbkVzG7uUxM1X5euqpg59aSLQd+EMfx0dK4RyYNNPQOKCvil/0pBHkFr8Iny8VheNMLRheV0egYmgNpL2lrdVFEsz+MLXXzaGuwbh7Fsc9vcSJvyUED+8TLl+/i7CHYEvUVtHRkmocpqV1q1YnM5SowjXw9hNvuJMtgnze3En0BESFT9T7tCG5TXnAPMz5/7b7JZ2q1QEPng9PPN7e4wNVxpNqNq+/1johLF2E2SOcpO1Mli3YnFNXkKuzzKahkQAKLrqD47Eh58fwE6Y9JvkvRTJgZdew94jJ+e0cugaRdCIpneaNpyfAxBqdWHC9LAGTbMiQAML86bJWplqzaKa5LGMAFqf97Cwz8J1P3tRzfjCZBFWj8ByJcZlrUyN+YiQZglTvNHvefNSJM6F2lzNhO8KRdBMWQO/h6eRLWQjzinV8sQZdzvLHim3owTKSWJbbrgCgwN5rL50kVEZmr7/2pE99T6FWUUua2HB/N45vaoiyeJlyjXt1E0LQ6+/Ta88m7n0/HaFIogjdCxodeHE+dD1eJhaKlYSI/nKg9qqiCAvnAt8Z6SQ13c1HfPLRh6/75rmhSTEgfNv6/ysVbfzBICpSo6K/byaFoabd4xXTZVhcD/nne5b6IqooSRDx9yJLCYlkLUyuG1Nv7Gto21ysktYP7RxVUvKRgcRJgrKFKHB6AzSLtx/W5PFEqD1PTpOTZVqksdMC0MgmvnV+TzPhWS1rlAESU5OXg9dRqSmQc3HBldi7KPX4KGNq4zNa5zXmw3xwOayVuRSE27sYnSmB9rr4V+3YrFnNjIhUfHL7DdW8p1VnJ2u/wNxLmyaXQC6n2c/i0On0BWmobChY3Hg9dDNquKFkevqjgeZnMI+xKeLper1R8cKGHp4os65GwYvf4rXw7/3yEk8cNPKjt4mk3QQ5Nvz+lvwinKzzapRw8Kd2GVcwoRHd1KyWlcoAq/on3ZMTmEdWGFtjGEfYuf1BwfyOPDSa/j8/mMNfAOzP8Xv4Y/iPyEEMD//Qb69qBO63cFvaMPyhhdGs6p1z7aXHD0iNb6JNNMVpiHgjTaR7e6n61e4zSaKjTHsLsZt1tl75GTjXwL1Ez99AaRVeD3/XpO8/Sya/rb8sHcKgwN5vOm8xtbApufbSw67TEurfAVxVk/tih1BkoTZjUSJahocyIfuQObcSofN7g2TLDc6VsBrZ84ar7FuxeLA+5Duxr36nzo3bXz+vZIZ7WfR+bcVZmeQdzzDkxGbNwHe5mRbjrt2TtTJ26pQ07g7+3XNjiBJgnYjUW2M911/ReiVUFBvAbfTessN9dd2F5ArP5D1rSqB5nceZG5jWv17LWpmVOsqr7gnY/tvKx9iJ+rcJYf5e7h9Tb9v4IaTwYE8Zj18E63wFcTtkOaOIAVESYQB3lgBOMtD+1GYLCJniLH2y+712sF4RUHZdJKDjLSX0bGCcdXshTusXwDcfFX5OXS3Vh3asBx37hgPTAOwV9KmjPmo2e7unc35Wavh0jNBxO2Q5o4gBYTxI7gZHMhj/L7acFO//AI7xnphnxW4wvHbwQQ9ePQREBNBjYlMuEcqgF0Hjxv9CQBw25r+ULUbndFtYVf8Xt/HKceZc9N1VYRbFZ0Yt0+OO4IU0ExUkzNCZ9X9T/nuEEqzir55vRj7aOMZvn6RGswXIF4E7STDYjJJFksz2LxjHPlcFret6ccXvv5yoMIJE93mF8lnzGFwZTRnrZ6W1dOKOwQ+VkUgIpcA+ByAC1Huxb5NVf/cNeadAL4M4IXKoUdU9Q/jlCuNtCLk8nQIM1GzW0nTAwmUdxr3XX9FR4TKkfbTDpNhYbKIXQcLoXYdQSvpe0cP1RWbu3PHeFXhhHFOF0uzOPDSaxgcyDddgiLuEPi4dwTTAO5S1acrTewPishXVPXbrnH/qqrvj1mWOU+YuOpmt5JJ5mSQzqWZJK4ohN11rFux2HNyHh0rGEvDO5VC2LJEf//1Y1h96aKWRPzEmZ8j2sb6xiLyZQCfUtWvOI69E8DvR1EEq1ev1gMHDrRewA7HHWLmhqWfSVIEPZvtxq+0e9hJPuw4rx1EEhV5ReSgqq52H2+bj0BElgIYAPB1w+l3iMgEgBMoK4XDhs9vArAJAPr7+2OUtHNxr9ZzfRZUyyajqA9ap1dTJOkiasx/3Pitf8MujRXlSf5ExWHshZdZbLJYqvr0ku5z0JYdgYi8CcC/APi4qj7iOvdjAGZV9Ucici2AP1fVy/2uxx1BvJhWb9xNkFaxbHh3pI58dmJZhCrRbSGfy1Y7n/30//oHoyM7a/Vg0YL5oZWf85px4LUjiD18VEQsALsAbHcrAQBQ1R+o6o8qr58AYInIBXHLRbyZC9UUSXqJ6qd683m9WNhnhVYC7Wj/bWWkJmLngZt+tm4y7akcj1IKI6k8nLijhgTA3wF4VlX/zGPMhQC+p6oqIlej/Pv7fpxyEX/mQjVFkg5MJsaoRd/CJE06cV4155Hk1SylGa2LCJrFG7uXvMGc6i6rYcqoTioPJ24fwVoAvwLgkIiMV459BEA/AKjqZwB8EMBvicg0gCKAW7WdHmxSR9RMZ0JMeNXHufmqfHuW7Sh32otLGXx+/zG8cPJHePrY6ep3nFGtaSZl44748TK/JpWH09aooVZBH0G80EdAWsHakT3GBYVXMbm4WNhn4fXSbFsjlhb2WYGJm0kEZCQeNUQ6B+YKkFYQtXFMEFmrB6+XZiM7jE9NlfDQxlWhq/a2glNTpcBeBGnq20FFQIyk6SElnUkzSWQ9KJcisMlaGZxn9XhWvQ1D37zehhRBn9WDqQbu24ry0+2CRecIIbEQtXGMk1mUdwB2Qbibr8o3tZq3d7eNMFWa9Zwo1162yPNznRRcQUVACImFwYF8TYVPu1VkWIqlWfTNy6AwWWy4zaqNbeJsFFsx2d8hI4Lb1/Rj+2++A7msZfxMJwVX0DRECIkNp4lx2fDuyJ8/cy6cg7dHgPN6vU04tp9r847xyDLYvF6axQsj19Ud33LDFamKAGoE7ggIIW0hzhXy/F5//8HUuWkAwO1rGi9P49coqpneBmmAOwJCSFswlTBvVdmI10uzvs7pU1MlDH1pAgvmlac8O4Q1bI6BwL8ftylPwN1FLc2KgTsCQkhbMK2cW5VNYE+2fs7p0oxWJ307hFUEsELMguXuaAWMjhUCx5q6l939yKFQn00KJpQRQhLDK+kMADI9gpkQZSiyVgY3X5XH3iMnUZgsxpqwFqYonNd3irugXBiYUEYIiURcma/O6+b6LFg9UlN3yM5iB+Dr3BWUdwLrViyuaUQfZ6XSMCGhnViri4qAEFKHV50goLl6+e7rnpoqwcoIclmr2jdj3YrFVUXhtbp3rq7XjuypKx+haJ3/wUkYh3cn1uqij4AQUkdcpci9mr4vmN+LF0auw9CG5dh1sFC1r5uUgDs002ul3awScGc9hA0JNfkqBGVlunZkTyp9BVQEhJA64jJvBF3XpCiA2kn5PJd312ulnW9iBW5lBLet6W8oJNTpFLdx9jtOo+OYioAQUofX5NqseSPoumFW96emSjWTqWkFbq/eF8xrrMRFaaZ8x33D6/HCyHXYN7w+cqP5oQ3LjdW209jkiYqAEFKH3+Qa53XP9yjX4MY5mXoldAHAuen6JLNMT7k8RFDpi+37jzW1ct/65HOe5qm0OY7pLCaE1BFXKfKg60YpR+ScTE3VcteO7DF2QXvz/F58bHBl9b1X6QtFfQXRKJFUfpN92hzHVASEECNxlSL3u+5khAqjQZOp10R82pVJfL5PdrHzGlEjqbyihwRIXR2idjSvf6+IPCciR0Vk2HBeROSTlfPPiMjb4paJEJJOwq6UTWYqu6zDsuHdWDuyx9PM5LzH6FgBZyp1iILGekVS3bVzonpPpynJK3rotjX9qSs3EasiEJEMgL8E8D4AbwXwIRF5q2vY+wBcXvnZBODTccpECEkvQxuWw8rU24d6UG7/6BXBYyrrcObcNKye2mu5wzi3Pvlc1THsJmyY6oyqsZSEyXfx4MZVNWaptBC3aehqAEdV9XkAEJEvArgRwLcdY24E8LlKw/r9IpITkYtU9ZWYZSOEJIzJ5r5gXm+dqWYWwA+K03hw4yrjatorP2Fhn4W+eb0oTBZrEszsSduvj7Fb2YTpuGY7se3PdUqnv7hNQ3kALzveH68cizoGIrJJRA6IyIGTJ0+2XFBCSHvxKs7mZa+fUfWMwfdarU9OlbBveL2xwF2xNOMZMZTPZesm8LAd19IWERSGuBWB6bfs/vcIMwaquk1VV6vq6sWLvcvBEkI6Ay+bu18nM68Y/EbzE2ZUQ4fJhu24lraIoDDErQiOA7jE8f5iACcaGEMImWNEmZyDPheUn+CXfRylqczgQL6aZPaJW66MJdciCeL2EXwTwOUisgxAAcCtAH7ZNeYxAB+u+A/eDuA0/QOEzH28bO75iq/grp0TxlpDpkk9KD/B1BTHnrQbtePHlWuRBLEqAlWdFpEPA3gSQAbAZ1X1sIjcUTn/GQBPALgWwFEAUwB+PU6ZCCHpIGhyBhCpF7DfhB5nglwnTvxu2JiGEJIYQZm6cfVE6Fa8GtNQERBCSJfgpQhYdI4QQrocKgJCCOlyqAgIIaTLoSIghJAuh4qAEEK6HCoCQgjpcqgICCGky6EiIISQLoeKgBBCuhz2LCaEdC0sYVGGioAQ0pVEbUY/l6FpiBDSlXg1xjE1vpnrcEdACJlzhDH5eDXG6cRWk83CHQEhZE7h1QvZ3es4qL1lN0FFQAiZU4Q1+QS1t+wmaBoihCROK6N3wpp85lKryWaJTRGIyFYA1wM4B+C7AH5dVScN414E8EMAMwCmTU0TCCFzl7DRO2GVhVcv5DC9ju1dQ7cpgzhNQ18B8DOq+rMA/h3A3T5j16nqKioBQroPL1POXTsnqnb9sHZ/IJrJJ8p15zKxKQJVfUpVpytv9wO4OK57EUI6Fy9TzoxqdVKOEuo5OJDHAzetRD6XhQDI57J44KaVxlU+Q0jLtMtH8BsAdnicUwBPiYgC+GtV3WYaJCKbAGwCgP7+/liEJIS0Hy9TDlCelDfvGPf8rJcSGRzIhzLvMIS0TFM7AhH5qoh8y/Bzo2PMPQCmAWz3uMxaVX0bgPcB+B0R+S+mQaq6TVVXq+rqxYsXNyM2ISRFmEw5YWk21JMhpGWa2hGo6rv9zovIrwF4P4B3qap6XONE5f+visijAK4G8LVm5CKEtJ9GI3/sMXftnMCMeZow0opQz6ENy2sc1UB5dfzK6SKWDu9GRgQfevsl+Njgyqbuk3bijBp6L4A/APCLqjrlMWYBgB5V/WHl9TUA/jAumQgh8RC1bo9JaXzilivrJmUTAjQc6mnftzBZREYEM6pY2Gdhfm8PThdLOM/qQbE0WzZYo+yn+Pz+YwAwp5WBeCzUm7+wyFEA8wF8v3Jov6reISJLAPytql4rIj8B4NHK+V4Af6+qHw+69urVq/XAgQOxyE0ICYdzMu+pTKpu8rks9g2vr/uce8LPWhk8cFN5orUnahOm6wXJdn7WgghwaqoEQXWOr8G+v9euJCOC7z5wbeB9046IHDRFZ8a2I1DVn/Q4fgLAtZXXzwO4Mi4ZCCHx4J7MvUw6JqerV6TO5h3jyOeyWLdiMXZ882WUZmqvafVIjSnIvatYt2Ixdj/zCk5NlWo+N1l8473XsteOFPL6HlFMVmFJUwlsZhYTQiJjmsxNmJyufhE5hckitu8/Zpyw33Reb3WiNJmibBNOo5xwmIvcZESaurabtJXAZq0hQkhkwoRXejlzgyJyvNbek5WV/uhYAXftnAiliKKwJJfFh95+ifGc1/FGSVv+AhUBISQyXpN5RiQwiavRcNEluWx1Jd1qU42ttD42uBK3r+mv7gAyIrh9TX/LHcVpy1+gaYgQEhlT2KXtcA0ybTjr+3g5hd3YE3VYk1QYbDNQvmKfP/DSa1VncVwKwCZKPaR2wB0BISQyfmUcRscKWDuyB8uGd2PtyB5j3Z7BgTyGNiyH1RNse1/YZ1Wv3ciK2TLMclkrg0/cciUe2rgKALB5xzg+v/9Ydadhh43eO3oo8v3CkLYS2LGFj8YJw0cJaQ2tjlzxCw11X3ftyJ5QOwJ7xR5lB2Ejlf+YpjkRoFcEpVnvOTDOsNEkoobaHj5KCEk3cUSu+DlBw7aKdFOYLGLoSxN14aRh0Op/DOcUKAUshJ2+iFZP3GHrIbUDmoYI6VLiiFyJ4gSNYg9vRAm0AttpPNfLVXNHQEiX4jdpN7r69XOCmhLAdnzjZV/TTNLYYaNRdjqdCH0EhHQJ7on4zNnpmqxbm1zWwtnp2VB2ftPkvutgoe6zN1+Vrztu9QhmAcy0SBFYGcH0jHrmIUTBXWxu2fBuz+s2U/uo3dBHQEgXY/IHWBmB1VPrLM1aGYgg1OrXdM1dBwu4+ao89h45WbObMK2oW70T2PrBcrWaMIXrTCyYl8HHP2AOfz0/axmVJoAaUxHQmW0uqQgI6QKME/FMufJm37zemkn7To9GMG5Tkpe5ZO+Rk3WF4byu2SryuWx1Aj7w0mueZSr8OHOuXO/IboSTd6zyw1SY6GRTERUBIV2Alz9gcqqEsY9eU3PMK0zT7dyN6hiOGvoZFgFq4u/3HjnZEvOQc5U/OWXeDbjp1M5mjBoipAuI0okrbLJTs9dsFYpac0wrJ+NiaQZ37ZwIrVg6tbMZFQEhXUCUTNawzd8bvWarWdhnAUA1o7nV4S9h6xolmRncLIwaIqRLiCOT1RQ15HYUu+/hF4HTCLmshS03XNGwk7hVxFmbqFV4RQ1RERBCWkLY8hJhS0tEwauPQDvJZS2M33dN8MAE8VIEsZmGRGSLiBREZLzyYyzYISLvFZHnROSoiAzHJQ8hJJgwBeO8CJupHIe/IGklAMAzvLQTiDtq6EFV/VOvkyKSAfCXAN4D4DiAb4rIY6r67ZjlIoS4aLb2UNgoImcZapNJKddn4WxpBlOl2Wa+DolA0uGjVwM4WuldDBH5IoAbAVARENJmmi2jEKXGfpiCa0uHdwfeM03YTutOJO6ooQ+LyDMi8lkRWWg4nwfwsuP98cqxOkRkk4gcEJEDJ0+ejENWQrqaZrtmtarGvm2e6iSsjOC+669IWoyGaWpHICJfBXCh4dQ9AD4N4I9QDvP9IwCfAPAb7ksYPms09qnqNgDbgLKzuEGRCSEeRCkYZ4oGMpl8okYmjY4V8Hs7x9Gq6hMC7x7IYcl7/F4yIphV7Zg6Q340pQhU9d1hxonI3wD4P4ZTxwE4u0JfDOBEMzIRQhrDq/3kuhWLQ/sOmq2x/5FHnmmZEgCABzeuqiqmRi67sM8y/l4A4Meyvbjv+ivq6i+1u9lMK4gzaugix9sPAPiWYdg3AVwuIstEZB6AWwE8FpdMhBBvvBLJ9h452fK+BW5sc1AYB/HayxbhoY2rApPT7PpD+4bX44WR6yIns9nmHvv3ksvW+gBOTZVqehJ0cs+COH0EfyIih0TkGQDrANwJACKyRESeAABVnQbwYQBPAngWwE5VPRyjTIQQH5wT577h9b59gltVysE5gYbh6WOnAQD7htfjxZHr8NDGVaF8EyYfhm2bzueyuH1Nf43Dd8G8NwwmgwN5LJhfb0BxKsQ4Gv20i9iihlT1VzyOnwBwreP9EwCeiEsOQkhzRIkGagTTBOqHO5IprG8iaNzoWAG7Dr6xep8slmpMYEEKMW6FGSdJh48SQlKOl++gkWgg0yTcyERpyk0IY4v3GxcUPhukEONWmHHConOEEF/CFqHzw89+3shEGfSZRjKkg1b0QeGxrQqfTQLuCAghgTQbDeS12t7y2GFjwTi/sM+gyXV0rIChhyeqHdAKk0UMPTxR/R5eBK3og0xLrQifTQoWnSOExI5fxdGHNq4CUF9ywt3jGHij0ujgQL5qaipMFqtF5/K5LF47cxZFQ/RRUFG4sEXzOhn2LCYk5XRqDHoY/DqUbX3yuWqEkpPVly7ydew6J2276Jxf5FFQUbhOXtE3CxUBISmg2YJvaWdow/JqL2A3Xrb5qI7dVhDFBDaXFDedxYSkgE6OQQ/D4EDesyhbI87iRiKN+qz66a7RstudnDxmgoqAkBSQ9hj0ZvoU2Nx3/RUti6ppRHmUZrVG7mYm87mmuKkICEkBURrBt5tWrX5bEYZq00hzm9KM1kzUzUzmaVfcUaGPgJAU0KqkrThotk+Bk2bDUJ3XsWVzRg0F4Zyom5nMOzl5zAQVASEpIM0RK2ld/bqVSpheyM6JupnJPM2KuxGoCAhJCa1aLbeaTln9epWLtnFP1M1M5mlW3I1ARUAI8aVTVr/uyTnXZ0EVOF0sGSfqZifztCruRmBmMSEkkLkUM9/NMLOYENIwza5+qUjSDRUBISRW5nrW9FyAioB0PGlZbbZCjrR8l1bSyvBTEg+xKQIR2QHA9iblAEyq6irDuBcB/BDADIBpk/2KEC/SsNocHStgy2OHa4qaFSaL2LxjvFpmOYwsafgucZDW8FPyBrFlFqvqRlVdVZn8dwF4xGf4uspYKgESiaRT/e3J26uy5WSxhKEvTXRl2QKbNGdNkzKxm4ZERADcAmB93PcinU0jZpF2rjZN8oWpglmaUdz/+OFUfZd20inhp91MO2oN/QKA76nqdzzOK4CnROSgiGxqgzwkhTRaz8ZrValAw8XRosgXlMlqc2rKvxY+MHdXzq2sMUTioak8AhH5KoALDafuUdUvV8Z8GsBRVf2ExzWWqOoJEXkLgK8A+F1V/Zph3CYAmwCgv7//qpdeeqlhuUn68CoPkM9lsW/YezNp6irlxOoRvOm8XkxOmZOKmpUvbI0bAHhx5Drf893QIYskSyx5BKr67oCb9gK4CcBVPtc4Ufn/qyLyKICrAdQpAlXdBmAbUE4oa0JskkIaNYu4i4+5Kc1qdTUe5MD1M015yRFWCdjX95vQ51rZAtI5xG0aejeAI6p63HRSRBaIyJvt1wCuAfCtmGUiKaQZs8jgQB77htdDQt5rsliqMzuZTD937hjHvaOHQssRxF07g53G9nd5sNLH984d4y01cRFiIm5FcCuALzgPiMgSEXmi8vbHAfybiEwA+AaA3ar6jzHLRFKIqb6826EY1BwlymTtjsYxOX0VwPb9xzA6Vmio/r2bGdVQfo+51v2KpJ9Yo4ZU9b8ajp0AcG3l9fMAroxTBtIZBJlFwsTYr1uxGJ/ffyz0PZ3mHi+nr6K8kp9VxflZq+k+uWESqZiARdoNi86RjsDPWTuriiW5LKbOTYeKzrFZ2Gehb14vTlRW3mEQIHBspkcwM+s9SgC84OM4Xja823iPoM8REgSLzpGOJshZGzaM08mPXo+mOABvJbBgXgZT52aQ67Nw2iO5zGZJLmt0TAPl3YDXPTo9jJSkF/YsJh1BqyfBrNWDks+qPSqziqqD1++yWSuDdSsW1/kANu8Yx+Yd474K7czZafoJSCzQNEQSw29V7PYTBOULpIGgnIJc1oJIuOQyL5hXQJqBpiGSKkzO36EvTQCK6krd5BC2lUSPx6Sby1pYMD+a3b9VBOUUnJ2ebYuzeS5WMCXxQkVAEsEUGVOaqZ9Ii6UZ3P/44ZqJ7cGNq3Dgpdewff+xmsk+a2Ww5YYrAAD3P364qZV3qxFBy3Yzfkl2c7WCKYkXKgKSCFEKqZ2aKtVkBw89PAFIreNWANx8VXmiS5sJqQf+foOo+PlLGHpKGoGKgCTCkly2oUgfAEYnrwLYe+Qk9h452RYlECaM1OY8qwdnpzVSOQovgqp2ztUKpiReGDVEEsGUqWtlBFZP2EIR9ZyYLLZlwlt72aJI/oep0mygEshlLQCoK5NhZaTsZEa4qp1ztYIpiRfuCEgieGUSu4+dOTvt2fTFTdTxjbL/+VORPxMUUTR+3zUAmnf0svY/aQSGj5JUYwobtXoEkFrnctbK4Oar8tjxzZeNTuc0E1RqOyqMGiJeMHyUpIaoE9V5Vk9VEeSyVjUyyNQtrNOUgKBcI6mVDA7kOfGTSFARkLYSJbzRtBs4Oz1bHesev3nHeIyShyOXtSLlCyiAXQcLWH3pIk7eJDGoCEhbiRLeGGXs6FghUiRP2LEL5mWQ65vnm8TmvKZztxI2KqpYmsHmHeO4//HDuO/6cA1z7HvQ/ENaARUBaStRwhujjN3y2OFIkTw9ARVCbc6cm8HHP1CeZJcN7/Yd+5NvWVAzOeeyViTH9ampUjm7GvAtv/17O8dr8hKYNEaahYqAtBWv/AFTeGPYsaNjhciRQmGUgI09yZ4fMLEfffVMVRk1nCMxo9WGOV67CpPoTBojzcA8AtJWwnQiCzvW7lgWt2/AnmQlIMWhVW5qe4UfVZkwaYw0CncEpK1EadDuNzaOaqQigJcLoJ2TbEakoe/FpDHSKE0pAhH5JQBbAPw0gKtV9YDj3N0A/huAGQD/XVWfNHx+EYAdAJYCeBHALaoaPVuHdBRRwhu9xpocyc2i6u1EtifZRk0+YbEy0lAIrABMGiMN06xp6FsAbgLwNedBEXkryo3rrwDwXgB/JSKmzt/DAP5JVS8H8E+V94QEEtcKXVFf5sE2R7WigX0Qb5rfW3f/IATAbWv66R8gDdPUjkBVnwUAqTee3gjgi6p6FsALInIUwNUA/q9h3Dsrr/83gH8G8AfNyES6g2aK1gWhKGf7epmuovokslYG51k9xrLY7ryDqKWz8wwdJS0gLh9BHsB+x/vjlWNuflxVXwEAVX1FRN7idUER2QRgEwD09/e3UFTSiZhq6gQRNnegmZIPeUeWszvu31QDqJk+Ba0uTUG6l0BFICJfBXCh4dQ9qvplr48ZjjUVVKGq2wBsA8q1hpq5Ful8nI7kMDuDsEogqOSDHdrphb0691qhuxXEnQ1GPLGQHGklgYpAVd/dwHWPA7jE8f5iACcM474nIhdVdgMXAXi1gXuRLsU54Q784VOeZpWgyp9Ogko++Pkm1l7mXybCpCC8FNnCPgt983qrSmPdisXYe+QkM4lJLMRlGnoMwN+LyJ8BWALgcgDf8Bj3awBGKv/32mEQ4sukj209akMYv+QsL9/EgnkZbP/Nd0S6D+BdNtpUaoKQuGgqakhEPiAixwG8A8BuEXkSAFT1MICdAL4N4B8B/I6qzlQ+87ciYpdBHQHwHhH5DoD3VN4TEhm/GPpMUCaYAa+VvylySFAuRbF2ZA/uHT2EtSN7sGx4N9aO7MHoWMH3PoMDeTxw00rkc9nQzWcIaTXsR0DmBKNjBQx9aaIuBt/qEWy8+hLsOliI5JT1c8TaReDC+CayVib0xM4+AiRuvPoRsMQEmRMMDuSx9YNXYmGfVT2Wy1rY+ktX4mODK2tW3bmshQXzvPMBghyxgwN5DG1YHire3zYzBWFnShcmi1C8UWYiaEdBSCvgjoB0HabyFHZUUdi4/LUje0LnMQiAF0auq97btOr3cnYzRJS0EnYoI6SCqTyFrQTCTrpRMpt7RKore1NTngMvveYZ8cRCcqQdUBGQriNKnwMvomQ2z6ji7kcO1bTctCmWZvD5/cd870NI3NBHQLoOr8k1yqTrFT209rJFxiilYmkmcvkI+z6ExA0VAek6ovRE8MIU9vngxlXY/pvvwGyL/G65rMWoIdIWaBoiXUeUnghB14mSdBalsX3WylT7HxMSN1QEpCuJ0hMhKl7ZwvbEftfOCd9s54V9VlOZxcxHIFGhIiCkxYTZcfhVTn29NNvwvU3N7tnYngTBPAJCEiAoO7nR/AGv/AbmIxCAmcWEpIrBgTz2Da/3zE5uNH+gFaGxpPugIiAkQVoRyhrn9Uh3QEVASIK0IpQ1zuuR7oDOYkISpFWhrHFdj3QHdBYTQkiXQGcxIYQQI1QEhBDS5VAREEJIl0NFQAghXQ4VASGEdDkdGTUkIicBvJS0HAAuAPAfSQthgHKFJ40yAZQrCmmUCUinXJeq6mL3wY5UBGlBRA6YQrGShnKFJ40yAZQrCmmUCUivXCZoGiKEkC6HioAQQrocKoLm2Ja0AB5QrvCkUSaAckUhjTIB6ZWrDvoICCGky+GOgBBCuhwqAkII6XKoCBpARH5JRA6LyKyIrHYcf4+IHBSRQ5X/t603oJdMlXN3i8hREXlORDa0SyaDjKtEZL+IjIvIARG5OilZ3IjI71Z+P4dF5E+SlseJiPy+iKiIXJACWbaKyBEReUZEHhWRXMLyvLfy73ZURIaTlMVGRC4Rkb0i8mzlefofScsUiKryJ+IPgJ8GsBzAPwNY7Tg+AGBJ5fXPACikQKa3ApgAMB/AMgDfBZBJ6Pf2FID3VV5fC+Cfk/63rMiyDsBXAcyvvH9L0jI5ZLsEwJMoJ1BekAJ5rgHQW3n9xwD+OEFZMpXn+ScAzKs8529Nwe/oIgBvq7x+M4B/T4Ncfj/cETSAqj6rqs8Zjo+p6onK28MAzhOR+UnKBOBGAF9U1bOq+gKAowCSWokrgB+rvD4fwAmfse3ktwCMqOpZAFDVVxOWx8mDAP4nyr+7xFHVp1R1uvJ2P4CLExTnagBHVfV5VT0H4IsoP++JoqqvqOrTldc/BPAsgFR3BqIiiI+bAYzZk0uC5AG87Hh/HMk9lJsBbBWRlwH8KYC7E5LDzU8B+AUR+bqI/IuI/FzSAgGAiNyA8q5yImlZPPgNAP+Q4P3T9GwbEZGlKFsKvp6wKL6wVaUHIvJVABcaTt2jql8O+OwVKG+br0mBTGI4Ftvq0k9GAO8CcKeq7hKRWwD8HYB3xyVLBLl6ASwEsAbAzwHYKSI/oZW9fYJyfQQtfobCEOY5E5F7AEwD2N5O2Vy09dmOioi8CcAuAJtV9QdJy+MHFYEHqtrQBCUiFwN4FMCvqup3UyDTcZTtzDYXI0aTjJ+MIvI5ALbj7GEAfxuXHG4C5PotAI9UJv5viMgsygXDTiYll4isRNmnMyEiQPnf7WkRuVpV/18SMjlk+zUA7wfwrnYoSx/a+mxHQUQslJXAdlV9JGl5gqBpqIVUIih2A7hbVfclLI7NYwBuFZH5IrIMwOUAvpGQLCcA/GLl9XoA30lIDjejKMsDEfkplB2PiVaNVNVDqvoWVV2qqktRnvTeFrcSCEJE3gvgDwDcoKpTScoC4JsALheRZSIyD8CtKD/viSJlzf13AJ5V1T9LWp4wMLO4AUTkAwD+AsBiAJMAxlV1g4jci7Ld2znBXdMO56OXTJVz96Bsz51GeZuaiF1XRP4zgD9HeSf6OoDfVtWDScjipDKJfBbAKgDnAPy+qu5JVCgXIvIiytFgiSooETmKcgTa9yuH9qvqHQnKcy2Ah1COIPqsqn48KVlsKs/5vwI4BGC2cvgjqvpEclL5Q0VACCFdDk1DhBDS5VAREEJIl0NFQAghXQ4VASGEdDlUBIQQ0uVQERBCSJdDRUAIIV3O/wc2mgSfH1bZgQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from sklearn.datasets import make_blobs\n", "import matplotlib.pyplot as plt\n", "\n", "n_samples = 500\n", "random_state = 170\n", "X, y = make_blobs(n_samples=n_samples, centers = 4,random_state=random_state)\n", "\n", "plt.scatter(X[:,1], X[:,0])\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "\n", "def Agglomerative_Clustering(data, Linkage, numClusters):\n", " \n", " \n", " '''function should implement agglomerative clustering with single linkage, complete linkage and \n", " group average objective'''\n", " \n", " \n", " \n", " \n", " return clusters\n", "\n", "\n", "\n", "def Divisive_Clustering(data, Linkage, numClusters):\n", " \n", " '''function should implement divisive clustering'''\n", " \n", " \n", " \n", " return clusters\n", "\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### II.3. Detecting communities on facebook\n", "\n", "__Exercise II.3.1__ Log on to the Stanford Network Analysis Project webpage and load the ['facebook_combined.txt' file ](https://snap.stanford.edu/data/egonets-Facebook.html)\n", "\n", "In this exercise, we will cheat a little. Although K-means is, in general, absolutely not suited to perform community detection, we will use the embedding (i.e the projection) of the graph provided by the 'networkx' module to get 2D coordinates, and we will then use those coordinates as our feature vectors. Use the lines below to load and plot the facebook graph" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import networkx as nx\n", "import matplotlib.pyplot as plt\n", "\n", "g = nx.read_edgelist('facebook.txt', create_using=nx.Graph(), nodetype=int)\n", "print nx.info(g)\n", "\n", "sp = nx.spring_layout(g)\n", "nx.draw_networkx(g, pos=sp, with_labels=False, node_size=35)\n", "# plt.axes('off')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Exercise II.3.2.__ How many communities would you guess there are ? Initialize K means (first use the sklearn version) with 7 centroids. " ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" } }, "nbformat": 4, "nbformat_minor": 2 }