تعتبر عمليات معالجة البيانات Data Preprocessing من الركائز الأساسية لتحقيق جودة البيانات Data Quality
وهناك ٤ مهام رئيسية للمعالجة
- Data Cleaning
- Data Integration
- Data Reduction
- Data Transformation
نتحدث في هذا الثريد عن تنظيف البيانات Data Cleaning
#علم_البيانات
وهناك ٤ مهام رئيسية للمعالجة
- Data Cleaning
- Data Integration
- Data Reduction
- Data Transformation
نتحدث في هذا الثريد عن تنظيف البيانات Data Cleaning
#علم_البيانات
ليس بالضرورة تطبيق كل هذه المهام في كل عملية تحليل ولا بهذا الترتيب إنما حسب الحاجة وطبيعة البيانات.
البيانات هي قلب التحليل لذلك التأكد من جودتها عملية ضرورية. ولجودة البيانات عدة مقايس هي كالتالي
البيانات هي قلب التحليل لذلك التأكد من جودتها عملية ضرورية. ولجودة البيانات عدة مقايس هي كالتالي
١- Accuracy
هل البيانات صحيحة ودقيقة؟
٢- Completeness
هل هي مكتملة ومتوفرة ولا تحتوي على بيانات مفقودة؟
٣- Consistency
هل البيانات متناسقة؟ مثلا العمر لا يسجل مرة رقم ومرة تاريخ ميلاد
هل البيانات صحيحة ودقيقة؟
٢- Completeness
هل هي مكتملة ومتوفرة ولا تحتوي على بيانات مفقودة؟
٣- Consistency
هل البيانات متناسقة؟ مثلا العمر لا يسجل مرة رقم ومرة تاريخ ميلاد
٤- Timeliness
هل تُحدث في أوقات مناسبة timely update
٥- Believability
مصداقية البيانات وصحة مصدرها
٦- Interpretability
سهلة التفسير والفهم وغير متداخلة؟
هل تُحدث في أوقات مناسبة timely update
٥- Believability
مصداقية البيانات وصحة مصدرها
٦- Interpretability
سهلة التفسير والفهم وغير متداخلة؟
نأتي الآن لتنظيف البيانات Data Cleaning
حتى نقوم بتنظيف البيانات وتجهيزها نقوم غالباً بمعالجة ٤ نقاط
أ- البيانات الغير مكتملة incomplete
ب- القيم الشاذة noise or outliers
ج- البيانات الغير متطابقة inconsistent
د- البيانات المتكررة duplicate
حتى نقوم بتنظيف البيانات وتجهيزها نقوم غالباً بمعالجة ٤ نقاط
أ- البيانات الغير مكتملة incomplete
ب- القيم الشاذة noise or outliers
ج- البيانات الغير متطابقة inconsistent
د- البيانات المتكررة duplicate
أ- البيانات الغير مكتملة
بعض السجلات تحتوي على قيم فارغة missing values
مثلاً العمر = ""
ويحدث هذا الخطأ لعدة أسباب مثلا أخطاء الإدخال والتحقق من المدخلات أو دمج عدة مصادر للبيانات. ويمكن أكتشافها عن طريق ال filter في الأكسل أو باستعلامات sql
بعض السجلات تحتوي على قيم فارغة missing values
مثلاً العمر = ""
ويحدث هذا الخطأ لعدة أسباب مثلا أخطاء الإدخال والتحقق من المدخلات أو دمج عدة مصادر للبيانات. ويمكن أكتشافها عن طريق ال filter في الأكسل أو باستعلامات sql
طرق المعالجة
١-تجاهل السجل كامل
يتم حذف السجل الذي يحتوي الى قيم فارغة بشكل كامل
٢-تعبئة القيم يدوياً
هذا الحل تقديري حسب حجم البيانات يمكن استخدام جُمل SQLلتعبئة البيانات في حال إمكانية استنتاج القيمة من حقول أو مصادر أخرى.أو إنشاء برنامج بسيط معتمد على شروطif-else أو rule-based
١-تجاهل السجل كامل
يتم حذف السجل الذي يحتوي الى قيم فارغة بشكل كامل
٢-تعبئة القيم يدوياً
هذا الحل تقديري حسب حجم البيانات يمكن استخدام جُمل SQLلتعبئة البيانات في حال إمكانية استنتاج القيمة من حقول أو مصادر أخرى.أو إنشاء برنامج بسيط معتمد على شروطif-else أو rule-based
٣- استخدام global constant
يتم استبدال القيم المفقودة بكلمات مثل unknown. هذا الحل مقبول إذا كان التحليل وصفي وعدد السجلات قليل.
٤- استخدام المتوسط أو الوسيط
في الحقول العددية يمكن تعبئة القيم المفقودة بالمتوسط أو الوسيط للسجل كامل
مثلا متوسط العمر يكون هو القيمة للحقول المفقودة
يتم استبدال القيم المفقودة بكلمات مثل unknown. هذا الحل مقبول إذا كان التحليل وصفي وعدد السجلات قليل.
٤- استخدام المتوسط أو الوسيط
في الحقول العددية يمكن تعبئة القيم المفقودة بالمتوسط أو الوسيط للسجل كامل
مثلا متوسط العمر يكون هو القيمة للحقول المفقودة
ب- القيم الشاذة outliers
القيم الشاذة قد تكون خطأ مثلاً الراتب بالسالب. أو تكون قيمة خارجة عن مدى البيانات مثلا المبيعات تتراوح من ١٠٠٠ إلى ٥٠٠٠ ونجد قيمة ١٠٠ الف.
يمكن إكتشاف القيم الشاذة بعدة طرق منها
- Scatter chart
- Z score
- interquartile range (IQR)
- Regression
القيم الشاذة قد تكون خطأ مثلاً الراتب بالسالب. أو تكون قيمة خارجة عن مدى البيانات مثلا المبيعات تتراوح من ١٠٠٠ إلى ٥٠٠٠ ونجد قيمة ١٠٠ الف.
يمكن إكتشاف القيم الشاذة بعدة طرق منها
- Scatter chart
- Z score
- interquartile range (IQR)
- Regression
١ استخدام الرسومات مثل scatter chart
حيث تكون القيم الشاذة بعيدة و واضحة في الرسم
وهذا مثال تطبيقي بالأكسل
community.mis.temple.edu
حيث تكون القيم الشاذة بعيدة و واضحة في الرسم
وهذا مثال تطبيقي بالأكسل
community.mis.temple.edu
٢ استخدام z score
يتم حساب ال z score لكل قيمة وهو عبارة عن القيمة ناقص المتوسط على الانحراف المعياري
ويتم وضع threshold غالباً يكون -٣ إلى ٣
ويتم مقارنة حاصل ال z score مع ال threshold والقيمة الخارجة عن ال threshold تعتبر شاذة
مثال:
medium.com
يتم حساب ال z score لكل قيمة وهو عبارة عن القيمة ناقص المتوسط على الانحراف المعياري
ويتم وضع threshold غالباً يكون -٣ إلى ٣
ويتم مقارنة حاصل ال z score مع ال threshold والقيمة الخارجة عن ال threshold تعتبر شاذة
مثال:
medium.com
٣استخدام IQR
يتم ترتيب البيانات الرقمية تصاعدياً ويتم حساب الربع الأولQ1 مثلا لو رتبنا البيانات من ١ الى ١٦ يكون q1=4
ويتم حساب q3 ثم تطبيق معادلة
IQR = q3 - q1
حساب النطاق
lower_bound= q1 -(1.5 * iqr)
upper_bound= q3 +(1.5 * iqr)
القيمة خارج النطاق تعتبر شاذة
مثال z score ☝️
يتم ترتيب البيانات الرقمية تصاعدياً ويتم حساب الربع الأولQ1 مثلا لو رتبنا البيانات من ١ الى ١٦ يكون q1=4
ويتم حساب q3 ثم تطبيق معادلة
IQR = q3 - q1
حساب النطاق
lower_bound= q1 -(1.5 * iqr)
upper_bound= q3 +(1.5 * iqr)
القيمة خارج النطاق تعتبر شاذة
مثال z score ☝️
٤ عن طريق الإنحدار Regression
الفكرة أنه يتم تطبيق الانحدار أولاً ثم يتم مراجع النتائج للتأكد من مدى تأثير القيم على معادلة الإنحدار. ويمكن ذلك من خلال تتبع Standardized Residuals
هذا مثال جيد يوضح الفكرة
youtu.be
الفكرة أنه يتم تطبيق الانحدار أولاً ثم يتم مراجع النتائج للتأكد من مدى تأثير القيم على معادلة الإنحدار. ويمكن ذلك من خلال تتبع Standardized Residuals
هذا مثال جيد يوضح الفكرة
youtu.be
في حال أكتشاف القيم الشاذة يمكن حذف السجل كامل لها أو التعويض عنها بالمتوسط
الطرق السابقة تحتوي على بعض التفاصيل لكن تم الاختصار مع مثال تطبيقي
الطرق السابقة تحتوي على بعض التفاصيل لكن تم الاختصار مع مثال تطبيقي
ج البيانات الغير متطابقة inconsistent
مثلا يكون في نفس السجل حقل العمر ٣٠ وحقل تاريخ الميلاد١ /١ /٢٠١٠
أو القسم سجل يكون IT و سجل information technology
ويمكن أكتشافها بعدة طرق مثلا الأكسل (filter) مثال
youtu.be
أو عن طريق الاستعلام SQL مثلا
Select distinct
مثلا يكون في نفس السجل حقل العمر ٣٠ وحقل تاريخ الميلاد١ /١ /٢٠١٠
أو القسم سجل يكون IT و سجل information technology
ويمكن أكتشافها بعدة طرق مثلا الأكسل (filter) مثال
youtu.be
أو عن طريق الاستعلام SQL مثلا
Select distinct
د- البيانات المتكررة duplicate
يمكن أكتشاف القيم أو السجلات المتكررة عن طريق الأكسل كما في المثال
youtu.be
أو بعض البرامج مثل rapidminer و weka تحتوي على أدوات وأكواد جاهزة للتعامل مع القيم المتكررة أو القيم المفقودة
يمكن أكتشاف القيم أو السجلات المتكررة عن طريق الأكسل كما في المثال
youtu.be
أو بعض البرامج مثل rapidminer و weka تحتوي على أدوات وأكواد جاهزة للتعامل مع القيم المتكررة أو القيم المفقودة
الخلاصة تنظيف البيانات لا يعني الحصول على جودة البيانات بشكل كامل إنما تساعد في ذلك. يوجد طرق أخرى واختبارات إحصائية تحقق جزء من جودة البيانات
هنا فقط تم التركيز على تنظيف البيانات بشكل مختصر
هنا فقط تم التركيز على تنظيف البيانات بشكل مختصر
جاري تحميل الاقتراحات...