Last active
July 21, 2017 16:43
-
-
Save yogabonito/5a8f9ddbb483a208110c00521561bde4 to your computer and use it in GitHub Desktop.
Demo of new API for exact optimization algorithms
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"%matplotlib inline" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"from region.exact_algorithms import ClusterExact" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt\n", | |
"import libpysal as ps\n", | |
"import libpysal.api as ps_api\n", | |
"import networkx as nx\n", | |
"import pandas as pd\n", | |
"import geopandas as gpd\n", | |
"from shapely.geometry import Polygon\n", | |
"\n", | |
"from region.util import dataframe_to_dict" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Inputs for the 3x3 lattice example" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n4PSM+QAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7f08b057c198>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"geometry = [\n", | |
" Polygon([(x, y),\n", | |
" (x, y+1),\n", | |
" (x+1, y+1),\n", | |
" (x+1, y)]) for y in range(3) for x in range(3)\n", | |
"]\n", | |
"\n", | |
"areas_gdf = gpd.GeoDataFrame(\n", | |
" {\"values\": [726.7, 623.6, 487.3,\n", | |
" 200.4, 245.0, 481.0,\n", | |
" 170.9, 225.9, 226.9]},\n", | |
" geometry=geometry)\n", | |
"areas_gdf[\"values2\"] = areas_gdf[[\"values\"]] + 1\n", | |
"areas_gdf.plot(column=\"values\")\n", | |
"plt.gca().invert_yaxis()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"areas_w = ps.weights.Contiguity.Rook.from_dataframe(areas_gdf)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"areas_dict = areas_w.neighbors" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"areas_nx = areas_w.to_networkx()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"{0: 726.70000000000005,\n", | |
" 1: 623.60000000000002,\n", | |
" 2: 487.30000000000001,\n", | |
" 3: 200.40000000000001,\n", | |
" 4: 245.0,\n", | |
" 5: 481.0,\n", | |
" 6: 170.90000000000001,\n", | |
" 7: 225.90000000000001,\n", | |
" 8: 226.90000000000001}" | |
] | |
}, | |
"execution_count": 8, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"from region.util import dataframe_to_dict\n", | |
"data_dict = dataframe_to_dict(areas_gdf, \"values\")\n", | |
"data_dict" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Clustering" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## with dict" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### i) using `fit_from_dict()`" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"running FLOW algorithm\n", | |
"{0: 1, 1: 1, 2: 1, 3: 0, 4: 0, 5: 1, 6: 0, 7: 0, 8: 0}\n" | |
] | |
} | |
], | |
"source": [ | |
"cluster_obj = ClusterExact(2)\n", | |
"cluster_obj.fit_from_dict(areas_dict, data_dict)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\nBPwfDRpQTxEl+gAAAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7f08b0527198>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"areas_gdf[\"region_dict\"] = pd.Series(cluster_obj.labels_)\n", | |
"areas_gdf.plot(\"region_dict\")\n", | |
"plt.gca().invert_yaxis()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### ii) using `fit()`" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"`fit()` is currently just an alias for `fit_from_dict()`" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"running FLOW algorithm\n", | |
"{0: 1, 1: 1, 2: 1, 3: 0, 4: 0, 5: 1, 6: 0, 7: 0, 8: 0}\n" | |
] | |
} | |
], | |
"source": [ | |
"cluster_obj = ClusterExact(2) # reset cluster_obj\n", | |
"cluster_obj.fit_from_dict(areas_dict, data_dict)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAQIAAAD8CAYAAACcoKqNAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAADU5JREFUeJzt3V+oHvWdx/H3Z2NsF9QamoCS5BhLA4sWW+0hjduyhC2F\nGIqBrcV4UbVYQruVTaE3tgsRvVl6Y6mrVEKVxiKaXRVJJVKkDdhemHqSjZo/63IqFCMBY9ImSlvd\nyHcvnok9ezzxGc3Mc87R9wuGzJ/fmfnml/N8MjPP8JtUFZI+3P5mtguQNPsMAkkGgSSDQBIGgSQM\nAkkYBJIwCCRhEEgCzpqtAy9evLhWrFgxW4eXPhR27979alUtGdZu1oJgxYoVTExMzNbhpQ+FJL9v\n085LA0kGgSSDQBIGgSQMAkm0DIIka5O8kGQyyS0zbP9Ikm3N9l1JVnRdqKT+DA2CJAuAu4GrgEuA\n65JcMq3ZTcAfquqTwA+BH3RdqKT+tDkjWAVMVtWLVfUm8BCwflqb9cDWZv5h4ItJ0l2ZkvrU5oGi\npcBLU5YPAZ87XZuqOpnkOPBx4NWpjZJsBDYCjI2NtSrQPJHeadGiRRw7dqyz/Y30ycKq2gJsARgf\nH289aupbJ37UW03zxYLzNtkP2A+nLDhvU6f7a3Np8DKwfMrysmbdjG2SnAV8DDjaRYGS+tcmCJ4B\nVia5OMnZwAZg+7Q224EbmvlrgF+V46RL88bQS4Pmmv9m4BfAAuC+qtqf5HZgoqq2A/cCP0syCRxj\nEBaS5olW9wiqagewY9q6zVPm/wJ8tdvSJI2KTxZKMggkGQSSMAgkYRBIwiCQhEEgCYNAEgaBJAwC\nSRgEkjAIJGEQSMIgkIRBIAmDQBIGgSQMAkkYBJIwCCRhEEjCIJCEQSAJg0ASLYMgydokLySZTHLL\nDNtvTHIkyd5m+kb3pUrqy9A3HSVZANwNfInBK9GfSbK9qg5Ma7qtqm7uoUZJPWtzRrAKmKyqF6vq\nTeAhYH2/ZUkapTZBsBR4acryoWbddF9J8lySh5Msn2E7STYmmUgyceTIkfdRrqQ+dHWz8OfAiqq6\nDHgS2DpTo6raUlXjVTW+ZMmSjg4t6Uy1CYKXgan/wy9r1r2tqo5W1RvN4k+Az3ZTnqRRaBMEzwAr\nk1yc5GxgA7B9aoMkF05ZvBo42F2Jkvo29FuDqjqZ5GbgF8AC4L6q2p/kdmCiqrYD/5LkauAkcAy4\nsceaJXVsaBAAVNUOYMe0dZunzH8P+F63pUkaFZ8slGQQSDIIJGEQSMIgkIRBIAmDQBIGgSQMAkkY\nBJIwCCRhEEjCIJCEQSAJg0ASBoEkDAJJGASSMAgkYRBIwiCQhEEgCYNAEi2CIMl9SV5Jsu8025Pk\nziSTzUtQr+i+TEl9anNG8FNg7btsvwpY2UwbgR+feVmSRmloEFTVUwxeY3Y664H7a+Bp4Pxp70KU\nNMd1cY9gKfDSlOVDzTpJ80Srdx92JclGBpcPjI2Ntf65Bedt6qukecV+GLAfIEmn++siCF4Glk9Z\nXtase4eq2gJsARgfH6+2B9h667Yzqe8D4YbbrrUfGPTDWyd+NNtlzLquw7CLS4PtwPXNtwergeNV\ndbiD/UoakaFnBEkeBNYAi5McAm4FFgJU1T0MXpe+DpgE/gR8va9iJfVjaBBU1XVDthfw7c4qkjRy\nPlkoySCQZBBIwiCQhEEgCYNAEgaBJAwCSRgEkjAIJGEQSMIgkIRBIAmDQBIGgSQMAkkYBJIwCCRh\nEEjCIJCEQSAJg0ASBoEkDAJJtAiCJPcleSXJvtNsX5PkeJK9zbS5+zIl9anNS1B/CtwF3P8ubX5d\nVV/upCJJIzf0jKCqngKOjaAWSbOkq3sEVyZ5NskTSS7taJ+SRqTNpcEwe4CLqur1JOuAx4CVMzVM\nshHYCDA2NtbBoSV14YzPCKrqRFW93szvABYmWXyatluqaryqxpcsWXKmh5bUkTMOgiQXJEkzv6rZ\n59Ez3a+k0Rl6aZDkQWANsDjJIeBWYCFAVd0DXAN8K8lJ4M/Ahqqq3iqW1LmhQVBV1w3ZfheDrxcl\nzVM+WSjJIJBkEEjCIJCEQSAJg0ASBoEkDAJJGASSMAgkYRBIwiCQhEEgCYNAEgaBJAwCSRgEkjAI\nJGEQSMIgkIRBIAmDQBIGgSQMAkm0CIIky5PsTHIgyf4km2ZokyR3JplM8lySK/opV1If2rwN+STw\n3arak+RcYHeSJ6vqwJQ2VzF4A/JK4HPAj5s/Jc0DQ88IqupwVe1p5l8DDgJLpzVbD9xfA08D5ye5\nsPNqJfXiPd0jSLICuBzYNW3TUuClKcuHeGdYSJqrqqrVBJwD7Ab+aYZtjwNfmLL8S2B8hnYbgQlg\nYmxsrNoAnJycpk1J2n5+Jtp8vtvcIyDJQuAR4IGqenSGJi8Dy6csL2vW/T9VtQXYAjA+Pl5tjg2w\n9dZtbZt+YN1w27X2A/bDKTfcdm2n+2vzrUGAe4GDVXXHaZptB65vvj1YDRyvqsMd1impR23OCD4P\nfA14PsneZt33gTGAqroH2AGsAyaBPwFf775USX0ZGgRV9RsgQ9oU8O2uipI0Wj5ZKMkgkGQQSMIg\nkIRBIAmDQBIGgSQMAkkYBJIwCCRhEEjCIJCEQSAJg0ASBoEkDAJJGASSMAgkYRBIwiCQhEEgCYNA\nEgaBJAwCSbR75dnyJDuTHEiyP8mmGdqsSXI8yd5m2txPuZL60OaVZyeB71bVniTnAruTPFlVB6a1\n+3VVfbn7EiX1begZQVUdrqo9zfxrwEFgad+FSRqd93SPIMkK4HJg1wybr0zybJInklzaQW2SRqTN\npQEASc4BHgG+U1Unpm3eA1xUVa8nWQc8BqycYR8bgY0AY2Nj77toSd1qdUaQZCGDEHigqh6dvr2q\nTlTV6838DmBhksUztNtSVeNVNb5kyZIzLF1SV9p8axDgXuBgVd1xmjYXNO1IsqrZ79EuC5XUnzaX\nBp8HvgY8n2Rvs+77wBhAVd0DXAN8K8lJ4M/AhqqqHuqV1IOhQVBVvwEypM1dwF1dFSVptHyyUJJB\nIMkgkIRBIAmDQBIGgSQMAkkYBJIwCCRhEEjCIJCEQSAJg0ASBoEkDAJJGASSMAgkYRBIwiCQhEEg\nCYNAEgaBJAwCSRgEkmj3yrOPJvlt86bj/Ulum6HNR5JsSzKZZFfz1mRJ80SbM4I3gH+sqk8DnwHW\nJlk9rc1NwB+q6pPAD4EfdFumpD4NDYIaeL1ZXNhM099ruB7Y2sw/DHzx1EtRJc19bV+LvqB5Aeor\nwJNVtWtak6XASwBVdRI4Dny8y0Il9aiqWk/A+cBO4FPT1u8Dlk1Z/h2weIaf3whMABNjY2PVxqJF\ni4rBGciHekoy6zXMhcl+GEyLFi1q9fkBJtp8ttu8Fv1tVfXHJDuBtQw+/Ke8DCwHDiU5C/gYcHSG\nn98CbAEYHx+vNsc8duzYeylR0vvQ5luDJUnOb+b/FvgS8N/Tmm0HbmjmrwF+1aSRpHmgzRnBhcDW\nJAsYBMd/VNXjSW5ncNqxHbgX+FmSSeAYsKG3iiV1bmgQVNVzwOUzrN88Zf4vwFe7LU3SqPhkoSSD\nQJJBIAmDQBIGgSQgs/V1f5IjwO9bNF0MvNpzOdZgDR/UGi6qqiXDGs1aELSVZKKqxq3BGqyhvxq8\nNJBkEEiaH0GwZbYLwBpOsYaBD1wNc/4egaT+zYczAkk9mzNBkGRtkheaAVBvmWF77wOktqjhxiRH\nkuxtpm90fPz7krySZN9ptifJnU19zyW5osvjt6xhTZLjU/pg80ztzrCG5Ul2JjnQDJi7aYY2vfZF\nyxp67YuRDhz8XkYo6msCFjAY1egTwNnAs8Al09r8M3BPM78B2DYLNdwI3NVjP/wDcAWw7zTb1wFP\nAAFWA7tmoYY1wOM9/z5cCFzRzJ8L/M8M/xa99kXLGnrti+bvdk4zvxDYBaye1qaTz8VcOSNYBUxW\n1YtV9SbwEIMBUafqe4DUNjX0qqqeYjCew+msB+6vgaeB85NcOOIaeldVh6tqTzP/GnCQwbiYU/Xa\nFy1r6FXzdxvJwMFzJQjeHvy0cYh3dnrfA6S2qQHgK82p6MNJlnd4/Dba1ti3K5vT1SeSXNrngZpT\n3csZ/G841cj64l1qgJ77YlQDB8+VIJgvfg6sqKrLgCf5axJ/mOxh8Njqp4F/Bx7r60BJzgEeAb5T\nVSf6Os4Z1NB7X1TVW1X1GWAZsCrJp7o+BsydIDg1+Okpy5p1M7Z5twFS+6yhqo5W1RvN4k+Az3Z4\n/Dba9FOvqurEqdPVqtoBLEyyuOvjJFnI4AP4QFU9OkOT3vtiWA2j6otm/39kMIL42mmbOvlczJUg\neAZYmeTiJGczuOmxfVqbvgdIHVrDtGvQqxlcN47SduD65o75auB4VR0eZQFJLjh1DZpkFYPfoS4D\nmWb/9wIHq+qO0zTrtS/a1NB3X2SUAwf3dcfzfdwhXcfgzuzvgH9t1t0OXN3MfxT4T2AS+C3wiVmo\n4d+A/Qy+UdgJ/F3Hx38QOAz8L4Nr3puAbwLfrL/eRb67qe95YLyHPhhWw81T+uBp4O97qOELDG6K\nPQfsbaZ1o+yLljX02hfAZcB/NTXsAzb39bnwyUJJc+bSQNIsMggkGQSSDAJJGASSMAgkYRBIwiCQ\nBPwfDRpQTxEl+gAAAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7f08acbdc438>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"areas_gdf[\"region_dict\"] = pd.Series(cluster_obj.labels_)\n", | |
"areas_gdf.plot(\"region_dict\")\n", | |
"plt.gca().invert_yaxis()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## with GeoDataFrame" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### using a string as 2<sup>nd</sup> arg" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": { | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"running FLOW algorithm\n", | |
"{0: 1, 1: 1, 2: 1, 3: 0, 4: 0, 5: 1, 6: 0, 7: 0, 8: 0}\n" | |
] | |
} | |
], | |
"source": [ | |
"cluster_obj = ClusterExact(2) # reset cluster_obj\n", | |
"cluster_obj.fit_from_geodataframe(areas_gdf, \"values\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\nBPwfDRpQTxEl+gAAAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7f08b044b668>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"areas_gdf[\"region_gdf\"] = pd.Series(cluster_obj.labels_)\n", | |
"areas_gdf.plot(\"region_gdf\")\n", | |
"plt.gca().invert_yaxis()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### using a list of length 1 as 2<sup>nd</sup> arg" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"running FLOW algorithm\n", | |
"{0: 1, 1: 1, 2: 1, 3: 0, 4: 0, 5: 1, 6: 0, 7: 0, 8: 0}\n" | |
] | |
} | |
], | |
"source": [ | |
"cluster_obj = ClusterExact(2) # reset cluster_obj\n", | |
"cluster_obj.fit_from_geodataframe(areas_gdf, [\"values\"])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\nBPwfDRpQTxEl+gAAAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7f08b04ed710>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"areas_gdf[\"region_gdf\"] = pd.Series(cluster_obj.labels_)\n", | |
"areas_gdf.plot(\"region_gdf\")\n", | |
"plt.gca().invert_yaxis()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### using a list containing multiple elements as 2<sup>nd</sup> arg" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 17, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"running FLOW algorithm\n", | |
"{0: 1, 1: 1, 2: 1, 3: 0, 4: 0, 5: 1, 6: 0, 7: 0, 8: 0}\n" | |
] | |
} | |
], | |
"source": [ | |
"cluster_obj = ClusterExact(2) # reset cluster_obj\n", | |
"cluster_obj.fit_from_geodataframe(areas_gdf, [\"values\", \"values2\"])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\nBPwfDRpQTxEl+gAAAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7f08b047bf28>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"areas_gdf[\"region_gdf\"] = pd.Series(cluster_obj.labels_)\n", | |
"areas_gdf.plot(\"region_gdf\")\n", | |
"plt.gca().invert_yaxis()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## with networkx" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"running FLOW algorithm\n", | |
"{0: 1, 1: 1, 2: 1, 3: 0, 4: 0, 5: 1, 6: 0, 7: 0, 8: 0}\n" | |
] | |
} | |
], | |
"source": [ | |
"cluster_obj = ClusterExact(2) # reset cluster_obj\n", | |
"cluster_obj.fit_from_networkx(areas_nx, data_dict)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\nBPwfDRpQTxEl+gAAAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7f08acac17f0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"areas_gdf[\"region_nx\"] = pd.Series(cluster_obj.labels_)\n", | |
"areas_gdf.plot(\"region_nx\")\n", | |
"plt.gca().invert_yaxis()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## with W" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 21, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"running FLOW algorithm\n", | |
"{0: 1, 1: 1, 2: 1, 3: 0, 4: 0, 5: 1, 6: 0, 7: 0, 8: 0}\n" | |
] | |
} | |
], | |
"source": [ | |
"cluster_obj = ClusterExact(2) # reset cluster_obj\n", | |
"cluster_obj.fit_from_w(areas_w, data_dict)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAQIAAAD8CAYAAACcoKqNAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAADU5JREFUeJzt3V+oHvWdx/H3Z2NsF9QamoCS5BhLA4sWW+0hjduyhC2F\nGIqBrcV4UbVYQruVTaE3tgsRvVl6Y6mrVEKVxiKaXRVJJVKkDdhemHqSjZo/63IqFCMBY9ImSlvd\nyHcvnok9ezzxGc3Mc87R9wuGzJ/fmfnml/N8MjPP8JtUFZI+3P5mtguQNPsMAkkGgSSDQBIGgSQM\nAkkYBJIwCCRhEEgCzpqtAy9evLhWrFgxW4eXPhR27979alUtGdZu1oJgxYoVTExMzNbhpQ+FJL9v\n085LA0kGgSSDQBIGgSQMAkm0DIIka5O8kGQyyS0zbP9Ikm3N9l1JVnRdqKT+DA2CJAuAu4GrgEuA\n65JcMq3ZTcAfquqTwA+BH3RdqKT+tDkjWAVMVtWLVfUm8BCwflqb9cDWZv5h4ItJ0l2ZkvrU5oGi\npcBLU5YPAZ87XZuqOpnkOPBx4NWpjZJsBDYCjI2NtSrQPJHeadGiRRw7dqyz/Y30ycKq2gJsARgf\nH289aupbJ37UW03zxYLzNtkP2A+nLDhvU6f7a3Np8DKwfMrysmbdjG2SnAV8DDjaRYGS+tcmCJ4B\nVia5OMnZwAZg+7Q224EbmvlrgF+V46RL88bQS4Pmmv9m4BfAAuC+qtqf5HZgoqq2A/cCP0syCRxj\nEBaS5olW9wiqagewY9q6zVPm/wJ8tdvSJI2KTxZKMggkGQSSMAgkYRBIwiCQhEEgCYNAEgaBJAwC\nSRgEkjAIJGEQSMIgkIRBIAmDQBIGgSQMAkkYBJIwCCRhEEjCIJCEQSAJg0ASLYMgydokLySZTHLL\nDNtvTHIkyd5m+kb3pUrqy9A3HSVZANwNfInBK9GfSbK9qg5Ma7qtqm7uoUZJPWtzRrAKmKyqF6vq\nTeAhYH2/ZUkapTZBsBR4acryoWbddF9J8lySh5Msn2E7STYmmUgyceTIkfdRrqQ+dHWz8OfAiqq6\nDHgS2DpTo6raUlXjVTW+ZMmSjg4t6Uy1CYKXgan/wy9r1r2tqo5W1RvN4k+Az3ZTnqRRaBMEzwAr\nk1yc5GxgA7B9aoMkF05ZvBo42F2Jkvo29FuDqjqZ5GbgF8AC4L6q2p/kdmCiqrYD/5LkauAkcAy4\nsceaJXVsaBAAVNUOYMe0dZunzH8P+F63pUkaFZ8slGQQSDIIJGEQSMIgkIRBIAmDQBIGgSQMAkkY\nBJIwCCRhEEjCIJCEQSAJg0ASBoEkDAJJGASSMAgkYRBIwiCQhEEgCYNAEi2CIMl9SV5Jsu8025Pk\nziSTzUtQr+i+TEl9anNG8FNg7btsvwpY2UwbgR+feVmSRmloEFTVUwxeY3Y664H7a+Bp4Pxp70KU\nNMd1cY9gKfDSlOVDzTpJ80Srdx92JclGBpcPjI2Ntf65Bedt6qukecV+GLAfIEmn++siCF4Glk9Z\nXtase4eq2gJsARgfH6+2B9h667Yzqe8D4YbbrrUfGPTDWyd+NNtlzLquw7CLS4PtwPXNtwergeNV\ndbiD/UoakaFnBEkeBNYAi5McAm4FFgJU1T0MXpe+DpgE/gR8va9iJfVjaBBU1XVDthfw7c4qkjRy\nPlkoySCQZBBIwiCQhEEgCYNAEgaBJAwCSRgEkjAIJGEQSMIgkIRBIAmDQBIGgSQMAkkYBJIwCCRh\nEEjCIJCEQSAJg0ASBoEkDAJJtAiCJPcleSXJvtNsX5PkeJK9zbS5+zIl9anNS1B/CtwF3P8ubX5d\nVV/upCJJIzf0jKCqngKOjaAWSbOkq3sEVyZ5NskTSS7taJ+SRqTNpcEwe4CLqur1JOuAx4CVMzVM\nshHYCDA2NtbBoSV14YzPCKrqRFW93szvABYmWXyatluqaryqxpcsWXKmh5bUkTMOgiQXJEkzv6rZ\n59Ez3a+k0Rl6aZDkQWANsDjJIeBWYCFAVd0DXAN8K8lJ4M/Ahqqq3iqW1LmhQVBV1w3ZfheDrxcl\nzVM+WSjJIJBkEEjCIJCEQSAJg0ASBoEkDAJJGASSMAgkYRBIwiCQhEEgCYNAEgaBJAwCSRgEkjAI\nJGEQSMIgkIRBIAmDQBIGgSQMAkm0CIIky5PsTHIgyf4km2ZokyR3JplM8lySK/opV1If2rwN+STw\n3arak+RcYHeSJ6vqwJQ2VzF4A/JK4HPAj5s/Jc0DQ88IqupwVe1p5l8DDgJLpzVbD9xfA08D5ye5\nsPNqJfXiPd0jSLICuBzYNW3TUuClKcuHeGdYSJqrqqrVBJwD7Ab+aYZtjwNfmLL8S2B8hnYbgQlg\nYmxsrNoAnJycpk1J2n5+Jtp8vtvcIyDJQuAR4IGqenSGJi8Dy6csL2vW/T9VtQXYAjA+Pl5tjg2w\n9dZtbZt+YN1w27X2A/bDKTfcdm2n+2vzrUGAe4GDVXXHaZptB65vvj1YDRyvqsMd1impR23OCD4P\nfA14PsneZt33gTGAqroH2AGsAyaBPwFf775USX0ZGgRV9RsgQ9oU8O2uipI0Wj5ZKMkgkGQQSMIg\nkIRBIAmDQBIGgSQMAkkYBJIwCCRhEEjCIJCEQSAJg0ASBoEkDAJJGASSMAgkYRBIwiCQhEEgCYNA\nEgaBJAwCSbR75dnyJDuTHEiyP8mmGdqsSXI8yd5m2txPuZL60OaVZyeB71bVniTnAruTPFlVB6a1\n+3VVfbn7EiX1begZQVUdrqo9zfxrwEFgad+FSRqd93SPIMkK4HJg1wybr0zybJInklzaQW2SRqTN\npQEASc4BHgG+U1Unpm3eA1xUVa8nWQc8BqycYR8bgY0AY2Nj77toSd1qdUaQZCGDEHigqh6dvr2q\nTlTV6838DmBhksUztNtSVeNVNb5kyZIzLF1SV9p8axDgXuBgVd1xmjYXNO1IsqrZ79EuC5XUnzaX\nBp8HvgY8n2Rvs+77wBhAVd0DXAN8K8lJ4M/AhqqqHuqV1IOhQVBVvwEypM1dwF1dFSVptHyyUJJB\nIMkgkIRBIAmDQBIGgSQMAkkYBJIwCCRhEEjCIJCEQSAJg0ASBoEkDAJJGASSMAgkYRBIwiCQhEEg\nCYNAEgaBJAwCSRgEkmj3yrOPJvlt86bj/Ulum6HNR5JsSzKZZFfz1mRJ80SbM4I3gH+sqk8DnwHW\nJlk9rc1NwB+q6pPAD4EfdFumpD4NDYIaeL1ZXNhM099ruB7Y2sw/DHzx1EtRJc19bV+LvqB5Aeor\nwJNVtWtak6XASwBVdRI4Dny8y0Il9aiqWk/A+cBO4FPT1u8Dlk1Z/h2weIaf3whMABNjY2PVxqJF\ni4rBGciHekoy6zXMhcl+GEyLFi1q9fkBJtp8ttu8Fv1tVfXHJDuBtQw+/Ke8DCwHDiU5C/gYcHSG\nn98CbAEYHx+vNsc8duzYeylR0vvQ5luDJUnOb+b/FvgS8N/Tmm0HbmjmrwF+1aSRpHmgzRnBhcDW\nJAsYBMd/VNXjSW5ncNqxHbgX+FmSSeAYsKG3iiV1bmgQVNVzwOUzrN88Zf4vwFe7LU3SqPhkoSSD\nQJJBIAmDQBIGgSQgs/V1f5IjwO9bNF0MvNpzOdZgDR/UGi6qqiXDGs1aELSVZKKqxq3BGqyhvxq8\nNJBkEEiaH0GwZbYLwBpOsYaBD1wNc/4egaT+zYczAkk9mzNBkGRtkheaAVBvmWF77wOktqjhxiRH\nkuxtpm90fPz7krySZN9ptifJnU19zyW5osvjt6xhTZLjU/pg80ztzrCG5Ul2JjnQDJi7aYY2vfZF\nyxp67YuRDhz8XkYo6msCFjAY1egTwNnAs8Al09r8M3BPM78B2DYLNdwI3NVjP/wDcAWw7zTb1wFP\nAAFWA7tmoYY1wOM9/z5cCFzRzJ8L/M8M/xa99kXLGnrti+bvdk4zvxDYBaye1qaTz8VcOSNYBUxW\n1YtV9SbwEIMBUafqe4DUNjX0qqqeYjCew+msB+6vgaeB85NcOOIaeldVh6tqTzP/GnCQwbiYU/Xa\nFy1r6FXzdxvJwMFzJQjeHvy0cYh3dnrfA6S2qQHgK82p6MNJlnd4/Dba1ti3K5vT1SeSXNrngZpT\n3csZ/G841cj64l1qgJ77YlQDB8+VIJgvfg6sqKrLgCf5axJ/mOxh8Njqp4F/Bx7r60BJzgEeAb5T\nVSf6Os4Z1NB7X1TVW1X1GWAZsCrJp7o+BsydIDg1+Okpy5p1M7Z5twFS+6yhqo5W1RvN4k+Az3Z4\n/Dba9FOvqurEqdPVqtoBLEyyuOvjJFnI4AP4QFU9OkOT3vtiWA2j6otm/39kMIL42mmbOvlczJUg\neAZYmeTiJGczuOmxfVqbvgdIHVrDtGvQqxlcN47SduD65o75auB4VR0eZQFJLjh1DZpkFYPfoS4D\nmWb/9wIHq+qO0zTrtS/a1NB3X2SUAwf3dcfzfdwhXcfgzuzvgH9t1t0OXN3MfxT4T2AS+C3wiVmo\n4d+A/Qy+UdgJ/F3Hx38QOAz8L4Nr3puAbwLfrL/eRb67qe95YLyHPhhWw81T+uBp4O97qOELDG6K\nPQfsbaZ1o+yLljX02hfAZcB/NTXsAzb39bnwyUJJc+bSQNIsMggkGQSSDAJJGASSMAgkYRBIwiCQ\nBPwfDRpQTxEl+gAAAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7f08aca497b8>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"areas_gdf[\"region_w\"] = pd.Series(cluster_obj.labels_)\n", | |
"areas_gdf.plot(\"region_w\")\n", | |
"plt.gca().invert_yaxis()" | |
] | |
} | |
], | |
"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.5.2" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment