python - पायगॉन में XGBoost XGBClassifier डिफ़ॉल्ट



scikit-learn classification (1)

ऐसा नहीं है कि आप पैरामीटर में कैसे xgboost निर्धारित करते हैं आप या तो अपने परम ग्रिड को अपने प्रशिक्षण समारोह में पारित करना चाहते हैं, जैसे कि एक्सगोबोस्ट की train या स्केलेर्न की GridSearchCV , या आप अपने एक्सजीसीसीएलसीफायर की set_params पद्धति का उपयोग करना चाहते हैं। नोट करने के लिए एक अन्य बात यह है कि यदि आप स्क्लेर्न (यानी: XGBClassifier() या XGBRegressor() वर्गों के लिए एक्सगबोस्ट के आवरण का प्रयोग कर रहे हैं) तो उपयोग किए गए पैरामाटर नाम स्केलेर्न की अपनी जीबीएम कक्षा में उपयोग किए गए समान हैं (उदा: एटा -> सीखने की दर)। मैं नहीं देख रहा हूँ कि स्केलैर्न आवरण के लिए सटीक दस्तावेज कहाँ छिपे हैं, लेकिन उन वर्गों के कोड यहां हैं: https://github.com/dmlc/xgboost/blob/master/python-package/xgboost/sklearn.py

आपके संदर्भ के लिए यह है कि आप मॉडल ऑब्जेक्ट मापदंडों को सीधे कैसे सेट करेंगे।

>>> grid = {'max_depth':10}
>>> 
>>> clf = XGBClassifier()
>>> clf.max_depth
3
>>> clf.set_params(**grid)
XGBClassifier(base_score=0.5, colsample_bylevel=1, colsample_bytree=1,
       gamma=0, learning_rate=0.1, max_delta_step=0, max_depth=10,
       min_child_weight=1, missing=None, n_estimators=100, nthread=-1,
       objective='binary:logistic', reg_alpha=0, reg_lambda=1,
       scale_pos_weight=1, seed=0, silent=True, subsample=1)
>>> clf.max_depth
10

संपादित करें: मुझे लगता है कि आप मॉडल निर्माण पर मापदंड सेट कर सकते हैं, ऐसा करने के लिए यह केवल सुपर विशिष्ट नहीं है क्योंकि अधिकांश लोगों को कुछ तरीकों से ग्रिड खोज मिलती है। हालांकि यदि आप ऐसा करते हैं तो आपको उन्हें पूर्ण पैरामीटर के रूप में सूचीबद्ध करना होगा या ** क्वार्ग का उपयोग करना होगा। उदाहरण के लिए:

>>> XGBClassifier(max_depth=10)
XGBClassifier(base_score=0.5, colsample_bylevel=1, colsample_bytree=1,
       gamma=0, learning_rate=0.1, max_delta_step=0, max_depth=10,
       min_child_weight=1, missing=None, n_estimators=100, nthread=-1,
       objective='binary:logistic', reg_alpha=0, reg_lambda=1,
       scale_pos_weight=1, seed=0, silent=True, subsample=1)
>>> XGBClassifier(**grid)
XGBClassifier(base_score=0.5, colsample_bylevel=1, colsample_bytree=1,
       gamma=0, learning_rate=0.1, max_delta_step=0, max_depth=10,
       min_child_weight=1, missing=None, n_estimators=100, nthread=-1,
       objective='binary:logistic', reg_alpha=0, reg_lambda=1,
       scale_pos_weight=1, seed=0, silent=True, subsample=1)

शब्दकोश के रूप में एक शब्दकोश के रूप में ** kwargs के बिना इनपुट का उपयोग करके यह पैरामीटर आपके शब्दकोश को शाब्दिक रूप से सेट किया जाएगा:

>>> XGBClassifier(grid)
XGBClassifier(base_score=0.5, colsample_bylevel=1, colsample_bytree=1,
       gamma=0, learning_rate=0.1, max_delta_step=0,
       max_depth={'max_depth': 10}, min_child_weight=1, missing=None,
       n_estimators=100, nthread=-1, objective='binary:logistic',
       reg_alpha=0, reg_lambda=1, scale_pos_weight=1, seed=0, silent=True,
       subsample=1)

मैं कुछ बाइनरी डेटा को वर्गीकृत करने के लिए XGBoosts क्लासिफायरियर का उपयोग करने का प्रयास कर रहा हूं। जब मैं सरलतम काम करता हूं और बस चूक का उपयोग करता हूं (निम्नानुसार)

clf = xgb.XGBClassifier()
metLearn=CalibratedClassifierCV(clf, method='isotonic', cv=2)
metLearn.fit(train, trainTarget)
testPredictions = metLearn.predict(test)

मुझे काफी अच्छा वर्गीकरण परिणाम मिलता है

मेरा अगला कदम था मेरे पैरामीटर ट्यूनिंग की कोशिश करना मापदंडों की मार्गदर्शिका से मार्गदर्शन ... https://github.com/dmlc/xgboost/blob/master/doc/parameter.md मैं डिफ़ॉल्ट से शुरू करना चाहता था और वहां से काम करना चाहता था ...

# setup parameters for xgboost
param = {}
param['booster'] = 'gbtree'
param['objective'] = 'binary:logistic'
param["eval_metric"] = "error"
param['eta'] = 0.3
param['gamma'] = 0
param['max_depth'] = 6
param['min_child_weight']=1
param['max_delta_step'] = 0
param['subsample']= 1
param['colsample_bytree']=1
param['silent'] = 1
param['seed'] = 0
param['base_score'] = 0.5

clf = xgb.XGBClassifier(params)
metLearn=CalibratedClassifierCV(clf, method='isotonic', cv=2)
metLearn.fit(train, trainTarget)
testPredictions = metLearn.predict(test)

नतीजा यह है कि सभी चीजों में से एक होने की भविष्यवाणी की जा रही है और दूसरी नहीं।

उत्सुकता से अगर मैं सेट

params={}

जो मुझे किसी भी मापदंडों को खिलाने के रूप में मुझे एक ही चूक नहीं देने की उम्मीद थी, मुझे ऐसा ही हो रहा है

तो क्या किसी को भी पता है कि XGBclassifier के लिए डिफ़ॉल्ट क्या है? ताकि मैं ट्यूनिंग शुरू कर सकूं?





xgboost