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

В этой модели показания были с любого айтрекера (например, Ober2).

Показания образца были сняты с частотой 250 Гц с помощью устройства отслеживания движения глаз Ober2, а затем переданы в модель. Модель обучалась по координатам взгляда левого и правого глаза. Это было сделано отдельно для каждого пользователя.

Набор данных

Для набора данных было снято 2048 образцов, а все измерения длились 8192 мс. В качестве стимула использовалась матрица прыжков 3х3, состоящая из одиннадцати точек смены позиций. Эти позиции изменения точки вернули двенадцать последовательных позиций точки.

Подготовка набора данных

Для показаний первая точка появляется в середине экрана, где испытуемый должен сфокусироваться на ней, направив на нее глаза. По истечении 1600 мс точка исчезает, а экран становится черным на 20 мс. Это заставляет глаза субъекта переходить в неустойчивое состояние, ожидая другой точки интереса. Далее в правом верхнем углу появляется следующая точка и мигающая точка привлекает внимание глаз субъекта. Этот процесс повторяется до тех пор, пока не будет достигнута последняя позиция в середине экрана.

Набор данных был доступен в формате «.csv». Были учебные и тестовые файлы. Каждое чтение имело четыре типа значений:

  • class — классификация субъекта (1–37 для обучающей выборки и «?» в случае тестовой выборки)
  • lx — список из 2048 значений точек взгляда левого глаза на оси X, разделенных запятыми.
  • ly — список из 2048 значений точек взгляда левого глаза по оси Y, разделенных запятыми.
  • rx — список из 2048 разделенных запятыми значений точек взгляда правого глаза на оси X.
  • ry — список из 2048 разделенных запятыми значений точек взгляда правого глаза по оси Y.

Значения: 0 для точки посередине, положительные для точки в правой или верхней части экрана и отрицательные для точек в левой или нижней части экрана.

Большая часть большинства проектов машинного обучения знакомится с набором данных. Однако API pandas предоставляет функцию описания, которая выводит следующую статистику по каждому столбцу в DataFrame:

  • количество - это количество строк в этом столбце. В идеале счетчик содержит одно и то же значение для каждого столбца.
  • mean и std содержат среднее значение и стандартное отклонение значений в каждом столбце.
  • min и max содержат самые низкие и самые высокие значения в каждом столбце.
  • 25%, 50%, 75%, которые содержат различные квантили.

Предварительная обработка набора данных

Я использовал MinMax Scaler для масштабирования набора данных. Масштабирование будет поддерживать значения потерь и скорости обучения в более удобном диапазоне.

Определение функций и ярлыков

Столбец «класс» будет использоваться здесь как метка, а остальные столбцы представляют характеристики этого конкретного класса.

График движения глаз, построенный для «субъекта 1» в соответствии с его координатами lx, ly, rx, ry.

Использование kклассификатора NN

Алгоритм k-ближайших соседей (KNN) — это очень простой алгоритм машинного обучения с учителем.Онможет использоваться для решения задач как классификации, так и регрессии. В этом случае у нас возникает проблема классификации, поскольку все признаки относятся к разным классам.

Во-первых, мы импортировали модуль KNeighborsClassifier и создали объект классификатора kNN, передав аргумент числа соседей в функцию KNeighborsClassifier().

Определяя цели и функции для классификатораkNN, мы присвоили «X» для функций и «y» для меток.

Затем мы использовали «fit()», чтобы подогнать нашу модель к тренировочному набору, а затем выполнить прогнозирование на тестовом наборе, используя предсказать().

Здесь мы не можем проверить наши результаты на тестовом наборе, поскольку тестовый набор представляет собой немаркированный набор данных. Более того, мы можем разделить обучающий набор на обучающий и проверочный наборы и определить предполагаемую точность нашей модели и даже построить матрицу путаницы.

Заключение

Биометрия, основанная на движении глаз, является новой областью, и эту модель можно улучшить с помощью более крупного и откалиброванного набора данных. Прогнозы, сделанные на тестовом наборе, не были аспектированными, потому что показатель точности был близок к 0,55 из-за некалиброванных данных с устройства отслеживания глаз. Поскольку здесь использовался классификатор kNN, он известен своими хорошо масштабируемыми свойствами с наборами данных. Следовательно, точность этой модели будет увеличиваться с увеличением количества данных. Этот проект был вдохновлен конкурсом Kaggle «Конкурс проверки и идентификации движений глаз».