Scikit öğrenmek xgboost çalıştırmak çalışıyorum. Ve ben sadece veri çerçevesine veri yüklemek için Pandalar kullanın. Nasıl xgboost ile pandalar df kullanmak gerekiyordu. Ben xgboost algo çalıştırmak için gerekli DMatrix rutin karıştı.
Scikit öğrenmek xgboost çalıştırmak çalışıyorum. Ve ben sadece veri çerçevesine veri yüklemek için Pandalar kullanın. Nasıl xgboost ile pandalar df kullanmak gerekiyordu. Ben xgboost algo çalıştırmak için gerekli DMatrix rutin karıştı.
Yanıtlar:
Sen dataframe en kullanabilirsiniz .values
ihtiyaç duyduğunuz sütunları manipüle kez erişim ham verilere yöntemi.
Örneğin
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)
Açıkçası hangi sütunları bıraktığınızı değiştirmeniz veya egzersiz hedefi olarak kullanmanız gerekebilir. Yukarıdakiler bir Kaggle yarışması içindi, bu yüzden için hedef veri yoktu xgtest
(organizatörler tarafından tutulur).
.values
) yapmanızı önerir
pandas_ml
XGBoost'u destekleyen bir kütüphane var, muhtemelen bu iş akışını basitleştirecek bazı iyi haberler var .
Artık Pandas DataFrames'i doğrudan XGBoost ile kullanabilirsiniz. Kesinlikle xgboost 0.81 ile çalışır.
Örneğin, burada X_train, X_val, y_train ve y_val DataFrames'tir:
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)
görüyorumTypeError: can not initialize DMatrix from dict