اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

يمكن استخدامه في عمود يحتوي على أكثر من متغير، فالهدف منه هو تحويل القيم النصية إلى قيم رقمية يمكن للنماذج الإحصائية التعامل معها.

مثلاً لو لديك عمود يحتوي على قيم مثل مدينة، ريف، ساحل، فاستخدمه لتحويل القيم إلى قيم رقمية مثل 0، 1، 2.

ولكن يجب أن تكون حذرًا عند استخدامه في عمود يحتوي على قيم متعددة، حيث يمكن أن يؤدي ذلك إلى مشاكل مثل التمثيل غير الصحيح في حال القيم في العمود ليست متسلسلة أو لا تتبع ترتيبًا معينًا، أو الارتباط الخاطئ لو كانت القيم في العمود غير مرتبطة ببعضها البعض.

عامًة لا أنصحك باستخدام ترميز التسمية في الأعمدة التي تحتوي على ترتيب طبيعي بين القيم، أي لو لديك عمود Age يحتوي على القيم Child, Teen,Adult, فترميز التسمية سيؤدي إلى فهم خاطئ للنموذج، حيث سيعتقد أن Teen أكبر منAdult.

واستخدم Label Encoding فقط مع القيم النصية وليس مع القيم الرقمية أو التاريخية، ومن المهم مراجعة البيانات قبل استخدامه للتأكد من أن القيم في العمود ليست متكررة بشكل كبير، وأنها لا تحتوي على قيم غير متوقعة.

وفي حال القيم في العمود لا تتبع ترتيبًا معينًا، فهناك تقنيات أخرى مثل One-Hot Encoding أو Hashing أو  Dummy Encoding.

  • 0
نشر
بتاريخ 10 دقائق مضت قال Mustafa Suleiman:

يمكن استخدامه في عمود يحتوي على أكثر من متغير، فالهدف منه هو تحويل القيم النصية إلى قيم رقمية يمكن للنماذج الإحصائية التعامل معها.

مثلاً لو لديك عمود يحتوي على قيم مثل مدينة، ريف، ساحل، فاستخدمه لتحويل القيم إلى قيم رقمية مثل 0، 1، 2.

ولكن يجب أن تكون حذرًا عند استخدامه في عمود يحتوي على قيم متعددة، حيث يمكن أن يؤدي ذلك إلى مشاكل مثل التمثيل غير الصحيح في حال القيم في العمود ليست متسلسلة أو لا تتبع ترتيبًا معينًا، أو الارتباط الخاطئ لو كانت القيم في العمود غير مرتبطة ببعضها البعض.

عامًة لا أنصحك باستخدام ترميز التسمية في الأعمدة التي تحتوي على ترتيب طبيعي بين القيم، أي لو لديك عمود Age يحتوي على القيم Child, Teen,Adult, فترميز التسمية سيؤدي إلى فهم خاطئ للنموذج، حيث سيعتقد أن Teen أكبر منAdult.

واستخدم Label Encoding فقط مع القيم النصية وليس مع القيم الرقمية أو التاريخية، ومن المهم مراجعة البيانات قبل استخدامه للتأكد من أن القيم في العمود ليست متكررة بشكل كبير، وأنها لا تحتوي على قيم غير متوقعة.

وفي حال القيم في العمود لا تتبع ترتيبًا معينًا، فهناك تقنيات أخرى مثل One-Hot Encoding أو Hashing أو  Dummy Encoding.

تمام بس انا ممكن اتحكم في القيمه بمعني انا عندي عمود في القيمه دي yes , no , not done , nan فا انا لو عاوز كلمه yes = 3 هل اقدر اعمل كده والا الا ؟

  • 0
نشر

يمكن استخدام Label Encoding مع أي عمود يحتوي على قيم فريدة، حيث  في حالة العمود يحتوي على متغيرات ثنائية فإن Label Encoding يعتبر مناسبا جدا حيث سيتم تحويل القيم إلى 0 و1، مما يسهل معالجتها في النماذج، و في حالة العمود يحتوي على متغيرات متعددة الفئات يمكنك استخدام Label Encoding لتحويل القيم النصية إلى أرقام.

أما في حالة وجود عدد كبير جدا من الفئات، قد يؤدي ذلك إلى مشاكل مثل زيادة تعقيد النموذج وصعوبة في التفسير، و في هذه الحالة من الأفضل استخدام One-Hot Encoding، حيث يتم تحويل كل فئة إلى عمود جديد يحتوي على 0 أو 1.

  • 0
نشر
بتاريخ 2 دقائق مضت قال Chihab Hedidi:

أما في حالة وجود عدد كبير جدا من الفئات، قد يؤدي ذلك إلى مشاكل مثل زيادة تعقيد النموذج وصعوبة في التفسير، و في هذه الحالة من الأفضل استخدام One-Hot Encoding، حيث يتم تحويل كل فئة إلى عمود جديد يحتوي على 0 أو 1.

دي فكر كويس جدا عشان انا عندي فعلان اكثر من متغير و مش في عمود وحدا الا في اكثر من عمود

يعني 8 متغيرات في العمود الواحد

  • 0
نشر

Label Encoding هو طريقة لتحويل القيم النصية (Text أو Categories) في البيانات إلى أرقام علشان الكمبيوتر يفهمها.

مثلا: لو عندك عمود يحتوي على أسماء المدن:

"القاهرة"

"الإسكندرية"

"الجيزة"

بعد تطبيق Label Encoding:

"القاهرة" = 0

"الإسكندرية" = 1

"الجيزة" = 2

فين ممكن نستخدم Label Encoding؟

1. الأعمدة الثنائية (Outcome Column):

لما يكون عندك عمود فيه قيمتين فقط (زي "نعم/لا" أو "1/0").مثال:

Outcome
-----
نعم
لا
نعم

بعد التشفير:

Outcome
-----
1
0
1

2. الأعمدة متعددة القيم (Multi-Class Columns):

لما يكون عندك أكتر من متغير (زي الألوان: "أحمر"، "أخضر"، "أزرق").مثال:

Color
-----
أحمر
أخضر
أزرق

بعد التشفير:

Color
-----
0
1
2

إيه اللي لازم أخد بالي منه؟

Label Encoding بيحول النصوص إلى أرقام، لكن الأرقام دي الكمبيوتر ممكن يفهمها على إنها "ترتيب" أو "علاقة رياضية".

1. لو العمود فيه علاقة ترتيبية (Ordinal Data):

Label Encoding مناسب.

مثال: لو عندك مستويات تعليم (ابتدائي، إعدادي، ثانوي):

Education
---------
ابتدائي
إعدادي
ثانوي

بعد التشفير:

Education
---------
0
1
2

في الحالة دي، الأرقام دي لها معنى (ابتدائي أقل من إعدادي، وإعدادي أقل من ثانوي).

2. لو العمود ملوش علاقة ترتيبية (Nominal Data):

زي الألوان أو أسماء المدن، الأرقام الناتجة ممكن تخدع النموذج وتخليه يعتقد إن "القاهرة" (0) أقل من "الإسكندرية" (1)، وده غلط.

الحل في الحالة دي:

بدل Label Encoding، ممكن تستخدم One-Hot Encoding، واللي بيحول كل فئة لعمود مستقل فيه 0 و1:

مثال:

City
-----
القاهرة
الإسكندرية
الجيزة

بعد One-Hot Encoding:

القاهرة   الإسكندرية   الجيزة
-------   ----------   -----
    1          0         0
    0          1         0
    0          0         1

إمتى تختار Label Encoding؟

لو البيانات فيها علاقة ترتيبية بين القيم.

لو النموذج اللي بتستخدمه ما يتأثرش بفكرة "الترتيب" (زي Decision Trees أو Random Forest).

إمتى تفضل One-Hot Encoding؟

لو البيانات ملهاش علاقة ترتيبية.

لو عندك أعمدة فيها فئات متعددة ومفيش معنى إن فئة تكون أعلى أو أقل من التانية.

مثال عملي:

1. عمود Outcome:

لو عندك عمود "Outcome" يحتوي على "ناجح" و"راسب":

Label Encoding:

ناجح = 1
راسب = 0

2. عمود Multi-Class:

لو عندك عمود "الفصول الدراسية" يحتوي على "فصل A"، "فصل B"، "فصل C":

Label Encoding:

A = 0
B = 1
C = 2

One-Hot Encoding:

A   B   C
1   0   0
0   1   0
0   0   1

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...