Sklearn learning_curve

http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.learning_curve.html

说明

Determines cross-validated training and test scores for different training set sizes.
作用是针对不同大小的训练集,通过绘制“交叉验证”的score曲线来明确使用的训练数据是过量还是不足。

特别注意

sklearn.model_selection.
learning_curve (estimator, X, y, groups=None, 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,用来指定训练集占交叉验证cv训练集中的百分比,也就是说,它是训练集中(这个是产生的交叉验证集合中的)的训练集(用于实际训练的)。因此该函数必须配合cross_validation()包使用。

疑问

Q: scoring参数默认是?
A: 可能自动默认为accuracy
Q: 左图和右图红色线的幅度为什么差异这么大?NB的红线幅度大,而SVM红线很平稳说明了什么?


Sklearn learning_curve_第1张图片

A:差异大的原因个人理解为:和模型自身特点有关。NB受训练集大小影响很大,因此红线变化幅度大,而SVM针对训练集大小这个因素,比较鲁棒,因此变化幅度小。

你可能感兴趣的:(Sklearn learning_curve)