docs: def eval_llk(self, input_df, full_llk=False):
  		"""
  		Evaluate Poisson log-likelihood (plus constant) for a given dataset
  		
  		Note
  		----
  		This Poisson log-likelihood is calculated only for the combinations of users and items
  		provided here, so it's not a complete likelihood, and it might sometimes turn out to
  		be a positive number because of this.
  		Will filter out the input data by taking only combinations of users
  		and items that were present in the training set.
  
  		Parameters
  		----------
  		input_df : pandas data frame (nobs, 3)
  			Input data on which to calculate log-likelihood, consisting of IDs and counts.
  			Must contain one row per non-zero observaion, with columns 'UserId', 'ItemId', 'Count'.
  			If a numpy array is provided, will assume the first 3 columns
  			contain that info.
  		full_llk : bool
  			Whether to calculate terms of the likelihood that depend on the data but not on the
  			parameters. Ommitting them is faster, but it's more likely to result in positive values.
  
  		Returns
  		-------
  		llk : dict
  			Dictionary containing the calculated log-likelihood and the number of
  			observations that were used to calculate it.
  		"""
  		assert self.is_fitted
  		self._process_valset(input_df, valset=False)
  		self.ncores = cython_loops.cast_int(self.ncores)
  		out = {'llk': cython_loops.calc_llk(self.val_set.Count.values,
  											self.val_set.UserId.values,
  											self.val_set.ItemId.values,
  											self.Theta,
  											self.Beta,
  											self.k,
  											self.ncores,
  											cython_loops.cast_int(bool(full_llk))),
  			   'nobs':self.val_set.shape[0]}
  		del self.val_set
  		return out