أحدث الأخبار​

تابع أخبار شريكك الرقمي وأحدث منتجاته وخدماته المقدمة لك.

البيانات الضخمة وعلم البيانات: بين الخرافة والواقع


ترجمة: بشرى محمد القاضي

تدقيق: شروق السنان

 التصنيف : علم البيانات (عام)

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

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

أولاً: الحجم هو كل ما يهم 

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

قبل عدة سنوات اقترحت مجموعة جارتنر نظرية “3Vs” الشهيرة لإدارة البيانات الضخمة والتي تأخذ في الاعتبار ثلاثة عوامل أساسية وهي الحجم والسرعة والتنوع (volume, velocity, and variety) حيث يشير الحجم إلى كمية البيانات، وتشير السرعة إلى سرعة معالجة البيانات بينما يشير التنوع إلى تنوع البيانات المستخرجة. في الآونة الأخيرة، تم اقتراح إضافة عامل رابع وهو صحة وموثوقية البيانات (veracity) وأعيد تسمية النظرية لتصبح “4Vs”. وبالرغم من شهرة هذه النظرية إلا أن الكثير لا يزال يتجه مباشرة لمناقشة عدد البيتابايت عند الحديث عن البيانات. 

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

ثانياً: يعد ابتكار بنى تحتية وخوارزميات جديدة التحدي الرئيسي في البيانات الضخمة

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

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

ثالثاً: معالجة البيانات الضخمة تتمركز حول تحليلها 

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

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

رابعاً: إعادة استخدام البيانات حل سهل ويوفر الكثير 

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

خامساً: علم البيانات هو نفسه البيانات الضخمة 

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

سادساً: البيانات الضخمة ضجة مؤقتة 

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

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

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

Paper Title:

Jagadish, H. V. (2015). Big data and science: Myths and reality. Big Data Research, 2(2), 49-52.‏


التباين في اتجاهات الجريمة بين الأحياء

ترجمة: محمد كامل

تدقيق: شروق السنان

التصنيف: علم البيانات والعلوم الجنائية

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

يهدف هذا البحث إلى استكشاف التباين المحلي في انخفاض مستوى الجريمة على مستوى الأحياء من خلال دراسة طولية لبيانات الجريمة في مدينة غلاسكو، اسكتلندا، خلال أربعة عشر عاما ً في الفترة من 1998/1999 إلى 2012/2013. حيث شهدت المدينة خلال هذه الفترة انخفاضًا في معدل الجرائم بنسبة 39.7 ٪. يحاول هذا البحث استكشاف الأنماط المميزة لاتجاهات الجريمة (ويقصد بأنماط الجريمة هنا طريقة تغير معدلات الجريمة في منطقة ما خلال فترة زمنية معينة) كما يقدم تحليلا ً لخصائص الأحياء التي قد يكون لها تأثير على مستوى الجريمة كالفقر والبطالة ونسبة المراهقين وغيرها مما يقدم نتائج مهمة سواء ً للأبحاث المستقبلية التي تسعى لدراسة العوامل المؤثر في انخفاض الجريمة أو تطوير الاستراتيجيات الأمنية التي تهدف إلى الحد من الجريمة.

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

 لاكتشاف الأحياء التي تتشابه في اتجاهات الجريمة تم استخدام (Latent Class Growth Analysis LCGA)

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

أظهرت نتائج التجميع ست عشرة مجموعة تمثل مسارات الجريمة الرئيسية خلال فترة الدراسة حيث تحتوي كل مجموعة على الأحياء المتشابهة من ناحية اتجاهات الجريمة (انظر الشكل أدناه). رُتبت المجموعات من ١ إلى ١٦ حسب التغير النسبي في مستوى الجريمة حيث تضم المجموعة ١ الأحياء الأعلى في معدلات الجريمة بينما تضم المجموعة ١٦ الأحياء الأكثر انخفاضاً في معدل الجريمة. ولدراسة المجموعات بشكل أدق، تم تصنيف المجموعات إلى أربع فئات رئيسية على النحو التالي: الفئة العالية، الفئة المنخفضة، الفئة المتدنية، الفئة المتنوعة. تحتوي الفئة العالية على الأحياء التي شهدت معدل جريمة أعلى بخمسة أضعاف من متوسط معدل الجريمة في منطقة الدراسة. كما تحتوي الفئة المنخفضة على الأحياء التي شهدت معدل جريمة أقل من متوسط معدل الجريمة في منطقة الدراسة بنسبة ٣٠٪ على الأقل. أما الفئة المتدنية فتضم الأحياء التي شهدت انخفاضا ً حادا ً في مستوى الجريمة بنسبة ٥٥٪ مقارنة بمعدل انخفاض الجريمة على مستوى المدينة (٣٩.٧٪). أخيرا ً، تحتوي الفئة المتنوعة على الأحياء التي شهدت تغير نسبي متنوع في مستوى الجريمة.

خلال فترة الدراسة، انخفض معدل الجريمة في جلاسكو بنسبة ٣٩.٧٪، في حين تراوحت نسبة الانخفاض عبر فئات الأحياء الأربعة من -٢٥.٩٪ إلى -٦١.٣٪ مما يشير إلى تباينٍ كبيرٍ بين هذه الفئات. يتبادر إلى الذهن التساؤل التالي: ما هي الأحياء التي كان لها الأثر الأكبر في خفض مستوى الجريمة؟ هذا ما سنعرفه من خلال النتائج التالية.

يمكن تمييز الاختلافات بين فئات الأحياء من خلال مساهمتها في انخفاض إجمالي مستوى الجريمة على مستوى المدينة. فبالنظر إلى الفئة العالية والتي تضم ما نسبته ١.٦٪ من إجمالي عدد الأحياء، فقد ساهمت بخفض معدل الجريمة على مستوى المدينة بنسبة ٧.١٪. أما الفئة المنخفضة فقد ضمت ١٦.٤٪ من الأحياء وساهمت في خفض معدل الجريمة بنسبة ٤.٢٪. أما الفئة المتدنية فقد ضمت ٢٥.٣٪ من الأحياء وساهمت بخفض معدل الجريمة بما يقارب ٥٠٪ من معدل انخفاض الجريمة. أما الفئة المتنوعة فقد ضمت ٥٦.٧٪ من الأحياء وساهمت في معدل الانخفاض بنسبة ٣٩٪. مما يعني أن الأحياء الواقعة في الفئة المتدنية كان لها المساهمة الأكبر في خفض نسبة الجريمة على مستوى المدينة.

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

في هذا البحث، تم اختيار مجموعة من المتغيرات بناءً على تأثيرها على مستوى الجريمة في الأبحاث السابقة وبناء ً على توفرها على مستوى الوحدة المكانية المراد دراستها (الوحدة المكانية في هذا البحث: الأحياء). تم الحصول على هذه البيانات عن طريق مركز التعداد الوطني لعامي 2001 و 2011، حيث يمثلان أقرب نقطتين لبداية ونهاية فترة الدراسة. المتغير الأول: الحرمان، ولقياس مستوى الحرمان تم استخدم عاملين حسب المؤشر الأسكتلندي لقياس مستوى الحرمان هما: متوسط دخل الأسرة، ونسبة السكان الذين لم تتوفر لهم فرصة عمل. العامل الثاني: الملكية، وتم حسابها من خلال نسبة السكان الذين يملكون مساكنهم، ونسبة المستأجرين من إجمالي عدد السكان. العامل الثالث، تركيبة الأسرة: وتم حسابها من خلال نسبة الأسر التي تتكون من شخص واحد، وكذلك الأسر من والد واحد وهي الأسر التي تتكون من أم أو أب مع وجود الأطفال. العامل الرابع: التركيبة العمرية: وتم حسابها من خلال نسبة الشباب في الحي (للأعمار ١٦-٢٤) ونسبة كبار السن (عمر ٥٥ وأعلى). أخيرا ً، لقياس تأثير عوامل جذب الجريمة، تم حساب نسبة عناوين المحلات التجارية من إجمالي العناوين في كل حي.

بعد تحليل خصائص الأحياء ومقارنتها بين الفئات المختلفة ظهرت عدة نتائج مثيرة للاهتمام. حيث أظهرت هذه النتائج أن الأحياء في الفئة المنخفضة – من حيث معدلات الجريمة –  سجلت أعلى نسبة من الملاك، وأعلى نسبة من الأسر التي لديهم أطفال وأقل نسبة من السكان الشباب الذين تتراوح أعمارهم بين (١٦ و ٢٤) مقارنة بالفئات الأخرى. وعلى العكس، أظهرت النتائج أن الفئة العالية – من حيث معدلات الجريمة – يغلب عليها السكان من فئة الشباب ومن العاطلين عن العمل، كما  تضم أقل نسبة من السكان الملاّك، أو الأسر التي لديها أطفال)، بالإضافة إلى أعلى نسبة من المحلات التجارية. ولدراسة علاقة التغير النسبي بين خصائص الأحياء واتجاهات الجريمة فقد تم تحليل مدى التغير في هذه الخصائص بين السنة الأولى والسنة الأخيرة من فترة الدراسة ومدى علاقة ذلك بالتغير في معدل الجريمة. لقد أظهر هذا التحليل عدة نتائج مهمة قد تساعد في تفسير التغير في اتجاهات الجريمة في كل فئة. فعلى سبيل المثال، لقد شهدت جميع الفئات زيادة ً في مستوى السكان المستأجرين ولكن أقل زيادة كانت في الأحياء الواقعة ضمن الفئة المنخفضة و الفئة المتدنية. أيضا ً، سجلت جميع الفئات زيادة ً في متوسط دخل الأسرة ولكن الزيادة الأعلى كانت من نصيب الأحياء التي تقع في الفئة المنخفضة. بعد رصد هذه النتائج يتبادر إلى الذهن السؤال التالي: كيف يمكن لهذه الدراسة أن تساهم في فهم التباين في انخفاض الجريمة بين الأحياء؟ وماهي التوصيات التي يمكن أن تساهم في دعم قرارات التدخل الأمني لتكون أكثر كفاءة وأكثر فعالية؟

أولا ً، تشكل الأحياء في الفئة العالية والفئة المتدنية ما نسبته ١٢.٤٪ من إجمالي الأحياء وساهمت في انخفاض معدل الجريمة بنسبة ٣٣.١٪ من إجمالي الانخفاض على مستوى المدينة. لذلك، فينبغي أن تولي الأجهزة الأمنية اهتماما ًبهذه الأحياء بسبب تأثيرها الأكبر على التحكم بمستوى الجريمة. كما تشكل هذه الأحياء أهمية كبرى لدى الجهات المسؤولة لبحث محركات اتجاهات الجريمة فيها. 

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

تتسق خصائص الأحياء التي تقع في الفئة المنخفضة والفئة العالية مع التفسيرات النظرية للجريمة والتي ترتكز على نظرية الفرص (Opportunity theory) ونظرية الفوضى الاجتماعية (Social Disorganization Theory). فقد أظهرت النتائج أن أحياء الفئة العالية سجلت أعلى مستوى من عناصر جذب الجريمة مثل المباني التجارية، مما يزيد من فرص التقاء الضحايا والجناة وبالتالي زيادة فرص ارتكاب أنواع مختلفة من الجرائم. أيضا ً، تعتبر هذه الأحياء هي الأكثر حرمانًا من الناحية الاقتصادية  مما يعطي دافع أكبر لارتكاب الجريمة. بالإضافة إلى ذلك، سجلت هذه الأحياء أعلى مستوى من المساكن المستأجرة مما يضعف التماسك الاجتماعي بين السكان (Social Cohesion) والسكان الذين تتراوح أعمارهم بين 16 و 24 عامًا، حيث أن جميع هذه العوامل مرتبطة بزيادة الفوضى الاجتماعية. في المقابل، أظهرت الأحياء في الفئة المنخفضة خصائص  معاكسة للفئة العالية مما يدعم تفسير انخفاض الجريمة في هذه الأحياء.

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

***

Paper Title:

Bannister, J., Bates, E., & Kearns, A. (2018). Local variance in the crime drop: A longitudinal study of neighbourhoods in greater Glasgow, Scotland. The British Journal of Criminology, 58(1), 177-199.‏

تحليل انتشار المعلومات المضللة حول فايروس كورونا


ترجمة: بتول الحماده

تدقيق: شروق السنان

نظرة عامة:

في منتصف فبراير أعلنت منظمة الصحة العالمية أن جائحة الفيروس التاجي الجديد كانت مصحوبة بتفشي المعلومات الخاطئة، وأيدها في ذلك العديد من الصحفيين والسياسيين والأكاديميين الذي أكّدوا أن التضليل حول العلوم والتكنولوجيا والصحة لا يُعد أمراً جديداً أو مقتصراً على COVID-19 ، خصوصاً مع تزامنها مع أزمة صحية غير مسبوقة، حيث أنّ المعلومات الخاطئة حول الوباء تشكل خطراً جسيماً على الصحة والإجراءات العامة.

وصفت كريستينا تاردجويلا المديرة المساعدة للشبكة الدولية لتقصي الحقائق (IFCN) فايروس COVID-19 على أنّه أكبر تحدي واجهه مدققو الحقائق على الإطلاق، حيث توسعت وسائل الإعلام بعمل تغطيات إعلامية مكثفة عن الوباء، في حيث شددت الشركات وبعض منصاب التواصل الاجتماعي على معايير المجتمع او مايعرف بـ community standards للحد من انتشار المحتوى المضلل، كما أنشأت بعض الحكومات – كالمملكة المتحدة وغيرها – وحدات حكومية مختلفة لمواجهة المحتوى الضار المحتمل جرّاء هذه الجائحة.

تستخدم منصات التحقق عينة من عمليات فحص الحقائق او مايعرف بـ fact-checks لتحديد بعض الأنواع الرئيسية والمصادر والمزاعم الخاصة بتضليل معلومات COVID-19 التي شوهدت حتى الآن. و بالاستناد على تحليلات (Hollowood and Mostrous 2020; EuVsDIS 2020; Scott 2020)، نقوم بدمج تحليل المحتوى المنهجي للادعاءات التي تم التحقق منها بشأن الفيروس والوباء، مع بيانات وسائل التواصل الاجتماعي التي تشير إلى حجم ونطاق التفاعل (engagements) مع هذه الادعاءات.

حصل الباحثون على ٢٢٥ عينة من المعلومات المضللة التي جمعتها First Draft News بالاستناد إلى مدونة حاسوبية (corpus) لعمليات فحص الحقائق باللغة الانجليزية، مع التركيز على المحتوى المصنف على انه كاذب أو مضلل، وتتضمن هذه المدونة مجموعة من المقالات حتى نهاية شهر مارس ومصدرها الشبكة الدولية لتقصي الحقائق (IFCN) وأدوات Google لتقصي الحقائق. قام الباحثون بتقييم منهجي لكل عينة وترميزها ومن ثم تصنيف نوع المعلومة المضللة ومصدرها والمزاعم التي تحتويها و الدافع من وراءها.

بالإضافة إلى ذلك، جمعت بيانات التفاعل لكل عينة بهدف قياس مستوى الوصول والتفاعل مع البيانات المضللة في وسائل التواصل الاجتماعي. وأظهرت نتائج الدراسة أن 88٪ من المعلومات المظللة مصدرها منصات التواصل الاجتماعي، بينما 9 ٪ من العينة فقط مصدرها التلفاز، و8 ٪ من  وكالات الأنباء، و7 ٪ من مواقع أخرى متفرقة. 

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

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

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

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

النتائج الرئيسية:

في هذه الورقة البحثية ، تم تحديد بعض الأنواع الرئيسية والمصادر والمطالبات الخاصة بالمعلومات الخاطئة أو المضللة حول COVID-19 في فترة جمع البيانات. قام الباحثون بتحليل عينة مكونة من 225 عينة من المعلومات التي تم تصنيفها على أنها خاطئة أو مضللة من قبل مدققي الحقائق ونشرت باللغة الإنجليزية بين يناير ونهاية مارس 2020، مستمدة من مجموعة من عمليات فحص الحقائق التي جمعتها First Draft News.

 

تحتوي هذه الصورة على سمة alt فارغة؛ اسم الملف هو Picture-2.png

 

• من حيث الحجم، و استجابة للنمو في حجم وتنوع المعلومات الخاطئة، فقد زاد عدد عمليات التحقق من المعلومات المتعلقة بـ COVID-19 بشكل كبير خلال الأشهر الثلاثة الماضية كما هو موضح في (الشكل 1). يبدو أن العديد من منافذ التحقق من الحقائق حول العالم تكرس الكثير من وقتها ومواردها للكشف عن الادعاءات بشأن الوباء. ومع ذلك، تواصل منظمات التحقق من الحقائق العثور على ادعاءات جديدة للتحقيق، وتكشف عن كمية كبيرة من المعلومات الخاطئة المتداولة.

 

تحتوي هذه الصورة على سمة alt فارغة؛ اسم الملف هو Picture-3.png

 

• فيما يتعلق بشكل التحريف، فقد لُوحظ أنه عوضاً عن تحريف المعلومات بشكل كامل، فإن المعلومات الصحيحة يتم تحريفها جزئياً لتغيير المحتوى أو تضمينها في سياق خاطئ لتحريف المعنى. توصل الباحثون إلى أنّ 59٪ أي معظم المعلومات الخاطئة في العينة تتضمن عناصر متنوعة لمعلومات مزيفه أو معاد صياغتها، في حين تمثّل 38٪ من العينة معلومات مُختلقة وغير صحيحة. وعلى الرغم من تزايد مستويات القلق في الآونة الأخيرة حول المعلومات المضللة بما يخص فايروس كورونا،  إلا أنه لا يوجد أمثلة على التزييف العميق في العينة كالمعلومات المُحرّفة بشكل كامل، أو المعلومات التي تم اختلاقها آلياً باستخدام أدوات الذكاء الاصطناعي، عوضاً عن ذلك، يتضمن المحتوى الذي تمت معالجته “تزييف رخيص” تم إنتاجه باستخدام أدوات أبسط بكثير كتلك المستخدمة في تنقيح وتحرير الصور والأفلام. تمثل المعلومات الخاطئة التي أعيدت صياغتها 87٪ من تفاعلات الوسائط الاجتماعية في العينة؛ بينما بلغت نسبة المحتوى الملفق 12٪ فقط.

 

تحتوي هذه الصورة على سمة alt فارغة؛ اسم الملف هو Picture-٤.png

 

• فيما يتعلق بمصادر المعلومات الخاطئة، فقد أظهرت النتائج أنّ مصدر انتشار المعلومات المضللة قد يكون من الأشخاص المؤثرين (من الأعلى إلى الأسفل)، أو العكس (من عامة الناس وصولاً للأشخاص الأكثر تأثيراً) على حدٍ سواء. وشكلت المعلومات الخاطئة (من الأعلى إلى الأسفل) كتلك التي تصدر من المؤثرين السياسيين والمشاهير وغيرهم من الشخصيات العامة البارزة 20٪ فقط من الادعاءات في العينة، إلا أنّه لُوحظ أن هذه النسبة البسيطة كانت سبباً في 69٪ من إجمالي المشاركات والتفاعل في وسائل التواصل الاجتماعي. وبالرغم من ذلك، لا يمكن الاستهانة إطلاقاً بتأثير المعلومات المضللة التي تبدأ من (الأسفل إلى الأعلى) حيث أن غالبية المعلومات الخاطئة على وسائل التواصل الاجتماعي جاءت من عامة الناس وبالرغم من أن معظم هذه المنشورات تولد مشاركة وتفاعل أقل بكثير من تلك الصادرة من مشاهير أو سياسيين، إلا أن بعض هذه المشاركات تسببت في تفاعل ملحوظ عبر وسائل التواصل الاجتماعي. ويصعب تحديد القوى المحركة لمثل هذه المشاركات المضللة من العامة حيث أن أسبابها تكون مبهمة في أغلب الأحيان.

 

تحتوي هذه الصورة على سمة alt فارغة؛ اسم الملف هو Picture-5.png

 

• فيما يتعلق بالمطالبات في العينة، فإن أكثر المطالبات شيوعًا كانت تتعلق بالإجراءات أو السياسات التي تتخذها السلطات العامة لمعالجة COVID-19 ، سواء كانت الحكومات الوطنية / الإقليمية / المحلية الفردية ، أو السلطات الصحية، أو الهيئات الدولية مثل منظمة الصحة العالمية والأمم المتحدة (انظر الشكل 4).

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

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

 

تحتوي هذه الصورة على سمة alt فارغة؛ اسم الملف هو Picture-6.png

 

• فيما يتعلق بالردود، فقد استجابت منصات وسائل التواصل الاجتماعي لغالبية المنشورات التي تم تصنيفها على أنها كاذبة او مضللة من قبل مدققي الحقائق بإزالتها أو إرفاق تحذيرات مختلفة حولها. ومع ذلك، فإن هناك اختلافاً كبيراً من شركة إلى أخرى فيما يتعلق بالتفاعل مع البلاغات، حيث نجد أن المشاركات التي تم تصنيفها على أنها خاطئة في عينة البحث من قبل مدققي الحقائق لا تزال منتشرة على تويتر بنسبة  59٪، وعلى YouTube بنسبة 27٪، وفي Facebook بنسبة 24٪ وجميعها من المحتوى المصنف بالكاذب أو المضلل في العينة بدون إضافة أي تحذير.

النتائج والتوصيات:

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

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

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

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

ربما تساعد الرغبة المتزايدة لبعض وسائل الإعلام في كشف أكاذيب السياسيين البارزين لمواجهة ذلك (على الرغم من أنها تخاطر بإقصاء أقوى مؤيديها). وبالمثل، فإن القرار الذي اتخذته Twitter وFacebook وYouTube في أواخر شهر مارس لإزالة المنشورات التي نشرها الرئيس البرازيلي يير بولسونارو لاحتوائها على معلومات مضللة عن الفيروس التاجي، كان لحظة مهمة في كيفية تعامل شركات ومنصات التواصل الاجتماعي مع المشكلة المتمثلة في كون جزء من المعلومات الخاطئة قد يأتي من القمة.

إن الخطر الرئيسي من تجاهل تنوع المعلومات الخاطئة والمضللة للفيروسات التاجية هو بافتراض أنه يمكن أن يكون هناك حل واحد لهذه المشاكل مجتمعة، والبديل لهذا الاعتقاد الخائي هو ما توصلت إليه نتائج هذا البحث، حيث أنه لن تكون هناك رصاصة فضية أو “علاج” وحيد للتضليل حول الفيروس التاجي الجديد. لذا، فإن معالجة انتشار المعلومات الخاطئة حول COVID-19 ستحتاج إلى جهد مستمر ومنسق من قبل مدققي الحقائق المستقلين ووسائل الإعلام الإخبارية المستقلة والشركات والمنصات والسلطات العامة لمساعدة الجمهور على فهم هذا الوباء.

***

Brennen, J. S., Simon, F., Howard, P. N., & Nielsen, R. K. (2020). Types, sources, and claims of Covid-19 misinformation. Reuters Institute7, 3-1.‏

خوارزمية K-means للتجميع بلغة R (درس تطبيقي)

ترجمة: محمد العنزي

تدقيق: فاضل حمود

تعتبر خوارزميات التجميع (Clustering) من أشهر الخوارزميات في مجال تعلم الآلة من النوع الغير موجه (Unsupervised Learning). تتمحور فكرة هذا النوع من الخوارزميات حول تجميع عناصر البيانات في مجموعات متعددة بناء ً على التشابه بين هذه العناصر. تُستخدم هذه الخوارزميات في العديد من المجالات كمشاريع تنقيب البيانات و اكتشاف الأنماط وتحليل الصور والمعلوماتية الطبية وغيرها. 

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

عند الحديث عن أنواع خوارزميات التجميع فيمكننا تقسيم عمليات التجميع إلى قسمين رئيسيين:

الأول: التجميع الصارم (Hard clustering) والذي يسمح للعنصر بالانتماء إلى مجموعة واحدة على الأكثر. فعلى سبيل المثال في بيانات أوبر التي سنعمل عليها يتم توزيع كل نقطة انطلاق إلى حي واحد فقط من الأحياء الخمسة. 

الثاني: التجميع المرن (Soft clustering)، ويعني إمكانية وجود نفس العنصر في أكثر من مجموعة ومثال ذلك في البيانات التي سنعمل عليها أن بعض المواقع قد تقع على الحد بين حيين فتكون منتمية ً إلى آكثر من مجموعة. 

خوارزمية ال K-Means:

في هذا الدرس سنطبق خوارزمية K-means على مجموعة ضخمة من بيانات الرحلات من شركة أوبر في مدينة نيويورك والتي تم جمعها خلال ستة أشهر. تحتوي هذه البيانات الخام على معلومات انطلاق الركاب كالتاريخ والوقت ومدة الرحلة ونقطة الانطلاق. تتكون مدينة نيويورك من خمسة أحياء وهي: بروكلين و كوينز و مانهاتن و برونكس و جزيرة ستاتن. خلال هذا الدرس، سنستكشف هذه البيانات بشكل أدق من خلال تطبيق خوارزمية ال K-Means وتجميع نقاط الانطلاق لمعرفة أكثر الأحياء طلبا ً للخدمة. بالإضافة إلى ذلك، يعطينا هذا الدرس تصورا ً حقيقيا ً للخطوات الرئيسية عند العمل على هذا النوع من مشاريع علم البيانات ابتداء ً من تجهيز البيانات ومرورا ً بتنفيذ الخوارزميات وانتهاءً باستعراض النتائج. 

فهم المشكلة:

تعتبر البيانات المرورية في المدن من أهم مصادر البيانات التي يفهم من خلالها طبيعة سير الحركة المرورية ومناطق الازدحام في المدينة كالمناطق السكنية والمدارس والطرق السريعة وأماكن العمل. وتكمن أهمية هذا النوع من البيانات في المعلومات التي يمكن الاستناد عليها عند تخطيط المدن وإدارة الحركات المرورية وفرض القواعد واللوائح المناسبة وفقا ً لذلك.  

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

فهم البيانات:

سنستخدم بيانات الرحلات من شركة أوبر لعام ٢٠١٤ والتي يمكن تحميلها من الرابط المشار إليه في بداية الدرس:

سنستخدم خلال هذا الدرس عدة حزم والتي نستطيع أن نثبتها بسهولة عن طريق استخدام الأمر ( )install.packages

نبدأ الخطوة الأولى من هذا الدرس بتحميل البيانات:

 ("apr14 <-read.csv("https://raw.githubusercontent.com/fivethirtyeight/uber-tlc-foil-response/master/uber-trip-data/uber-raw-data-apr14.csv
("may14 <- read.csv("https://raw.githubusercontent.com/fivethirtyeight/uber-tlc-foil-response/master/uber-trip-data/uber-raw-data-may14.csv
("jun14 <- read.csv("https://raw.githubusercontent.com/fivethirtyeight/uber-tlc-foil-response/master/uber-trip-data/uber-raw-data-jun14.csv
("jul14 <- read.csv("https://raw.githubusercontent.com/fivethirtyeight/uber-tlc-foil-response/master/uber-trip-data/uber-raw-data-jul14.csv
("aug14 <- read.csv("https://raw.githubusercontent.com/fivethirtyeight/uber-tlc-foil-response/master/uber-trip-data/uber-raw-data-aug14.csv
sep14 <- read.csv("https://raw.githubusercontent.com/fivethirtyeight/uber-tlc-foil-response/master/uber-trip-data/uber-raw-data-sep14.csv")

في الخطوة التالية سنقوم بجمع البيانات سويا ً في مكون واحد حتى تسهل معالجتها والتعامل معها عن طريق الدالة ( )bind_rows من مكتبة dplyr. 

(library(dplyr
(data14 <- bind_rows(apr14, may14, jun14, jul14, aug14, sep14

الآن لنأخذ نظرة على ملخص البيانات عن طريق الأمر التالي:

(summary(data14

  Date.Time              Lat             Lon             Base        
 Length:4534327     Min.   :39.66   Min.   :-74.93   B02512: 205673  
 Class :character   1st Qu.:40.72   1st Qu.:-74.00   B02598:1393113  
 Mode  :character   Median :40.74   Median :-73.98   B02617:1458853  
                                       Mean   :40.74   Mean   :-73.97   B02682:1212789        ...........  
                                     3rd Qu.:40.76   3rd Qu.:-73.97   B02764: 263899 ................... 
                            Max.   :42.12   Max.   :-72.07...                  

كما نلاحظ من خلال الملخص السابق، تحتوي البيانات على الأعمدة التالية:

Date.Time: ويحتوي على بيانات تاريخ ووقت بداية الرحلة 

Lat: ويحتوي على بيانات خطوط العرض لنقطة الانطلاق 

Lon: ويحتوي على بيانات خطوط الطول لنقطة الانطلاق 

Base: يحتوي على بيانات الرمز الأساسي للشركة TLC 

تحضير البيانات

سنعمل في هذه الخطوة على تحضير البيانات وإعادة ترتيبها بحيث يمكننا العمل عليها بسهولة. كما سنتحقق في الخطوة التالية من وجود البيانات المفقودة

(library(VIM

# دالة 'aggr' تصور لنا كمية البيانات المفقودة في كل عمود 
(aggr(data14

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

يحتوي العمود الأول Date.Time على بيانات التاريخ والوقت معا ً، ولاستخدام هذه القيم سنحتاج إلى فصل هاتين القيمتين. ولعمل ذلك، سنستخدم مكتبة lubridate . والتي تسهل علينا اختيار الترتيب المرغوب به لعرض التاريخ (سنة، شهر، يوم). 

(library(lubridate

(data14$Date.Time <- mdy_hms(data14$Date.Time
(( data14$Year <- factor(year(data14$Date.Time
((data14$Month <- factor(month(data14$Date.Time
((data14$Day <- factor(day(data14$Date.Time
((data14$Weekday <- factor(wday(data14$Date.Time
((data14$Hour <- factor(hour(data14$Date.Time
((data14$Minute <- factor(minute(data14$Date.Time
((data14$Second <- factor(second(data14$Date.Time

الآن دعونا نلقي نظرة على شكل البيانات النهائي من خلال استعراض الصفوف الأولى:

(head(data14, n=10

لقد قمنا بعمل جميع التعديلات اللازمة والتي تساعدنا على فهم البيانات وتجهيزها لتكون مناسبة لتطبيق خوارزمية K-Means  

في الخطوة التالية سنقوم بتقسيم البيانات إلى مجموعتين: مجموعة التدريب، ومجموعة الاختبار. وتعتبر هذه الخطوة من الخطوات الأساسية في مشاريع علم البيانات والعمل على خوارزميات تعلم الآلة (تدريب الخوارزمية على مجموعة التدريب ومن ثم اختبارها باستخدام مجموعة الاختبار). ولتتضح الصورة أكثر دعونا نأخذ هذا المثال، عند العمل على خوارزميات التجميع فإن هذا التقسيم مطلوب لتحديد العوامل المهمة مثل K  والذي يمثل عدد المجموعات في خوارزمية K-Means. ولكن في هذا الدرس فإننا نعرف مسبقا أن عدد المجموعات يساوي 5، والتي تمثل عدد الأحياء في مدينة نيويورك.

وقبل أن نبدأ بتطبيق خوارزمية ال K-Means دعونا نتعرف على كيفية عمل هذه الخوارزمية. تعتبر خوارزمية K-Means من أشهر خوارزميات التجميع غير الموجه في مجال تعلم الآلة والتي تستخدم لتقسيم البيانات إلى عدد معين من المجموعات يشار له بالحرف K. كما أن K هنا يمثل عدد المجموعات والذي ينبغي تحديدها من قِبل المستخدم قبل تنفيذ الخوارزمية. في هذا الدرس نعرف مسبقا ًعدد المجموعات التي نريدها وعددها 5 والتي تمثل أحياء مدينة نيويورك وهذا يجعل خوارزمية K-Means  خيارا ً مناسبا ً لبيانات هذا الدرس. 

ملاحظة حول خوارزميات التجميع:

في هذا الدرس نستخدم خوارزمية التجميع لتصنيف نقاط انطلاق رحلات أوبر إلى عدة مجموعات مختلفة (تمثل المجموعات الأحياء الرئيسية في مدينة نيويورك). ولكن ينبغي أن نشير إلى أن خوارزميات التجميع تعتبر أداة من أدوات استكشاف البيانات والتي يمكن من خلالها اختبار هذه البيانات والتعرف عليها وكيفية توزيعها ولكن لا ينصح بالاعتماد الكلي عليها كأداة موثوقة لتصنيف البيانات حيث أنها ليست الطريقة الوحيدة لاستكشاف البيانات. 

أما طريقة عمل خوارزمية ال K-Means فتقوم بداية على تحديد عدد المجموعات المرغوب بها ومن ثم يتم توزيع البيانات على هذه المجموعات من خلال تقليل التباين بين عناصر المجموعة الواحدة (ويعرف بالتباين الكلي داخل المجموعة). تُقسَّم البيانات إلى عدد k من المجموعات ويتم تصنيف كل عنصر في البيانات إلى المجموعة ذات النقطة المركزية الأقرب (المتوسط)، حيث تمثل النقطة المركزية الأساس الذي يتم عليه تقسيم البيانات وتصنيفها ولهذا أتت التسمية k-means clustering. وتتم عملية التصنيف باتباع الخطوات التالية:

  1. بعد اختيار عدد المجموعات المرغوب به يتم تحديد نقطة مركزية K لكل مجموعة (متوسط كل مجموعة).
  2. إسناد العناصر المراد تصنيفها إلى إحدى هذه المجموعات وذلك بقياس بعد العنصر من وسط كل مجموعة ومن ثم ضمه إلى المجموعة الأقرب.
  3. بعد إسناد جميع العناصر، يتم إعادة حساب النقطة الوسطى K (متوسط العناصر) لكل مجموعة ومن ثم إعادة الاسناد بناء ً على المتوسط الجديد.
  4. تكرار الخطوة 2 و 3 حتى تصل الخوارزمية لحالة الثبات وتعني استقرار العناصر في المجموعات من خلال إسنادها إلى المجموعة الأقرب. 

والآن بعد أن استعرضنا طريقة عمل خوارزمية ال K-Means نظريا ً، لنبدأ بتطبيقها عمليا ً:

لتنفيذ خوارزمية K-Means في R  نستخدم الدالة kmeans() . بداية ً، نقوم بتحديد قيمة k ب 5 (عدد الأحياء). خيار الseeds هنا يسمح بإنشاء نقطة بداية للأرقام التي يتم إنشاؤها عشوائيًا ، بحيث يساعد على الحصول على نفس النتيجة في كل مرة يتم فيها تشغيل الكود.

(set.seed(20
(clusters <- kmeans(data14[,2:3], 5

#  في الخطوة التالية نقوم بإضافة عمود Borough لحفظ رقم الجموعة لكل عنصر
(data14$Borough <- as.factor(clusters$cluster
#  نتعرف على تفاصيل نتائج التجميع من خلال الأمر التالي 
(str(clusters

الصور السابقة تمثل نتائج خوارزمية K-Means وأبرز نتائجها ما يلي:

Cluster : متجه من الأعداد الصحيحة (من 1: k) يشير إلى المجموعة التي تم تخصيص كل نقطة لها.

Centers: مصفوفة تحتوي على النقاط المركزية للمجموعات (Cluster centers).

Withinss: متجه يحتوي على sum of squares داخل المجموعة، وهناك مكون واحد لكل مجموعة.

Tot.withniss: مجموع squares sum داخل المجموعة ((sum(withinss).

Size: عدد العناصر في كل مجموعة.

في الخطوة التالية، سنحاول تمثيل هذه النتائج رسوميا ً:

الأحياء (المجموعات) التي تم تشكيلها مطابقة للأحياء الحقيقية. رقم المجموعة يتوافق مع المناطق التالية:

  1. برونكس
  2. مانهاتن
  3. بروكلين
  4. ستيتن ايلاند
  5. كوينز
(library(ggmap

(NYCMap <- get_map("New York", zoom = 10
ggmap(NYCMap) + geom_point(aes(x = Lon[], y = Lat[], colour = as.factor(Borough)),data = data14) +
  ("ggtitle("NYC Boroughs using KMean

كما نرى، فإن النتائج رائعة جدًا. يتضح لدينا هنا نتائج خوارزمية k-mean والتي من خلالها استطعنا تصنيف نقاط انطلاق رحلات أوبر في مدينة نيويورك لمدة ستة أشهر. والآن، مالذي يمكننا معرفته من خلال هذه النتائج؟ على سبيل المثال يمكننا استخدام هذه النتائج لعرض معدل نمو طلبات أوبر داخل الأحياء لكل شهر لمعرفة أكثر الأحياء طلبا ً لخدمة أوبر من خلال الخطوات التالية:

(library(DT

(data14$Month <- as.double(data14$Month
month_borough_14 <- count_(data14, vars = c('Month', 'Borough'), sort = TRUE) %>% 
  (arrange(Month, Borough
(datatable(month_borough_14

وللاطلاع على نتائج تحليل نمو الطلبات لكل حي بشكل أسهل، دعونا نمثلها على شكل رسم بياني من خلال الأمر التالي:

(library(dplyr
monthly_growth <- month_borough_14 %>%
  mutate(Date = paste("04", Month)) %>%
  ggplot(aes(Month, n, colour = Borough)) + geom_line() +
  (ggtitle("Uber Monthly Growth - 2014"
monthly_growth

من خلال النتائج السابقة، يظهر لدينا بأن حي بروكلين و ستيتن آيلاند هما الأكثر طلبا ً لخدمة أوبر وكذلك الأعلى نموا ً خلال هذه الفترة.

في الختام وكما رأينا في الخطوات السابقة، فإن خوارزمية K-means من الخوارزميات التي تُنَفذ بسهولة وتعطي نتائج رائعة. ولكن، فإن هذه الخوارزمية لا تخلو من بعض السلبيات كما هو الحال في جميع الخوارزميات الأخرى. أول هذه السلبيات هو ضرورة تحديد عدد المجموعات كخطوة أساسية عند تطبيق هذه الخوارزمية. و كما لاحظتم فلم نواجه تحديا ً كبيرا ً عند تحديد عدد المجموعات في هذا الدرس بسبب معرفتنا المسبقة بعدد الأحياء في نيويورك. ولكن هذه ليست الحالية الطبيعية في جميع البيانات لذلك يُشَكل تحديد عدد المجموعات الأمثل تحديا ً إضافيا ً عند العمل على خوارزمية K-means و هناك عدة طرق يمكن من خلالها تحديد العدد الأمثل لعدد المجموعات لعلنا نتطرق لها في الدروس القادمة. من السلبيات أيضا ً أنها تتأثر بالقيم المتطرفة (outliers) مما قد يحدث تغيرا ً بالنتائج عند إعادة ترتيب البيانات.

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

Reference

Datacamp/tutorials/by: Sejal Jaiswal

استخدام البيانات الضخمة لتحسين أداء الأسواق المركزية (تجربة ولمارت)

ترجمة: فاضل حمود

مراجعة: شروق السنان

مدخل

تعتبر سلسلة متاجر وول مارت بأنها عملاق قطاع التجزئة في العالم وأكبر شركة في العالم من حيث الإيرادات، بأكثر من مليوني موظف و 20 ألف متجر في 28 دولة حول العالم.

بعمليات بهذا الحجم فإنه ليس من المستغرب أن أدركوا منذ فترة طويلة القيمة الموجودة في تحليلات البيانات. في عام 2004م، عندما ضرب إعصار ساندي الولايات المتحدة، وجدوا أن رؤى غير متوقعة يمكن أن تظهر عند دراسة البيانات ككل، وليس كمجموعات فردية منفصلة. في محاولة للتنبؤ بالطلب على إمدادات الطوارئ في مواجهة اقتراب إعصار ساندي، قدمت رئيسة قسم المعلومات Linda Dillman  بعض الإحصائيات المفاجئة. بالإضافة إلى المصابيح اليدوية ومعدات الطوارئ، أدى سوء الأحوال الجوية المتوقع إلى زيادة في مبيعات كعك الفراولة في عدة مواقع أخرى. تم إرسال إمدادات إضافية منها [كعك الفراولة] إلى المتاجر في مسار إعصار فرانسيس في عام 2012م، وحققت مبيعات جيدة للغاية، مما دفع شركة وول مارت إلى تطوير قسم جديد لتحليل البيانات الضخمة لتحافظ على هذا التقدم وتبقى دائماً بالصدارة. في عام 2015م، أعلنت الشركة أنها بصدد إنشاء أكبر سحابة بيانات خاصة في العالم، لتمكين معالجة 2.5 بيتابايت من المعلومات كل ساعة.

ما هي التحديات التي تساعد البيانات الضخمة في حلها في هذا القطاع؟

تبيع الأسواق المركزية (Supermarkets) ملايين المنتجات لملايين الأشخاص يومياً. إنها صناعة تنافسية جداً ويعتمد عليها نسبة كبيرة من الناس الذين يعيشون في العالم المتقدم لتزويدهم بالأساسيات اليومية. لا تتنافس الأسواق المركزية على السعر فحسب، بل تتنافس أيضًا في خدمة العملاء والراحة والحيوية. إن وجود المنتجات المناسبة في المكان المناسب وفي الوقت المناسب، حتى يتمكن الأشخاص المناسبين من شرائها، تمثل تحديات لوجستية ضخمة. لذا يجب أن يتم تسعير المنتجات بكفاءة حتى مستوى السنتات (الهللات) لتظل قادرة على المنافسة. فالعملاء حين لا يجدون كل ما يحتاجون إليه تحت سقف واحد، سيبحثون عن مكان آخر للتسوق بما يتناسب مع جدول أعمالهم المزدحم.

كيف استخدمت البيانات الضخمة؟

في عام 2011 و مع تزايد الوعي بكيفية استخدام البيانات لفهم احتياجات العملاء وتزويدهم بالمنتجات التي يرغبون بشرائها، أنشأت وول مارت Walmart Labs وفريق Fast Big Data الخاص بهم لبحث ونشر مبادرات جديدة قائمة على البيانات في نطاق أعمالهم التجارية.

تمت اعتماد هذه الاستراتيجية باسم مقهى البيانات (Data Café)  وهو مركز تحليلات حديث في المقر الرئيسي للشركة  في بنتونفيل، أركنساس. يتمكن فريق التحليلات في مقهى البيانات من مراقبة تدفق 200 مسار من البيانات الداخلية والخارجية شكل لحظي، بما في ذلك قاعدة بيانات بحجم 40 بيتابايت لجميع بيانات المبيعات خلال الأسابيع السابقة.

يُنظر إلى التحليل المتزامن واللحظي للبيانات على أنه مفتاح رئيسي لدفع أداء الأعمال – وكما ذكر كبير المحللين الإحصائيين في وول مارت نافين بيداميل: “إن لم تستطع التنبؤ بمبيعاتك إلاّ بعد مُضي أسبوع أو شهر من تحليل البيانات، فقد فقدت المبيعات خلال ذلك الوقت. يتمثل هدفنا دائمًا في إيصال المعلومات إلى شركائنا في العمل بأسرع ما يمكن، حتى يتمكنوا من اتخاذ الإجراءات وتقليص الوقت المستغرق لإتمامها. إنها تحليلات استباقية وتفاعلية”.

تتم دعوة فرق من كافة أقسام الشركة لزيارة مقهى البيانات مع مشاكلهم المتعلقة بالبيانات، والعمل مع المحللين لابتكار أفضل الحلول. هناك أيضًا نظام يراقب مؤشرات الأداء عبر الشركة ويطلق تنبيهات آلية عندما تصل إلى مستوى معين – ويدعو الفرق المسؤولة عنها للتحدث إلى فريق البيانات حول الحلول الممكنة.

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

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

ماهي أبرز النتائج؟

حسب فريق وول مارت فإن نظام مقهى البيانات أدى إلى تقليل الوقت المستغرق منذ اكتشاف المشكلة وحتى الوصول إلى الحل من متوسط أسبوعين – ثلاثة أسابيع إلى حوالي 20 دقيقة!

ما هي البيانات التي تم استخدامها؟

يستخدم نظام مقهى البيانات قاعدة بيانات يتم تحديثها باستمرار تتكون من 200 مليار صف من بيانات المعاملات – وهذا لا يمثل سوى بيانات الأسابيع القليلة الماضية! 

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

ما هي أبرز التقنيات المستخدمة؟

تتكون قاعدة بيانات المعاملات في الوقت اللحظي في وول مارت من 40 بيتابايت من البيانات. على الرغم من ضخامة هذا الحجم من بيانات المعاملات، إلا أنه يشمل فقط بيانات الأسابيع الأخيرة، حيث أن هذه الفترة هي الفترة القَيِّمة بالنسبة لتحليل البيانات في الوقت اللحظي. يتم تخزين البيانات من متاجر السلسلة والأقسام عبر الإنترنت ووحدات الشركة بشكل مركزي على Hadoop (نظام تخزين البيانات الموزعة وإدارة البيانات).

وصف المدير التقني جيرمي كنق هذا النهج بأنه “ديمقراطية البيانات” حيث أن الهدف هو إتاحة البيانات لأي شخص في العمل يمكنه الاستفادة منه. في مرحلة ما بعد اعتماد إطار Hadoop الموزع في عام 2011، أصبح المحللون قلقين من أن الحجم كان ينمو بمعدل قد يعيق قدرتهم على تحليله. ونتيجةً لذلك، تم تبني سياسة “الإدارة الذكية” لجمع البيانات والتي تضمنت إنشاء العديد من الأنظمة المصممة لتحسين البيانات وتصنيفها قبل تخزينها. تشمل التقنيات الأخرى المستخدمة Spark و Cassandra، وتستخدم عدة اللغات بما فيها R و SAS لتطوير التطبيقات التحليلية.

ما هي أبرز التحديات التي واجهت ولمارت؟

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

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

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

ذكر ماندار ذاكور، كبير مسؤولي التوظيف في وول مارت في عملياتها لأنظمة المعلومات: “خلقت مسابقة Kaggle ضجة حول وول مارت ومنظومة التحليلات الخاصة بنا. كان الناس يعرفون دائمًا أن وول مارت تُولِّد وتمتلك الكثير من البيانات، ولكن أفضل جزء هو أن هذه المسابقة أتاحت للناس رؤية كيفية استخدامنا للبيانات بشكل استراتيجي”.

الخاتمة:

الأسواق المركزية تعتبر أعمال كبيرة وسريعة ومتغيرة باستمرار وهي بُنية معقدة تتكون من العديد من الأنظمة الفرعية وهذا يجعلها بيئة مثالية لتطبيق تحليلات البيانات الضخمة.

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

قد يُنظر إلى متاجر التجزئة على أنها “متخلفة تقنياً” – أو حتى من العصر الحجري – مقارنةً بمنافسيهم عبر الإنترنت، لكن أظهرت وول مارت أنها تتأثر بالبيانات الضخمة المتطورة تماماً كما هو الحال بالنسبة لشركة أمازون و علي بابا.

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

 

المراجع:

Kaggle (2015) Predict how sales of weather-sensitive products are affected by snow and rain, https://www.kaggle.com/c/walmart- recruiting-sales-in-stormy-weather, accessed 5 January 2016. 

Walmart (2015) When data met retail: A #lovedata story, http:// careersblog.walmart.com/when-data-met-retail-a-lovedata-story/, accessed 5 January 2016. 

تحضير البيانات باستخدام مكتبة Pandas بلغة بايثون

ترجمة: فاضل حمود.

تدقيق: أثير الحارثي.

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

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

تتضمن مرحلة تحضير البيانات عدة خطوات منها: تحميل البيانات، تنظيف البيانات (إزالة البيانات غير الضرورية أو البيانات الخاطئة)، تحويل تنسيقات البيانات، إعادة ترتيب البيانات وغير ذلك. 

وفي هذا الدرس، سنعمل على بعض هذه الخطوات باستخدام مكتبة Pandas الخاصة بلغة البرمجة بايثون (Python) لتحضير البيانات.

تأكد من إلمامك بمفاهيم مثل DataFrame و Series، وما إلى ذلك، حيث ستتكرر هذه المصطلحات كثيرا ً في هذا الدرس. 

في هذا الدرس:

  • سنبدأ بمقدمة قصيرة عن Pandas (المكتبة المستخدمة).
  • ثم سنقوم بتحميل البيانات.
  • بعد ذلك، سنستكشف البيانات المفقودة وكيفية التعامل معها. سنتطرق إلى التعامل مع البيانات المفقودة وطرق استبدالها.
  • سنتعلم بعد ذلك بعض حيل تحويل البيانات منها: استبدال القيم، ودمج سلاسل البيانات، وإضافة المعرفة إلى مجموعة البيانات باستخدام دالة map، وتقسيم البيانات المستمرة (Continuous data)، وأخيراً حول المتغيرات الوهمية (Dummy Variables) والترميز الأحادي (One-hot encoding)

لنبدأ بمقدمة قصيرة عن Pandas

مكتبة Pandas

Pandas هي مكتبة برمجية مكتوبة للغة بايثون وتعد من أشهر المكتبات في مجتمع علوم البيانات حيث توفر هياكل بيانات قوية ومعبرة ومرنة تجعل معالجة البيانات وتحليلها أمرا ً سهلاً. علاوة على ذلك، إذا كان لديك حالة استخدام محددة وجديدة، فيمكنك مشاركتها على موقع pandas GitHub – في الواقع، هذه هي الطريقة التي ظهرت منها معظم الدوال في Pandas، من خلال حالات استخدام واقعية.

ولاستخدام مكتبة Pandas، علينا استيرادها من خلال الأمر التالي:

import pandas as pd 

 

تحميل البيانات

الخطوة الأولى لتحضير البيانات هي استيرادها من خلال الأمر التالي. إذا كان لديك ملف بصيغة .csv، فيمكنك تحميله بسهولة باستخدام الأمر التالي:

('data = pd.read_csv('path_to_file.csv

في هذا الدرس، سننشئ بيانات صغيرة سهلة الفهم لغرض التطبيق.

البيانات المفقودة (missing data)

معالجة البيانات المفقودة

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

بالنسبة للبيانات الرقمية، يستخدم Pandas قيمة NaN (ليست برقم) لتمثيل البيانات المفقودة. إنها قيمة فريدة تم تحديدها ضمن مكتبة Numpy لذلك سنحتاج إلى استيراد هذه المكتبة. NaN هي علامة تشير للقيمة الافتراضية المفقودة لأسباب تتعلق بالسرعة والسهولة الحاسوبية. هي قيمة تنبيهية، بمعنى أنها بيانات وهمية يمكن اكتشافها بسهولة والعمل معها باستخدام دوال Pandas.

لنقم باستكشاف بعض البيانات:

import numpy as np 
([data = pd.Series([0, 1, 2, 3, 4, 5, np.nan, 6, 7, 8
# لنرى إذا ما كان هناك قيم مفقودة وتحديد مكانها
()data.isnull
0    False
1    False
2    False
3    False
4    False
5    False
6     True
7    False
8    False
9    False
dtype: bool

 

كما يتضح لدينا أعلاه، استخدمنا الدالة ()isnull والتي تُرجع قيمة منطقية صحيحة أو خاطئة (True or False). صحيحة (True): عندما تكون البيانات الموجودة في هذا المكان مفقودة أو (NaN). ولاكتشاف العكس نستخدم دالة ()notnull.

()data.notnull
0     True  1     True  2     True  3     True  4     True  5     True  6    False  7     True  8     True  9     True  dtype: bool

بالإضافة إلى ذلك، يمكننا استخدام دالة ()dropna لتصفية البيانات المفقودة وإزالة القيمة الفارغة (المفقودة) ومشاهدة القيم غير المفقودة فقط. ومع ذلك، لا يتم حذف قيمة NaN بالفعل ولا يزال من الممكن العثور عليها في البيانات الأصلية عن طريق الأمر التالي.

()data.dropna
0    0.0  1    1.0  2    2.0  3    3.0  4    4.0  5    5.0  7    6.0  8    7.0  9    8.0  dtype: float64

 

وهناك خياران “لحذف” قيمة مفقودة (NaN): إما تخزين البيانات الجديدة (بدون NaN) باسم جديد بحيث لا يتم التعديل على البيانات الأصلية أو تغيير القيمة الافتراضية لخيار inplace. القيمة الافتراضية ل inplace هي false.

()not_null_data = data.dropna
not_null_data
0    0.0  1    1.0  2    2.0  3    3.0  4    4.0  5    5.0  7    6.0  8    7.0  9    8.0  dtype: float64

ويمكن أن تكون البيانات أكثر تعقيدا ً وتكون ذات بعدين، مما يعني أنها تحتوي على صفوف وأعمدة. Pandas تدعم معالجة هذا النوع من البيانات أيضا

,[data_dim = pd.DataFrame([[1,2,3,np.nan],[4,5,np.nan,np.nan
([[7,np.nan,np.nan,np.nan],[np.nan,np.nan,np.nan,np.nan] 
data_dim

لنفترض الآن أننا نريد فقط حذف الصفوف أو الأعمدة التي تكون كلها فارغة أو فقط تلك التي تحتوي على قدر معين من القيم المفقودة. تحقق من السيناريوهات المختلفة، تذكر أن الحذف لا يحدث في البيانات الأصلية، وبالتالي لا يتم العبث بمجموعة البيانات الحقيقية. انتبه إلى الخيارات التي يتم تحديدها داخل دالة ()dropna لتحديد كيفية حذف البيانات المفقودة.

()data_dim.dropna

 

نلاحظ من النتيجة بأنه تم حذف جميع الصفوف ولاأعمدة لأنها تحتوي على قيمة مفقودة واحدة على الأقل.

('data_dim.dropna(how = 'all

 

# القيمة الافتراضية هي 0 – والتي تشير إلى الصفوف
('data_dim.dropna(axis = 1, how = 'all
(data_dim.dropna(axis = 1, thresh = 2

 

data_dim.dropna(thresh = 2) 

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

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

لاستبدال أو “ملء” البيانات الفارغة، يمكننا استخدام دالة ()fillna. على سبيل المثال، دعونا نحاول استخدام نفس البيانات السابقة ونحاول ملء قيم NaN بـ 0.

data_dim

 

(data_dim_fill = data_dim.fillna(0
data_dim_fill

 

ومثلما هو الحال مع ()Dropna، يمكنك أيضاً القيام بالعديد من الأشياء الأخرى اعتمادا ً على نوع الخيارات التي تحددها داخل الدالة. تذكر أيضًا بأن خيار inplace = True سيؤدي إلى إجراء التغيير على البيانات الأصلية.

data_dim_fill = data_dim.fillna({0: 0, 1: 8, 2: 9, 3: 10}) data_dim_fill

يمكنك تحديد قيمة لخيار ‘method’ في ()fillna التي ستقوم تلقائيا ً بتعبئة القيم المفقودة بالقيمة السابقة (ffill أو pad) أو التالية (bfill أو backfill).

('data_dim_fill = data_dim.fillna(method='ffill 
data_dim_fill

يمكنك أيضًا تحديد عدد عمليات التعبئة. على سبيل المثال، املأ مكانين فقط في الأعمدة. إذا قمت بتحديد خيار axis = 1، فسيتم ملء قيمة بحسب الصفوف بدل الأعمدة.

here data_dim_fill = data_dim.fillna(method='ffill', limit = 2) data_dim_fill
data_dim_fill = data_dim.fillna(axis = 1, method='ffill') data_dim_fill

بحسب معرفتك بالبيانات، يمكنك استخدام دالة ()fillna بعدة طرق أخرى غير ملئها بأرقام محددة. يمكنك تعبئتها باستخدام المتوسط باستخدام ()mean أو الوسيط باستخدام ()median.

data_dim
(()data_dim_fill = data_dim.fillna(data_dim.mean
data_dim_fill

 

تحويل البيانات واستبدالها

حتى الآن، تعاملنا مع البيانات المفقودة (NaN) فقط، ولكن في بعض الحالات نرغب باستبدال قيمة معينة (غير مفقودة) بقيمة مختلفة. وفي حالات أخرى يتم استبدال القيمة المفقودة برقم عشوائي محدد، وبالتالي يجب معاملتها على أنها مفقودة NaN بدلاً من التعامل معها كرقم. في هذه الحالة يمكننا استخدام دالة ()replace.

([data = pd.Series([1,2,-99,4,5,-99,7,8,-99 
data
0     1  1     2  2   -99  3     4  4     5  5   -99  6     7  7     8  8   -99  dtype: int64
(data.replace(-99, np.nan
0    0.0  1    1.0  2    2.0  3    3.0  4    4.0  5    5.0  7    6.0  8    7.0  9    8.0  dtype: float64

كما نشاهد، لن نرى قيمة -99 بعد الآن بسبب استبدالها بـ NaN. وبالمثل، يمكنك تحديد عدة قيم واستبدالها بقيم أخرى. وللقيام بذلك، سننشئ سلسلة بيانات أخرى ثم ندمج سلسلة البيانات الأصلية بالسلسلة الجديدة ثم نطبق أمر استبدال القيم المتعددة.

دمج سلاسل البيانات في Pandas

لدمج عدة سلاسل بيانات يمكننا استخدام الدالة ()concat في Pandas. ولمتابعة التسلسل الرقمي (Indexing) بعد الدمج، يمكنك تحديد خيار ignore_index = True.

([new_data = pd.Series([-100, 11, 12, 13 
combined_series = pd.concat([data, new_data], ignore_index = True (
combined_series
0       1  1       2  2     -99  3       4  4       5  5     -99  6       7  7       8  8     -99  9    -100  10     11  11     12  12     13  dtype: int64
data_replaced = combined_series.replace([-99, -100], np.nan) data_replaced
0      1.0  1      2.0  2      NaN  3      4.0  4      5.0  5      NaN  6      7.0  7      8.0  8      NaN  9      NaN  10    11.0  11    12.0  12    13.0  dtype: float64
data_replaced = combined_series.replace({-99: np.nan, -100: 0}) Same as: new_data.replace([-99, -100], [np.nan,0 #
data_replaced
0      1.0  1      2.0  2      NaN  3      4.0  4      5.0  5      NaN  6      7.0  7      8.0  8      NaN  9      0.0  10    11.0  11    12.0  12    13.0  dtype: float64

 

إضافة المعرفة – دالة المطابقة (Map)

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

لنفترض أن لدينا بيانات من الأرقام يقابلها الرقم كتابة ً باللغة الإنجليزية.

data_number = pd.DataFrame({'english': ['zero','one','two','three','four','five'], 'digits': [0,1,2,3,4,5
({[[
data_number

يمكنك استخدام دالة ()map لإضافة عمود يحتوي على قيمة معينة في حال تحقق الشرط المطلوب في هذا المثال الشرط أن يكون الرقم باللغة الإنجليزية من مضاعفات الرقم 2. ولكن ما هي القيمة التي سيتم إضافتها إذا لم يتحقق الشرط (أي الرقم ليس من مضاعفات 2)؟ لنكتشف ذلك.

{'english_to_multiple = {'two': 'yes',  'four': 'yes
data_number['multiple'] = data_number['english'].map(english_to_multiple)e
data_number

 

يتضح لدينا من خلال النتائج أنه عندما لا يتحقق الشرط نجد القيمة NaN، وقد ذكرنا مسبقا كيفية التعامل مع القيم المفقودة. كان هذا مثالا بسيطا لكيفية استخدام دالة ()map ولكن هناك عدد لا محدود من الأفكار لتطبيق هذه الدالة والاستفادة من امكانياتها. 

التصنيف أو التقدير (Discretization) – دالة ()cut

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

import random 
(data = random.sample(range(1, 101), 30
data
[45,   39,   25,   83,   27,   6,   73,   43,   36,   93,   97,   17,   15,   99,   37,   5,   31,   22,   65,   30,   3,   26,   91,   12,   52,   76,   63,   84,   59,   53]

لنفترض أننا نريد تصنيف هذه الأرقام إلى مجموعات نحددها بأنفسنا: فمثلا ً الأرقام بين 1-25 ، 25-35 ، 40-60 ثم 60-80 ثم الباقي. في البداية دعونا نعرف المجموعات.

[bucket = [1, 25, 35, 60, 80, 100
(cut_data = pd.cut(data, bucket
cut_data
[(35, 60], (35, 60], (1, 25], (80, 100], (25, 35], ..., (60, 80], (60, 80], (80, 100], (35, 60], (35, 60]]  Length: 30  Categories (5, interval[int64]): [(1, 25] < (25, 35] < (35, 60] < (60, 80] < (80, 100]]

دالة ()cut مفيدة للغاية، وهناك الكثير من الأمور التي يمكننا القيام بها باستخدام هذه الدالة.

المتغيرات الوهمية (Dummy variables) و الترميز الأحادي (One-Hot Encodings)

هذا الموضوع مفيد جدا ً عند الرغبة بتحويل بعض البيانات الفئوية (Categorical) إلى قيم عددية بحيث يمكنك استخدامها في نماذج تحليل البيانات، خاصة عند القيام ببناء نماذج تعلم الآلة، حيث يكون مفهوم الترميز الأحادي (One-Hot Encodings) شائعا. باستخدام كلمات تقنية أكثر: الترميز الأحادي هو عملية تحويل القيم الفئوية إلى متجه (Vector) رقمي أحادي البعد.

يمكن القيام بذلك باستخدام دالة ()get_dummies. إذا كان أحد الأعمدة في البيانات لديك يحتوي على عدد معين من القيم المميزة، نشير لهذا العدد ب n، فستشتق الدالة مصفوفة تحتوي على نفس العدد من الأعمدة وجميع القيم عبارة عن 1 أو 0. دعونا نوضح هذه الفكرة بمثال لتتضح الصورة بشكل أفضل.

(('data = pd.Series(list('abcdababcdabcd
data
0     a  1     b  2     c  3     d  4     a  5     b  6     a  7     b  8     c  9     d  10    a  11    b  12    c  13    d  dtype: object

 

لنفترض الآن أننا نريد أن يكون لدينا متجهات فردية تشير إلى ظهور كل حرف لإدخاله إلى دالة أخرى. كمثال:  [1,0,0,0,1,0,1,0,0,0,1,0,0,0]=  ‘a’، ويعني: إذا كانت القيمة الأصلية  ‘a’  نضع 1 و 0 في عكس ذلك. استخدام دالة ()get_dummies سيجعل المهمة أسهل.

pd.get_dummies(data) 

 

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

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

 

###

Source: DataCamp tutorials/Sejal Jaiswal