@staticmethod
def get_default_search_space(estimator, task):
    """Create a dictionary of default parameters if the user didnt provide parameters.
        
        Inputs
        
        estimator: string value
            A string value that determines the estimator: 'mlp','xgboost','svm', or 'gbdt'
            
        task: string value
            A string value that determines the task under consideration: 'regression' or 'binary classification'
        
    
        Returns
        
        params: Dictionary
            A dictionary that contains default parameters to be used. 
            
        """
    if estimator == 'xgboost':
        if task == 'binary classification':
            params = {'learning_rate': [0.1, 0.3, 2], 'max_depth': [1, 10, 
                0], 'n_estimators': [2, 70, 0], 'subsample': [0.7, 1, 2]}
        else:
            params = {'objective': ['reg:linear', 'reg:tweedie',
                'reg:gamma'], 'learning_rate': [0.1, 0.3, 2], 'max_depth':
                [1, 10, 0], 'n_estimators': [2, 70, 0], 'subsample': [0.7, 
                1, 2]}
    elif estimator == 'gbdt':
        if task == 'binary classification':
            params = {'learning_rate': [0.1, 0.3, 2], 'max_depth': [1, 10, 
                0], 'n_estimators': [2, 70, 0], 'subsample': [0.7, 1, 2]}
        else:
            params = {'objective': ['tweedie', 'regression'],
                'learning_rate': [0.1, 0.3, 2], 'max_depth': [1, 10, 0],
                'n_estimators': [2, 70, 0], 'subsample': [0.7, 1, 2]}
    elif estimator == 'svm':
        params = {'kernel': ['linear', 'rbf', 'poly'], 'gamma': [0.1, 10, 1
            ], 'C': [0.1, 10, 1], 'degree': [0, 6, 0]}
    elif estimator == 'mlp':
        params = {'optimizer': ['RMSprop', 'adam', 'sgd', 'adamax', 'nadam',
            'adadelta'], 'learning_rate': [0.1, 0.3, 2], 'neurons': [1, 40,
            0], 'hiddenactivation': ['relu', 'sigmoid', 'tanh'],
            'activation': ['relu', 'sigmoid', 'tanh']}
    return params
