كيفية إجراء ترميز الملصقات في لغة r (مع أمثلة)
في كثير من الأحيان، في التعلم الآلي، نريد تحويل المتغيرات الفئوية إلى نوع من التنسيق الرقمي الذي يمكن استخدامه بسهولة بواسطة الخوارزميات.
إحدى الطرق للقيام بذلك هي استخدام ترميز التسمية ، الذي يعين لكل قيمة فئوية قيمة عددية بناءً على الترتيب الأبجدي.
على سبيل المثال، توضح لقطة الشاشة التالية كيفية تحويل كل قيمة فريدة لمتغير فئوي يسمى Team إلى قيمة عددية بناءً على الترتيب الأبجدي:
هناك طريقتان شائعتان لتنفيذ ترميز الملصقات في R:
الطريقة الأولى: استخدم Base R
df$my_var <- as. numeric (factor(df$my_var))
الطريقة الثانية: استخدم حزمة 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: تشفير التسميات باستخدام Base R
يوضح التعليمة البرمجية التالية كيفية استخدام الدالة R base Factor() لتحويل متغير فئوي يسمى الفريق إلى متغير رقمي:
#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 .
- “ج” أصبح 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 .
- “ج” أصبح 3 .
وهذا يطابق نتائج المثال السابق.
لاحظ أنه باستخدام هذه الطريقة يمكنك أيضًا استخدام inverse.transform() للحصول على القيم الأصلية لعمود الفريق :
#display original team labels reverse. transform (labs, df$team) [1] “A” “A” “B” “B” “B” “B” “C” “C”
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في R:
كيفية إنشاء متغير قاطع من الاستمرار في R
كيفية إنشاء المتغيرات الفئوية في R
كيفية تحويل المتغيرات الفئوية إلى رقمية في R