مقالة اليوم لها علاقة ببعض الطرق المستخدمة في الجانب العملي.
هل عمرك سالت نفسك ليه في بعض الاحيان عند أي تطبيق عملي نستخدم بعض تقنيات normlization أو standardlization للبيانات؟ ومتى نستخدمهم؟ أول شي ابغى أوضح انه الفروقات بين normalization و standardization بسيطة جدا ويمكن تلاحظ في التطبيقات العملية انه واحد يتكلم عن مثلا normalization وهو يعني standardization او العكس. في هذه المقالة حوضح الفروقات الجوهرية بينهم وحنرى متى نستخدم كل واحد فيهم في التطبيق العملي .حفرض انه عندك خلفية عن normal distribution-Gaussian ومتى نستخدمه وايش علاقته اصلا في البيانات التي نسخدمها لاي مودل model. واذا كان الموضوع جديد عليك فتابع الفديو هذا من هنا.
البيانات واهميتها وعلاقتها ب normalization او standardization
لا ننسى انه اذا أردنا أن نبني أي شبكة عصبية هدفنا الاساسي انه نحاول ندرب المودل model الخاص فينا حتى يتعلم من البيانات الموجودة في قاعدة البيانات. فالبتالي البيانات هيا اهم عنصر في الموضوع عندنا وكما رأينا في الفديو الذي أشرت اليه ان البيانات ممكن تكون موزعة على شكل normal distbtuion او غيره. وكل disrbution له خصائص خاصة فيه. طيب احنا نعرف انه البيانات عندنا تحتوي على خصائص وهاذي غالبا تكون معطاة في machine learning او نستخرجها من خلال الشبكات العصبية في deep learning. هالخصائص تحتاج تكون على scale واحد يعني على مقياس واحد. ماذا يعني هالكلام؟
حوضح لك بمثال بسيط جدا. افرض انه عندي قاعدة بيانات لمعلومات الموظفين فيها مجموعة من الخصائص وأحد الخصائص هيا عدد الايام التي حظر وداوم فيها كل موظف. مثلا الموظف الاول دوام ٤٠٠ يوم وواحد ثاني داوم ٨٠٠٠ يوم واخر حظر الدوام لمجرد ٢٠ يوم. وافرض انه معلومات كم عدد الايام التي حظر فيها الموظف للدوام ما تهمنا لانه مثلا الشخص الذي حظر ٢٠ يوم ممكن يكون موظف جديد. بالتالي المعلومات هاذي ما تهمني حتى احكم على جدية الموظف في العمل لان فيه موظفين يحضر ولكن لا ينجز. في هالحالة اذا جينا ندرب شبكتنا العصبية model هالخاصية حتاثر ممكن سلبا على المودل ليه؟ لان فيه ارقام عالية جدا والعكس وهالارقام قلنا ممكن ما تعني كثرتها انه هالشي جدا مهم فما الحل؟ الحل ان نعيد قياس البيانات لهذه المعلومات او الخاصية. بمعنى اخر نعمل rescaling to our features. اي انه نحول هالارقام للمعلومات او الخاصية الغير مهمة التي ذكرنا مثلا ونجبرها تكون في مدى معين. مثلا نجعل كل البيانات للخاصية التي ذكرنها تكون بين ٠ و١ فقط. يعني اعدنا ترتيبها او حولناها. كيف الطريقة؟ حنرى تابع القراءة.
هالفكرة التي ذكرت فوق هيا الفكرة العامة لل normalization او standardization. تعال نرى كل واحد بالتحديد وكيف نحوله او نعيد ترتيبه او نجبره على قياس واحد مثل ما ذكرت. كل هالمسميات تعني نفس الكلام ولكن حاولت انوع حتى تختار الكلام المفهوم الاقرب لك.
افرض انه عندي البيانات الاصلية مداها بين ٠ الئ ٤٥٠٠٠ مثل ما نشوف في الصورة ادناه
صورة رقم ١: البيانات الاصلية – الخصائص
normalization
الان ال normalization معناه انه احنا نعمل rescale اي اعادة تهئية او تحويل للبيانات لتكون بين ٠ و١ او ٠ و-١ وهكذا. كيف ننفذ هذا rescale التحويل؟
عن طريق القاعدة التالية:
Normalization: صورة رقم ٢
لو أردنا ان نطبق القاعدة على مثالنا الذي ذكرنا. حنعتبر ان x-min للموظف الذي انقبل في الشركة ولم يحظر للدوام الى الان. وايضا حنعتبر x-max ترمز للموظف المعمر في الشركة وهو صاحب اعلى عدد ايام حضور. اخيرا x تعبر عن معلومات جميع الموظفين ما بين الموظف الجديد والموظف المعمر وهيا تمثل جميع الخصائص. بعد ما نطبق القاعدةالناتج حيكون كالاتي كما في نرى في الصورة ادناه:
Normalization صورة رقم ٣: نتيجة ال
ومثل ما نلاحظ انه الان احنا عملنا اعادة قياس للبيانات واصبحت مدى البيانات بين 0 و 1 بعد ان كان بين 0 و 45000.
standardization
طيب نأتي ل standardization.هيا تعني انه نعمل rescale للخصائص بحيث تتبع normal distribution – Gaussian ماذا يعني هالكلام؟ معناه انه المتوسط mean عندنا يكون قيمته صفر وstandard deviation يكون ١. في الفديو السابق الي اتكلمت عنه وحطيت رابطه عرفت المصطلحات بالتفصيل. طيب نطبق standardization باستخدام القاعدة التالية:
standardization صورة رقم ٤ : قاعدة
حيث x تمثل الخصائص التي ذكرنا في مثالنا وهي معلومات حضور الموظف وايضا هي معطى ناقص المتوسط mean ويكون صفر ومن ثم نقسمها على standard deviation وتكون قيمته ١. والنتيجة حتكون كما نرى في الصورة ادناه:
standardization صورة رقم ٥ : نتيجة
ومثل ما نلاحظ المتوسط تقريبا للبيانات بعد ما اعدنا قياسها هو بين -١ و ١ حسب normal distribution.
متى استخدم normalization؟ ومتى استخدم standardization؟
الجواب يعتمد فعليا على حيثيات المشكلة الي تحاول تحلها وما هيا البيانات المستخدمة وكيف طريقة توزيعها. لكن بشكل عام نستخدم normalization عندما ما نعرف البيانات الخاص فينا كيف طريقة توزعيها. أيضا نصيحتي لك من جانب عملي حاول تجرب كل الطريقتين واستخدم الطريقة التي تعطيك نتائج افضل ^ــ*.
في الاخير ممكن تقابلك انواع مختلفة من normalization او standardization لكن الفكرة والمفهوم واحد واغلب الطرق المستحخدمة والتي اثبتت فعاليتها العملية هيا التي ذكرتها في هذه المقالة.
لمتابعة الفديو الخاص بالمقالة، الرجاء الضغط
هنا
ان اصبت فمن الله وان اخطات فمن نفسي ..
لا تنسى مشاركة المقالة اذا أعجبتك ..
اخوكم رائد الحربي
ولاي ملاحضات او استفسارات يرجى مراسلتي على تويتر @raedalharbi14 أو كتابة التعليق هنا