从python中的xgboost.cv获得无法预测的结果

在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)

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...