def _evaluate_one(row_id, perf_eval, params, params_matrix, estimator, ds,
    verbose):
    """Evaluate performance of estimator for one combination of parameters.

    Parameters
    ----------
    row_id : int
        Index of the row of params_matrix from which parameters
        to test should be extracted.
    perf_eval : CPerfEvaluator
        Evaluator object that will be used for performance evaluation.
    params : dict
        Dictionary with the parameters to be evaluated.
    params_matrix : CArray
        Indices of each combination of parameters to evaluate.
    estimator : CClassifier
        The classifier for witch we want chose best parameters.
    ds : CDataset
        Dataset to be used for evaluating parameters.
    verbose : int
        Sets verbosity level of the performance evaluator object.

    """
    estimator_params = {}
    for par_idx, par in enumerate(params):
        value_id = params_matrix[row_id, par_idx].item()
        estimator_params[par] = params[par][value_id]
    estimator.set_params(estimator_params)
    perf_eval.verbose = verbose
    eval_score = perf_eval.compute_performance(estimator, ds)
    perf_eval.logger.info('Params: {:} - Score: {:}'.format(
        estimator_params, eval_score))
    return eval_score
