pyclustering.cluster.syncnet.syncnet Class Reference

Class represents clustering algorithm SyncNet. More...

+ Inheritance diagram for pyclustering.cluster.syncnet.syncnet:
+ Collaboration diagram for pyclustering.cluster.syncnet.syncnet:

Public Member Functions

def __init__ (self, sample, radius, conn_repr=conn_represent.MATRIX, initial_phases=initial_type.RANDOM_GAUSSIAN, enable_conn_weight=False, ccore=True)
 Contructor of the oscillatory network SYNC for cluster analysis. More...
 
def __del__ (self)
 Destructor of oscillatory network is based on Kuramoto model.
 
def process (self, order=0.998, solution=solve_type.FAST, collect_dynamic=True)
 Peforms cluster analysis using simulation of the oscillatory network. More...
 
def show_network (self)
 Shows connections in the network. More...
 
- Public Member Functions inherited from pyclustering.nnet.sync.sync_network
def __init__ (self, num_osc, weight=1, frequency=0, type_conn=conn_type.ALL_TO_ALL, representation=conn_represent.MATRIX, initial_phases=initial_type.RANDOM_GAUSSIAN, ccore=True)
 Constructor of oscillatory network is based on Kuramoto model. More...
 
def __del__ (self)
 Destructor of oscillatory network is based on Kuramoto model.
 
def sync_order (self)
 Calculates current level of global synchorization (order parameter) in the network. More...
 
def sync_local_order (self)
 Calculates current level of local (partial) synchronization in the network. More...
 
def simulate (self, steps, time, solution=solve_type.FAST, collect_dynamic=True)
 Performs static simulation of Sync oscillatory network. More...
 
def simulate_dynamic (self, order=0.998, solution=solve_type.FAST, collect_dynamic=False, step=0.1, int_step=0.01, threshold_changes=0.0000001)
 Performs dynamic simulation of the network until stop condition is not reached. More...
 
def simulate_static (self, steps, time, solution=solve_type.FAST, collect_dynamic=False)
 Performs static simulation of oscillatory network. More...
 
def get_neighbors (self, index)
 Finds neighbors of the oscillator with specified index. More...
 
def has_connection (self, i, j)
 Returns True if there is connection between i and j oscillators and False - if connection doesn't exist. More...
 
- Public Member Functions inherited from pyclustering.nnet.network
def height (self)
 Height of the network grid (that is defined by amout of oscillators in each column), this value is zero in case of non-grid structure. More...
 
def width (self)
 Width of the network grid, this value is zero in case of non-grid structure. More...
 
def structure (self)
 Type of network structure that is used for connecting oscillators.
 
def __init__ (self, num_osc, type_conn=conn_type.ALL_TO_ALL, conn_repr=conn_represent.MATRIX, height=None, width=None)
 Constructor of the network. More...
 
def __len__ (self)
 Returns size of the network that is defined by amount of oscillators.
 
def has_connection (self, i, j)
 Returns True if there is connection between i and j oscillators and False - if connection doesn't exist. More...
 
def set_connection (self, i, j)
 Couples two specified oscillators in the network with dynamic connections. More...
 
def get_neighbors (self, index)
 Finds neighbors of the oscillator with specified index. More...
 

Detailed Description

Class represents clustering algorithm SyncNet.

SyncNet is bio-inspired algorithm that is based on oscillatory network that uses modified Kuramoto model. Each attribute of a data object is considered as a phase oscillator.

CCORE option can be used to use the pyclustering core - C/C++ shared library for processing that significantly increases performance.

Example:

# read sample for clustering from some file
sample = read_sample(path_to_file);
# create oscillatory network with connectivity radius 0.5 using CCORE (C++ implementation of pyclustering)
network = syncnet(sample, 0.5, ccore = True);
# run cluster analysis and collect output dynamic of the oscillatory network,
# network simulation is performed by Runge Kutta Fehlberg 45.
(dyn_time, dyn_phase) = network.process(0.998, solve_type.RFK45, True);
# show oscillatory network
network.show_network();
# obtain clustering results
clusters = network.get_clusters();
# show clusters
draw_clusters(sample, clusters);

Definition at line 164 of file syncnet.py.

Constructor & Destructor Documentation

◆ __init__()

def pyclustering.cluster.syncnet.syncnet.__init__ (   self,
  sample,
  radius,
  conn_repr = conn_represent.MATRIX,
  initial_phases = initial_type.RANDOM_GAUSSIAN,
  enable_conn_weight = False,
  ccore = True 
)

Contructor of the oscillatory network SYNC for cluster analysis.

Parameters
[in]sample(list): Input data that is presented as list of points (objects), each point should be represented by list or tuple.
[in]radius(double): Connectivity radius between points, points should be connected if distance between them less then the radius.
[in]conn_repr(conn_represent): Internal representation of connection in the network: matrix or list. Ignored in case of usage of CCORE library.
[in]initial_phases(initial_type): Type of initialization of initial phases of oscillators (random, uniformly distributed, etc.).
[in]enable_conn_weight(bool): If True - enable mode when strength between oscillators depends on distance between two oscillators. If False - all connection between oscillators have the same strength that equals to 1 (True).
[in]ccore(bool): Defines should be CCORE C++ library used instead of Python code or not.

Definition at line 196 of file syncnet.py.

Member Function Documentation

◆ process()

def pyclustering.cluster.syncnet.syncnet.process (   self,
  order = 0.998,
  solution = solve_type.FAST,
  collect_dynamic = True 
)

Peforms cluster analysis using simulation of the oscillatory network.

Parameters
[in]order(double): Order of synchronization that is used as indication for stopping processing.
[in]solution(solve_type): Specified type of solving diff. equation.
[in]collect_dynamic(bool): Specified requirement to collect whole dynamic of the network.
Returns
(syncnet_analyser) Returns analyser of results of clustering.

Definition at line 287 of file syncnet.py.

◆ show_network()

def pyclustering.cluster.syncnet.syncnet.show_network (   self)

Shows connections in the network.

It supports only 2-d and 3-d representation.

Definition at line 337 of file syncnet.py.


The documentation for this class was generated from the following file: