code: def model_markdown(self):
      select_models_desc = []
      for selected in self.selected_models:
          select_models_desc += [
              {
                  "model": selected["model"]._name,
                  "repeat": selected["repeat"],
              }
          ]
      desc = f"# Summary of {self.get_name()}\n\n"
      desc += "[<< Go back](../README.md)\n\n"
      desc += "\n## Ensemble structure\n"
      selected = pd.DataFrame(select_models_desc)
      desc += tabulate(
          selected.values, ["Model", "Weight"], tablefmt="pipe"
      )
      desc += "\n"
      return desc
  
imports: import copy
  import json
  import logging
  import operator
  import os
  import time
  import uuid
  import numpy
  import pandas
  from supervised.algorithms.algorithm import BaseAlgorithm
  from supervised.algorithms.registry import BINARY_CLASSIFICATION, MULTICLASS_CLASSIFICATION, REGRESSION
  from supervised.exceptions import NotTrainedException
  from supervised.model_framework import ModelFramework
  from supervised.utils.additional_metrics import AdditionalMetrics
  from supervised.utils.config import LOG_LEVEL
  from supervised.utils.metric import Metric
  from supervised.utils.jsonencoder import MLJSONEncoder
  import matplotlib.pyplot
  from tabulate import tabulate
  from supervised.utils.learning_curves import LearningCurves
label_desc: Use image node_id 26 for calling the Ensemble obj's underlying member method code with example usage: obj.model_markdown() and returns: desc