在scikit-learn的documentation中,它只有简短的描述
为每个输入数据点生成交叉验证的估算值
我正在努力理解其背后的含义。由于默认值为3倍(cv=3
),对我来说,它将整个数据(X,y)
分成(X1,y1)
,(X2,y2)
,(X3,y3)
。然后,它在(X2,y2)
和(X3,y3)
上进行训练,然后得到预测y_pred1
。然后,它继续训练不同的组合,并获得预测y_pred2
和y_pred3
。然后将y_pred1
,y_pred2
,y_pred3
连接在一起,以获得完整的y_pred
。
我正确吗?然后,是否有可能在该过程中生成确切的(X1,y1)
,(X2,y2)
,(X3,y3)
?
下面显示了根据官方文档从y_pred
获取cross_val_predict
的代码。
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)