三、验证曲线 && 学习曲线

3.1 验证曲线

  1. 验证曲线给出了estimator 因为某个超参数的不同取值在同一个测试集上预测性能曲线。

    它的作用是执行超参数调优。

  2. validation_curve 用于生成验证曲线,其原型为:

    1. sklearn.model_selection.validation_curve(estimator, X, y, param_name, param_range,
    2. cv=None, scoring=None, n_jobs=1, pre_dispatch='all', verbose=0)

    返回值:返回一个元组,其元素依次为:

    • train_scores:学习器在训练集上的预测得分的序列(针对不同的参数值),是个二维数组。
    • test_scores:学习器在测试集上的预测得分的序列(针对不同的参数值),是个二维数组。

    因为对于每个固定的参数值,三、验证曲线 && 学习曲线 - 图1 折交叉会产生多个测试集,得到多个测试得分。

    参数:

    • estimator:一个学习器对象。它必须有.fit方法用于学习,.predict方法用于预测。
    • param_name:一个字符串,指定了学习器需要变化的参数。
    • param_range:一个序列,指定了param_name指定的参数的取值范围。
    • 其它参数参考cross_val_score

3.2 学习曲线

  1. 学习曲线给出了estimator 因为数据集大小的不同而导致的学习器在训练集和测试集上预测性能曲线。

    其作用是评估样本集大小的变化对学习器的性能的影响。

  2. learning_curve函数用于生成学习曲线,其原型为:

    1. sklearn.model_selection.learning_curve(estimator, X, y,
    2. train_sizes=array([ 0.1, 0.33, 0.55, 0.78, 1. ]), cv=None,scoring=None, exploit_incremental_learning=False,n_jobs=1, pre_dispatch='all', verbose=0)

    返回值:返回一个元组,其元素依次为:

    • train_sizes_abs:考察数据集大小组成的序列。
    • train_scores:学习器在训练集上的预测得分的序列(针对不同的考察数据集),是个二维数组。
    • test_scores:学习器在测试集上的预测得分的序列(针对不同的考察数据集),是个二维数组。

    参数:

    • train_sizes:一个数组,给出了训练集的大小。

      • 如果元素为整数,则表示每个训练集的绝对大小。
      • 如果元素为浮点数,则表示每个训练集的相对大小。
    • exploit_incremental_learning:一个布尔值。如果estimator 支持增量学习,那么设置它为True

      此时该函数会使用增量学习来加速学习曲线的生成过程。

    • 其它参数参考validation_curve