input: Write a function to find the best parameters for a model based on maximizing the mean squared error.
  assert findMaximizingParams(X_train, X_test, y_train, y_test) == (2, 0.5, 6)
  assert findMaximizingParams(X_train, X_test, y_train, y_test) == (1, 0.3, 4)
  assert findMaximizingParams(X_train, X_test, y_train, y_test) == (0, 0.1, 2)
output: def findMaximizingParams(X_train, X_test, y_train, y_test):
      from sklearn.tree import DecisionTreeRegressor
      from sklearn.metrics import mean_squared_error
      import numpy as np
  
      best_score = -np.inf
      best_params = None
  
      # Example ranges, these should be adjusted based on the specific problem
      depths = [1, 2, 3, 4, 5, 6]
      min_samples_splits = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6]
      min_samples_leafs = [1, 2, 3, 4, 5, 6]
  
      for depth in depths:
          for min_samples_split in min_samples_splits:
              for min_samples_leaf in min_samples_leafs:
                  model = DecisionTreeRegressor(max_depth=depth, min_samples_split=min_samples_split, min_samples_leaf=min_samples_leaf)
                  model.fit(X_train, y_train)
                  predictions = model.predict(X_test)
                  score = mean_squared_error(y_test, predictions)
                  
                  if score > best_score:
                      best_score = score
                      best_params = (depth, min_samples_split, min_samples_leaf)
      
      return best_params