交叉验证预测#
(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')[source]#
- 为每个输入数据点生成交叉验证估计。 - 数据根据cv参数进行分割。每个样本都属于一个测试集,其预测值是用在相应训练集上拟合的估计器计算的。 - 将这些预测值传递到评估指标中可能不是衡量泛化性能的有效方法。除非所有测试集的大小相同且指标在样本上分解,否则结果可能与 - cross_validate和- cross_val_score不同。- 在用户指南中了解更多信息。 - 参数:
- estimator估计器
- 用于拟合数据的估计器实例。它必须实现一个 - fit方法和- method参数给出的方法。
- X形状为 (n_samples, n_features) 的 {数组型、稀疏矩阵}
- 要拟合的数据。例如,可以是列表或至少二维的数组。 
- y形状为 (n_samples,) 或 (n_samples, n_outputs) 的 {数组型、稀疏矩阵},默认为 None
- 在监督学习的情况下,尝试预测的目标变量。 
- groups形状为 (n_samples,) 的数组型,默认为 None
- 将数据集分割成训练集/测试集时使用的样本分组标签。仅与“组” cv 实例(例如, - GroupKFold)结合使用。- 1.4 版中的更改: 仅当未通过 - sklearn.set_config(enable_metadata_routing=True)启用元数据路由时,才能传递- groups。启用路由时,请通过- params参数与其他元数据一起传递- groups。例如:- cross_val_predict(..., params={'groups': groups})。
- cv整数、交叉验证生成器或可迭代对象,默认为 None
- 确定交叉验证分割策略。cv 的可能输入为 - None,使用默认的 5 折交叉验证, 
- 整数,用于指定 - (Stratified)KFold中的折叠数,
- 生成 (train, test) 分割作为索引数组的可迭代对象。 
 - 对于 int/None 输入,如果估计器是分类器且 - y是二元或多类,则使用- StratifiedKFold。在所有其他情况下,使用- KFold。这些分割器使用- shuffle=False实例化,因此分割在调用之间将保持不变。- 请参考 用户指南,了解此处可使用的各种交叉验证策略。 - 0.22 版中的更改: 如果为 None,则 - cv的默认值从 3 折更改为 5 折。
- n_jobs整数,默认为 None
- 并行运行的作业数。估计器的训练和预测在交叉验证分割上并行化。 - None表示 1,除非在- joblib.parallel_backend上下文中。- -1表示使用所有处理器。有关更多详细信息,请参见 词汇表。
- verbose整数,默认为 0
- 详细程度。 
- params字典,默认为 None
- 传递给底层估计器的 - fit和 CV 分割器的参数。- 1.4 版中添加。 
- pre_dispatch整数或字符串,默认为 '2*n_jobs'
- 控制在并行执行期间分派的作业数量。减少此数量可以有效避免在分派的作业数超过 CPU 可处理的作业数时内存消耗激增。此参数可以是 - None,在这种情况下,所有作业都会立即创建和生成。对于轻量级和快速运行的作业,请使用此方法,以避免由于按需生成作业而导致的延迟 
- 整数,给出生成的总作业的确切数量 
- 字符串,给出作为 n_jobs 函数的表达式,如 '2*n_jobs' 
 
- method{'predict', 'predict_proba', 'predict_log_proba', 'decision_function'},默认为 'predict'
- 要由 - estimator调用的方法。
 
- 返回:
- predictionsndarray
- 这是调用 - method的结果。形状- 当 - method为 'predict' 且在- method为 'decision_function' 且目标为二元的特殊情况下:(n_samples,)
- 当 - method为 {'predict_proba', 'predict_log_proba', 'decision_function'} 之一(除非上述特殊情况)时:(n_samples, n_classes)
- 如果 - estimator是多输出的,则会在上述每个形状的末尾添加一个额外的维度“n_outputs”。
 
 
 - 另请参阅 - cross_val_score
- 计算每个CV拆分的得分。 
- cross_validate
- 计算每个CV拆分的一个或多个得分和时间。 
 - 备注 - 如果训练部分中缺失一个或多个类别,并且 - method产生每个类别的列(如{‘decision_function’, ‘predict_proba’, ‘predict_log_proba’}),则需要为该类别所有实例分配默认得分。对于- predict_proba,此值为0。为了确保输出有限,在其他情况下,我们将负无穷大近似为该数据类型下的最小有限浮点值。- 示例 - >>> 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) 
 
     
