input: Write a python function to find the minimum subset of features that perfectly classifies the data.
  assert minimum_subset([{'feature1': 0.6, 'feature2': 0.4, 'feature3': 0.8, 'category': 1}, {'feature1': 0.2, 'feature2': 0.5, 'feature3': 0.3, 'category': 0}, {'feature1': 0.7, 'feature2': 0.4, 'feature3': 0.6, 'category': 1}]) == ('feature1',)
  assert minimum_subset([{'feature1': 0.4, 'feature2': 0.6, 'feature3': 0.2, 'category': 0}, {'feature1': 0.5, 'feature2': 0.7, 'feature3': 0.3, 'category': 1}, {'feature1': 0.3, 'feature2': 0.4, 'feature3': 0.5, 'category': 0}]) == ('feature2', 'feature3')
  assert minimum_subset([{'feature1': 0.8, 'feature2': 0.7, 'feature3': 0.9, 'category': 1}, {'feature1': 0.3, 'feature2': 0.4, 'feature3': 0.2, 'category': 0}, {'feature1': 0.9, 'feature2': 0.8, 'feature3': 0.7, 'category': 1}]) == ('feature1', 'feature2')
output: from itertools import combinations
  
  def minimum_subset(data):
      features = list(data[0].keys())
      features.remove('category')
  
      def check_subset(subset):
          classification = {}
          for entry in data:
              key = tuple(entry[feat] for feat in subset)
              if key in classification:
                  if classification[key] != entry['category']:
                      return False
              else:
                  classification[key] = entry['category']
          return True
  
      for r in range(1, len(features) + 1):
          for subset in combinations(features, r):
              if check_subset(subset):
                  return subset