class_docstr: Algorithm class implementing FunkSVD matrix factorization.  FunkSVD is a regularized
  biased matrix factorization technique trained with featurewise stochastic gradient
  descent.
  
  See the base class :class:`.MFPredictor` for documentation on the estimated parameters
  you can extract from a trained model.
  
  Args:
      features(int): the number of features to train
      iterations(int): the number of iterations to train each feature
      lrate(double): the learning rate
      reg(double): the regularization factor
      damping(double): damping factor for the underlying mean
      bias(Predictor): the underlying bias model to fit.  If ``True``, then a
          :py:class:`.bias.Bias` model is fit with ``damping``.
      range(tuple):
          the ``(min, max)`` rating values to clamp ratings, or ``None`` to leave
          predictions unclamped.
      random_state:
          The random state for shuffling the data prior to training.
code: def predict_for_user(self, user, items, ratings=None):
      # look up user index
      # look up user index
      preds = self.score_by_ids(user, items)
      if self.bias is not None:
          preds = self.bias.inverse_transform_user(user, preds)
  
      # clamp if suitable
      if self.range is not None:
          rmin, rmax = self.range
          preds = np.clip(preds, rmin, rmax)
  
      return preds
  
imports: import logging
  import time
  import pandas
  import numpy
  import numba
  from seedbank import numpy_rng
  from .bias import Bias
  from .mf_common import MFPredictor
  from ..None import util
label_desc: Use image node_id 3 for calling the FunkSVD obj's underlying member method code with example usage: obj.predict_for_user(user, items, ratings) and returns: preds