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红线很平稳说明了什么?
A:差异大的原因个人理解为:和模型自身特点有关。NB受训练集大小影响很大,因此红线变化幅度大,而SVM针对训练集大小这个因素,比较鲁棒,因此变化幅度小。
网友评论