Log_loss के लिए sklearn दस्तावेज़ीकरण के उदाहरण पर विचार करें:

from sklearn.metrics import log loss
log_loss(["spam", "ham", "ham", "spam"], [[.1, .9], [.9, .1], [.8, .2], [.35, .65]])

इसे चलाने पर हमें ~0.216 का आउटपुट मिलता है। हैम और स्पैम को वर्गीकृत करने में मॉडल काफी अच्छा है।

स्केलेर को कैसे पता चलता है कि पहली प्रायिकता ham और दूसरी spam है?

अगर मैं लेबल को फ्लिप करना चाहता हूं, यानी पहला spam है और दूसरा ham है, तो मैं यह कैसे कर सकता हूं? स्पष्ट रूप से लेबल तर्क की आपूर्ति काम नहीं करती है:

log_loss(["spam", "ham", "ham", "spam"], [[.1, .9], [.9, .1], [.8, .2], [.35, .65]], labels=["ham", "spam"])

आउटपुट: 0.216।

log_loss(["spam", "ham", "ham", "spam"], [[.1, .9], [.9, .1], [.8, .2], [.35, .65]], labels=["spam", "ham"])

आउटपुट: 0.216।

ध्यान दें कि यह स्टैक एक्सचेंज पर यह प्रश्न, लेकिन संभावनाओं के क्रम के बारे में एक प्रश्न।

-1
Student 7 सितंबर 2020, 15:40

1 उत्तर

सबसे बढ़िया उत्तर

sklearn.metrics.log_loss मानता है कि संभावनाओं के लेबल वर्णानुक्रम में हैं। इसे सोर्स कोड में देखा जा सकता है .

अपने लेबल को फ़्लिप करने के लिए, आपको उनका नाम विपरीत वर्णानुक्रम में बदलना होगा, उदा. aspam और bham:

from sklearn.metrics import log_loss
log_loss(["aspam", "bham", "bham", "aspam"], [[.1, .9], [.9, .1], [.8, .2], [.35, .65]])

आउटपुट: ~1.816।

0
Student 7 सितंबर 2020, 12:40