Skip to content

Идентификация посетителя в зависимости от характерного времени его прохода на территорию организации

Notifications You must be signed in to change notification settings

egorumaev/2023-ods-turnstiles

Repository files navigation

2023-ods-turnstiles

Турникеты

ПРОЕКТ «Турникеты»

Проект выполнен в рамках участия в осенних треках Open Data Science, прошедших в сентябре-ноябре 2023 г.

Официальные сайты треков:


Примененные библиотеки и технологии

  • Pandas, Numpy, Random, Matplotlib, Seaborn, Datetime, Sklearn, Imblearn, CatBoost

  • Feature Engineering, Polynomial Features, SelektKBest, GridSearchCV, RandomizedSearchCV, Pipeline, OneVsRestClassifier, Confusion Matrix


Цель и задачи проекта

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

Для достижения цели выполнены следующие задачи:

  • проведен исследовательский анализ данных, выявлены характерные особенности, удалены выбросы и дубликаты;

  • с помощью Feature Engineering на основе признака 'ts' с информацией о дате и времени пересечения турникета сгенерировано 80 новых обучающих признаков. После проверки на мультиколлинеарность удалены 3 признака;

  • обучены модели LogisticRegression и CatBoost. Лучший результат получен на модели CatBoost, обученной с гиперпараметром loss_function = 'MultiClassOneVsAll'.

В техзадании на выполнение проекта оговорено ограничение: машинное обучение должно быть выполнено отдельно для:

  • линейной (логистической) регрессии

  • модели, основанной на решающем дереве

Решаемая в рамках проекта задача является задачей мультиклассификации.


Основные результаты

(1) На основе признака ‘ts’, имеющего тип ‘datetime64’, с помощью Feature Engineering создано 80 признаков для обучения машинных моделей. Проведен анализ признаков на мультиколлинеарность, в результате которого удалено 3 признака.

(2) Модель LogisticRegression обучена с помощью Pipleline и без Pipeline c multi_class = ‘multinomial’ и ‘ovr’. Модели, обученные без Pipeline с multi_class = ‘multinomial’ и ‘ovr’ показали более высокий результат в сравнении с моделью, обученной с помощью Pipeline. Результат обучения указанных двух моделей оказался примерно одинаков.

(3) В качестве модели, основанной на решающих деревьях, была выбрана модель CatBoost, обученная с помощью Pipeline. Лучший результат показал запуск с loss_function = 'MultiClassOneVsAll', который был отправлен как итоговое решение.

About

Идентификация посетителя в зависимости от характерного времени его прохода на территорию организации

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published