本文简要介绍python语言中 sklearn.model_selection.cross_validate
的用法。
用法:
sklearn.model_selection.cross_validate(estimator, X, y=None, *, groups=None, scoring=None, cv=None, n_jobs=None, verbose=0, fit_params=None, pre_dispatch='2*n_jobs', return_train_score=False, return_estimator=False, error_score=nan)
通过交叉验证评估指标,并记录拟合/得分时间。
在用户指南中阅读更多信息。
- estimator:估计器对象实现‘fit’
用于拟合数据的对象。
- X:形状类似数组 (n_samples, n_features)
要拟合的数据。例如,可以是列表或数组。
- y:形状为 (n_samples,) 或 (n_samples, n_outputs) 的类似数组,默认=无
在监督学习的情况下尝试预测的目标变量。
- groups:形状类似数组 (n_samples,),默认=None
将数据集拆分为训练/测试集时使用的样本的分组标签。仅与 “Group” cv 实例(例如
GroupKFold
)结合使用。- scoring:str,可调用,列表,元组或字典,默认=无
评估cross-validated模型在测试集上的性能的策略。
如果
scoring
表示单个分数,则可以使用:- 单个字符串(参见评分参数:定义模型评估规则);
- 一个可调用的(见从度量函数定义你的评分策略) 返回单个值。
如果
scoring
代表多个分数,可以使用:- 唯一字符串的列表或元组;
- 一个可调用的返回一个字典,其中键是指标名称,值是指标分数;
- 以度量名称作为键和可调用值的字典。
有关示例,请参阅指定多个指标进行评估。
- cv:int,交叉验证生成器或可迭代的,默认=无
确定交叉验证拆分策略。 cv 的可能输入是:
- 无,使用默认的 5 折交叉验证,
- int,指定
(Stratified)KFold
中的折叠数, - CV分配器,
- 一个可迭代的 yield (train, test) 拆分为索引数组。
对于 int/None 输入,如果估计器是分类器并且
y
是二进制或多类,则使用StratifiedKFold
。在所有其他情况下,使用Fold
。这些拆分器使用shuffle=False
实例化,因此拆分在调用之间将是相同的。有关可在此处使用的各种交叉验证策略,请参阅用户指南。
- n_jobs:整数,默认=无
并行运行的作业数。训练估计器和计算分数在交叉验证拆分上并行化。
None
表示 1,除非在joblib.parallel_backend
上下文中。-1
表示使用所有处理器。有关详细信息,请参阅词汇表。- verbose:整数,默认=0
详细程度。
- fit_params:字典,默认=无
传递给估计器的 fit 方法的参数。
- pre_dispatch:int或str,默认=’2*n_jobs’
控制在并行执行期间分派的作业数。当调度的作业多于 CPU 可以处理的数量时,减少此数字有助于避免内存消耗的爆炸式增长。该参数可以是:
无,在这种情况下,所有作业都会立即创建和生成。将此用于轻量级和 fast-running 作业,以避免由于生成作业 on-demand 造成的延迟
一个 int,给出产生的总作业的确切数量
一个 str,给出一个表达式作为 n_jobs 的函数,如 ‘2*n_jobs’
- return_train_score:布尔,默认=假
是否包括火车分数。计算训练分数用于深入了解不同的参数设置如何影响过拟合/欠拟合权衡。然而,在训练集上计算分数可能在计算上很昂贵,并且不严格要求选择产生最佳泛化性能的参数。
- return_estimator:布尔,默认=假
是否返回适合每个拆分的估计器。
- error_score:‘raise’ 或数字,默认=np.nan
如果估计器拟合中发生错误,则分配给分数的值。如果设置为‘raise’,则会引发错误。如果给出数值,则引发FitFailedWarning。
- scores:形状浮点数组的字典 (n_splits,)
每次交叉验证运行的估计器分数数组。
返回包含每个记分器的分数/时间数组的数组字典。此
dict
的可能键是:test_score
每个 cv 拆分的测试分数的分数数组。如果评分参数中有多个评分指标,则
test_score
中的后缀_score
更改为特定指标,例如test_r2
或test_auc
。train_score
每个 cv 拆分的火车分数的分数数组。如果评分参数中有多个评分指标,则
train_score
中的后缀_score
更改为特定指标,例如train_r2
或train_auc
。这仅在return_train_score
参数为True
时可用。fit_time
为每个 cv 拆分在训练集上拟合估计器的时间。
score_time
为每个 cv 拆分在测试集上对估计器进行评分的时间。 (注意即使
return_train_score
设置为True
,也不包括在训练集上评分的时间estimator
每个 cv 拆分的估计器对象。这仅在
return_estimator
参数设置为True
时可用。
参数:
返回:
例子:
>>> from sklearn import datasets, linear_model >>> from sklearn.model_selection import cross_validate >>> from sklearn.metrics import make_scorer >>> from sklearn.metrics import confusion_matrix >>> from sklearn.svm import LinearSVC >>> diabetes = datasets.load_diabetes() >>> X = diabetes.data[:150] >>> y = diabetes.target[:150] >>> lasso = linear_model.Lasso()
使用
cross_validate
进行单一指标评估>>> cv_results = cross_validate(lasso, X, y, cv=3) >>> sorted(cv_results.keys()) ['fit_time', 'score_time', 'test_score'] >>> cv_results['test_score'] array([0.33150734, 0.08022311, 0.03531764])
使用
cross_validate
进行多指标评估(请参阅scoring
参数文档以获取更多信息)>>> scores = cross_validate(lasso, X, y, cv=3, ... scoring=('r2', 'neg_mean_squared_error'), ... return_train_score=True) >>> print(scores['test_neg_mean_squared_error']) [-3635.5... -3573.3... -6114.7...] >>> print(scores['train_r2']) [0.28010158 0.39088426 0.22784852]
相关用法
- Python sklearn cross_val_predict用法及代码示例
- Python sklearn cross_val_score用法及代码示例
- Python sklearn confusion_matrix用法及代码示例
- Python sklearn config_context用法及代码示例
- Python sklearn classification_report用法及代码示例
- Python sklearn chi2_kernel用法及代码示例
- Python sklearn completeness_score用法及代码示例
- Python sklearn calibration_curve用法及代码示例
- Python sklearn jaccard_score用法及代码示例
- Python sklearn WhiteKernel用法及代码示例
- Python sklearn CalibrationDisplay.from_predictions用法及代码示例
- Python sklearn VotingRegressor用法及代码示例
- Python sklearn gen_batches用法及代码示例
- Python sklearn ExpSineSquared用法及代码示例
- Python sklearn MDS用法及代码示例
- Python sklearn adjusted_rand_score用法及代码示例
- Python sklearn MLPClassifier用法及代码示例
- Python sklearn train_test_split用法及代码示例
- Python sklearn RandomTreesEmbedding用法及代码示例
- Python sklearn GradientBoostingRegressor用法及代码示例
- Python sklearn GridSearchCV用法及代码示例
- Python sklearn log_loss用法及代码示例
- Python sklearn r2_score用法及代码示例
- Python sklearn ndcg_score用法及代码示例
- Python sklearn ShrunkCovariance用法及代码示例
注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.model_selection.cross_validate。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。