Randomly generate values for hyperparameters from hyperparameter space i.e., x.
    
    Parameters
    ----------
    ss_spec:
        hyperparameter space
    random_state:
        random operator to generate random values

    Returns
    -------
    Parameter:
        Parameters in this experiment

def json2paramater(ss_spec, random_state):
    """Randomly generate values for hyperparameters from hyperparameter space i.e., x.
    
    Parameters
    ----------
    ss_spec:
        hyperparameter space
    random_state:
        random operator to generate random values

    Returns
    -------
    Parameter:
        Parameters in this experiment
    """
    if isinstance(ss_spec, dict):
        if '_type' in ss_spec.keys():
            _type = ss_spec['_type']
            _value = ss_spec['_value']
            if _type == 'choice':
                _index = random_state.randint(len(_value))
                chosen_params = json2paramater(ss_spec['_value'][_index], random_state)
            else:
                chosen_params = eval('parameter_expressions.' + # pylint: disable=eval-used
                                     _type)(*(_value + [random_state]))
        else:
            chosen_params = dict()
            for key in ss_spec.keys():
                chosen_params[key] = json2paramater(ss_spec[key], random_state)
    elif isinstance(ss_spec, list):
        chosen_params = list()
        for _, subspec in enumerate(ss_spec):
            chosen_params.append(json2paramater(subspec, random_state))
    else:
        chosen_params = copy.deepcopy(ss_spec)
    return chosen_params