كيفية إجراء ترميز الملصقات في لغة 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

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *