पांडास डेटाफ़्रेम से ट्रेन और परीक्षण सेट कैसे बनाएं


मशीन लर्निंग मॉडल को डेटासेट में फिट करते समय, हम अक्सर डेटासेट को दो सेटों में विभाजित करते हैं:

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 कॉलम

ध्यान दें कि फ़्रेक मूल डेटाफ़्रेम से अवलोकनों के प्रतिशत को नियंत्रित करता है जो प्रशिक्षण सेट से संबंधित होगा और रैंडम_स्टेट मान विभाजन को प्रतिलिपि प्रस्तुत करने योग्य बनाता है।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि पायथन में अन्य सामान्य कार्य कैसे करें:

पायथन में लॉजिस्टिक रिग्रेशन कैसे करें
पायथन में कन्फ्यूजन मैट्रिक्स कैसे बनाएं
पायथन में संतुलित परिशुद्धता की गणना कैसे करें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *