sklearn.model_selection.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, pre_dispatch='2*n_jobs', method='predict')
[源码]
为每个输入的数据点生成交叉验证的估计。
根据交叉验证参数切分数据。每个样本恰好属于一个测试集,并且其预测是通过在相应训练集上拟合的估计器来计算的。
将这些预测传递到评估指标中可能不是衡量泛化性能的有效方法。除非所有测试集都具有相同的大小并且度量值是在样本上分解的,否则结果可能与 cross_validate
和 cross_val_score
不同。
在用户指南中阅读更多内容。
参数 | 说明 |
---|---|
estimator | estimator object implementing ‘fit’ and ‘predict’ 用于拟合数据的对象。 |
X | array-like of shape (n_samples, n_features) 用于拟合的数据。例如一个列表或至少2维的数组。 |
y | array-like of shape (n_samples,) or (n_samples, n_outputs), default=None 在监督学习的情况下要尝试预测的目标变量。 |
groups | array-like of shape (n_samples,), default=None 将数据集切分为训练集或测试集时使用的样本的分组标签。仅与“ Group” cv 实例(例如 GroupKFold )结合使用。 |
cv | int, cross-validation generator or an iterable, default=None 确定交叉验证切分策略。cv值可以输入: - None,默认使用5折交叉验证 - int,用于指定 (Stratified)KFold 的折数- CV splitter, - 可迭代输出训练集和测试集的切分作为索引数组 对于int或 None输入,如果估计器是分类器,并且 y 是二分类或多分类,则使用StratifiedKFold 。在所有其他情况下,均使用KFold 。有关可在此处使用的各种交叉验证策略,请参阅用户指南。 在版本0.22中:如果 cv 为None,默认从3折更改为5折。 |
n_jobs | int, default=None 用于进行计算的CPU数量。 None 除非在joblib.parallel_backend 环境中,否则表示1 。 -1 表示使用所有处理器。有关更多详细信息,请参见词汇表。 |
verbose | int, default=0 详细程度。 |
fit_params | dict, defualt=None 传递给估计器fit方法的参数。 |
pre_dispatch | int or str, default=’2*n_jobs’ 控制在并行执行期间分派的CPU内核数。当调度的CPU内核数量超过CPU的处理能力时,减少此数量可能有助于避免内存消耗激增。该参数可以是: - None,在这种情况下,所有CPU内核都将立即创建并产生,使它进行轻量级和快速运行的任务,以避免因按需生成作业而造成延迟 -int,给出所产生的总CPU内核数的确切数量 -str,根据n_jobs给出表达式,如'2*n_jobs' |
method | str, default=’predict’ 调用传递的估计器的传递方法名。对于method ='predict_proba',列对应于已排序的类。 |
返回值 | 说明 |
---|---|
predictions | ndarray 这是调用 method 的结果 |
另见:
cross_val_score
计算每个交叉验证切分的准确率
cross_validate
计算每个交叉验证切分的一个或多个准确率和时间
注
在训练集部分中缺少一个或多个类的情况下,如果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)