在R xgboost包中,我可以指定predictions = TRUE来保存交叉验证期间的折叠后预测,例如:
library(xgboost) data(mtcars) xgb_params = list( max_depth = 1,eta = 0.01 ) x = model.matrix(mpg~0+.,mtcars) train = xgb.DMatrix(x,label=mtcars$mpg) res = xgb.cv(xgb_params,train,100,prediction=TRUE,nfold=5) print(head(res$pred))
我如何在python包中做相同的操作?我找不到xgboost.cvin python的预测参数.
解决方法
我不确定这是否是你想要的,但你可以通过使用xgboost的sklearn包装器来实现这一点:(我知道我使用虹膜数据集作为回归问题 – 它不是,但这只是为了说明) .
import xgboost as xgb from sklearn.cross_validation import cross_val_predict as cvp from sklearn import datasets X = datasets.load_iris().data[:,:2] y = datasets.load_iris().target xgb_model = xgb.XGBRegressor() y_pred = cvp(xgb_model,X,y,cv=3,n_jobs = 1) y_pred array([ 9.07209516e-01,1.84738374e+00,1.78878939e+00,1.83672094e+00,9.07209516e-01,1.77482617e+00,1.75681138e+00,1.12216723e+00,9.96944368e-01,8.35850239e-01,9.87186074e-01,8.91427517e-01,9.09049034e-01,1.01038718e+00,1.99947178e+00,1.94922602e+00,1.99975276e+00,1.91500926e+00,1.97454870e+00,1.56287444e+00,1.96453893e+00,1.99715066e+00,2.84575284e-01,2.00303388e+00,2.04597521e+00,2.00527954e+00,1.95735490e+00,5.92201948e-04,1.89267385e+00,1.98232651e+00,2.39597082e-01,9.99531507e-01,1.00023842e+00,9.22234297e-01,1.00100708e+00,1.16144836e-01,1.00077248e+00,1.13711983e-01,1.00135887e+00,9.78098869e-01,1.00023842e+00],dtype=float32)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。