Answers:
.values
一旦按需操作了列,就可以使用数据框的方法访问原始数据。
例如
train = pd.read_csv("train.csv")
target = train['target']
train = train.drop(['ID','target'],axis=1)
test = pd.read_csv("test.csv")
test = test.drop(['ID'],axis=1)
xgtrain = xgb.DMatrix(train.values, target.values)
xgtest = xgb.DMatrix(test.values)
显然,您可能需要更改删除或用作训练目标的列。以上是针对Kaggle比赛的信息,因此没有目标数据xgtest
(由组织者保留)。
.values
)
好消息是,有一个pandas_ml
支持XGBoost 的库,可能会简化工作流程。
您现在可以将Xandaso直接使用Pandas DataFrames。绝对适用于xgboost 0.81。
例如,其中X_train,X_val,y_train和y_val是DataFrames:
import xgboost as xgb
mod = xgb.XGBRegressor(
gamma=1,
learning_rate=0.01,
max_depth=3,
n_estimators=10000,
subsample=0.8,
random_state=34
)
mod.fit(X_train, y_train)
predictions = mod.predict(X_val)
rmse = sqrt(mean_squared_error(y_val, predictions))
print("score: {0:,.0f}".format(rmse))
xgb.DMatrix(X_train.values, y_train.values)
我看到了TypeError: can not initialize DMatrix from dict