2015-12-09 12 views
22

में उद्देश्य और feval के बीच अंतर आर में xgboost में उद्देश्य और feval के बीच क्या अंतर है? मुझे पता है कि यह कुछ बहुत मौलिक है लेकिन मैं उन्हें/उनके उद्देश्य को बिल्कुल परिभाषित करने में असमर्थ हूं। मल्टी क्लास वर्गीकरण करते समय, सॉफ्टमैक्स उद्देश्य क्या है?xgboost

उत्तर

34

उद्देश्य

Objectivexgboost में function जो सीखने एल्गोरिथ्म कोशिश करते हैं और अनुकूलित करेंगे है। परिभाषा के अनुसार, यह 1 (ढाल) और दूसरा (हेसियन) डेरिवेटिव w.r.t. बनाने में सक्षम होना चाहिए। दिए गए प्रशिक्षण दौर में भविष्यवाणियां।

एक कस्टम Objective समारोह उदाहरण: link

# user define objective function, given prediction, return gradient and second order gradient 
# this is loglikelihood loss 
logregobj <- function(preds, dtrain) { 
    labels <- getinfo(dtrain, "label") 
    preds <- 1/(1 + exp(-preds)) 
    grad <- preds - labels 
    hess <- preds * (1 - preds) 
    return(list(grad = grad, hess = hess)) 
} 

यह प्रशिक्षण के लिए महत्वपूर्ण कार्य है और कोई xgboost मॉडल परिभाषित बिना प्रशिक्षित किया जा सकता। Objective फ़ंक्शंस का उपयोग सीधे प्रत्येक पेड़ में प्रत्येक नोड पर विभाजित करने में किया जाता है।

सीधे अनुकूलन या अपने मॉडल के प्रशिक्षण में feval

fevalxgboost नाटकों कोई भूमिका में । आपको प्रशिक्षित करने की भी आवश्यकता नहीं है। यह विभाजन को प्रभावित नहीं करता है। प्रशिक्षित होने के बाद यह सब आपके मॉडल को स्कोर करता है। एक कस्टम feval

evalerror <- function(preds, dtrain) { 
    labels <- getinfo(dtrain, "label") 
    err <- as.numeric(sum(labels != (preds > 0)))/length(labels) 
    return(list(metric = "error", value = err)) 
} 

सूचना का एक उदाहरण पर एक नज़र, यह सिर्फ एक नाम (मैट्रिक) और स्कोर (मान) देता है। आम तौर पर feval और objective समान हो सकता है, लेकिन हो सकता है कि आप जिस स्कोरिंग तंत्र को चाहते हैं वह थोड़ा अलग है, या डेरिवेटिव नहीं है। उदाहरण के लिए, लोग लोगो का मूल्यांकन करने के लिए लॉगलोस objective का उपयोग करते हैं, लेकिन मॉडल का मूल्यांकन करने के लिए एयूसी feval बनाएं।

इसके अलावा आप अपने मॉडल को प्रशिक्षण से रोकने के लिए feval का उपयोग कर सकते हैं ताकि यह सुधारने से पहले। और आप अपने मॉडल को विभिन्न तरीकों से स्कोर करने और उन सभी का निरीक्षण करने के लिए एकाधिक feval फ़ंक्शंस का उपयोग कर सकते हैं।

आपको मॉडल को प्रशिक्षित करने के लिए feval फ़ंक्शन की आवश्यकता नहीं है। केवल इसका मूल्यांकन करने के लिए, और इसे जल्दी प्रशिक्षण देने में मदद करें।

सारांश:

Objective मुख्य workhorse है।

feval कुछ शानदार चीजें करने के लिए xgboost को अनुमति देने के लिए एक सहायक है।

softmax एक objective फ़ंक्शन है जो आमतौर पर बहु-वर्ग वर्गीकरण में उपयोग किया जाता है। यह बीमा करता है कि आपकी सभी भविष्यवाणियां एक के बराबर होती हैं, और घातीय कार्य का उपयोग करके स्केल की जाती हैं। softmax

संबंधित मुद्दे