class_docstr: Biased matrix factorization for implicit feedback using SciKit-Learn's SVD
  solver (:class:`sklearn.decomposition.TruncatedSVD`).  It operates by first
  computing the bias, then computing the SVD of the bias residuals.
  
  You'll generally want one of the iterative SVD implementations such as
  :class:`lennskit.algorithms.als.BiasedMF`; this is here primarily as an
  example and for cases where you want to evaluate a pure SVD implementation.
code: def __init__(
      self, features, *, damping=5, bias=True, algorithm="randomized"
  ):
      if TruncatedSVD is None:
          raise ImportError("sklearn.decomposition")
      if bias is True:
          self.bias = Bias(damping=damping)
      else:
          self.bias = bias
      self.factorization = TruncatedSVD(features, algorithm=algorithm)
  
file_path: lkpy/lenskit/algorithms/svd.py
imports: import logging
  import pandas
  import numpy
  from .None import Predictor
  from .bias import Bias
  from ..data import sparse_ratings
  from ..util import Stopwatch
label_desc: Use image node_id 1 to create a new BiasedSVD object from inherited base classes: Predictor with example: obj = BiasedSVD(features)