从python中的xgboost.cv获得无法预测的结果
发布时间:2020-12-20 12:11:33 所属栏目:Python 来源:网络整理
导读:在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(x
在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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |