التعرف على النشاط البدني الإنساني باستخدام التعلم الآلي | Human Activity Recognition by Machine Learning

الثلاثاء 09 شوال 1443ھ الثلاثاء 10 مايو 2022م
فيسبوك
تويتر
واتساب
تيليجرام
لينكدإن
المحتوى

مقدمة

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

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

1.0 أمثلة على النشاطات البدنية


1- التحليل الاستكشافي للبيانات

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

يمكن تحميل مجموعة البيانات و الأكواد المستخدمة في هذا الدرس من خلال الرابط التالي : للتحميل📂

1.1 استيراد المكتبات

قمنا بتضمين كل من مكتبتي NumPy و Pandas لإدارة البيانات ، و مكتبة matplotlib لتصويرها وتمثيلها. بالإضافة إلى ذلك قمنا بتضمين كل من نماذج تعلم الآلة الآتية المقدمة من مكتبة Scikit-Learn.

  • SVM
  • Logistic Regression
  • K Nearest Neighbors
  • Random Forest

و أخيرًا تم تضمين دوال متخصصة لقياس أداء نماذج التصنيف التي سنقوم بتدريبها والتحقق من أدائها لاحقًا في هذا الدرس.

1.2 سحب البيانات واستعراضها

1.1 إطار بيانات التعرف على النشاط البدني الإنساني
1.2 أبعاد بيانات التدريب والاختبار

1.3 شرح البيانات

  • بيانات التدريب : 7352 صف row (عينة) و 563 عمود column (سمة)
  • بيانات الاختبار : 2947 صف row (عينة) و 563 عمود column (سمة)

يوجد إجمالي 7352 سجلاً في مجموعة بيانات التدريب training data بينما تحتوي مجموعة بيانات الاختبار testing data على 2947 سجلاً لاختبار النماذج التي سنقوم بتدريبها لاحقًا في هذا الدرس.

كما هو موضح في الصور أعلاه يوجد أكثر من 563 عامود أي 563 سمة Attribute الغالبية العظمى من هذه الأعمدة تحتوي على الكلمتين Accelerometer و Gyroscope وهي مستشعرات خاصة بالتعرف على الحركة و النشاط مضمنة في الأجهزة الذكية فيما يلي شرح لآلية عملها.

أ. مستشعر قياس التسارع Accelerometer معظم الهواتف الذكية تحتوي هذا النوع من المستشعرات ومن خلاله. يتم قياس التسارع بثلاثة أبعاد مكانية (X, Y, Z). هذا المستشعر يستخدم أيضًا لاكتشاف اتجاه الجهاز في حال كان في وضعٍ أفقي أو عمودي.

Rotate Phone Images – Browse 10,703 Stock Photos, Vectors, and Video |  Adobe Stock
1.3 اتجاه دوران الجهاز الذكي

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

ب. مستشعر الجيروسكوب Gyroscope يستخدم هذا المستشعر القياسات التي يرصدها للحفاظ على اتجاه الجهاز من خلال مبادئ الزخم الزاوي. حيث يقيس معدل الدوران للجهاز بوحدة rad/s حول الأجهزة لكل من المحاور الثلاثة (X, Y, Z).

يعمل مستشعر الجيروسكوب (الدوران) جنبًا إلى جنب مع مقياس التسارع في الهاتف الذكي ، الجهاز اللوحي، الساعات الذكية في ست اتجاهات اليسار ، اليمين ، الأعلى ، الأسفل ، الأمام و الخلف بالإضافة إلى قياس مفاهيم متقدمة مثل roll, pitch, yaw rotations مما يسمح باستشعار الحركة الدقيقة للأجهزة.

دعونا نستعرض عدد الأعمدة المرتبط بكل مستشعر من خلال عمل for-loop وثم تصوير ذلك بيانياً :

1.4 تصوير عدد الأعمدة في كل فئة

نلاحظ وجود التالي :

  • 345 سمة attribute مرتبطة بمستشعر قياس التسارع Accelerometer
  • 213 سمة attribute مرتبطة بمستشعر الجيروسكوب Gyroscope
  • 5 ميزات غير مرتبطة بأي من المستشعرات أعلاه.

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

['angle(X,gravityMean)',
 'angle(Y,gravityMean)',
 'angle(Z,gravityMean)',
 'subject',
 'Activity']

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

1.4 تقسيم البيانات

1.5 تصوير البيانات

أولاً سنستعرض أنواع الفعاليات الموجود في المتغير المستهدف activity ثم سنحتسب تعداد ونسبة كل فعالية في مجموعة التدريب للتأكد من أن المجموعة متوازنة وجاهزة لتطوير نماذج التصنيف.

1.6 تمثيل بياني يظهر عدد السجلات المرتبطة بكل فئة من فئات النشاط البدني في مجموعة التدريب
1.7 تمثيل بياني يظهر نسبة تواجد كل فئة من فئات النشاط البدني في مجموعة التدريب
نوع النشاطعدد العينات النسبة المئوية
استلقاء140719.14%
وقوف137418.69%
جلوس128617.49%
مشي122616.68%
صعود الدرج107314.59%
نزول الدرج98613.41%
1.8 إطار البيانات الخاص بمعلومات أنواع النشاطات البدنية المختلفة

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

2- إعداد نماذج التعلم الآلي للتعرف على النشاطات البدنية

كما أشرنا سابقًا في هذا الدرس سنقوم بتنفيذ 4 خوارزميات مختلفة ومقارنة أدائها وذلك بهدف تصنيف النشاطات البدنية السابقة بشكل صحيح !

الأسطر البرمجية أدناه مسؤولة عن تدريب 4 خوارزميات (نماذج) على بيانات التدريب واختبارها على بيانات الاختبار واستخراج قيمة ضبط كل خوارزمية !

2.1 خوارزمية آلة المُتَّجهات الداعمة (SVM) Support Vector Machine

تدريب النموذج و اختبار ضبطه

2.1 ضبط النموذج

أداء نموذج آلة المُتَّجهات الداعمة (SVM) Support Vector Machine

2.2 تقرير أداء النموذج

مصفوفة الدقة (الحيرة) Confusion Matrix

2.3 مصفوفة الدقة

ملخص الأداء الكلي لنموذج آلة المُتَّجهات الداعمة (SVM) Support Vector Machine

نوع النشاطنسبة التوقعات الصحيحةنوع قياس الأداءالنتيجة
استلقاء100%الضبط Accuracy 95.05%
وقوف89.2%الدقة Precision 95.13%
جلوس94.5%الاسترجاع Recall95.04%
مشي98.4%نتيجة إف F-Score95.05%
صعود الدرج91.4%الدعم Support 2947
نزول الدرج95.8%
2.4 إطار البيانات الخاص بأداء نموذج آلة المُتَّجهات الداعمة

2.2 خوارزمية الانحدار اللوجستي Logistic Regression

تدريب النموذج و اختبار ضبطه

2.5 ضبط النموذج

أداء نموذج الانحدار اللوجستي Logistic Regression

2.6 تقرير أداء النموذج

مصفوفة الدقة (الحيرة) Confusion Matrix

2.6 مصفوفة الدقة

ملخص الأداء الكلي لنموذج الانحدار اللوجستي Logistic Regression

نوع النشاطنسبة التوقعات الصحيحةنوع قياس الأداءالنتيجة
استلقاء100%الضبط Accuracy 95.83%
وقوف87.8%الدقة Precision 95.94%
جلوس96.8%الاسترجاع Recall95.83%
مشي92.2%نتيجة إف F-Score95.81%
صعود الدرج96.0%الدعم Support 2947
نزول الدرج94.7%
2.7 إطار البيانات الخاص بأداء نموذج الانحدار اللوجستي

2.3 خوارزمية الجار الأقرب K Nearest Neighbor

تدريب النموذج و اختبار ضبطه

2.8 ضبط النموذج

أداء نموذج الجار الأقرب K Nearest Neighbor

2.9 تقرير أداء النموذج

مصفوفة الدقة (الحيرة) Confusion Matrix

2.10 مصفوفة الدقة

ملخص الأداء الكلي لنموذج الجار الأقرب K Nearest Neighbor

نوع النشاطنسبة التوقعات الصحيحةنوع قياس الأداءالنتيجة
استلقاء99.4%الضبط Accuracy 90.02%
وقوف79.2%الدقة Precision 90.04%
جلوس93.0%الاسترجاع Recall90.02%
مشي97.8%نتيجة إف F-Score89.93%
صعود الدرج78.8%الدعم Support 2947
نزول الدرج89.0%
2.11 إطار البيانات الخاص بأداء نموذج الجار الأقرب

2.4 خوارزمية الغابة العشوائية Random Forest

تدريب النموذج و اختبار ضبطه

2.12 ضبط النموذج

أداء نموذج الغابة العشوائية Random Forest

2.13 تقرير أداء النموذج

مصفوفة الدقة (الحيرة) Confusion Matrix

2.14 مصفوفة الدقة

ملخص الأداء الكلي لنموذج الغابة العشوائية Random Forest

نوع النشاطنسبة التوقعات الصحيحةنوع قياس الأداءالنتيجة
استلقاء100%الضبط Accuracy 92.21%
وقوف87.4%الدقة Precision 92.26%
جلوس92.5%الاسترجاع Recall92.13%
مشي96.8%نتيجة إف F-Score92.10%
صعود الدرج85.0%الدعم Support 2947
نزول الدرج89.2%
2.15 إطار البيانات الخاص بأداء نموذج الغابة العشوائية

ملخص النتائج

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

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

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *