class_docstr: !
  @brief   Class represents a simple clustering algorithm based on the self-organized feature map.
  @details This algorithm uses amount of clusters that should be allocated as a size of SOM map. Captured
             objects by neurons are considered as clusters. The algorithm is designed to process data with Gaussian
             distribution that has spherical forms.
  
  Example:
  @code
      from pyclustering.cluster import cluster_visualizer
      from pyclustering.cluster.somsc import somsc
      from pyclustering.samples.definitions import FCPS_SAMPLES
      from pyclustering.utils import read_sample
  
      # Load list of points for cluster analysis
      sample = read_sample(FCPS_SAMPLES.SAMPLE_TWO_DIAMONDS)
  
      # Create instance of SOM-SC algorithm to allocated two clusters
      somsc_instance = somsc(sample, 2)
  
      # Run cluster analysis and obtain results
      somsc_instance.process()
      clusters = somsc_instance.get_clusters()
  
      # Visualize clustering results.
      visualizer = cluster_visualizer()
      visualizer.append_clusters(clusters, sample)
      visualizer.show()
  @endcode
class_docstr_tok: ["!","@","brief","Class","represents","a","simple","clustering","algorithm","based","on","the","self-organized","feature","map",".","@","details","This","algorithm","uses","amount","of","clusters","that","should","be","allocated","as","a","size","of","SOM","map",".","Captured","objects","by","neurons","are","considered","as","clusters",".","The","algorithm","is","designed","to","process","data","with","Gaussian","distribution","that","has","spherical","forms",".","Example",":","@","code","from","pyclustering.cluster","import","cluster_visualizer","from","pyclustering.cluster.somsc","import","somsc","from","pyclustering.samples.definitions","import","FCPS_SAMPLES","from","pyclustering.utils","import","read_sample","#","Load","list","of","points","for","cluster","analysis","sample","=","read_sample","(","FCPS_SAMPLES.SAMPLE_TWO_DIAMONDS",")","#","Create","instance","of","SOM-SC","algorithm","to","allocated","two","clusters","somsc_instance","=","somsc","(","sample",",","2",")","#","Run","cluster","analysis","and","obtain","results","somsc_instance.process","(",")","clusters","=","somsc_instance.get_clusters","(",")","#","Visualize","clustering","results",".","visualizer","=","cluster_visualizer","(",")","visualizer.append_clusters","(","clusters",",","sample",")","visualizer.show","(",")","@","endcode"]
docstr: !
  @brief Creates SOM-SC (Self Organized Map for Simple Clustering) algorithm for clustering analysis.
  
  @param[in] data (list): List of points that are used for processing.
  @param[in] amount_clusters (uint): Amount of clusters that should be allocated.
  @param[in] epouch (uint): Number of epochs for training of SOM.
  @param[in] ccore (bool): If it is True then CCORE implementation will be used for clustering analysis.
  @param[in] **kwargs: Arbitrary keyword arguments (available arguments: `random_state`).
  
  <b>Keyword Args:</b><br>
      - random_state (int): Seed for random state (by default is `None`, current system time is used).
docstr_tok: ["!","@","brief","Creates","SOM-SC","(","Self","Organized","Map","for","Simple","Clustering",")","algorithm","for","clustering","analysis",".","@","param","[","in","]","data","(","list",")",":","List","of","points","that","are","used","for","processing",".","@","param","[","in","]","amount_clusters","(","uint",")",":","Amount","of","clusters","that","should","be","allocated",".","@","param","[","in","]","epouch","(","uint",")",":","Number","of","epochs","for","training","of","SOM",".","@","param","[","in","]","ccore","(","bool",")",":","If","it","is","True","then","CCORE","implementation","will","be","used","for","clustering","analysis",".","@","param","[","in","]","*","*","kwargs",":","Arbitrary","keyword","arguments","(","available","arguments",":","`","random_state","`",")",".","<","b",">","Keyword","Args",":","<","\/b",">","<","br",">","-","random_state","(","int",")",":","Seed","for","random","state","(","by","default","is","`","None","`",",","current","system","time","is","used",")","."]
code: def __init__(
      self, data, amount_clusters, epouch=100, ccore=True, **kwargs
  ):
      """!
      @brief Creates SOM-SC (Self Organized Map for Simple Clustering) algorithm for clustering analysis.
  
      @param[in] data (list): List of points that are used for processing.
      @param[in] amount_clusters (uint): Amount of clusters that should be allocated.
      @param[in] epouch (uint): Number of epochs for training of SOM.
      @param[in] ccore (bool): If it is True then CCORE implementation will be used for clustering analysis.
      @param[in] **kwargs: Arbitrary keyword arguments (available arguments: `random_state`).
  
      <b>Keyword Args:</b><br>
          - random_state (int): Seed for random state (by default is `None`, current system time is used).
  
      """
  
      self.__data_pointer = data
      self.__amount_clusters = amount_clusters
      self.__epouch = epouch
      self.__ccore = ccore
      self.__random_state = kwargs.get("random_state", None)
  
      self.__network = None
  
      if self.__ccore is True:
          self.__ccore = ccore_library.workable()
  
      self.__verify_arguments()
  
file_path: pyclustering/pyclustering/cluster/somsc.py
imports: from pyclustering.core.wrapper import ccore_library
  from pyclustering.cluster.encoder import type_encoding
  from pyclustering.nnet.som import som, som_parameters
  from pyclustering.nnet.som import type_conn
label_desc: Use image node_id 1 to create a new somsc object  with example: obj = somsc(data, amount_clusters, epouch, ccore)