असंतुलित कक्षाएं - झूठी नकारात्मक कैसे कम करें?


11

मेरे पास एक डेटासेट है जिसमें एक बाइनरी क्लास विशेषता है। कक्षा 1 (कैंसर पॉजिटिव) के साथ 623 उदाहरण हैं और कक्षा -1 (कैंसर नकारात्मक) के साथ 101,671 उदाहरण हैं।

मैंने विभिन्न एल्गोरिदम (Naive Bayes, Random Forest, AODE, C4.5) की कोशिश की है और उन सभी में अस्वीकार्य झूठे नकारात्मक अनुपात हैं। रैंडम फ़ॉरेस्ट में सबसे अधिक समग्र भविष्यवाणी सटीकता (99.5%) और सबसे कम गलत नकारात्मक अनुपात है, लेकिन अभी भी 79% सकारात्मक कक्षाएं याद आती हैं (यानी 79% घातक ट्यूमर का पता लगाने में विफल)।

किसी भी विचार मैं इस स्थिति में कैसे सुधार कर सकता हूं?

धन्यवाद!


आप इस सवाल पर एक नज़र डाल सकते हैं जहाँ मुझे इस समस्या के लिए दिलचस्प जवाब मिले। सबसे अच्छा संबंध है
माइकल हुरमैन 18

जवाबों:


9

कक्षा असंतुलन एक बहुत ही आम समस्या है। आप या तो सकारात्मक वर्ग को देख सकते हैं (या नकारात्मक को रेखांकित कर सकते हैं) या वर्ग भार जोड़ सकते हैं।

इस मामले में एक और बात याद रखने की है कि सटीकता यहां बहुत उपयोगी मीट्रिक नहीं है। आप AUC या F1 स्कोर पर विचार कर सकते हैं ।

आपके निर्णय की सीमा को बदलने के लिए अपील लग सकती है, लेकिन जाहिर है कि (इस मामले में काफी तेजी से बढ़ने की संभावना है) झूठी सकारात्मक वृद्धि हुई है (हालांकि शायद एफपी चिकित्सा निदान के मामले में एफएन के रूप में खराब नहीं हैं, अगर परीक्षण निषेधात्मक रूप से महंगे नहीं हैं)।

वर्ग असंतुलन के मामले में विकल्पों का अधिक गहराई से विश्लेषण यहां प्रदान किया गया है


3

भले ही वास्तविकता में उत्तर हमेशा होता है trueया false, आप अपनी कक्षा की विशेषताओं को लेबल नहीं बल्कि फ्लोटिंग पॉइंट नंबर, अर्थात 1.0 और 0.0 (या 100 और 0) बना सकते हैं। यही है, आप इसे फ्रेम कर सकते हैं यह एक प्रतिगमन समस्या है, वर्गीकरण समस्या नहीं।

फिर भविष्यवाणी की गई आउटपुट इसी तरह उस स्पेक्ट्रम पर नंबर होंगे, यानी संभावनाएं लेबल नहीं। आपका वर्तमान कार्यान्वयन अनिवार्य रूप से 0.5 के दहलीज के साथ प्रतिगमन मॉडल के बराबर है।

इस तरह के एक आउटपुट के साथ, आप या आपके ग्राहक एक सीमा को परिभाषित कर सकते हैं जो स्वीकार्य है (उदाहरण 0.3)। बेशक तब और अधिक गलत सकारात्मकता होगी, लेकिन कुछ अनुप्रयोगों के लिए, जैसे कैंसर का पता लगाना, वह इष्टतम है।

ओवरसम्पलिंग (सकारात्मकता) या अंडरस्मीपलिंग (नकारात्मक) भी इसे ठीक करने के तरीके हैं, लेकिन इसे सोच-समझकर किया जाना चाहिए, सटीकता का बलिदान कर सकता है, और फिर भी डेटा और प्रशिक्षण बनाने के बाद सीमा को स्थानांतरित करने के लिए नियंत्रण का त्याग करता है।


0

एक तकनीक के रूप में अंडर और ओवर-सैंपलिंग का उल्लेख पहले ही किया जा चुका है, लेकिन मुझे लगा कि मैं आमतौर पर इस्तेमाल किए जाने वाले वेरिएंट की ओर इशारा करूंगा:

SMOTE : सिंथेटिक माइनॉरिटी ओवर-सैंपलिंग तकनीक

इसे 2002 में इस पत्र में प्रस्तुत किया गया था । यहाँ सार से एक स्निपेट है:

यह पत्र दर्शाता है कि बहुसंख्यक (सामान्य) वर्ग के अल्प-नमूना (बहु-सामान्य) वर्ग के नमूने की हमारी पद्धति के संयोजन से बहुसंख्यक वर्ग के केवल-नमूना लेने से बेहतर वर्गीकरण प्रदर्शन (आरओसी अंतरिक्ष में) प्राप्त हो सकता है।


आप अजगर में आसानी से उपयोग कर सकते हैं, का उपयोग कर पैकेज है, जो में निहित है योगदान के मॉड्यूल Scikit-जानें और अलग से स्थापित किया जाना चाहिए।imbalanced-learn

असंतुलित-सीखना एक अजगर पैकेज है जो आम तौर पर डेटासेट्स में उपयोग किए जाने वाले री-सैंपलिंग तकनीकों की पेशकश करता है, जो कि बीच-बीच में असंतुलन को मजबूत करता है।

उस पैकेज में डेटा के बैचों को उत्पन्न करने के लिए उपयोगिताओं के सेट के साथ-साथ अंडर-सैंपलिंग के तरीकों को शामिल किया गया है जो कि केरस / टेन्सरफ्लो में प्रवाह कर सकते हैं।

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