• Ahmed Moharram

علم البيانات : مقدمة



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

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

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

وبالتالي تجد نفسك فوراً تسعى لمزيد من الرعاية لحالات بعينها أكثر احتياجاً للرعاية حتى حين لا يستطيع علم البيانات أن يقدم لك نتائج قوية فإنه سيرشدك لنقاط بحث أعمق قد تكون مفيدة وعلم البيانات ليس ماكينة تنتج نفس المنتج في كل مرة ولكنه يحتاج إلى إعمال العقل وتطوير الأفكار

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

والبداية تكون بوجود البيانات. وأقصد بالبيانات تلك التي تخدم موضوع الاهتمام. ولعل السؤال الأول الذي يقفز من عقولنا حين نقول ذلك هو "ماذا لو لم تكن لدينا أساساً أي بيانات؟" وهو ما نطلق عليه في علم البيانات البداية الباردة أو Cold Start

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

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

أو من قاعدة بيانات باستخدام SQL أو تقوم بجمع البيانات مباشرة من صفحات الإنترنت Web Scraping أو حتى من ملفات غير منسقة بالشكل المعتاد. لكن كل من هذه الموضوعات له قصة مستقلة فلنتجنبهم الآن. لكن ماذا بعد أن تكون لدينا البيانات؟

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

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

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

وبالتالي إذا وجدت أن رقم 1000 قد تكرر في حالات أخرى خلال مراجعتك للبيانات فهذا يعني أنه يجب عليك أن ترجع لمصدر البيانات لتفهم السبب في هذه البيانات. فإذا فهمت السبب كان من السهل عليك أن تأخذ قراراً بما ستفعله.

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

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

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

عملية ملء الفراغات هذه (imputation) تستهوي البعض لدرجة أنها تنتهي بهم وهو ينشئون نماذج رياضية تتعرف عليهم بدلاً من أن تتعرف على ظواهر متعلقة بالبيانات.

من الواضح إذن أن التعامل مع القيم الغريبة والغائبة هو أمر مهم جداً في البداية. ولنفعل ذلك ببساطة (بافتراض أننا قمنا بتحميل البيانات من مصدرها في Pandas DataFrame) يكون من خلال الاطلاع على توصيف القيم لكل نوع من أنواع البيانات. الحصول على الأرقام سهل (كاستخدام describe و info)

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

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

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

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

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

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

أحياناً يكون من المفيد في الخطوات التالية أن نستخدم نسخة تم إعادة تغيير أبعادها (Rescaling) وهذا يختلف من حالة لأخرى كما لا يجب أن يكون هو نفسه نوع الـ Data Scaling الذي سيتم استخدامه لضبط البيانات قبل تقديمها لخوارزميات التعلم الآلي.

من الأدوات المهمة للغاية الأدوات الإحصائية الأساسية (Exploratory Data Analysis) ولعل من أهمها الـ PairPlot و الـ Histograms بأنواعها. كذلك ستجد في matplotlib الكثير من الأدوات التي تساعد في هذه المرحلة مثل الـ violins مثلاً.

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

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

في هذه الحالة أنت تبحث عن إحدى خوارزميات التصنيف (Classification) أو أن الإجابة يجب أن تكون رقم محدد كأن تسأل مثلاً عن عدد الأيام المتوقعة قبل التعافي وفي هذه الحالة ستستخدم خوارزميات (Regression) أو ربما تكون أسئلة أكثر بدائية من ذلك،

كأن تكون لديك قراءات ولكنك لا تعرف بعد كيف يمكننا تصنيف الحالات (دونما تصنيف مسبق في رأسك) وه ما يحتاج عادة لخوارزميات (Unsupervised learning)

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

7 views0 comments

Stay up to date with latest articls and news

CONTACT US

  • Twitter
  • YouTube

For general inquiries, please get in touch

© 2023 by A True Crime Podcast. Proudly created with Wix.com