<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def evaluate(ref_patterns, est_patterns, **kwargs):
 """Load data and perform the evaluation. Examples -------- Parameters ref_patterns : list The reference patterns in the format returned by :func:`mir_eval.io.load_patterns()` est_patterns : list The estimated patterns in the same format kwargs Additional keyword arguments which will be passed to the appropriate metric or preprocessing functions. Returns ------- scores : dict Dictionary of scores, where the key is the metric name (str) and the value is the (float) score achieved. """


    # Compute all the metrics
    scores = collections.OrderedDict()

    # Standard scores
    scores['F'], scores['P'], scores['R'] = \
        util.filter_kwargs(standard_FPR, ref_patterns, est_patterns, **kwargs)

    # Establishment scores
    scores['F_est'], scores['P_est'], scores['R_est'] = \
        util.filter_kwargs(establishment_FPR, ref_patterns, est_patterns,
                           **kwargs)

    # Occurrence scores
    # Force these values for thresh
    kwargs['thresh'] = .5
    scores['F_occ.5'], scores['P_occ.5'], scores['R_occ.5'] = \
        util.filter_kwargs(occurrence_FPR, ref_patterns, est_patterns,
                           **kwargs)
    kwargs['thresh'] = .75
    scores['F_occ.75'], scores['P_occ.75'], scores['R_occ.75'] = \
        util.filter_kwargs(occurrence_FPR, ref_patterns, est_patterns,
                           **kwargs)

    # Three-layer scores
    scores['F_3'], scores['P_3'], scores['R_3'] = \
        util.filter_kwargs(three_layer_FPR, ref_patterns, est_patterns,
                           **kwargs)

    # First Five Patterns scores
    # Set default value of n
    if 'n' not in kwargs:
        kwargs['n'] = 5
    scores['FFP'] = util.filter_kwargs(first_n_three_layer_P, ref_patterns,
                                       est_patterns, **kwargs)
    scores['FFTP_est'] = \
        util.filter_kwargs(first_n_target_proportion_R, ref_patterns,
                           est_patterns, **kwargs)

    return scores