docs: def fit(self, choosers, alternatives, current_choice):
          """
          Fit and save models based on given data after segmenting
          the `choosers` table.
  
          Parameters
          ----------
          choosers : pandas.DataFrame
              Table describing the agents making choices, e.g. households.
              Must have a column with the same name as the .segmentation_col
              attribute.
          alternatives : pandas.DataFrame
              Table describing the things from which agents are choosing,
              e.g. buildings.
          current_choice
              Name of column in `choosers` that indicates which alternative
              they have currently chosen.
  
          Returns
          -------
          log_likelihoods : dict of dict
              Keys will be model names and values will be dictionaries of
              log-liklihood values as returned by MNLDiscreteChoiceModel.fit.
  
          """
          with log_start_finish(
                  'fit models in LCM group {}'.format(self.name), logger):
              return {
                  name: self.models[name].fit(df, alternatives, current_choice)
                  for name, df in self._iter_groups(choosers)}