class_docstr: Spherical k-means based recommender.
  
  Parameters
  ----------
  k: int, optional, default: 5
      The number of clusters.
  
  max_iter: int, optional, default: 100
      Maximum number of iterations.
  
  name: string, optional, default: 'Skmeans'
      The name of the recommender model.
  
  trainable: boolean, optional, default: True
      When False, the model is not trained and Cornac assumes that the model is already         trained. 
      
  tol : float, optional, default: 1e-6
      Relative tolerance with regards to skmeans' criterion to declare convergence.
      
  verbose: boolean, optional, default: False
      When True, some running logs are displayed.
  
  seed: int, optional, default: None
      Random seed for parameters initialization.
  
  init_par: numpy 1d array, optional, default: None
      The initial object parition, 1d array contaning the cluster label (int type starting from 0)         of each object (user). If par = None, then skmeans is initialized randomly.
    
  centroids: csc_matrix, shape (k,n_users)
      The maxtrix of cluster centroids.
  
  References
  ----------
  * Salah, Aghiles, Nicoleta Rogovschi, and Mohamed Nadif. "A dynamic collaborative filtering system     via a weighted clustering approach." Neurocomputing 175 (2016): 206-215.
code: def __init__(
      self,
      k=5,
      max_iter=100,
      name="Skmeans",
      trainable=True,
      tol=1e-6,
      verbose=True,
      seed=None,
      init_par=None,
  ):
      Recommender.__init__(
          self, name=name, trainable=trainable, verbose=verbose
      )
      self.k = k
      self.max_iter = max_iter
      self.tol = tol
      self.verbose = verbose
      self.seed = seed
      self.init_par = init_par
      self.centroids = None
  
file_path: cornac/cornac/models/skm/recom_skmeans.py
imports: import numpy
  import scipy.sparse
  from ..recommender import Recommender
  from ...exception import ScoreException
label_desc: Use image node_id 1 to create a new SKMeans object from inherited base classes: Recommender with example: obj = SKMeans(k, max_iter, name, trainable, tol, verbose, seed, init_par)