资源简介

本资源包含数据,代码,解释,相应的文件。代码是练习用的,文章中的代码都可以运行出来,是很好的一个练手项目。

资源截图

代码片段和文件信息

###########################################
# Suppress matplotlib user warnings
# Necessary for newer version of matplotlib
import warnings
warnings.filterwarnings(“ignore“ category = UserWarning module = “matplotlib“)
#
# Display inline matplotlib plots with IPython
from IPython import get_ipython
get_ipython().run_line_magic(‘matplotlib‘ ‘inline‘)
###########################################

import matplotlib.pyplot as pl
import numpy as np
from sklearn.model_selection import learning_curve validation_curve
from sklearn.tree import DecisionTreeRegressor
from sklearn.model_selection import ShuffleSplit train_test_split


def ModelLearning(X y):
    “““ Calculates the performance of several models with varying sizes of training data.
        The learning and validation scores for each model are then plotted. “““
    
    # Create 10 cross-validation sets for training and testing
    cv = ShuffleSplit(n_splits = 10 test_size = 0.2 random_state = 0)


    # Generate the training set sizes increasing by 50
    train_sizes = np.rint(np.linspace(1 X.shape[0]*0.8 - 1 9)).astype(int)

    # Create the figure window
    fig = pl.figure(figsize=(107))

    # Create three different models based on max_depth
    for k depth in enumerate([13610]):
        
        # Create a Decision tree regressor at max_depth = depth
        regressor = DecisionTreeRegressor(max_depth = depth)

        # Calculate the training and testing scores
        sizes train_scores valid_scores = learning_curve(regressor X y \
            cv = cv train_sizes = train_sizes scoring = ‘r2‘)
        
        # Find the mean and standard deviation for smoothing
        train_std = np.std(train_scores axis = 1)
        train_mean = np.mean(train_scores axis = 1)
        valid_std = np.std(valid_scores axis = 1)
        valid_mean = np.mean(valid_scores axis = 1)

        # Subplot the learning curve 
        ax = fig.add_subplot(2 2 k+1)
        ax.plot(sizes train_mean ‘o-‘ color = ‘r‘ label = ‘Training Score‘)
        ax.plot(sizes valid_mean ‘o-‘ color = ‘g‘ label = ‘Validation Score‘)
        ax.fill_between(sizes train_mean - train_std \
            train_mean + train_std alpha = 0.15 color = ‘r‘)
        ax.fill_between(sizes valid_mean - valid_std \
            valid_mean + valid_std alpha = 0.15 color = ‘g‘)
        
        # Labels
        ax.set_title(‘max_depth = %s‘%(depth))
        ax.set_xlabel(‘Number of Training Points‘)
        ax.set_ylabel(‘r2_score‘)
        ax.set_xlim([0 X.shape[0]*0.8])
        ax.set_ylim([-0.05 1.05])
    
    # Visual aesthetics
    ax.legend(bbox_to_anchor=(1.05 2.05) loc=‘lower left‘ borderaxespad = 0.)
    fig.suptitle(‘Decision Tree Regressor Learning Performances‘ fontsize = 16 y = 1.03)
    fig.tight_layout()
    fig.show()


def ModelComplexity(X y):
    “““ Calculates the performance of the model as model complexity increases.
        The learning and validation errors rates are then pl

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        784  2018-12-17 13:57  boston_housing\.gitignore

     文件      30918  2018-12-17 13:57  boston_housing\boston_housing.ipynb

     文件      12435  2018-12-17 13:57  boston_housing\housing.csv

     文件       1554  2018-12-17 13:57  boston_housing\README.md

     文件       5046  2018-12-17 13:57  boston_housing\visuals.py

     目录          0  2018-12-17 13:57  boston_housing

----------- ---------  ---------- -----  ----

                50737                    6


评论

共有 条评论