我是Python新手XGBoost所以我很抱歉,如果这里的答案显而易见,但我正在尝试使用panda数据帧并在Python中获取XGBoost,以便在使用Scikit-Learn包装器时获得相同的预测行使.到目前为止,我一直无法这样做.举一个例子,这里我拿波士顿数据集,转换为熊猫数据帧,训练数据集的前500个观测值,然后预测最后的6.我首先使用XGBoost,然后使用Scikit-Learn包装器和即使我将模型的参数设置为相同,我也会得到不同的预测.具体来说,数组预测看起来与数组预测2非常不同(参见下面的代码).任何帮助将非常感激!
from sklearn import datasets
import pandas as pd
import xgboost as xgb
from xgboost.sklearn import XGBClassifier
from xgboost.sklearn import XGBRegressor
### Use the boston data as an example, train on first 500, predict last 6
boston_data = datasets.load_boston()
df_boston = pd.DataFrame(boston_data.data,columns=boston_data.feature_names)
df_boston['target'] = pd.Series(boston_data.target)
#### Code using XGBoost
Sub_train = df_boston.head(500)
target = Sub_train["target"]
Sub_train = Sub_train.drop('target', axis=1)
Sub_predict = df_boston.tail(6)
Sub_predict = Sub_predict.drop('target', axis=1)
xgtrain = xgb.DMatrix(Sub_train.as_matrix(), label=target.tolist())
xgtest = xgb.DMatrix(Sub_predict.as_matrix())
params = {'booster': 'gblinear', 'objective': 'reg:linear',
'max_depth': …Run Code Online (Sandbox Code Playgroud)