การรับรู้กิจกรรมของมนุษย์ (HAR) หมายถึงความสามารถของเครื่องจักรในการระบุกิจกรรมต่าง ๆ ที่ดำเนินการโดยผู้ใช้ ความรู้ที่ได้รับจากระบบ/อัลกอริทึมเหล่านี้ถูกรวมเข้ากับแอปพลิเคชันจำนวนมากที่อุปกรณ์ที่เกี่ยวข้องใช้เพื่อระบุการกระทำหรือท่าทางและดำเนินงานที่กำหนดไว้ล่วงหน้าในการตอบสนอง
เรามีความสนใจในการจำแนกกิจกรรมของมนุษย์ตามข้อมูล accelerometer เราจะใช้ชุดข้อมูลที่เผยแพร่ต่อสาธารณะที่เรียกว่า UCI-HAR ชุดข้อมูลสามารถดาวน์โหลดได้ที่นี่ สำหรับการอ้างอิงของคุณวิดีโอ YouTube ของผู้เขียนที่รวบรวมข้อมูล accelerometer ของผู้เข้าร่วมก็มีอยู่ที่นี่
เราจะใช้ข้อมูล accelerometer ดิบภายในโฟลเดอร์ inertial_signals สคริปต์ที่ให้ไว้, CombineScript.py
จัดระเบียบและเรียงลำดับข้อมูล accelerometer สร้างคลาสแยกต่างหากสำหรับแต่ละหมวดหมู่และรวบรวมข้อมูลผู้เข้าร่วมลงในคลาสเหล่านี้ MakeDataset.py
สคริปต์ใช้เพื่ออ่านข้อมูลผู้เข้าร่วมทั้งหมดและสร้างชุดข้อมูลเดียว ชุดข้อมูลจะถูกแบ่งออกเป็นชุดรถไฟทดสอบและการตรวจสอบความถูกต้อง เรามุ่งเน้นไปที่ 10 วินาทีแรกของกิจกรรมแปลเป็นตัวอย่างข้อมูล 500 ครั้งแรกเนื่องจากอัตราการสุ่มตัวอย่าง 50Hz
CombineScript.py
และ MakeDataset.py
ในโฟลเดอร์เดียวกันที่มีชุดข้อมูล UCI ตรวจสอบให้แน่ใจว่าคุณได้ย้ายเข้าสู่โฟลเดอร์ก่อนเรียกใช้สคริปต์ หากคุณกำลังเรียกใช้สคริปต์จากโฟลเดอร์อื่นคุณจะต้องเล่นกับเส้นทางในสคริปต์เพื่อให้มันใช้งานได้CombineScript.py
และจัดเตรียมเส้นทางในการทดสอบและฝึกอบรมโฟลเดอร์ในชุดข้อมูล UCI สิ่งนี้จะสร้างโฟลเดอร์ที่เรียกว่า Combined
ซึ่งจะมีข้อมูลทั้งหมดจากผู้เข้าร่วมทั้งหมด นี่คือวิธีการจัดระเบียบชุดข้อมูลส่วนใหญ่ คุณอาจพบโครงสร้างชุดข้อมูลที่คล้ายกันในอนาคตMakeDataset.py
และให้เส้นทางไปยังโฟลเดอร์ Combined
สิ่งนี้จะสร้างชุดข้อมูลซึ่งจะมีชุดรถไฟทดสอบและการตรวจสอบความถูกต้อง คุณสามารถใช้ชุดข้อมูลนี้เพื่อฝึกอบรมโมเดลของคุณการแจ้งเตือนแบบไม่มีการถ่ายทำเกี่ยวข้องกับการจัดทำแบบจำลองภาษาด้วยคำสั่งหรือชุดคำสั่งที่อนุญาตให้สร้างข้อความหรือทำงานโดยไม่มีข้อมูลการฝึกอบรมที่ชัดเจนหรือตัวอย่างที่มีป้ายกำกับ แบบจำลองนี้คาดว่าจะสร้างข้อความที่มีคุณภาพสูงหรือดำเนินการตามที่แม่นยำตามพรอมต์และความรู้ภายใน
การกระตุ้นด้วยการยิงไม่กี่ครั้งนั้นคล้ายกับการแจ้งเตือนแบบไม่เป็นศูนย์ แต่เกี่ยวข้องกับการจัดทำโมเดลที่มีตัวอย่างที่มีป้ายกำกับจำนวน จำกัด หรือพร้อมท์ที่เกี่ยวข้องกับงานหรือชุดข้อมูลที่เฉพาะเจาะจง แบบจำลองนี้คาดว่าจะสร้างข้อความที่มีคุณภาพสูงหรือทำงานอย่างถูกต้องตามตัวอย่างที่มีป้ายกำกับและความรู้ภายใน
คุณได้รับสมุดบันทึก Python ที่แสดงให้เห็นถึงวิธีการใช้ zero-shot และการกระตุ้นไม่กี่ครั้งด้วยรูปแบบภาษา (LLM) ตัวอย่างในโน้ตบุ๊กเกี่ยวข้องกับงานที่ใช้ข้อความ แต่ LLM สามารถนำไปใช้กับงานที่หลากหลาย (นักเรียนที่สนใจในการเรียนรู้เพิ่มเติมสามารถอ่านได้ที่นี่และที่นี่)
แบบสอบถามจะมีให้ในรูปแบบของข้อมูล accelerometer featurezed และแบบจำลองควรทำนายกิจกรรมที่ดำเนินการ
สำหรับเครื่องหมายการออกกำลังกายนี้จะไม่ขึ้นอยู่กับตัวเลขที่คุณได้รับ แต่ในกระบวนการที่คุณทำตามใช้แอพเช่น Physics Toolbox Suite
จากสมาร์ทโฟนของคุณเพื่อรวบรวมข้อมูลของคุณในรูปแบบ. csv/.txt ตรวจสอบให้แน่ใจว่ามีการรวบรวมข้อมูลอย่างน้อย 15 วินาทีตัดขอบเพื่อให้ได้ข้อมูลที่เกี่ยวข้อง 10 วินาที นอกจากนี้ยังบันทึกวิดีโอของตัวเองในขณะที่บันทึกข้อมูล วิดีโอนี้จะต้องใช้ในการมอบหมายในอนาคต รวบรวมตัวอย่าง 3-5 ตัวอย่างต่อกิจกรรม
เสร็จสิ้นการใช้งานแผนผังต้นไม้ใน Tree/Base.py รหัสควรเขียนใน Python และไม่ได้ใช้ไลบรารีที่มีอยู่นอกเหนือจากที่ใช้ร่วมกันในชั้นเรียนหรือนำเข้าในรหัสแล้ว แผนผังการตัดสินใจของคุณควรทำงานสำหรับสี่กรณี: i) คุณสมบัติที่ไม่ต่อเนื่องเอาท์พุทที่ไม่ต่อเนื่อง; ii) คุณสมบัติที่ไม่ต่อเนื่องเอาต์พุตจริง; iii) คุณสมบัติจริงเอาต์พุตแบบไม่ต่อเนื่อง; คุณสมบัติจริงเอาต์พุตจริง โมเดลของคุณควรยอมรับอินพุตจริงเท่านั้น (สำหรับอินพุตที่ไม่ต่อเนื่องคุณสามารถแปลงแอตทริบิวต์เป็นเวกเตอร์ที่เข้ารหัสแบบร้อนเดียว) แผนผังการตัดสินใจของคุณควรจะสามารถใช้ข้อมูลที่เพิ่มขึ้นโดยใช้เอนโทรปีหรือ GiniIndex เป็นเกณฑ์สำหรับการแยกออกสำหรับผลลัพธ์ที่ไม่ต่อเนื่อง แผนผังการตัดสินใจของคุณควรจะสามารถใช้ข้อมูลที่เพิ่มขึ้นโดยใช้ MSE เป็นเกณฑ์สำหรับการแยกออกเป็นเอาต์พุตจริง รหัสของคุณควรพล็อต/แสดงแผนผังการตัดสินใจ [2.5 คะแนน]
คุณควรแก้ไขไฟล์ต่อไปนี้
metrics.py
: ทำฟังก์ชั่นการวัดประสิทธิภาพในไฟล์นี้
usage.py
: เรียกใช้ไฟล์นี้เพื่อตรวจสอบโซลูชันของคุณ
ต้นไม้ (ไดเรกทอรี): โมดูลสำหรับแผนผังการตัดสินใจ
base.py
: ชั้นเรียนการตัดสินใจที่สมบูรณ์utils.py
: ทำฟังก์ชั่นยูทิลิตี้ทั้งหมดให้สมบูรณ์__init__.py
: อย่าแก้ไขสิ่งนี้คุณควรใช้ การใช้งาน 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 )
a) แสดงการใช้งานของ แผนผังการตัดสินใจของคุณ ในชุดข้อมูลด้านบน 70% แรกของข้อมูลควรใช้เพื่อวัตถุประสงค์ในการฝึกอบรมและส่วนที่เหลืออีก 30% สำหรับวัตถุประสงค์ในการทดสอบ แสดงความแม่นยำความแม่นยำต่อคลาสและการเรียกคืนแผนผังการตัดสินใจที่คุณใช้ในชุดข้อมูลทดสอบ [0.5 mark]
b) ใช้การตรวจสอบข้าม 5 เท่าบนชุดข้อมูล การใช้การตรวจสอบข้ามซ้อนกันค้นหาความลึกที่เหมาะสมของต้นไม้ [1 Mark]
คุณควรแก้ไข
classification-exp.py
สำหรับรหัสที่มีการทดลองข้างต้น
a) แสดงการใช้งานแผนผังการตัดสินใจของคุณสำหรับปัญหาประสิทธิภาพยานยนต์ [0.5 คะแนน]
b) เปรียบเทียบประสิทธิภาพของโมเดลของคุณกับโมดูลต้นไม้ตัดสินใจจาก Scikit Learn [0.5 คะแนน]
คุณควรแก้ไข
auto-efficiency.py
สำหรับรหัสที่มีการทดลองข้างต้น
สร้างข้อมูลปลอมเพื่อทำการทดลองบางอย่างเกี่ยวกับความซับซ้อนของรันไทม์ของอัลกอริทึมการตัดสินใจของคุณ สร้างชุดข้อมูลด้วยตัวอย่าง N และคุณสมบัติไบนารี m แตกต่างกันไป m และ n เพื่อพล็อตเวลาที่ใช้สำหรับ: 1) การเรียนรู้ต้นไม้ 2) การทำนายข้อมูลการทดสอบ ผลลัพธ์เหล่านี้เปรียบเทียบกับความซับซ้อนของเวลาทางทฤษฎีสำหรับการสร้างต้นไม้และการทำนายการตัดสินใจอย่างไร คุณควรทำการเปรียบเทียบสำหรับต้นไม้ตัดสินใจทั้งสี่กรณี [1 คะแนน]
คุณควรแก้ไข
experiments.py
สำหรับรหัสที่มีการทดลองข้างต้น
คุณต้องตอบคำถามเรื่อง (การสร้างภาพการวิเคราะห์เวลาการแสดงพล็อต) โดยการสร้าง Asst#<task-name>_<Q#>.md