पंडों डेटाफ्रेम को DMatrix


14

मैं scikit सीखने में xgboost चलाने की कोशिश कर रहा हूं। और मैं केवल डेटाफ्रेम में डेटा लोड करने के लिए पंडों का उपयोग करता हूं। मैं कैसे xgboost के साथ पांडा df का उपयोग करने वाला हूं। मैं DMGrix दिनचर्या से उलझन में हूँ xgboost algo चलाने के लिए आवश्यक है।

जवाबों:


21

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

जाहिर है कि आपको प्रशिक्षण लक्ष्य के रूप में आपके द्वारा उपयोग किए जाने वाले कॉलम को बदलने या बदलने की आवश्यकता हो सकती है। उपरोक्त एक कागेल प्रतियोगिता के लिए था, इसलिए इसके लिए कोई लक्ष्य डेटा नहीं था xgtest(यह आयोजकों द्वारा वापस आयोजित किया गया है)।


जब xgb.DMatrix(X_train.values, y_train.values)मैं इस तरह की कोशिश कर रहा हूंTypeError: can not initialize DMatrix from dict
javadba

@javadba: यह निश्चित रूप से 2016 में मेरी mahahine पर काम किया है! मैं इस समय इसका परीक्षण नहीं कर सकता क्योंकि मैं xgboost को स्थापित नहीं कर सकता। यह संभव है कि कुछ पुस्तकालय कोड बदल गए हों। अधिक संभावना है कि आपकी स्थिति के बारे में कुछ अलग है। मैंने पाया stackoverflow.com/questions/35402461/... लेकिन कि बस आप वास्तव में क्या इस उत्तर करता है (यानी उपयोग करने के लिए सलाह देते हैं .values)
नील स्लेटर


7

अब आप सीधे XGBoost के साथ 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))

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.