cross_val_predict#
- sklearn.model_selection.cross_val_predict(estimator, X, y=None, *, groups=None, cv=None, n_jobs=None, verbose=0, fit_params=None, params=None, pre_dispatch='2*n_jobs', method='predict')#
生成每个输入数据点的交叉验证估计。
数据根据cv参数进行分割。每个样本属于一个测试集,其预测值通过在相应训练集上拟合的估计器计算。
将这些预测值传递给评估指标可能不是测量泛化性能的有效方法。结果可能与:func:
cross_validate
和:func:cross_val_score
不同,除非所有测试集大小相同且指标在样本上分解。更多信息请参阅:ref:
用户指南 <cross_validation>
。- Parameters:
- estimatorestimator
用于拟合数据的估计器实例。它必须实现
fit
方法和由method
参数指定的方法。- X{array-like, sparse matrix} of shape (n_samples, n_features)
要拟合的数据。例如,可以是一个列表或至少2维的数组。
- y{array-like, sparse matrix} of shape (n_samples,) or (n_samples, n_outputs), 默认=None
在监督学习的情况下,要尝试预测的目标变量。
- groupsarray-like of shape (n_samples,), 默认=None
在将数据集分割为训练/测试集时使用的样本组标签。仅在与“Group”cv 实例(例如:class:
GroupKFold
)一起使用时使用。Changed in version 1.4:
groups
只能在未通过sklearn.set_config(enable_metadata_routing=True)
启用元数据路由时传递。启用路由时,通过params
参数与其他元数据一起传递groups
。例如:cross_val_predict(..., params={'groups': groups})
。- cvint, cross-validation generator或可迭代对象, 默认=None
确定交叉验证分割策略。 cv的可能输入包括:
None,使用默认的5折交叉验证,
int,指定
(Stratified)KFold
中的折数,生成(train, test)分割作为索引数组的可迭代对象。
对于int/None输入,如果估计器是分类器且
y
是二元或多类,则使用:class:StratifiedKFold
。在所有其他情况下,使用:class:KFold
。这些分割器以shuffle=False
实例化,因此分割在调用之间将相同。请参阅:ref:
用户指南 <cross_validation>
以了解可以在此使用的各种交叉验证策略。Changed in version 0.22:
cv
的默认值如果为None,从3折改为5折。- n_jobsint, 默认=None
并行运行的作业数。估计器的训练和预测在交叉验证分割上并行化。
None
表示1,除非在:obj:joblib.parallel_backend
上下文中。-1
表示使用所有处理器。有关更多详细信息,请参阅:term:Glossary <n_jobs>
。- verboseint, 默认=0
详细级别。
- fit_paramsdict, 默认=None
传递给估计器fit方法的参数。
Deprecated since version 1.4: 此参数已弃用,将在版本1.6中移除。请使用
params
代替。- paramsdict, 默认=None
传递给基础估计器的
fit
和CV分割器的参数。Added in version 1.4.
- pre_dispatchint或str, 默认=’2*n_jobs’
控制并行执行期间分派的作业数。减少此数量对于避免在分派的作业多于CPU可以处理的作业时内存消耗爆炸是有用的。此参数可以是:
None,在这种情况下,所有作业立即创建并 spawned。对于轻量级和快速运行的作业,使用此选项以避免由于按需 spawning 作业而导致的延迟
一个int,给出 spawned 的总作业的确切数量
一个str,给出作为n_jobs函数的表达式,如’2*n_jobs’
- method{‘predict’, ‘predict_proba’, ‘predict_log_proba’, ‘decision_function’}, 默认=’predict’
由
estimator
调用的方法。
- Returns:
- predictionsndarray
这是调用
method
的结果。形状:当
method
是’predict’并且在特殊情况下method
是’decision_function’且目标为二元时:(n_samples,)当
method
是{‘predict_proba’, ‘predict_log_proba’, ‘decision_function’}之一时(除非上述特殊情况): (n_samples, n_classes)如果
estimator
是:term:multioutput
,则在每个形状的末尾添加额外维度’n_outputs’。
See also
cross_val_score
计算每个CV分割的分数。
cross_validate
计算每个CV分割的一个或多个分数和时间。
Notes
在训练部分中缺少一个或多个类别的情况下,如果
method
生成每个类别的列,则需要为该类别的所有实例分配一个默认分数,如{‘decision_function’, ‘predict_proba’, ‘predict_log_proba’}。对于predict_proba
,此值为0。为了确保有限输出,我们在其他情况下将负无穷大近似为该数据类型最小有限浮点值。Examples
>>> 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)