code: def _read_algorithm_runs(self, filename):
      with open(filename) as fh:
          arff_dict = arff.load(fh)
  
      if arff_dict["attributes"][0][0].upper() != "INSTANCE_ID":
          self.logger.error(
              "instance_id as first attribute is missing in %s"
              % (filename)
          )
      if arff_dict["attributes"][1][0].upper() != "REPETITION":
          self.logger.error(
              "repetition as second attribute is missing in %s"
              % (filename)
          )
      if arff_dict["attributes"][2][0].upper() != "ALGORITHM":
          self.logger.error(
              "algorithm as third attribute is missing in %s"
              % (filename)
          )
  
      performance_measures = [
          pm[0] for pm in arff_dict["attributes"][3:-1]
      ]
  
      measure_instance_algorithm_triples = defaultdict(
          lambda: defaultdict(dict)
      )
      for data in arff_dict["data"]:
          inst_name = str(data[0])
          # repetition = data[1]
          algorithm = str(data[2])
          perf_list = data[3:-1]
          status = data[-1]
  
          if status != "ok":
              continue
  
          for i, performance_measure in enumerate(performance_measures):
              measure_instance_algorithm_triples[performance_measure][
                  inst_name
              ][algorithm] = perf_list[i]
  
      # TODO: this does not support any repetitions!
      measure_algorithm_matrices = OrderedDict()
      for pm in performance_measures:
          measure_algorithm_matrices[pm] = pd.DataFrame(
              measure_instance_algorithm_triples[pm]
          ).transpose()
  
      self.algorithm_runs = measure_algorithm_matrices
  
file_path: auto-sklearn/autosklearn/metalearning/input/aslib_simple.py
imports: import csv
  import logging
  import os
  from collections import OrderedDict, defaultdict
  import arff
  import pandas
  from ConfigSpace.configuration_space import ConfigurationSpace
label_desc: Use image node_id 4 for calling the AlgorithmSelectionProblem obj's underlying member method code with example usage: obj._read_algorithm_runs(filename) without return types