回答:
.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をサポートするライブラリがいくつかあるという朗報がいくつかあります。これはおそらくワークフローを単純化するでしょう。
XGBoostでPandas DataFramesを直接使用できるようになりました。間違いなくxgboost 0.81で動作します。
たとえば、X_train、X_val、y_train、y_valがDataFrameである場合:
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