Распознавание деятельности человека — это задача классификации последовательностей данных акселерометра и гироскопа, записанных специальными ремнями безопасности или смартфонами, в известные четко определенные движения.

Необработанные данные недоступны. Вместо этого была доступна предварительно обработанная версия набора данных.

Этапы предварительной обработки включали:

  • Предварительная обработка акселерометра и гироскопа с помощью шумовых фильтров.
  • Разделение данных на фиксированные окна по 2,56 секунды (128 точек данных) с перекрытием 50%.
  • Разделение данных акселерометра на гравитационную (суммарную) и составляющую движения тела.

Скачать набор данных

Набор данных находится в свободном доступе и может быть загружен из репозитория машинного обучения UCI.

Данные предоставляются в виде одного zip-файла размером около 58 мегабайт. Прямая ссылка на эту загрузку приведена ниже:

Понимание исходного набора данных

Осматривая распакованное содержимое, вы заметите несколько вещей:

  • Существуют папки «train» и «test», содержащие разделенные части данных для моделирования (например, 70%/30%).
  • Существует файл «README.txt», содержащий подробное техническое описание набора данных и содержимое разархивированных файлов.
  • Имеется файл features.txt, содержащий техническое описание разработанных функций.

Проверка папки «train» показывает несколько важных элементов:

  • Данные гравитационного ускорения для осей x, y и z: total_acc_x, total_acc_y_, total_acc_z.
  • Данные об ускорении тела для осей x, y и z: body_acc_x, body_acc_y, body_acc_z
  • Данные гироскопа тела для осей x, y и z: body_gyro_x, body_gyro_y, body_gyro_z

Структура отображается в каталоге «test».

Загрузка данных и анализ данных

Описательный анализ

поскольку в данных нет пропущенных значений, мы приступаем к визуализации

Визуализация данных

На этой диаграмме показано количество действий для различных категорий действий.

поскольку данные уже нормализованы, нам не нужно выполнять нормализацию.

Построение модели и проверка точности

Я использовал 5 классификаторов:

Логистическая регрессия

Машина опорных векторов

Случайный лес

K-ближайший сосед

Деревья решений

Я создал функцию для расчета точности нескольких моделей и печати y_predict для различных моделей. Когда мы даем имя модели, оно будет соответствовать данным и точности печати для модели. Чтобы проверить отчет о классификации каждой модели, я сделал прогнозирование функции, которое даст значение y_predict, которое будет принимать аргумент имени модели.

Вывод

Модель логистической регрессии дала наивысшую точность 95,8%, за ней следует SVM 95,04, затем случайный лес 92.