class_docstr: Adaptive Resonance Theory (ART1) Network for binary
  data clustering.
  
  Notes
  -----
  - Weights are not random, so the result will be
    always reproduceble.
  
  Parameters
  ----------
  rho : float
      Control reset action in training process. Value must be
      between ``0`` and ``1``, defaults to ``0.5``.
  
  n_clusters : int
      Number of clusters, defaults to ``2``. Min value is also ``2``.
  
  {BaseNetwork.Parameters}
  
  Methods
  -------
  train(X)
      ART trains until all clusters are found.
  
  predict(X)
      Each prediction trains a new network. It's an alias to
      the ``train`` method.
  
  {BaseSkeleton.fit}
  
  Examples
  --------
  >>> import numpy as np
  >>> from neupy import algorithms
  >>>
  >>> data = np.array([
  ...     [0, 1, 0],
  ...     [1, 0, 0],
  ...     [1, 1, 0],
  ... ])
  >>>>
  >>> artnet = algorithms.ART1(
  ...     step=2,
  ...     rho=0.7,
  ...     n_clusters=2,
  ...     verbose=False
  ... )
  >>> artnet.predict(data)
  array([ 0.,  1.,  1.])
code: def predict(self, X):
      return self.train(X)
  
file_path: neupy/neupy/algorithms/competitive/art.py
imports: from __future__ import division
  import numpy
  from neupy.utils import format_data
  from neupy.core.properties import ProperFractionProperty, IntProperty
  from neupy.algorithms.base import BaseNetwork
label_desc: Use image node_id 2 for calling the ART1 obj's underlying member method code with example usage: obj.predict(X) and returns: self