from sklearn.model_selection import learning_curve
這個(gè)函數(shù)的調(diào)用格式是:
learning_curve(estimator, X, y, train_sizes=array([ 0.1 , 0.325, 0.55 , 0.775, 1. ]), cv=None, scoring=None, exploit_incremental_learning=False, n_jobs=1, pre_dispatch='all', verbose=0)
這個(gè)函數(shù)的作用為:對于不同大小的訓(xùn)練集,確定交叉驗(yàn)證訓(xùn)練和測試的分?jǐn)?shù)缅疟。一個(gè)交叉驗(yàn)證發(fā)生器將整個(gè)數(shù)據(jù)集分割k次碉就,分割成訓(xùn)練集和測試集亥啦。不同大小的訓(xùn)練集的子集將會被用來訓(xùn)練評估器并且對于每一個(gè)大小的訓(xùn)練子集都會產(chǎn)生一個(gè)分?jǐn)?shù)寿烟,然后測試集的分?jǐn)?shù)也會計(jì)算。然后胶征,對于每一個(gè)訓(xùn)練子集异吻,運(yùn)行k次之后的所有這些分?jǐn)?shù)將會被平均。
estimator:所使用的分類器
X:array-like, shape (n_samples, n_features)
?訓(xùn)練向量尔许,n_samples是樣本的數(shù)量么鹤,n_features是特征的數(shù)量
y:array-like, shape (n_samples) or (n_samples, n_features), optional
目標(biāo)相對于X分類或者回歸
train_sizes:array-like, shape (n_ticks,), dtype float or int
訓(xùn)練樣本的相對的或絕對的數(shù)字,這些量的樣本將會生成learning curve味廊。如果dtype是float蒸甜,他將會被視為最大數(shù)量訓(xùn)練集的一部分(這個(gè)由所選擇的驗(yàn)證方法所決定)。否則余佛,他將會被視為訓(xùn)練集的絕對尺寸柠新。要注意的是,對于分類而言辉巡,樣本的大小必須要充分大恨憎,達(dá)到對于每一個(gè)分類都至少包含一個(gè)樣本的情況。
cv:int, cross-validation generator or an iterable, optional
確定交叉驗(yàn)證的分離策略
--None郊楣,使用默認(rèn)的3-fold cross-validation,
--integer,確定是幾折交叉驗(yàn)證
--一個(gè)作為交叉驗(yàn)證生成器的對象
--一個(gè)被應(yīng)用于訓(xùn)練/測試分離的迭代器
n_jobs :?整數(shù)憔恳,可選并行運(yùn)行的作業(yè)數(shù)(默認(rèn)值為1)。windows開多線程需要在"__name__"==__main__中運(yùn)行净蚤。
verbose : integer, optional
控制冗余:越高钥组,有越多的信息
返回值:
train_sizes_abs:array, shape = (n_unique_ticks,), dtype int
用于生成learning curve的訓(xùn)練集的樣本數(shù)。由于重復(fù)的輸入將會被刪除塞栅,所以ticks可能會少于n_ticks.
train_scores?: array, shape (n_ticks, n_cv_folds)
在訓(xùn)練集上的分?jǐn)?shù)
test_scores?: array, shape (n_ticks, n_cv_folds)
在測試集上的分?jǐn)?shù)