2017-01-08 18 views
4

Я работаю над проектом биометрической аутентификации нажатия клавиш. Это похоже на оболочку поверх вашей традиционной аутентификации на основе пароля. Если пароль прав, он проверяет «ввод-ритм» и дает положительный результат, если он соответствует профилю пользователя. Кроме того, дается отрицательный результат. «Typing-rhythm» проверяется путем сопоставления некоторых характеристик времени, которые извлекаются при вводе пароля. Существует, по существу, 5 функций: PP (Press-Press time), PR (Время отпускания), RP (Release-Press time), RR (Release-Release time) и Общее время. PP - время между нажатием двух последовательных клавиш (символов). RR - время между отпусканием двух последовательных клавиш. PR - это время, в течение которого клавиша была нажата и отпущена. RP - время между отпусканием клавиши и последующим нажатием следующей клавиши. Общее время - это время между нажатием первой клавиши пароля и отпусканием последней клавиши пароля.Как представить, а затем загрузить пользовательский набор данных с различным количеством столбцов для некоторых записей в sci-kit learn

Я использую открытую базу данных GREYC-Web based KeyStroke dynamics для проекта. Каждый сеанс сбора данных содержит значение ASCII нажатой клавиши и временную метку для PP, PR, RP, RR и общее время. Он также содержит ли пользователь вводит пароль или самозванец. Собирая данные, пользователям было разрешено использовать собственный пароль. Естественно, есть пароли различной длины. Кроме того, пользователь может нажимать дополнительные клавиши (например, Shift, Caps, Backspace, Delete и т. Д.). Даже для определенного пользователя разные сеансы ввода пароля могут иметь разную длину пароля. Примечание. Длина пароля в этом контексте - это общее количество ключей (символов), которые пользователь вводил. Например, если фактический пароль пользователя «abcd». В одном сеансе он правильно вводит его, а длина пароля равна 4. В другом сеансе он набирает следующий набор ключей: a, l, BACKSPACE, b, c, d- и, следовательно, длина пароля равна 6.

enter image description here

Вот несколько контекстов предлагаемой системы. Предложенная блок-схема системы следующая. Раздел «Input Feature Part Partition» создает подмножества фактической базы данных, которые будут передаваться в разные классификаторы, а именно: гауссовый, K-NN и OCSVM. Выходы этих классификаторов передаются в Back-Propogation Neural Network (BPNN), результатом которого является конечный результат. BPNN используется для наказания тех классификаторов, которые дают неправильный результат и вознаграждают те классификаторы, которые дают правильный результат.

Мой вопрос заключается в том, как представить эти переменные данные длины в структурированном формате, чтобы его можно было обрабатывать и использовать в научном исследовании sci-kit.

Я изучил панду и numpy для предварительной обработки данных. Но моя проблема предшествует стадии предварительной обработки.

Спасибо, заранее!

ответ

0

Опция будет Recurrent Neural Network. Эти сети эффективно внедряются в самих себя, эффективно создавая функцию времени или в вашем случае относительного положения в слове. Структуры этих сетей заключаются в следующем:

enter image description here

В левой части (перед стрелкой) показывает теоретическую структуру RNN. Значения передаются не только между узлами в сети, но также между временными отметками. Эта обобщенная структура позволяет встраивать произвольное время или в ваш случай произвольную длину слова.

Общая реализация RNN, которая может достичь даже лучших результатов по некоторым проблемам, - это LSTM или длинные сети короткой памяти.

enter image description here

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

Если вы хотите реализовать их самостоятельно, загляните в Tensorflow. Если у вас есть библиотека, с которой вам удобнее, не стесняйтесь исследовать ее реализацию RNN и LSTM, но если нет, Tensorflow - отличное место для начала.

Удачи вам в ваших исследованиях, и я надеюсь, что это поможет!