Распознавание человеческой деятельности (HAR) относится к возможности машин для определения различных действий, выполняемых пользователями. Знания, полученные из этих систем/алгоритмов, интегрированы во многие приложения, где связанное устройство использует его для определения действий или жестов и выполняет предопределенные задачи в ответ.
Мы заинтересованы в классификации деятельности человека на основе данных акселерометра. Мы будем использовать общедоступный набор данных под названием UCI-HAR. Набор данных доступен для загрузки здесь. Просто для вашей ссылки на YouTube видео авторов, собирающих данные об акселерометре участника, также доступно здесь.
Мы будем использовать данные необработанного акселерометра в папке инициал_Signals. Предоставленный скрипт CombineScript.py
организует и сортирует данные акселерометра, создавая отдельные классы для каждой категории и составление данных участников в эти классы. Скрипт MakeDataset.py
используется для прочтения всех данных участников и создания одного набора данных. Затем набор данных разделяется на набор тестирования и проверки. Мы сосредоточимся на первых 10 секунд активности, переведя к начальным 500 образцам данных из -за скорости отбора проб 50 Гц.
CombineScript.py
и MakeDataset.py
в ту же папку, которая содержит набор данных UCI. Убедитесь, что вы переехали в папку перед запуском сценариев. Если вы забегаете сценарии из другой папки, вам придется поиграть с путями в сценариях, чтобы заставить его работать.CombineScript.py
и предоставьте пути для тестирования и обучения папок в наборе данных UCI. Это создаст папку с названием Combined
, которая будет содержать все данные от всех участников. Так организована большинство наборов данных. В будущем вы можете столкнуться с аналогичными структурами наборов данных.MakeDataset.py
и обеспечить путь к Combined
папке. Это создаст набор данных, который будет содержать набор поездов, тестирования и проверки. Вы можете использовать этот набор данных для обучения ваших моделей.Подсказка с нулевым выстрелом включает в себя предоставление языковой модели с помощью запроса или набора инструкций, которые позволяют создавать текст или выполнять задачу без каких-либо явных данных обучения или помеченных примеров. Ожидается, что модель будет генерировать высококачественный текст или выполнить задачу точно, основанную исключительно на подсказке и ее внутренних знаниях.
Несколько выстрелов подсказывают подсказку с нулевым выстрелом, но оно включает в себя предоставление модели ограниченным количеством помеченных примеров или подсказок, которые имеют отношение к конкретной задаче или набору данных. Ожидается, что модель будет генерировать высококачественный текст или выполнить задачу точно на основе нескольких меченных примеров и ее внутренних знаний.
Вам были предоставлены блокнот Python, который демонстрирует, как использовать нулевые и несколько выстрелов с языковой моделью (LLM). Пример в ноутбуке включает в себя текстовые задачи, но LLMS также могут быть применены к широкому спектру задач (студенты заинтересованы в изучении, которые больше могут прочитать здесь и здесь).
Запросы будут предоставлены в виде данных с фиксированным акселерометром, и модель должна предсказать выполненную деятельность.
Для этого упражнения отметки не будут зависеть от того, какие цифры вы получаете, но от процесса, который вы следовали, используют такие приложения, как Physics Toolbox Suite
от вашего смартфона, для сбора ваших данных в формате .csv/.txt. Убедитесь, что по меньшей мере 15 секунд данных собираются, обрезки ребра, чтобы получить 10 секунд соответствующих данных. Также запишите видео о себе при записи данных. Это видео потребуется в некоторых будущих заданиях. Соберите 3-5 образцов на класс активности.
Заполните реализацию дерева решений в Tree/Base.py. Код должен быть записан в Python и не использовать существующие библиотеки, отличные от тех, которые разделены в классе или уже импортируются в коде. Ваше дерево решений должно работать для четырех случаев: i) дискретные функции, дискретный вывод; ii) дискретные функции, реальные выводы; iii) реальные функции, дискретный выход; Реальные функции, реальная вывода. Ваша модель должна принимать только реальные входы (для дискретных входов, вы можете преобразовать атрибуты в однопольнутые кодируемые векторы). Ваше дерево решений должно иметь возможность использовать InformationGain с использованием энтропии или giniindex в качестве критериев для разделения для дискретного вывода. Ваше дерево решений должно иметь возможность использовать InformationGain с использованием 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 двоичными функциями. Варьируйтесь m и n, чтобы построить время, затрачиваемое на: 1) изучение дерева, 2) прогнозирование для тестовых данных. Как эти результаты сравниваются с теоретической временной сложностью для создания и прогнозирования дерева решений. Вы должны сделать сравнение для всех четырех случаев деревьев решений. [1 оценки]
Вы должны редактировать
experiments.py
для кода, содержащего вышеуказанные эксперименты.
Вы должны ответить на вопросы субъекта (визуализация, анализ синхронизации, отображение графиков), создав Asst#<task-name>_<Q#>.md