جزء اساسي قبل استنباط اي معلومات من البيانات هو تنظيفها، وتنظيف البيانات تقنية واسعة، مقال اليوم عن اشهر عمليات التنظيف واهمها.
محتوي المقال
مبدأياً، لماذا تنظيف البيانات مهم؟
في حالة اذا كان لديك مجموعة من البيانات، إما مطلوب منك تحليلها، او مطلوب منك التنبؤ من خلالها، عليك اولاً تنظيفها. لكن لماذا؟ في علوم البيانات، هناك مبدأ متفق عليه بين الجميع، وهو إياك وان تثق في مدخلات المستخدم. فمثلاً، اذا كانت البيانات الخاصة بك تم تجميعها من خلال Google Forms، فهي في الأساس مدخلة من قبل شخصِ ما. ولأننا بشر، لسنا معصومون من الخطأ.
الاخطاء المدخلة من قبل المستخدم ليست السبب الوحيد الذي يجعل عملية التنظيف مهمة، قد تحدث بعض الاخطاء المنطقية اذا كانت البيانات مستخلصة من تطبيق ما، او بعضها مفقود ايضاً، كل هذه عوامل تدعوك وبشدة للنظر اكثر من مرة في مجموعة البيانات قبل ان تطبق اي عملية عليها.
تحدثنا من قبل عن مفهوم التنظيف من قبل لكن بشكل عام. يمكنك الاطلاع على المقال من هنا.
القيم الخارجة عن النطاق – outliers
في اي مجموعة من البيانات، عادة ما تكون البيانات لنفس الخاصية – feature- لها مدى معين. فمثلاً، اذا كانت البيانات خاصة بمرتبات موظفين في احد الشركات، فمن الغريب ان تجد موظفِ ما يتقاضى مليون دولار شهرياً. او شخص ما طوله 4 امتار! اثناء رحلتي مع مجال علوم البيانات، وجدت بيانات اغرب بكثير.
ضع في اعتبارك ايضاً انه من الطبيعي وجود بعض القيم الخارجة عن النطاق. فمثلاً، معدل الاطوال البشرية قد يتراوح بين 160 سم و 195 سم. ولكن جميعنا قد قابل او رأى اشخاص تبلغ من الطول متران من قبل، او اشخاص طولهم 150 سم ايضا، هذه قيم من الناحية الاحصائية خارجة عن النطاق، لكن من جانب الحياة العملية، فهي موجودة. القدرة على التمييز هي وظيفة عالم البيانات، او اي عنصر بشري يعالج البيانات.
من الجانب الإحصائي، هذه النوعية من البيانات، تؤثر بشكل كبير على عمليات هامة كالمنوال والوسيط والثقل المركزي وغيرهم. هي ايضاً خدعة يستخدمها اصحاب الشركات للتسويق لشركتهم، لتجده بكل زهو يعلن ان معدل المرتبات في شركته قد يصل الى مائة الف دولار شهرياً. من الناحية الإحصائية، كلامه سليم، لكن ضع في اعتبارك انه اثناء حساب هذا المعدل، تتواجد بيانات مثل مرتب المدير التنفيذي والعضو المنتدب وغيرهم، هذا ما يرفع معدل المرتبات بشكل ضخم.
هل ادركت بعد خطورة العمل على مجموعة من البيانات تحتوي على قيم خارجة عن النطاق؟
القيم المكررة وتابعتها
معروفة ايضاً باسم duplicated values، وهي عادة ما تحدث نتيجة الاخطاء البشرية في عملية إدخال البيانات. وهي البيانات التي تم إدخالها اكثر من مرة. قد تشكل هذه البيانات مشكلة اثناء عملية الاستنباط اثناء استخدام تقنيات الإحصاء الوصفي، وايضا تشكل مشكلة في استخدام تقنية مثل الارتباط – correlation – او استخدام عملية التجميع -Clustering.
القيم المفقودة واهميتها في تنظيف البيانات
معروفة ايضاً باسم Missing Values، تعتبر اكبر المشاكل التي تواجه عالمي البيانات، وهي القيم المفقودة من مجموعة البيانات. بعض الطرق من التعامل مع هذه النوعية من اخطاء البيانات
اولاً: التخلص من البييانات
احد أكثر الطرق فعالية هي التخلص من البيانات تماماً، عن طريق التخلص من صف البيانات كاملاً. هذه العملية قد تكون فعالة اذا كانت نسبة البيانات المفقودة ليست بالكثيرة. لا يستطيع احد الجزم بالنسبة المعينة التي يجب البيانات المفقودة الا تتعداها. لكن كما ذكرنا من قبل، وظيفة عالم البيانات – او محللها- هي تقدير الموقف.
يمكنك تحليل كمية البيانات المفقودة عن طريق دالة ()isnull، فمثلاً، اذا كان جدول البيانات الخاص بك يسمى df، فيمكنك ربط المتغير بالدالة، ثم استخدام دالة الجمع ()sum. لحساب المجموع، ومن ثم قسمة الناتج على مائة. كما موضح في سطر الكود الآتي:
percent_missing = df.isnull().sum() * 100 / len(df)
ومن ثم يمكنك استخدام دالة ()dropna للتخلص من تلك القيم.
ثانياً: ملئ البيانات المفقودة
على عكس الطريقة الأولى، هذه الطريقة مرنة أكثر، وليس ليها طرق ثابتة للاستخدام. قد يمكنك استخدام بعض التقنيات المختصة بملئ البيانات، او بعض الطرق الاحصائية، وو بعض الدوال من مكتبة Pandas. كل هذه الأساليب والاستخدام مبنية على نفس الأساس العلمي، المعدل – mean.
اذا كان لديك صف من البيانات، يحتوي على 1000 خلية، لنقل ان 200 منهم مفقودين، وفي هذه الحالة يتعين عليك استخدام طريقة ملئ البيانات المفقودة. مبدأياً، هذه الطرق ليست فعالة، ولاتغني عن البيانات الأصلية، ولكن هذا كل ما تقدر عليه في الوقت الحالي. سيتعين عليك استبعاد تلك البيانات المفقودة، ثم حساب المعدل للصف، وملئ هذه البيانات طبقاً للمعدل.
ما يحدث حقاً ليس بهذه السهولة في بعض الأحيان، بالعكس قد يكون الموضوع اعقد بكثير، لكن بشكل عام هذا يعتبر حجر الأساس لكل التقنيات المستخدمة في عملية ملئ البيانات المفقودة.