يشير التعرف على النشاط البشري (HAR) إلى قدرة الآلات على تحديد الأنشطة المختلفة التي يقوم بها المستخدمون. يتم دمج المعرفة المكتسبة من هذه الأنظمة/الخوارزميات في العديد من التطبيقات حيث يستخدمها الجهاز المرتبط به لتحديد الإجراءات أو الإيماءات وأداء المهام المحددة مسبقًا استجابةً.
نحن مهتمون بتصنيف الأنشطة البشرية على أساس بيانات مقياس التسارع. سوف نستخدم مجموعة بيانات متاحة علنًا تسمى UCI-HAR. مجموعة البيانات متاحة للتنزيل هنا. فقط للرجوع إليه ، يتوفر مقطع فيديو على YouTube للمؤلفين الذين يجمعون بيانات التسارع للمشارك هنا أيضًا.
سنستخدم بيانات مقياس التسارع الخام ضمن مجلد القصور الذاتي. البرنامج النصي المقدم ، CombineScript.py
، ويقوم بتنظيم وفرز بيانات مقياس التسارع ، وإنشاء فئات منفصلة لكل فئة وتجميع بيانات المشاركين في هذه الفئات. يتم استخدام البرنامج النصي MakeDataset.py
لقراءة جميع بيانات المشاركين وإنشاء مجموعة بيانات واحدة. ثم يتم تقسيم مجموعة البيانات إلى مجموعة القطار والاختبار ومجموعة التحقق من الصحة. نحن نركز على أول 10 ثوان من النشاط ، وترجم إلى عينة بيانات 500 الأولية بسبب معدل أخذ العينات البالغ 50 هرتز.
CombineScript.py
و MakeDataset.py
في نفس المجلد الذي يحتوي على مجموعة بيانات UCI. تأكد من أنك انتقلت إلى المجلد قبل تشغيل البرامج النصية. إذا كنت تقوم بتشغيل البرامج النصية من مجلد مختلف ، فسيتعين عليك اللعب مع المسارات في البرامج النصية لجعلها تعمل.CombineScript.py
وتوفير مسارات لاختبار المجلدات وتدريبها في مجموعة بيانات UCI. سيؤدي ذلك إلى إنشاء مجلد يسمى Combined
والذي سيحتوي على جميع البيانات من جميع المشاركين. هذه هي الطريقة التي يتم بها تنظيم معظم مجموعات البيانات. قد تواجه هياكل مجموعة بيانات مماثلة في المستقبل.MakeDataset.py
وتوفير المسار إلى المجلد Combined
. سيؤدي ذلك إلى إنشاء مجموعة بيانات ستحتوي على مجموعة القطار والاختبار والتحقق. يمكنك استخدام مجموعة البيانات هذه لتدريب النماذج الخاصة بك.يتضمن Prompting Zero-Shot تزويد نموذج اللغة بمطالبة أو مجموعة من الإرشادات التي تسمح له بإنشاء نص أو تنفيذ مهمة دون أي بيانات تدريب صريحة أو أمثلة عليها. من المتوقع أن يولد النموذج نصًا عالي الجودة أو يؤدي المهمة التي تعتمد بدقة على المطالبة ومعرفتها الداخلية.
يشبه التقديم القليل من الطرقة التي تقدمها صفر ، ولكنها تتضمن تزويد النموذج بعدد محدود من الأمثلة أو المطالبات ذات الصلة بمهمة أو مجموعة بيانات محددة. من المتوقع أن ينشئ النموذج نصًا عالي الجودة أو يؤدي المهمة بدقة بناءً على الأمثلة القليلة المسمى ومعرفتها الداخلية.
لقد تم تزويدك بدفتر Python يوضح كيفية استخدام Zero-Shot و Pirace Shot مع نموذج لغة (LLM). يتضمن المثال في دفتر الملاحظات مهامًا قائمة على النص ، ولكن يمكن أيضًا تطبيق LLMs على مجموعة واسعة من المهام (يمكن للطلاب الذين تم مهزوهم بتعلم المزيد قراءته هنا وهنا).
سيتم توفير الاستعلامات في شكل بيانات مقياس التسارع المميز ويجب أن يتنبأ النموذج بالنشاط الذي تم تنفيذه.
لن يعتمد علامات التمرين هذه على الأرقام التي تحصل عليها ولكن على العملية التي تابعتها ، استخدم تطبيقات مثل Physics Toolbox Suite
من هاتفك الذكي لجمع بياناتك بتنسيق .csv/.txt. تأكد من جمع ما لا يقل عن 15 ثانية من البيانات ، وتقليص حواف للحصول على 10 ثوان من البيانات ذات الصلة. سجل أيضًا مقطع فيديو لنفسك أثناء تسجيل البيانات. سيكون هذا الفيديو مطلوبًا في بعض المهام المستقبلية. جمع 3-5 عينات لكل فئة النشاط.
أكمل تطبيق شجرة القرار في شجرة/قاعدة. يجب كتابة الرمز في Python وعدم استخدام المكتبات الموجودة بخلاف تلك المشتركة في الفصل أو المستوردة بالفعل في الكود. يجب أن تعمل شجرة قرارك لأربع حالات: 1) ميزات منفصلة ، والإخراج المنفصل ؛ 2) الميزات المنفصلة ، الإخراج الحقيقي ؛ 3) الميزات الحقيقية ، الإخراج المنفصل ؛ ميزات حقيقية ، إخراج حقيقي. يجب أن يقبل النموذج مدخلات حقيقية فقط (للمدخلات المنفصلة ، يمكنك تحويل السمات إلى ناقلات مشفرة واحدة). يجب أن تكون شجرة قرارك قادرة على استخدام المعلومات باستخدام الانتروبيا أو giniindex كمعايير لتقسيم الإخراج المنفصل. يجب أن تكون شجرة القرار الخاصة بك قادرة على استخدام المعلومات باستخدام MSE كمعايير لتقسيم الإخراج الحقيقي. يجب أن يكون الرمز الخاص بك قادرًا أيضًا على رسم/عرض شجرة القرار. [2.5 علامات]
يجب أن تقوم بتحرير الملفات التالية.
metrics.py
: أكمل وظائف مقاييس الأداء في هذا الملف.
usage.py
: قم بتشغيل هذا الملف للتحقق من حلولك.
شجرة (دليل): وحدة لشجرة القرار.
base.py
: فئة شجرة القرار الكاملة.utils.py
: أكمل جميع وظائف الأداة المساعدة.__init__.py
: لا تعدل هذايجب عليك تشغيل Usage.py للتحقق من حلولك.
قم بإنشاء مجموعة البيانات الخاصة بك باستخدام الأسطر التالية من التعليمات البرمجية
from sklearn . datasets import make_classification
X , y = make_classification (
n_features = 2 , n_redundant = 0 , n_informative = 2 , random_state = 1 , n_clusters_per_class = 2 , class_sep = 0.5 )
# For plotting
import matplotlib . pyplot as plt
plt . scatter ( X [:, 0 ], X [:, 1 ], c = y )
أ) إظهار استخدام شجرة القرار الخاصة بك على مجموعة البيانات أعلاه. يجب استخدام أول 70 ٪ من البيانات لأغراض التدريب و 30 ٪ المتبقية لأغراض الاختبار. أظهر الدقة والدقة لكل فئة واستدعاء شجرة القرار التي قمت بتنفيذها على مجموعة بيانات الاختبار. [0.5 علامة]
ب) استخدام 5 أضعاف التحقق من الصحة على مجموعة البيانات. باستخدام التحقق المتبادل المتداخل ، ابحث عن العمق الأمثل للشجرة. [1 علامة]
يجب عليك تحرير
classification-exp.py
للرمز الذي يحتوي على التجارب المذكورة أعلاه.
أ) إظهار استخدام شجرة القرار الخاصة بك لمشكلة كفاءة السيارات. [0.5 علامات]
ب) قارن أداء النموذج الخاص بك مع وحدة شجرة القرار من Scikit Learn. [0.5 علامات]
يجب أن تقوم بتحرير
auto-efficiency.py
للرمز الذي يحتوي على التجارب المذكورة أعلاه.
قم بإنشاء بعض البيانات المزيفة للقيام ببعض التجارب على تعقيد وقت التشغيل لخوارزمية شجرة القرار. قم بإنشاء مجموعة بيانات مع عينات n وميزات ثنائية. تختلف m و n لرسم الوقت المستغرق ل: 1) تعلم الشجرة ، 2) التنبؤ لبيانات الاختبار. كيف تقارن هذه النتائج مع تعقيد الوقت النظري لإنشاء شجرة القرار والتنبؤ. يجب عليك القيام بالمقارنة لجميع حالات أشجار القرار الأربع. [1 علامات]
يجب أن تقوم بتحرير
experiments.py
للرمز الذي يحتوي على التجارب المذكورة أعلاه.
يجب أن تجيب على أسئلة الموضوع (التصور ، تحليل التوقيت ، عرض المخططات) عن طريق إنشاء Asst#<task-name>_<Q#>.md