\
        Training the SOM on the the data and calibrate itself.

        After the training, `self.quant_error` and `self.topog_error` are 
        respectively set.

        :param data: sparse input matrix (ideal dtype is `numpy.float32`)
        :type data: :class:`scipy.sparse.csr_matrix`
        :param labels: the labels associated with data
        :type labels: iterable
        :param \**kwargs: optional parameters for :meth:`train`

def fit(self, data, labels, **kwargs):
        """\
        Training the SOM on the the data and calibrate itself.

        After the training, `self.quant_error` and `self.topog_error` are 
        respectively set.

        :param data: sparse input matrix (ideal dtype is `numpy.float32`)
        :type data: :class:`scipy.sparse.csr_matrix`
        :param labels: the labels associated with data
        :type labels: iterable
        :param \**kwargs: optional parameters for :meth:`train`
        """
        # train the network
        self._som.train(data, **kwargs)
        # retrieve first and second bmus and distances
        bmus, q_error, t_error = self.bmus_with_errors(data)
        # set errors measures of training data
        self.quant_error = q_error
        self.topog_error = t_error
        # store training bmus
        self._bmus = bmus
        # calibrate
        self._calibrate(data, labels)