स्केलेरन में वर्गीकरण रिपोर्ट की व्याख्या कैसे करें (उदाहरण के साथ)
जब हम मशीन लर्निंग में वर्गीकरण मॉडल का उपयोग करते हैं, तो हम मॉडल की गुणवत्ता का मूल्यांकन करने के लिए तीन सामान्य मीट्रिक का उपयोग करते हैं:
1. सटीकता : कुल सकारात्मक भविष्यवाणियों की तुलना में सही सकारात्मक भविष्यवाणियों का प्रतिशत।
2. याद करें : कुल वास्तविक सकारात्मकताओं की तुलना में सही सकारात्मक भविष्यवाणियों का प्रतिशत।
3. एफ1 स्कोर : सटीकता और रिकॉल का एक भारित हार्मोनिक औसत। मॉडल 1 के जितना करीब होगा, मॉडल उतना ही बेहतर होगा।
- एफ1 स्कोर: 2* (प्रिसिजन * रिकॉल) / (प्रिसिजन + रिकॉल)
इन तीन मैट्रिक्स का उपयोग करके, हम समझ सकते हैं कि कोई दिया गया वर्गीकरण मॉडल कुछ प्रतिक्रिया चर के परिणामों की भविष्यवाणी करने में कितनी अच्छी तरह सक्षम है।
सौभाग्य से, पायथन में वर्गीकरण मॉडल को फिट करते समय, हम इन तीन मेट्रिक्स को उत्पन्न करने के लिए स्केलेर लाइब्रेरी से वर्गीकरण_रिपोर्ट() फ़ंक्शन का उपयोग कर सकते हैं।
निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस फ़ंक्शन का उपयोग कैसे करें।
उदाहरण: स्केलेरन में वर्गीकरण रिपोर्ट का उपयोग कैसे करें
इस उदाहरण के लिए, हम एक लॉजिस्टिक रिग्रेशन मॉडल फिट करेंगे जो अंकों का उपयोग करता है और यह अनुमान लगाने में सहायता करता है कि 1,000 अलग-अलग कॉलेज बास्केटबॉल खिलाड़ियों को एनबीए में शामिल किया जाएगा या नहीं।
सबसे पहले, हम पायथन में लॉजिस्टिक रिग्रेशन करने के लिए आवश्यक पैकेज आयात करेंगे:
import pandas as pd import numpy as np from sklearn. model_selection import train_test_split from sklearn. linear_model import LogisticRegression from sklearn. metrics import classification_report
इसके बाद, हम 1000 बास्केटबॉल खिलाड़ियों की जानकारी वाला डेटा फ़्रेम बनाएंगे:
#make this example reproducible
n.p. random . seeds (1)
#createDataFrame
df = pd. DataFrame ({' points ': np. random . randint (30, size=1000),
' assists ': np. random . randint (12, size=1000),
' drafted ': np. random . randint (2, size=1000)})
#view DataFrame
df. head ()
points assists drafted
0 5 1 1
1 11 8 0
2 12 4 1
3 8 7 0
4 9 0 0
ध्यान दें : 0 का मान इंगित करता है कि एक खिलाड़ी को ड्राफ्ट नहीं किया गया था, जबकि 1 का मान इंगित करता है कि एक खिलाड़ी को ड्राफ्ट किया गया था।
इसके बाद, हम अपने डेटा को एक प्रशिक्षण सेट और एक परीक्षण सेट में विभाजित करेंगे और लॉजिस्टिक रिग्रेशन मॉडल में फिट करेंगे:
#define the predictor variables and the response variable X = df[[' points ', ' assists ']] y = df[' drafted '] #split the dataset into training (70%) and testing (30%) sets X_train,X_test,y_train,y_test = train_test_split (X,y,test_size=0.3,random_state=0) #instantiate the model logistic_regression = LogisticRegression() #fit the model using the training data logistic_regression. fit (X_train,y_train) #use model to make predictions on test data y_pred = logistic_regression. predict (X_test)
अंत में, हम अपने मॉडल के वर्गीकरण मेट्रिक्स को प्रिंट करने के लिए वर्गीकरण_रिपोर्ट() फ़ंक्शन का उपयोग करेंगे:
#print classification report for model
print (classification_report(y_test, y_pred))
precision recall f1-score support
0 0.51 0.58 0.54 160
1 0.43 0.36 0.40 140
accuracy 0.48 300
macro avg 0.47 0.47 0.47 300
weighted avg 0.47 0.48 0.47 300
यहां परिणाम की व्याख्या करने का तरीका बताया गया है:
स्पष्टीकरण : उन सभी खिलाड़ियों में से जिनके मॉडल ने भविष्यवाणी की थी कि उन्हें ड्राफ्ट किया जाएगा, वास्तव में केवल 43% ही थे।
अनुस्मारक : वास्तव में तैयार किए गए सभी खिलाड़ियों में से, मॉडल ने केवल 36% के लिए इस परिणाम की सही भविष्यवाणी की।
F1 स्कोर : इस मान की गणना निम्नानुसार की जाती है:
- एफ1 स्कोर: 2* (प्रिसिजन * रिकॉल) / (प्रिसिजन + रिकॉल)
- एफ1 स्कोर: 2*(.43*.36)/(.43+.36)
- F1 रेटिंग: 0.40 ।
चूँकि यह मान 1 के बहुत करीब नहीं है, यह हमें बताता है कि मॉडल खराब भविष्यवाणी कर रहा है कि खिलाड़ियों को ड्राफ्ट किया जाएगा या नहीं।
समर्थन : ये मान बस हमें बताते हैं कि परीक्षण डेटासेट में प्रत्येक वर्ग से कितने खिलाड़ी संबंधित थे। हम देख सकते हैं कि परीक्षण डेटासेट में खिलाड़ियों में से 160 अनिर्दिष्ट थे और 140 थे।
नोट : आप वर्गीकरण_रिपोर्ट() फ़ंक्शन के लिए संपूर्ण दस्तावेज़ यहां पा सकते हैं।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल पायथन में वर्गीकरण मॉडल का उपयोग करने पर अतिरिक्त जानकारी प्रदान करते हैं:
पायथन में लॉजिस्टिक रिग्रेशन कैसे करें
पायथन में कन्फ्यूजन मैट्रिक्स कैसे बनाएं
पायथन में संतुलित परिशुद्धता की गणना कैसे करें