पांडास डेटाफ़्रेम से ट्रेन और परीक्षण सेट कैसे बनाएं
मशीन लर्निंग मॉडल को डेटासेट में फिट करते समय, हम अक्सर डेटासेट को दो सेटों में विभाजित करते हैं:
1. प्रशिक्षण सेट: मॉडल को प्रशिक्षित करने के लिए उपयोग किया जाता है (मूल डेटासेट का 70-80%)
2. परीक्षण सेट: मॉडल प्रदर्शन का निष्पक्ष अनुमान प्राप्त करने के लिए उपयोग किया जाता है (मूल डेटासेट का 20-30%)
पायथन में, पांडा डेटाफ़्रेम को प्रशिक्षण सेट और परीक्षण सेट में विभाजित करने के दो सामान्य तरीके हैं:
विधि 1: स्केलेरन की ट्रेन_टेस्ट_स्प्लिट() का उपयोग करें
from sklearn. model_selection import train_test_split train, test = train_test_split(df, test_size= 0.2 , random_state= 0 )
विधि 2: पांडा से नमूना() का उपयोग करें
train = df. sample (frac= 0.8 , random_state= 0 ) test = df. drop ( train.index )
निम्नलिखित उदाहरण दिखाते हैं कि निम्नलिखित पांडा डेटाफ़्रेम के साथ प्रत्येक विधि का उपयोग कैसे करें:
import pandas as pd import numpy as np #make this example reproducible n.p. random . seeds (1) #create DataFrame with 1,000 rows and 3 columns df = pd. DataFrame ( {' x1 ': np.random.randint (30,size=1000), ' x2 ': np. random . randint (12, size=1000), ' y ': np. random . randint (2, size=1000)}) #view first few rows of DataFrame df. head () x1 x2 y 0 5 1 1 1 11 8 0 2 12 4 1 3 8 7 0 4 9 0 0
उदाहरण 1: स्केलेरन से ट्रेन_टेस्ट_स्प्लिट() का उपयोग करें
निम्नलिखित कोड दिखाता है कि पांडा डेटाफ़्रेम को प्रशिक्षण और परीक्षण सेट में विभाजित करने के लिए स्केलेर के ट्रेन_टेस्ट_स्प्लिट() फ़ंक्शन का उपयोग कैसे करें:
from sklearn. model_selection import train_test_split #split original DataFrame into training and testing sets train, test = train_test_split(df, test_size= 0.2 , random_state= 0 ) #view first few rows of each set print ( train.head ()) x1 x2 y 687 16 2 0 500 18 2 1 332 4 10 1 979 2 8 1 817 11 1 0 print ( test.head ()) x1 x2 y 993 22 1 1 859 27 6 0 298 27 8 1 553 20 6 0 672 9 2 1 #print size of each set print (train. shape , test. shape ) (800, 3) (200, 3)
परिणाम से हम देख सकते हैं कि दो सेट बनाए गए:
- प्रशिक्षण सेट: 800 पंक्तियाँ और 3 स्तंभ
- परीक्षण सेट: 200 पंक्तियाँ और 3 कॉलम
ध्यान दें कि test_size मूल डेटाफ़्रेम से अवलोकनों के प्रतिशत को नियंत्रित करता है जो परीक्षण सेट से संबंधित होगा और रैंडम_स्टेट मान विभाजन को प्रतिलिपि प्रस्तुत करने योग्य बनाता है।
उदाहरण 2: पांडा से नमूना() का उपयोग करें
निम्नलिखित कोड दिखाता है कि पांडा डेटाफ़्रेम को प्रशिक्षण और परीक्षण सेट में विभाजित करने के लिए पांडा नमूना() फ़ंक्शन का उपयोग कैसे करें:
#split original DataFrame into training and testing sets train = df. sample (frac= 0.8 , random_state= 0 ) test = df. drop ( train.index ) #view first few rows of each set print ( train.head ()) x1 x2 y 993 22 1 1 859 27 6 0 298 27 8 1 553 20 6 0 672 9 2 1 print ( test.head ()) x1 x2 y 9 16 5 0 11 12 10 0 19 5 9 0 23 28 1 1 28 18 0 1 #print size of each set print (train. shape , test. shape ) (800, 3) (200, 3)
परिणाम से हम देख सकते हैं कि दो सेट बनाए गए:
- प्रशिक्षण सेट: 800 पंक्तियाँ और 3 स्तंभ
- परीक्षण सेट: 200 पंक्तियाँ और 3 कॉलम
ध्यान दें कि फ़्रेक मूल डेटाफ़्रेम से अवलोकनों के प्रतिशत को नियंत्रित करता है जो प्रशिक्षण सेट से संबंधित होगा और रैंडम_स्टेट मान विभाजन को प्रतिलिपि प्रस्तुत करने योग्य बनाता है।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि पायथन में अन्य सामान्य कार्य कैसे करें:
पायथन में लॉजिस्टिक रिग्रेशन कैसे करें
पायथन में कन्फ्यूजन मैट्रिक्स कैसे बनाएं
पायथन में संतुलित परिशुद्धता की गणना कैसे करें