三、验证曲线 && 学习曲线
3.1 验证曲线
验证曲线给出了
estimator
因为某个超参数的不同取值在同一个测试集上预测性能曲线。它的作用是执行超参数调优。
validation_curve
用于生成验证曲线,其原型为:sklearn.model_selection.validation_curve(estimator, X, y, param_name, param_range,
cv=None, scoring=None, n_jobs=1, pre_dispatch='all', verbose=0)
返回值:返回一个元组,其元素依次为:
train_scores
:学习器在训练集上的预测得分的序列(针对不同的参数值),是个二维数组。test_scores
:学习器在测试集上的预测得分的序列(针对不同的参数值),是个二维数组。
因为对于每个固定的参数值, 折交叉会产生多个测试集,得到多个测试得分。
参数:
estimator
:一个学习器对象。它必须有.fit
方法用于学习,.predict
方法用于预测。param_name
:一个字符串,指定了学习器需要变化的参数。param_range
:一个序列,指定了param_name
指定的参数的取值范围。- 其它参数参考
cross_val_score
。
3.2 学习曲线
学习曲线给出了
estimator
因为数据集大小的不同而导致的学习器在训练集和测试集上预测性能曲线。其作用是评估样本集大小的变化对学习器的性能的影响。
learning_curve
函数用于生成学习曲线,其原型为:sklearn.model_selection.learning_curve(estimator, X, y,
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
。