2016-06-21 8 views
8

के बीच कोई भी अलग है, मैं xgb model-1 बनाने और प्रशिक्षित करने के लिए नीचे xgboots sklearn इंटरफ़ेस का उपयोग करता हूं।मूल xgboost और sklearn XGBClassifier

clf = xgb.XGBClassifier(n_estimators = 100, objective= 'binary:logistic',) 
clf.fit(x_train, y_train, early_stopping_rounds=10, eval_metric="auc", 
    eval_set=[(x_valid, y_valid)]) 

और xgboost मॉडल मॉडल -2 नीचे के रूप में मूल xgboost द्वारा बनाया जा सकता:

param = {} 
param['objective'] = 'binary:logistic' 
param['eval_metric'] = "auc" 
num_rounds = 100 
xgtrain = xgb.DMatrix(x_train, label=y_train) 
xgval = xgb.DMatrix(x_valid, label=y_valid) 
watchlist = [(xgtrain, 'train'),(xgval, 'val')] 
model = xgb.train(plst, xgtrain, num_rounds, watchlist, early_stopping_rounds=10) 

मुझे लगता है कि सभी मापदंडों मॉडल -1 और मॉडल -2 के बीच एक ही हैं। लेकिन सत्यापन स्कोर अलग है। मॉडल -1 और मॉडल -2 के बीच कोई अंतर है?

+2

मैं एक ही मुद्दा था। मैंने सभी दस्तावेज़ों और मेरे सभी कोडों के माध्यम से कुछ घंटे बिताए, सभी मानकों को एक ही और फिर प्रशिक्षित किया। फिर भी, मुझे लगता है कि 'xgb.XGBClassifier' 0.51 auc देता है और 'xgb.train' 0.84 auc देता है। मुझे कोई जानकारी नहीं है की क्यों। – josh

+1

'sklearn' इंटरफ़ेस में कुछ विकल्प नहीं हैं। उदाहरण के लिए, रैंकिंग के लिए महत्वपूर्ण 'डीमैट्रिक्स' वर्ग की विधि 'set_group'' sklearn' इंटरफ़ेस में कोई एनालॉग नहीं है। – xolodec

उत्तर

1

परिणाम समान होना चाहिए, XGBClassifier केवल sklearn का इंटरफ़ेस है जो अंत में xgb लाइब्रेरी पर कॉल करता है।

आप एक ही परिणाम प्राप्त करने के लिए दोनों दृष्टिकोणों के लिए seed जोड़ने का प्रयास कर सकते हैं। उदाहरण के लिए, अपने sklearn के इंटरफ़ेस में:

clf = xgb.XGBClassifier(n_estimators = 100, objective= 'binary:logistic',seed=1234) 
+0

मैंने यह किया है लेकिन अभी भी कोई भाग्य नहीं है। प्रश्न पर टिप्पणी देखें! – josh

3

मैं समझता हूँ, वहाँ xgb में और उसके sklearn इंटरफ़ेस में डिफ़ॉल्ट पैरामीटर के बीच कई मतभेद हैं। उदाहरण के लिए: डिफ़ॉल्ट xgb में eta = 0.3 है जबकि दूसरे में eta = 0.1 है। आप डिफ़ॉल्ट पैरामीटर के बारे में अधिक देख सकते हैं में से प्रत्येक के लिए यहाँ लागू करता है:

https://github.com/dmlc/xgboost/blob/master/doc/parameter.md http://xgboost.readthedocs.io/en/latest/python/python_api.html#module-xgboost.sklearn

+0

@ gofr1: आवश्यक हिस्सा यह है कि दो औजारों में अलग-अलग डिफ़ॉल्ट पैरामीटर होते हैं। मैं एक उदाहरण भी देता हूं। सादर, –