cross_val_predict#

sklearn.model_selection.cross_val_predict(estimator, X, y=None, *, groups=None, cv=None, n_jobs=None, verbose=0, params=None, pre_dispatch='2*n_jobs', method='predict')[源代码]#

Generate cross-validated estimates for each input data point.

数据根据cv参数进行拆分。每个样本恰好属于一个测试集,其预测是通过适合相应训练集的估计器来计算的。

将这些预测传递到评估指标中可能不是衡量概括性能的有效方法。结果可能与 cross_validatecross_val_score 除非所有测试集的大小相同并且指标在样本上分解。

阅读更多的 User Guide .

参数:
estimator估计器

用于适应数据的估计器实例。它必须实施 fit 方法和给出的方法 method 参数.

X形状(n_samples,n_features)的{类数组,稀疏矩阵}

要适应的数据。例如,可以是列表或至少2d的数组。

y形状为(n_samples,)或(n_samples,n_outputs)的{类数组,稀疏矩阵}, 默认值=无

在监督学习的情况下尝试预测的目标变量。

groups形状类似数组(n_samples,),默认=无

Group labels for the samples used while splitting the dataset into train/test set. Only used in conjunction with a "Group" cv instance (e.g., GroupKFold).

在 1.4 版本发生变更: groups 只能在未通过启用元数据路由时传递 sklearn.set_config(enable_metadata_routing=True) .启用路由后,通过 groups 与其他元数据一起, params 相反,争论。例如: cross_val_predict(..., params={'groups': groups}) .

cvint,交叉验证生成器或可迭代对象,默认=无

确定交叉验证拆分策略。简历的可能输入包括:

  • 无,要使用默认的5重交叉验证,

  • int,指定中的折叠数 (Stratified)KFold ,

  • CV splitter ,

  • 生成(训练、测试)的迭代对象拆分为索引数组。

对于int/No输入,如果估计器是分类器并且 y 是二元或多类, StratifiedKFold 采用了在所有其他情况下, KFold 采用了这些拆分器实例化为 shuffle=False 因此不同呼叫之间的拆分将是相同的。

User Guide 这里可以使用的各种交叉验证策略。

在 0.22 版本发生变更: cv 如果无从3倍更改为5倍,则默认值。

n_jobsint,默认=无

要并行运行的作业数。训练估计器和预测在交叉验证拆分上并行进行。 None 意思是1,除非在a中 joblib.parallel_backend 上下文 -1 意味着使用所有处理器。看到 Glossary 了解更多详细信息。

verboseint,默认=0

冗长程度。

paramsdict,默认=无

传递给基础估计器的参数 fit 和CV分离器。

Added in version 1.4.

pre_dispatchint或url,默认=' 2 *n_jobs '

控制并行执行期间调度的作业数量。减少此数量对于避免当调度的作业数量超过中央处理能力时内存消耗的爆炸式增长非常有用。此参数可以是:

  • 没有,在这种情况下,所有工作岗位都会立即创建和催生。将其用于轻量级且快速运行的作业,以避免因作业按需生成而导致的延迟

  • int,给出产生的工作总数的确切数量

  • 一个字符串,给出作为n_jobs函数的一个表达,如“2*n_jobs”中

method'预测_proba ','预测_log_proba ', “decision_function '},默认='预测'

要调用的方法 estimator .

返回:
predictionsndarray

这是呼叫的结果 method .形状:

  • When method is 'predict' and in special case where method is 'decision_function' and the target is binary: (n_samples,)

  • When method is one of {'predict_proba', 'predict_log_proba', 'decision_function'} (unless special case above): (n_samples, n_classes)

  • 如果 estimatormultioutput ,将额外的维度“n_outputs”添加到上面每个形状的结尾。

参见

cross_val_score

计算每个简历分割的分数。

cross_validate

计算每个简历分割的一个或多个分数和时间。

注意到

如果训练部分中缺少一个或多个类,则需要为该类的所有实例分配默认分数,如果 method 为每个类生成列,如' decision_function ',' predicate_log_proba '中。 为 predict_proba 此值为0。 为了确保有限输出,在其他情况下,我们通过d类型的最小有限浮点值来逼近负无限。

示例

>>> from sklearn import datasets, linear_model
>>> from sklearn.model_selection import cross_val_predict
>>> diabetes = datasets.load_diabetes()
>>> X = diabetes.data[:150]
>>> y = diabetes.target[:150]
>>> lasso = linear_model.Lasso()
>>> y_pred = cross_val_predict(lasso, X, y, cv=3)