Skip to content

Instantly share code, notes, and snippets.

@joxer
Last active August 27, 2017 16:34
Show Gist options
  • Save joxer/4b093ad714466d858cfcae05e7a6b70f to your computer and use it in GitHub Desktop.
Save joxer/4b093ad714466d858cfcae05e7a6b70f to your computer and use it in GitHub Desktop.
Clustering in ipython
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from matplotlib import pyplot as plt\n",
"from scipy.cluster.hierarchy import dendrogram, linkage\n",
"import numpy as np\n",
"from scipy.cluster.hierarchy import fcluster"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"np.set_printoptions(precision=5, suppress=True)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Generiamo dei dati casuali da una distribuzione normale con media in (10,0) e (0,20)\n",
"# Concateniamo gli array e mostriamoli in grafico"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\n3S4f16I6c9MAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb2cfe03438>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"np.random.seed(1) \n",
"a = np.random.multivariate_normal([10, 0], [[3, 1], [1, 4]], size=[100,])\n",
"b = np.random.multivariate_normal([0, 20], [[3, 1], [1, 4]], size=[50,])\n",
"X = np.concatenate((a, b),)\n",
"plt.scatter(X[:,0], X[:,1])\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#clusterizziamo i nostri elementi con la funzione linkage\n",
"Z = linkage(X, 'single','euclidean')"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# definiamo la massima distanza perche' gli elementi siano nel cluster come 5\n",
"max_d = 5"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([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, 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, 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], dtype=int32)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# creiamo i cluster\n",
"clusters = fcluster(Z, max_d, criterion='distance')\n",
"clusters"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\ncXUiIhJrWlMl4pIZjOYPZm4NVGB7XP3IpyxkuoeViYhIPChUibhkNt9QQkHY8RAh5jLRg4pERCSe\nFKpEXNJqJisCAAAgAElEQVSCdmHtGABSSKMZbTyoSERE4kmhSsQlfbmApAgL0lNIJY9TPKhIRETi\nSaFKxCXNacP/8SnNaUM6WfjIpDWduINx+MjwujwREYkx3f0n4qJ9OIJnWc4SZpFECruyFwbjdVki\nIhIHClUiLksiSVvaiIjsgDT9JyIiIuIChSoRERERF0QdqowxLxljVhljZlU5docxZpkxZsaWrxNj\nU6aIiIhI41aXkaoRQP8Ixx9zHKf7lq/P3ClLREREJLFEHaocx5kArIthLSIiIiIJy401VUOMMTO3\nTA+2qO1FxphBxph8Y0z+6tWrXbisiIiISOPR0FA1HOgMdAdWAI/U9kLHcZ5zHCfPcZy83NzcBl5W\nREREpHFpUKhyHGel4zghx3HKgeeBnu6UJSIiIpJYGhSqjDHtqjw8DZhV22tFREREmrKoO6obY94A\njgRaGWOWArcDRxpjugMOsAi4IgY1ioiIiDR6UYcqx3HOjXD4RRdrEREREUlY6qguIiIi4gKFKhER\nEREXKFSJiIiIuEChSkRERMQFClUiIiIiLlCoEhEREXGBQpWIiIiICxSqRERERFygUCUiIiLiAoUq\nERERERcoVImIiIi4QKFKRERExAUKVSIiIiIuUKgSERERcYFCldSLg8NXvMjf2Y1zSOU69mU6o70u\nS0RExDMKVVIvo3mKl7mGtSwhRBlLmc3DnMFMvvS6NBEREU8oVEmdlVPOO9xBgKJqx4MU8zr/51FV\nIiIi3lKokjorYiMlFER8bjm/xrkaERGRxkGhSuosgxzS8Ed8rg1d4lyNiIhI46BQJXWWTDKncxO+\nGsEqDT/nco9HVYmIiHhLoUrq5RRu4DzuJ4dcAFrTkat5hYM40ePKREREvJHidQGSmAyGE7mGE7mG\ncspJUj4XEZEdnD4JpcEUqERERBSqRERERFyhUCUiIiLiAoUqERERERcoVImIiIi4QKFKRERExAUK\nVSIiIiIuUKgSERERcYFClYiIiIgLFKpEREREXKBQJSIiIuIChSoRERERFyhUiYiIiLhAoUpERETE\nBQpVIiIiIi5QqBIRERFxgUKViIiIiAsUqkRERERcoFAlIiIi4gKFKhEREREXKFSJiIiIuEChSkRE\n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\nX+68d2F2tk2TNkW9elkx127d6j83RRodVKlqFYApAN4AsB3Ai6q6rbH3JSKiFBk/3oon5udbsm/0\nsv6CAltB17dv/Pf8/vdjq3SL2Mq+gVE1FPfvdx7VKi+vKRgKWFCQyB51WVmJBWEN0b69VWTPyak/\noTwYtECsIdupVFXF9lsiRo2yIqiRqyP9fgtKLr644felWjypU6Wqq1X1QlU9X1V/7sU9iYgoRURs\nemrPHtufb+HCmuTu8JYxP/xhYvccNszKKeTnW0HMQMDqVa1ZExu0XXqp8yhKXp4lu4eNH59YG06f\ntinE7dsTuy5RCxfGl+zdr5+tbLzpJtvnr67gKtxHIhb8/OIX8ZeFcJKdDaxbZysP+/cHBg2yiuQv\nvtjwe1IMblNDREQ1qqutVtK+fbVX+xUWWsmCRLcCOXbMKl63a2cBklNxy+pqm4LavLkmOPH7Ldh6\n883a17z2mq3+CgcklZW2X15JifO+g1lZtr3M888n1u5EDBhg+T118fnsZ7niippj775rQZ/Tqkq/\n3/qrY0fbgLqiwn7G7t2Ba66pu9ApeY7b1BARUeLWrrVAKPqDvrra6lc98EBi92vb1opp1iU724pm\nzpljNaWysmwfvylTYoOwMWMssXrdOptuGzHC6mu5/aIeDNroUDJNnmwjeU5TmIAFVCtW1A6oAAsa\ni4piFwBkZVll9mXLLMj82teATZssgMzLswD33XeTXyiUEubJ9B8RETUT+/bVrqEUVl5udY2SpaAA\nmDbNpuq2bQPuvde96nphIXDttVZUtKwMmDfPeZQKsKCsd29v2lhRYcHNnj21j0+aZMVB/X5rc26u\nPW9BAXD99VbPavRo57bNm2fXhbfGycmxvLZHH7XvH33UVkeWltrznzxpqx2/9S1vfibyFEeqiIio\nxuDBzgnXgYCtIEtUebkFGW776TXWli2Wt+W04g6wwOahhxp274MHrfBpmzb29ylTbOSrstLykpYt\ns+lQn89WKW7caCNInTrFP0V39dV2zWOPWfB16aXAfffZCBZgI3fRpRCCQXuuI0fcV1lSWjCoIiKi\nGv362UqxNWtqprPy8mxfukT241u92lYU7t5tIzF33QXMmNGwlW916dbNfZQqEACWLk2sFETYjBmW\nvJ+TYyN30VN7JSXWT5s21RwbMMC+EtW/vy0QcOI0ahiWSIV7SglO/xERUW1Llti0U+/eQI8ewD33\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb2eeffe3c8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# mostriamo i cluster su un grafico a dispersione\n",
"plt.figure(figsize=(10, 8))\n",
"plt.scatter(X[:,0], X[:,1], c=clusters, cmap='prism') # plot points with cluster dependent colors\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.6",
"language": "python",
"name": "python36"
},
"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.6.0"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment