الخطوه الاولي في تحليل البيانات (Pre – processing) باستخدام لغة البايثون

الخطوه الاولي في تحليل البيانات (Pre – processing) باستخدام لغة البايثون

اليوم سنتطرق الي جزء احصائي بسيط ولكنه احد اهم الخطوات الاحصائيه في تحليل البيانات وهو المعالجه المبدأيه للبيانات (Data Pre – processing) , التعريف المبدأي لهذا المصطلح الاحصائي المهم هو انها تقنية لاستخراج البيانات تتضمن تحويل البيانات الخام إلى تنسيق يمكن فهمه غالبًا ما تكون بيانات الات السلسه غير كاملة وغير متسقة أو تفتقر إلى سلوكيات أو اتجاهات معينة ، ومن المحتمل أن تحتوي على العديد من الأخطاء و تعد المعالجة المسبقة للبيانات طريقة مجربة لحل مثل هذه المشكلات للحصول علي بيانات متناسقه ذات معني ومرتبه بشكل يمكن فهمه

| لماذا نستخدم المعالجة التمهيدية للبيانات .. ؟

في العالم الواقعي  تكون البيانات غير مكتملة بشكل عام حيث تفتقر إلى قيم السمات ، أو تفتقر إلى سمات معينة تهمك ، أو تحتوي على بيانات مجمعة فقط بدون معني  , تحتوي على أخطاء أو قيم متطرفة تحتوي على اختلافات في الرموز أو الأسماء , خلال هذا المقال سنلقي نظره علي الخطوات التي تتم للقيام بالمعالجه التمهيديه للبيانات حيث تتكون هذه العمليه من 6 خطوات سنناقش بعضها فيما يلي ..

| استيراد المكتبات

1- في لفة البرمجه بايثون يتم استرداد مكتبه تسمي (Pandas) مكتبة مفتوحة المصدر ومرخصة من قبل BSD توفر هياكل بيانات عالية الأداء وسهلة الاستخدام وأدوات تحليل البيانات للغة برمجة (Python) هو مشروع برعاية (NumFOCUS)

2- (Matplotlib) هي مكتبة تخطيط (Python 2D) تنتج أرقام جودة المنشورات في مجموعة متنوعة من التنسيقات والبيئات التفاعلية عبر الأنظمة الأساسية ويمكن استخدام (Matplotlib) في البرامج النصية (Python) ودفتر (Jupyter)

3- (Seaborn) هي مكتبة لتصور بيانات Python تستند إلى (matplotlib) يوفر واجهة عالية المستوى لرسم رسومات إحصائية جذابة وغنية بالمعلومات

| استيراد مجموعة البيانات

باستخدام Pandas ، نستورد مجموعة البيانات الخاصة بنا والملف الذي استخدمته هنا هو ملف .csv (ملاحظة : ليس بالضرورة أنك تتعامل مع ملف CSV في كل مرة ، وأحيانًا تتعامل مع Html أو ملف (Excel) ومع ذلك ، للوصول إلى البيانات واستخدامها بسرعة نستخدم ملفات CSV بسبب أوزانها الخفيفة

| التحقق من القيم المفقودة

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

نعم ، لقد رأيته يكتب هذا الرقم 3720 و هو قيمك المفقودة في كل عمود ، هناك 7 أساليب للتعامل مع القيم المفقودة أو 5 طرق للتعامل مع القيم المفقودة لكني سأناقش معك فقط هاتين الطريقتين الأكثر شهره في هذه النقطه

1- هذه الطريقة شائعة الاستخدام لمعالجة القيم الخالية null values (يتم استخدامها للدلالة على القيم المفقودة أو غير المعروفة حيث يتم استخدام الكلمة الأساسية NULL للإشارة إلى هذه القيم , لا تعد NULL قيمة محددة بقدر ما هي مؤشر) هنا ، إما أن نحذف صفًا معينًا إذا كان له قيمة فارغة (null value) لميزة معينة وكذلك لعمود معين إذا كان لديه أكثر من 75٪ من القيم المفقودة (missing values) و ينصح بهذه الطريقة فقط عند وجود عينات كافية في مجموعة البيانات ولكنك عليك ان تعلم ان إزالة البيانات ستؤدي إلى فقدان المعلومات التي لن تعطي النتائج المتوقعة أثناء التنبؤ بالإخراج

(إسقاط القيم المفقودة)

2- يمكن تطبيق هذه الاستراتيجية على قيم تحتوي على بيانات رقمية مثل عمود السنة (year column) حيث يمكننا حساب متوسط البيانات mean او وسيط median (هو الرقم الذي يفصل النصف الأعلى من العينة أو المجتمع عن النصف الأقل بحيث يتساوى على طرفه عدد القيم بعد ترتيبها تصاعدياً) او وضع الخاصيه mode (هي القيمة التي يُرجح أخذ عينات منها) واستبدالها بالقيم المفقودة هذا تقريب يمكنه إضافة تباين ومعني كبير إلى مجموعة البيانات. المهم هنا ان فقدان البيانات بالطريقه السابقه لا يحدث في هذه الطريقه , الاستخدام للتقديرات الثلاثة المذكورة (median, mean, mode ) هي طريقة إحصائية للتعامل مع القيم المفقودة وتسمي هذه الطريقه احيانا (leaking the data while training)

(استبدال القيمة المفقودة)

ما تحدثنا عنه هو استراتيجية جيدة للبيانات الرقمية ولكن ماذا يحدث عندما تفقد البيانات الفئوية القيم .. ؟

| القيم الفئوية

دعونا نرى كيفية التعامل مع البيانات الفئوية , وهي البيانات التي تندرج ضمن عدة فئات ولا تأخذ شكلاً عددياً (العمر , الجنس الخ ..)

نظرًا لأن نماذج التعلم الآلي (machine learning) تعتمد على معادلات رياضية , يمكنك أن تفهم بشكل بديهي أنها ستسبب بعض المشكلات إذا قمنا بالاحتفاظ بالبيانات الفئوية في المعادلات لأننا نريد فقط الأرقام في المعادلات وكمنا تحدثنا في الاعلي ان البيانات الفئويه لا تاخذ شكلا عدديا , لذلك ما سوف نقوم به الان هو تحويل البيانات الفئويه الي بيانات رقميه لسهولة التعامل معها بواسطة التعلم الالي ومعادلاته , ولتحويل المتغير إلى بيانات رقمية ، يمكننا استخدام فئة (LabelEncoder) من مكتبة المعالجة المسبقة

(LabelEncoder) هي الفئه التي استخدمناها لتحويل البيانات الفئويه الي عدديه , بعد ذلك ، قمت بتركيب كائن label_encoder هذا على العمود الأول من المصفوفة X الخاصة بنا ، وكل هذا يعيد بلد العمود الأول للمصفوفة X المشفرة ولكن هناك مشكلة في ذلك ، والمشكلة لا تزال كما هي ، ونماذج التعلم الآلي تعتمد على المعادلات ، ومن الجيد أننا استبدلنا النص بالأرقام حتى نتمكن من تضمين الأرقام في المعادلات ومع ذلك ، نظرًا لأن 1> 0 و 2> 1 (راجع مجموعة البيانات في اول صوره) ، ستعتقد المعادلات في النموذج أن إسبانيا لها قيمة أعلى من ألمانيا وفرنسا , وأن ألمانيا لها قيمة أعلى من فرنسا ولكن هذه ليست الحقيقه ويجب علينا منع حدوث هذا , وهذه نقطه غايه في الاهميه وتظهر مدي اهمية مرحلة (Data Pre – processing) ولكي لا يحدث هذا الخطأ دعنا نستقبل احد اصدقاء رحلتنا في تحليل هذه البيانات ونعرفها لك

  • Dummy Variables : هي المتغير التي يأخذ القيمة 0 أو 1 للإشارة إلى عدم وجود أو وجود بعض التأثيرات الفئوية التي من المتوقع أن تؤدي إلى تغيير النتيجة وحدوث خطأ و بدلاً من وجود عمود واحد هناك في الاعلي ، سيكون لدينا ثلاثة أعمدة حيث يكون عدد الاعمده = عدد الفئات

في حالتنا سيكون لدينا 3 أعمدة و لإنشاء متغير وهمي ، سنستخدم فئة (OneHotEncoder) من sklearn.preprocessing أو يمكنك استخدام pandas get dummies والآن سأعرض لك مع (Pandas) كيفية استخدام () get_dummies لإنشاء متغيرات (Dummy)

استخدام Pandas لإنشاء متغيرات Dummy

هكذا تبدو مجموعة البيانات الخاصه بنا في النهايه

| تقسيم مجموعة البيانات إلى مجموعة تدريب ومجموعة اختبار

في أي نموذج لتعلم الآلة ، سنقوم بتقسيم مجموعة البيانات إلى مجموعتين منفصلتين وهما مجموعة التدريب ومجموعة الاختبار , تحدثنا في هذه النقطه في المقال الثالث في تحليل بيانات ميكرواراي ولكن دعنا نتحدث بعيدا عن البيانات البيولوجيه , هنا احصاء فقط , ولكن السؤال المهم هنا لماذا نحتاج إلى تقسيم ؟

إنه نموذج الخوارزمية الخاص بك الذي سيتعلم من بياناتك لإجراء تنبؤات , بشكل عام ، نقوم بتقسيم مجموعة البيانات إلى نسبة 70:30 أي 70٪ من البيانات نقوم بتدريب الخوارزميه عليهاو 30٪ من البيانات نقوم باختبار الخوارزميه عليها , ومع ذلك ، يمكن أن يختلف هذا التقسيم وفقًا لشكل وحجم مجموعة البيانات

( تقسيم مجموعة البيانات إلى مجموعتين – مجموعة تدريب واختبار)

  • X_train هي جزء التدريب في للمصفوفة
  • X_test هو جزء الاختبار للمصفوفة
  • y_test هو جزء الاختبار للمتغير الذي حدث تدريب عليه من قبل X_train
  • y_train هي جزء التدريب للمتغير X_train الذي تدرب علي المصفوفه

اعلم تماما ان الامر قد يبدو صعب , ولك دعنا نلخص الامر بطريقه اخري ومثال اخر , مجموعة باحثين بقيادة (Brown et al. 2000) استخدموا شعاع الدعم الآلي (support (vector machines وهي تدريب احصائي لتحليل البيانات من أجل تصنيفها تصنيفا احصائيا وعمل تحليل الإنحدار(وهو كل طريقة إحصائية يتم فيها التنبؤ بمتوسط متغير عشوائي أو عدة متغيرات عشوائية اعتمادا على قيم وقياسات متغيرات عشوائية أخرى) اللازم لها  لتصنيف ست فئات وظيفية من جينات الخميرة

حيث يتم استخدام المجموعتين (1 , 2 ) لتدريب (support vector machines) ؛ ثم يتم اختبارالخوارزمية  في المجموعة  (3) على أنها “المجهولة” ,  بعد ذلك ، يتم استخدام المجموعتين ( 1 و 3) للتدريب ويتم اختبار المجموعة  (2) على أنها المجهولة

وأخيرًا ، يتم استخدام المجموعتين ( 2 , 3 ) للتدريب ، ويتم اختبار المجموعة (1) علي انها المجهوله  وقاسوا (false positive rate) ووجدوا أن (support vector machines) تتفوق على كل من المجموعات غير الخاضعة للرقابة ونهج التجميع الإشرافي البديل , وصف Dupuy) and (Simon) 2007) العديد من الاستراتيجيات لإجراء التحاليل الخاضعة للإشراف بشكل صحيح , اتمني ان يصبح الامر واضحا الان ..

نكتفي بهذا القدر في هذا المقال , اتمني ان يكون المقال مفيد للكثير ونلتقي مره اخري في المقالات القادمه

 

Share this post

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني.


Justin Pugh Authentic Jersey