微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐