आर में वन-हॉट एन्कोडिंग कैसे करें


वन-हॉट एन्कोडिंग का उपयोग श्रेणीबद्ध चर को एक प्रारूप में परिवर्तित करने के लिए किया जाता है जिसका उपयोग मशीन लर्निंग एल्गोरिदम द्वारा किया जा सकता है।

वन-हॉट कोडिंग का मूल विचार नए वेरिएबल्स बनाना है जो मूल श्रेणीबद्ध मूल्यों का प्रतिनिधित्व करने के लिए 0 और 1 मान लेते हैं।

उदाहरण के लिए, निम्नलिखित छवि दिखाती है कि हम टीम नामों वाले एक श्रेणीगत चर को केवल 0 और 1 मान वाले नए चर में बदलने के लिए एक-हॉट एनकोड कैसे करेंगे:

निम्नलिखित चरण-दर-चरण उदाहरण दिखाता है कि आर में इस सटीक डेटासेट के लिए एक-बार एन्कोडिंग कैसे करें।

चरण 1: डेटा बनाएं

सबसे पहले, आइए R में निम्नलिखित डेटा फ़्रेम बनाएं:

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'),
                 points=c(25, 12, 15, 14, 19, 23, 25, 29))

#view data frame
df

  team points
1 to 25
2 to 12
3 B 15
4 B 14
5 B 19
6 B 23
7 C 25
8 C 29

चरण 2: वन-हॉट एन्कोडिंग करें

इसके बाद, डेटा फ्रेम में ‘टीम’ वेरिएबल को वन-हॉट एनकोड करने के लिए कैरेट पैकेज के डमीवर्स() फ़ंक्शन का उपयोग करें:

 library ( caret)

#define one-hot encoding function
dummy <- dummyVars(" ~ . ", data=df)

#perform one-hot encoding on data frame
final_df <- data. frame (predict(dummy, newdata=df))

#view final data frame
final_df

  teamA teamB teamC points
1 1 0 0 25
2 1 0 0 12
3 0 1 0 15
4 0 1 0 14
5 0 1 0 19
6 0 1 0 23
7 0 0 1 25
8 0 0 1 29

ध्यान दें कि डेटा फ़्रेम में तीन नए कॉलम जोड़े गए हैं क्योंकि मूल “टीम” कॉलम में तीन अद्वितीय मान थे।

यह भी ध्यान दें कि मूल “टीम” कॉलम को डेटा फ़्रेम से हटा दिया गया है क्योंकि अब इसकी आवश्यकता नहीं है।

वन-हॉट एन्कोडिंग पूरी हो गई है और अब हम इस डेटासेट को अपनी पसंद के किसी भी मशीन लर्निंग एल्गोरिदम में फीड कर सकते हैं।

नोट : आप यहां डमीवर्स() फ़ंक्शन के लिए पूर्ण ऑनलाइन दस्तावेज़ पा सकते हैं।

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

निम्नलिखित ट्यूटोरियल श्रेणीबद्ध चर का उपयोग करने पर अतिरिक्त जानकारी प्रदान करते हैं:

आर में श्रेणीबद्ध चर कैसे बनाएं
आर में श्रेणीबद्ध डेटा कैसे प्लॉट करें
श्रेणीबद्ध या मात्रात्मक चर: क्या अंतर है?

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

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