def fit_from_networkx(self, graph, attr, spatially_extensive_attr, threshold, max_it=10, objective_func=ObjectiveFunctionPairwise()): """ Alternative API for :meth:`fit_from_scipy_sparse_matrix:. Parameters ---------- graph : `networkx.Graph` attr : str, list or dict If the clustering criteria are present in the networkx.Graph `graph` as node attributes, then they can be specified as a string (for one criterion) or as a list of strings (for multiple criteria). Alternatively, a dict can be used with each key being a node of the networkx.Graph `graph` and each value being the corresponding clustering criterion (a scalar (e.g. `float` or `int`) or a :class:`numpy.ndarray`). If there are no clustering criteria present in the networkx.Graph `graph` as node attributes, then a dictionary must be used for this argument. Refer to the corresponding argument in :meth:`fit_from_dict` for more details about the expected dict. spatially_extensive_attr : str, list or dict If the spatially extensive attribute is present in the networkx.Graph `graph` as node attributes, then they can be specified as a string (for one attribute) or as a list of strings (for multiple attributes). Alternatively, a dict can be used with each key being a node of the networkx.Graph `graph` and each value being the corresponding spatially extensive attribute (a scalar (e.g. `float` or `int`) or a :class:`numpy.ndarray`). If there are no spatially extensive attributes present in the networkx.Graph `graph` as node attributes, then a dictionary must be used for this argument. Refer to the corresponding argument in :meth:`fit_from_dict` for more details about the expected dict. threshold : numbers.Real or :class:`numpy.ndarray` Refer to the corresponding argument in :meth:`fit_from_scipy_sparse_matrix`. max_it : int, default: 10 Refer to the corresponding argument in :meth:`fit_from_scipy_sparse_matrix`. objective_func : :class:`region.ObjectiveFunction`, default: ObjectiveFunctionPairwise() Refer to the corresponding argument in :meth:`fit_from_scipy_sparse_matrix`. """ adj = nx.to_scipy_sparse_matrix(graph) attr = array_from_graph_or_dict(graph, attr) sp_ext_attr = array_from_graph_or_dict(graph, spatially_extensive_attr) self.fit_from_scipy_sparse_matrix(adj, attr, sp_ext_attr, threshold=threshold, max_it=max_it, objective_func=objective_func)
def fit_from_networkx(self, graph, attr, spatially_extensive_attr, threshold, solver="cbc", metric="euclidean"): """ Alternative API for :meth:`fit_from_scipy_sparse_matrix`. Parameters ---------- graph : `networkx.Graph` attr : str, list or dict If the clustering criteria are present in the networkx.Graph `graph` as node attributes, then they can be specified as a string (for one criterion) or as a list of strings (for multiple criteria). Alternatively, a dict can be used with each key being a node of the networkx.Graph `graph` and each value being the corresponding clustering criterion (a scalar (e.g. `float` or `int`) or a :class:`numpy.ndarray`). If there are no clustering criteria present in the networkx.Graph `graph` as node attributes, then a dictionary must be used for this argument. Refer to the corresponding argument in :meth:`fit_from_dict` for more details about the expected dict. spatially_extensive_attr : str, list or dict If the spatially extensive attribute is present in the networkx.Graph `graph` as node attributes, then they can be specified as a string (for one attribute) or as a list of strings (for multiple attributes). Alternatively, a dict can be used with each key being a node of the networkx.Graph `graph` and each value being the corresponding spatially extensive attribute (a scalar (e.g. `float` or `int`) or a :class:`numpy.ndarray`). If there are no spatially extensive attributes present in the networkx.Graph `graph` as node attributes, then a dictionary must be used for this argument. Refer to the corresponding argument in :meth:`fit_from_dict` for more details about the expected dict. threshold : numbers.Real or :class:`numpy.ndarray` Refer to the corresponding argument in :meth:`fit_from_scipy_sparse_matrix`. solver : {"cbc", "cplex", "glpk", "gurobi"}, default: "cbc" Refer to the corresponding argument in :meth:`fit_from_scipy_sparse_matrix`. metric : str or function, default: "euclidean" Refer to the corresponding argument in :meth:`fit_from_scipy_sparse_matrix`. """ adj = nx.to_scipy_sparse_matrix(graph) attr = array_from_graph_or_dict(graph, attr) sp_ext_attr = array_from_graph_or_dict(graph, spatially_extensive_attr) self.fit_from_scipy_sparse_matrix(adj, attr, sp_ext_attr, threshold=threshold, solver=solver, metric=metric)
def fit_from_networkx(self, graph, attr, n_regions, initial_labels=None, objective_func=ObjectiveFunctionPairwise()): """ Alternative API for :meth:`fit_from_scipy_sparse_matrix`. Parameters ---------- graph : `networkx.Graph` Graph representing the contiguity relation. attr : str, list or dict If the clustering criteria are present in the networkx.Graph `graph` as node attributes, then they can be specified as a string (for one criterion) or as a list of strings (for multiple criteria). Alternatively, a dict can be used with each key being a node of the networkx.Graph `graph` and each value being the corresponding clustering criterion (a scalar (e.g. `float` or `int`) or a :class:`numpy.ndarray`). If there are no clustering criteria present in the networkx.Graph `graph` as node attributes, then a dictionary must be used for this argument. Refer to the corresponding argument in :meth:`fit_from_dict` for more details about the expected dict. n_regions : `int` Refer to the corresponding argument in :meth:`fit_from_scipy_sparse_matrix`. initial_labels : str or dict or None, default: None If str, then the string names the graph's attribute holding the information about the initial clustering. If dict, then each key is a node and each value is the region the key area is assigned to at the beginning of the algorithm. If None, then a random initial clustering will be generated. objective_func : :class:`region.ObjectiveFunction`, default: ObjectiveFunctionPairwise() Refer to the corresponding argument in :meth:`fit_from_scipy_sparse_matrix`. """ adj = nx.to_scipy_sparse_matrix(graph) attr = array_from_graph_or_dict(graph, attr) if initial_labels is not None: initial_labels = array_from_graph_or_dict(graph, initial_labels) self.fit_from_scipy_sparse_matrix( adj, attr, n_regions, initial_labels, objective_func=objective_func)
def fit_from_networkx(self, graph, attr, n_regions, initial_labels=None, cooling_factor=0.85, objective_func=ObjectiveFunctionPairwise()): """ Parameters ---------- graph : `networkx.Graph` Refer to the corresponding argument in :meth:`AZP.fit_from_networkx`. attr : str, list or dict Refer to the corresponding argument in :meth:`AZP.fit_from_networkx`. n_regions : `int` Refer to the corresponding argument in :meth:`fit_from_scipy_sparse_matrix`. initial_labels : str or dict or None, default: None Refer to the corresponding argument in :meth:`AZP.fit_from_networkx`. cooling_factor : float, default: 0.85 Refer to the corresponding argument in :meth:`fit_from_scipy_sparse_matrix`. objective_func : :class:`region.ObjectiveFunction`, default: ObjectiveFunctionPairwise() Refer to the corresponding argument in :meth:`fit_from_scipy_sparse_matrix`. """ adj = nx.to_scipy_sparse_matrix(graph) attr = array_from_graph_or_dict(graph, attr) if initial_labels is not None: initial_labels = array_from_graph_or_dict(graph, initial_labels) self.fit_from_scipy_sparse_matrix( adj, attr, n_regions, initial_labels, cooling_factor=cooling_factor, objective_func=objective_func)
def fit_from_networkx(self, graph, attr, n_regions, method="flow", solver="cbc", metric="euclidean"): """ Alternative API for :meth:`fit_from_scipy_sparse_matrix:. Parameters ---------- graph : `networkx.Graph` Graph representing the areas' contiguity relation. attr : str, list or dict If the clustering criteria are present in the networkx.Graph `graph` as node attributes, then they can be specified as a string (for one criterion) or as a list of strings (for multiple criteria). Alternatively, a dict can be used with each key being a node of the networkx.Graph `graph` and each value being the corresponding clustering criterion (a scalar (e.g. `float` or `int`) or a :class:`numpy.ndarray`). If there are no clustering criteria present in the networkx.Graph `graph` as node attributes, then a dictionary must be used for this argument. Refer to the corresponding argument in :meth:`fit_from_dict` for more details about the expected dict. n_regions : int See the corresponding argument in :meth:`fit_from_scipy_sparse_matrix`. method : str See the corresponding argument in :meth:`fit_from_scipy_sparse_matrix`. solver : str See the corresponding argument in :meth:`fit_from_scipy_sparse_matrix`. metric : str or function, default: "euclidean" See the corresponding argument in :meth:`fit_from_scipy_sparse_matrix`. """ adj = nx.to_scipy_sparse_matrix(graph) attr = array_from_graph_or_dict(graph, attr) self.fit_from_scipy_sparse_matrix(adj, attr, n_regions, method=method, solver=solver, metric=metric)