人类活动识别(HAR)是指机器确定用户执行的各种活动的能力。从这些系统/算法中获取的知识已集成到许多应用程序中,相关设备将其用于识别动作或手势并执行响应中的预定义任务。
我们有兴趣根据加速度计数据对人类活动进行分类。我们将使用一个名为UCI-HAR的公开可用数据集。该数据集可在此处下载。在您的参考文献中,也可以在此处获得参与者收集参与者加速度计数据的作者的YouTube视频。
我们将在wertial_signals文件夹中使用原始加速度计数据。提供的脚本, CombineScript.py
,组织和分类加速度计数据,为每个类别建立单独的类,并将参与者数据编译到这些类中。 MakeDataset.py
脚本用于读取所有参与者数据并创建一个数据集。然后将数据集分为火车,测试和验证集。我们专注于活动的前10秒,这转化为最初的500个数据样本,因为采样率为50Hz。
CombineScript.py
和MakeDataset.py
放在包含UCI数据集的同一文件夹中。在运行脚本之前,请确保您已移至文件夹中。如果您要从其他文件夹中运行脚本,则必须使用脚本中的路径来使其正常工作。CombineScript.py
并提供UCI数据集中测试和火车文件夹的路径。这将创建一个称为Combined
的文件夹,该文件夹将包含来自所有参与者的所有数据。这就是大多数数据集的组织方式。将来您可能会遇到类似的数据集结构。MakeDataset.py
并提供Combined
文件夹的路径。这将创建一个数据集,该数据集将包含火车,测试和验证集。您可以使用此数据集训练模型。零射击提示涉及提供一个提示或一组指令的语言模型,该模型允许其生成文本或执行任务,而无需任何明确的培训数据或标记的示例。预计该模型将仅根据提示及其内部知识来准确地生成高质量的文本或准确执行任务。
很少有射击提示类似于零拍的提示,但它涉及为模型提供与特定任务或数据集相关的标记示例或提示。然后,预计该模型将基于少数标记的示例及其内部知识来生成高质量的文本或准确执行任务。
为您提供了一本Python笔记本电脑,该笔记本显示了如何使用语言模型(LLM)使用零射击和很少的弹药提示。笔记本中的示例涉及基于文本的任务,但是LLM也可以应用于广泛的任务(学生学习更多的学生可以在这里和这里阅读)。
查询将以特征加速度计数据的形式提供,该模型应预测执行的活动。
对于此练习标记,将不取决于您获得的数字,而是在您遵循的过程中使用智能手机的Physics Toolbox Suite
等应用程序以.csv/.txt格式收集数据。确保收集至少15秒的数据,修剪边缘以获得10秒的相关数据。还在录制数据时录制自己的视频。将来的某些作业将需要该视频。每个活动类别收集3-5个样品。
在树/base.py中完成决策树实现。该代码应以Python编写,并且不使用除课堂中共享或已经在代码中导入的库以外的现有库。您的决策树应适用于四种情况:i)离散功能,离散输出; ii)离散功能,实际输出; iii)真实功能,离散输出;真实功能,实际输出。您的模型应仅接受真实的输入(对于离散输入,您可以将属性转换为单热编码的向量)。您的决策树应能够使用熵或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 )
a)在上述数据集上显示您的决策树的用法。前70%的数据应用于培训目的,其余30%用于测试目的。显示您在测试数据集上实现的决策树的准确性,每类精确度和回忆。 [0.5分]
b)在数据集上使用5倍的交叉验证。使用嵌套交叉验证找到树的最佳深度。 [1标记]
您应该为包含上述实验的代码编辑
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