Ali Ahmed55 نشر 15 ديسمبر أرسل تقرير نشر 15 ديسمبر السلام عليكم هو اي الفرق مابين OneHotEncoder, LabelEncoder ؟ 2 اقتباس
0 عبد الوهاب بومعراف نشر 15 ديسمبر أرسل تقرير نشر 15 ديسمبر وعليكم السلام ورحمة الله وبركاته، كلاهما يتم استخدامهما في معالجة البيانات وخصوصا عند التعامل مع المتغيرات الفئوية في تعلم الآلة أبرز الفروق بينهما هي كالآتي: أولا، LabelEncoder يستخدم لتحويل القيم النصية أو الفئوية (categorical) إلى قيم عددية (numeric) بحيث يتم إعطاء كل فئة رقما صحيحا ويتم استخدامه عندما تكون الفئات مرتبة أو عند الحاجة لتصنيف واحد فقط لكل فئة مثلا إذا كانت لديك قائمة بالفئات التالية: ['Red', 'Green', 'Blue'] فسيقوم بتحويلها إلى التالي: [0, 1, 2] أما OneHotEncoder فيحول كل فئة إلى مجموعة من الأرقام الثنائية (binary) بحيث يكون لكل فئة عمود منفصل، ويتم وضع 1 في العمود الذي يمثل الفئة والباقي 0 ونستخدمه عندما نحتاج إلى تمثيل غير مرتب للفئات مثلا إذا كان لدينا نفس القائمة السابقة فسيتم تحويلها إلى: Red Green Blue 1 0 0 0 1 0 0 0 1 لو تركز قليلا ستجد أنّ LabelEncoder يعطي تمثيلا عدديا بسيطا، بينما OneHotEncoder يفصل كل فئة في عمود مستقل، وهو أكثر شمولا للفئات غير المرتبة. 1 اقتباس
0 Mustafa Suleiman نشر 15 ديسمبر أرسل تقرير نشر 15 ديسمبر LabelEncoder يقوم بتحويل القيم الفئوية (مثل أحمر، أخضر، أزرق) إلى قيم رقمية صحيحة (مثل 0، 1، 2)، أي يعين رقمًا فريدًا لكل فئة حسب ترتيب ظهورها في البيانات أو ترتيب أبجدي. ونستخدمه مع البيانات Ordinal Categorical Data، أي البيانات التي تحمل ترتيبًا أو تسلسلًا منطقيًا (مثل منخفض، متوسط، مرتفع). أيضًا مع البيانات الفئوية الاسمية Nominal Categorical Data مثل الألوان، ولكن بحذر شديد، لأن ذلك أحيانًأ يؤدي إلى مشاكل في بعض الخوارزميات مثل إدخال ترتيب غير مرغوب حيث الأرقام التي يعينها قد تفهمها الخوارزمية على أنها ترتيب أو علاقة، وهذا غير صحيح، بمعنى قد تفهم الخوارزمية أن أزرق (2) أكبر من أحمر (0)، وذلك غير منطقي. وأحيانًا يؤثر على أداء بعض الخوارزميات (مثل الانحدار الخطي) تتأثر سلبًا بالترتيب غير المنطقي الذي قد يضيفه LabelEncoder للبيانات الاسمية. بينما OneHotEncoder يقوم بتحويل القيم الفئوية إلى أعمدة ثنائية (0 أو 1) لكل فئة، أي ينشئ عمودًا جديدًا وفي حال القيمة في الصف تنتمي إلى تلك الفئة، يضع 1 في العمود المقابل، وإلا يضع 0. ويستخدم بشكل أساسي مع Nominal Categorical Data، حيث لا يوجد ترتيب منطقي بين الفئات، وأيضًا مع البيانات الترتيبية، ولكن ربما يؤدي إلى زيادة كبيرة في عدد الأعمدة (الأبعاد) في حال كان عدد الفئات كبيرًا. ميزته تجنب إدخال ترتيب غير مرغوب حيث لا يفرض أي ترتيب أو علاقة بين الفئات، بالتالي هو مناسب للبيانات الاسمية، بجانب أنه يساعد الخوارزميات على فهم البيانات الفئوية بشكل أفضل، خاصةً الخوارزميات التي تعتمد على المسافات أو العلاقات الخطية. ومن عيوبه أحيانًا زيادة كبيرة في عدد الأعمدة (الأبعاد) في حال عدد الفئات كبيرًا، بالتالي يؤثر على أداء بعض الخوارزميات أو يزيد من استهلاك الذاكرة. أيضًأ مشكلة التعدد الخطي Multicollinearity لو هناك علاقة خطية بين بعض الأعمدة الناتجة عن OneHotEncoder، الأمر الذي يؤثر على بعض الخوارزميات (مثل الانحدار الخطي)، وتستطيع حل المشكلة باستخدام تقنيات مثل حذف أحد الأعمدة أو استخدام Regularization. 1 اقتباس
0 Ali Ahmed55 نشر 15 ديسمبر الكاتب أرسل تقرير نشر 15 ديسمبر بتاريخ 12 دقائق مضت قال عبد الوهاب بومعراف: ولا، LabelEncoder يستخدم لتحويل القيم النصية أو الفئوية (categorical) إلى قيم عددية (numeric) بحيث يتم إعطاء كل فئة رقما صحيحا ويتم استخدامه عندما تكون الفئات مرتبة أو عند الحاجة لتصنيف واحد فقط لكل فئة مثلا إذا كانت لديك قائمة بالفئات التالية: ['Red', 'Green', 'Blue'] فسيقوم بتحويلها إلى التالي: [0, 1, 2] طيب ممكن ان اتحكم في القيمه يعني انا مش عاوز يكون الحمر يكون 0 عاوز مثلاا يكون 4 هل اقدر انا اعمل كده ؟ اقتباس
السؤال
Ali Ahmed55
السلام عليكم
هو اي الفرق مابين OneHotEncoder, LabelEncoder ؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.