{ "cells": [ { "cell_type": "markdown", "id": "f34d9b58-8b0e-4936-a75e-3da3104354b8", "metadata": {}, "source": [ "# Métodos de _clustering_" ] }, { "cell_type": "markdown", "id": "3f2b0f9c-2446-41c7-a3c7-c27776a5f653", "metadata": {}, "source": [ "Da mesma forma que podemos especificar diferentes métricas de distância, podemos também especificar diferentes métodos de agregação, que com base na distância entre os vários pontos vão determinar de que forma podem ser agrupados: de que forma se determina a ligação entre eles.\n", "\n", "O valor por omissão usado pela função `linkage` o da ligação `single`, determinada pela distância mínima entre os pontos mais próximos $ \\min \\,\\{\\,d(a,b):a\\in A,\\,b\\in B\\,\\} $; uma alternativa bastante comum e que determina os _cluster_ com base na distância média é o `average` (também conhecido por UPGMA), e outra é o método de Ward `{cite}`pennsylvaniastateuniversity14WardMethod`\n", "\n", "Podemos ver a diferença entre os três com o seguinte exemplo; adicionamos um partido (\"B\") normalmente se abstem mas vota duas vezes de forma diferente, ambas em sentido oposto ao partido \"A\"." ] }, { "cell_type": "code", "execution_count": 2, "id": "d3543e05-114f-4603-b903-96cfd1ec8e53", "metadata": { "tags": [ "remove-cell" ] }, "outputs": [], "source": [ "import pandas as pd\n", "from scipy.spatial.distance import squareform\n", "from scipy.spatial.distance import pdist\n", "import matplotlib.pyplot as plt\n", "import matplotlib as mpl\n", "import seaborn as sns\n", "import scipy.spatial as sp, scipy.cluster.hierarchy as hc\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 3, "id": "34edba64-7478-4012-a3d2-7d1439167d68", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | F | \n", "A | \n", "B | \n", "C | \n", "
---|---|---|---|---|
F | \n", "0.000000 | \n", "4.582576 | \n", "3.464102 | \n", "6.324555 | \n", "
A | \n", "4.582576 | \n", "0.000000 | \n", "3.316625 | \n", "3.000000 | \n", "
B | \n", "3.464102 | \n", "3.316625 | \n", "0.000000 | \n", "3.464102 | \n", "
C | \n", "6.324555 | \n", "3.000000 | \n", "3.464102 | \n", "0.000000 | \n", "