आर में लेबल एन्कोडिंग कैसे करें (उदाहरण के साथ)
अक्सर मशीन लर्निंग में हम श्रेणीबद्ध चर को कुछ प्रकार के संख्यात्मक प्रारूप में परिवर्तित करना चाहते हैं जिन्हें एल्गोरिदम द्वारा आसानी से उपयोग किया जा सकता है।
ऐसा करने का एक तरीका लेबल एन्कोडिंग का उपयोग करना है, जो प्रत्येक श्रेणीगत मान को वर्णमाला क्रम के आधार पर एक पूर्णांक मान निर्दिष्ट करता है।
उदाहरण के लिए, निम्नलिखित स्क्रीनशॉट दिखाता है कि टीम नामक श्रेणीबद्ध चर के प्रत्येक अद्वितीय मान को वर्णमाला क्रम के आधार पर पूर्णांक मान में कैसे परिवर्तित किया जाए:
R में लेबल कोडिंग करने के दो सामान्य तरीके हैं:
विधि 1: बेस आर का उपयोग करें
df$my_var <- as. numeric (factor(df$my_var))
विधि 2: CatEncoders पैकेज का उपयोग करें
library (CatEncoders) #define original categorical labels labs = LabelEncoder. fit (df$my_var) #convert labels to numeric values df$team = transform(labs, df$my_var)
निम्नलिखित उदाहरण दिखाते हैं कि व्यवहार में प्रत्येक विधि का उपयोग कैसे करें।
उदाहरण 1: बेस आर का उपयोग करके लेबल एन्कोडिंग
निम्नलिखित कोड दिखाता है कि टीम नामक श्रेणीगत चर को संख्यात्मक चर में बदलने के लिए आर बेस फैक्टर() फ़ंक्शन का उपयोग कैसे करें:
#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 #perform label encoding on team variable df$team <- as. numeric (factor(df$team)) #view updated data frame df team points 1 1 25 2 1 12 3 2 15 4 2 14 5 2 19 6 2 23 7 3 25 8 3 29
टीम कॉलम में नए मान नोट करें:
- “ए” 1 हो गया।
- “बी” 2 हो गया.
- “C” 3 हो गया.
हमने टीम कॉलम को श्रेणीबद्ध चर से संख्यात्मक चर में सफलतापूर्वक परिवर्तित कर दिया है।
उदाहरण 2: CatEncoders पैकेज का उपयोग करके लेबल एन्कोडिंग
निम्नलिखित कोड दिखाता है कि टीम नामक एक श्रेणीगत चर को एक संख्यात्मक चर में बदलने के लिए CatEncoders() पैकेज में फ़ंक्शंस का उपयोग कैसे करें:
library (CatEncoders) #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)) #define original categorical labels labs = LabelEncoder. fit (df$team) #convert labels to numeric values df$team = transform(labs, df$team) #view updated data frame df team points 1 1 25 2 1 12 3 2 15 4 2 14 5 2 19 6 2 23 7 3 25 8 3 29
फिर से, हमने टीम कॉलम में निम्नलिखित नए मान तैयार किए:
- “ए” 1 हो गया।
- “बी” 2 हो गया.
- “C” 3 हो गया.
यह पिछले उदाहरण के परिणामों से मेल खाता है.
ध्यान दें कि इस विधि का उपयोग करके आप टीम कॉलम के मूल मान प्राप्त करने के लिए invers.transform() का भी उपयोग कर सकते हैं:
#display original team labels reverse. transform (labs, df$team) [1] “A” “A” “B” “B” “B” “B” “C” “C”
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि आर में अन्य सामान्य कार्य कैसे करें:
आर में जारी रखें से एक श्रेणीबद्ध चर कैसे बनाएं
आर में श्रेणीबद्ध चर कैसे बनाएं
आर में श्रेणीबद्ध चर को संख्यात्मक में कैसे परिवर्तित करें