में केवल एक वर्ग मौजूद है, मैंने Google की खोज की, और इस त्रुटि के बारे में stackoverflow पोस्ट देखें। वे मेरे मामले नहीं हैं।sklearn auc ValueError: y_true
मैं एक साधारण तंत्रिका नेटवर्क को प्रशिक्षित करने के लिए कैमरे का उपयोग करता हूं और विभाजित परीक्षण डेटासेट पर कुछ भविष्यवाणी करता हूं। लेकिन जब Auc की गणना करने के लिए roc_auc_score
का उपयोग करें, तो मुझे "ValueError: y_true में केवल एक वर्ग मौजूद है। आरओसी एयूसी स्कोर उस मामले में परिभाषित नहीं किया गया है।"
मैं लक्ष्य लेबल वितरण का निरीक्षण करता हूं, और वे अत्यधिक असंतुलित हैं। कुछ लेबल (कुल 2 9 लेबल में) में केवल 1 उदाहरण होता है। तो संभव है कि उनके पास टेस्ट लेबल में कोई सकारात्मक लेबल उदाहरण नहीं होगा। तो sklearn के roc_auc_score
समारोह ने केवल एक वर्ग की समस्या की सूचना दी। यह उचित है।
लेकिन मैं उत्सुक हूं, जब मैं sklearn के cross_val_score
फ़ंक्शन का उपयोग करता हूं, तो यह त्रुटि के बिना एयूसी गणना को संभाल सकता है।
my_metric = 'roc_auc'
scores = cross_validation.cross_val_score(myestimator, data,
labels, cv=5,scoring=my_metric)
मुझे आश्चर्य है कि क्या cross_val_score
में happend ऐसा इसलिए है क्योंकि cross_val_score
एक स्तरीकृत पार सत्यापन डेटा विभाजन का उपयोग करें?
== अद्यतन ==
मैं कुछ खुदाई करना जारी रखा, लेकिन अभी भी अंतर पीछे कि cross_val_score कॉल check_scoring(estimator, scoring=None, allow_none=False)
देखना एक गणक वापस जाने के लिए नहीं मिल रहा है, और check_scoring
get_scorer(scoring)
फोन करेगा जो scorer=SCORERS[scoring]
और SCORERS['roc_auc']
roc_auc_scorer
है,
roc_auc_scorer
roc_auc_scorer = make_scorer(roc_auc_score, greater_is_better=True,
needs_threshold=True)
तो द्वारा किया जाता है, यह अभी भी roc_auc_score फ़ंक्शन का उपयोग कर रहा है। मुझे नहीं मिलता है कि cross_val_score सीधे roc_auc_score को कॉल करने के साथ अलग क्यों व्यवहार करता है।
'my_metric' क्या है:
आप की तरह कुछ कर सकता है? – maxymoo
@maxymoo मैं स्ट्रिंग 'roc_auc' का उपयोग करता हूं, यह एक मान्य मान है। –
यदि आप क्रॉस सत्यापन करते हैं और आपके पास एक प्रकार का लेबल है, तो कुछ फ़ोल्डर्स ऐसे किसी भी लेबल से रहित हो सकते हैं। फ़ोल्डरों की संख्या घटाने का प्रयास करें और सुनिश्चित करें कि आप स्तरीकृत नमूनाकरण का उपयोग करें। – Kris