स्किकिट बिनोमियल डिविज़न लॉस फंक्शन


11

यह स्कैडिट ग्रैडिएंटबॉस्टिंग का द्विपद अवमूल्यन हानि कार्य है,

   def __call__(self, y, pred, sample_weight=None):
        """Compute the deviance (= 2 * negative log-likelihood). """
        # logaddexp(0, v) == log(1.0 + exp(v))
        pred = pred.ravel()
        if sample_weight is None:
            return -2.0 * np.mean((y * pred) - np.logaddexp(0.0, pred))
        else:
            return (-2.0 / sample_weight.sum() *
                    np.sum(sample_weight * ((y * pred) - np.logaddexp(0.0, pred))))

यह नुकसान फ़ंक्शन 0 के साथ वर्ग और 1 के साथ वर्ग के बीच समान नहीं है। क्या कोई समझा सकता है कि यह कैसे ठीक माना जाता है।

उदाहरण के लिए, बिना किसी नमूने के, कक्षा 1 के लिए नुकसान का कार्य है

-2(pred - log(1 + exp(pred))

बनाम कक्षा ० के लिए

-2(-log(1+exp(pred))

लागत के मामले में इन दोनों के लिए कथानक समान नहीं हैं। क्या कोई मुझे समझने में मदद कर सकता है

जवाबों:


18

इस कार्यान्वयन को समझने के लिए दो टिप्पणियों की आवश्यकता है।

पहला यह है कि है predहै नहीं यह एक लॉग बाधाओं, एक संभावना।

दूसरा द्विपद विचलन का एक मानक बीजगणितीय हेरफेर है जो इस तरह से जाता है। को लॉग ऑड्स होने दो , क्या कॉल करता है । तब प्रेक्षण की द्विपद विचलन की परिभाषा है ( कारक तक )Psklearnpred2

ylog(p)+(1y)log(1p)=log(1p)+ylog(p1p)

अब उस और निरीक्षण करें (एक त्वरित जांच उन्हें योग करने के लिए है) आपके सिर में, आपको ) मिलेगा । इसलिएp=eP1+eP1p=11+eP1

log(1p)=log(11+eP)=log(1+eP)

तथा

log(p1p)=log(eP)=P

तो कुल मिलाकर, द्विपद विचलन बराबर होता है

yPlog(1+eP)

कौन सा समीकरण sklearnउपयोग कर रहा है।


धन्यवाद। यदि मैं predलॉग ऑड्स के साथ प्रतिस्थापित करता हूं , तो नुकसान फ़ंक्शन दोनों वर्गों के लिए समान है।
कुमारन

हाल ही में मेरे लिए भी यही सवाल आया। मैं gradientboostedmodels.googlecode.com/git/gbm/inst/doc/gbm.pdf पृष्ठ 10 पर देख रहा था, जहाँ पर भटकाव का क्रम सूचीबद्ध है। लेकिन ऐसा लगता है कि वे जो ढाल दिखा रहे हैं वह लॉग-लाइक के लिए है न कि नकारात्मक लॉग-लाइक के लिए। क्या यह सही है - यह आपकी व्याख्या से मेल खाता है?
B_Miner

1
@B_Miner लिंक टूट गया है
जेनेक्स

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