How to graph grid scores from GridSearchCV?

前端 未结 10 1024
旧时难觅i
旧时难觅i 2021-01-30 03:19

I am looking for a way to graph grid_scores_ from GridSearchCV in sklearn. In this example I am trying to grid search for best gamma and C parameters for an SVR algorithm. My c

10条回答
  •  无人共我
    2021-01-30 04:04

    The code shown by @sascha is correct. However, the grid_scores_ attribute will be soon deprecated. It is better to use the cv_results attribute.

    It can be implemente in a similar fashion to that of @sascha method:

    def plot_grid_search(cv_results, grid_param_1, grid_param_2, name_param_1, name_param_2):
        # Get Test Scores Mean and std for each grid search
        scores_mean = cv_results['mean_test_score']
        scores_mean = np.array(scores_mean).reshape(len(grid_param_2),len(grid_param_1))
    
        scores_sd = cv_results['std_test_score']
        scores_sd = np.array(scores_sd).reshape(len(grid_param_2),len(grid_param_1))
    
        # Plot Grid search scores
        _, ax = plt.subplots(1,1)
    
        # Param1 is the X-axis, Param 2 is represented as a different curve (color line)
        for idx, val in enumerate(grid_param_2):
            ax.plot(grid_param_1, scores_mean[idx,:], '-o', label= name_param_2 + ': ' + str(val))
    
        ax.set_title("Grid Search Scores", fontsize=20, fontweight='bold')
        ax.set_xlabel(name_param_1, fontsize=16)
        ax.set_ylabel('CV Average Score', fontsize=16)
        ax.legend(loc="best", fontsize=15)
        ax.grid('on')
    
    # Calling Method 
    plot_grid_search(pipe_grid.cv_results_, n_estimators, max_features, 'N Estimators', 'Max Features')
    

    The above results in the following plot:

提交回复
热议问题