docs: def opt_rankings(n_items, data, alpha=1e-6, method="Newton-CG",
          initial_params=None, max_iter=None, tol=1e-5):
      """Compute the ML estimate of model parameters using ``scipy.optimize``.
  
      This function computes the maximum-likelihood estimate of model parameters
      given ranking data (see :ref:`data-rankings`), using optimizers provided by
      the ``scipy.optimize`` module.
  
      If ``alpha > 0``, the function returns the maximum a-posteriori (MAP)
      estimate under an isotropic Gaussian prior with variance ``1 / alpha``. See
      :ref:`regularization` for details.
  
      Parameters
      ----------
      n_items : int
          Number of distinct items.
      data : list of lists
          Ranking data.
      alpha : float, optional
          Regularization strength.
      method : str, optional
          Optimization method. Either "BFGS" or "Newton-CG".
      initial_params : array_like, optional
          Parameters used to initialize the iterative procedure.
      max_iter : int, optional
          Maximum number of iterations allowed.
      tol : float, optional
          Tolerance for termination (method-specific).
  
      Returns
      -------
      params : numpy.ndarray
          The (penalized) ML estimate of model parameters.
  
      Raises
      ------
      ValueError
          If the method is not "BFGS" or "Newton-CG".
      """
      fcts = Top1Fcts.from_rankings(data, alpha)
      return _opt(n_items, fcts, method, initial_params, max_iter, tol)