Автоматизируйте запросы доступа сотрудников с помощью машинного обучения

Во многих компаниях ответ на запрос сотрудника о доступе к системам или объектам является утомительным и ручным. К команде присоединяется новый член команды, и в ИТ-отдел отправляется поток заявок на один элемент за другим. Возможно, это звучит знакомо? Представьте, если бы мы могли использовать машинное обучение для создания высокоточной системы для автоматизации этого процесса, экономя сотрудникам тысячи часов рабочего времени по всему предприятию? В этой статье вы узнаете, как создать точное автоматизированное решение для запросов доступа сотрудников с помощью машинного обучения и языка программирования C# (для выполнения инструкций не требуется опыта программирования). Данные, используемые в этом пошаговом руководстве, взяты из конкурса, спонсируемого Amazon для создания этого решения для своей компании.

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

Получить данные о соревнованиях Amazon от Kaggle

Прежде чем начать — установите необходимые компоненты

Для начала убедитесь, что у вас установлена ​​Visual Studio 2019
Получить Visual Studio 2019

После установки Visual Studio 2019 установите ML.NET.
Получить ML.NET

ML.NET — это кроссплатформенная платформа машинного обучения с открытым исходным кодом.

Создадим модель машинного обучения в Visual Studio.

Запустите Visual Studio 2019 и выберите простое консольное приложение .NET Core.

Настройте свой проект

Дайте вашему проекту имя и местоположение.

Добавьте машинное обучение в свой проект

Щелкните проект правой кнопкой мыши и добавьте машинное обучение.

Выберите сценарий классификации текста

Поскольку задача машинного обучения предсказывает, к какому классу принадлежит запись, мы выбираем сценарий классификации текста. В этом случае два сценария: 1 для доступа был предоставлен и 0 для доступа был запрещен.

Выберите среду

У вас, вероятно, будет только ваша локальная среда для задачи классификации; однако некоторые модели можно обучать в облаке.

Загрузите данные и выберите столбец для прогнозирования (метка) и столбцы, используемые для прогнозирования (функции).

Поле, которое мы хотим предсказать, называется Target в наборе данных Amazon. В большинстве учебных пособий по машинному обучению будет проводиться исследовательский анализ данных, чтобы изучить функции и выполнить такие действия, как корреляционный анализ и анализ основных компонентов. Несмотря на то, что это важно, это не является целью этого сообщения в блоге. Мы выберем все 9 столбцов функций и позволим алгоритму машинного обучения выяснить, что лучше.

Обучение и оценка различных моделей

Это одна из самых крутых функций построителя моделей ML.NET! Конструктор проверит несколько моделей машинного обучения за отведенное время и сообщит о модели с наилучшей точностью.

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

Руководство по обучению ML.Net

Для такого небольшого набора данных я выбрал 20 секунд.

Результаты обучения

Через 20 секунд мы обнаруживаем, что лучшая модель называется FastTreeOva. Он достиг точности 94,31%!

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

ML.NET поддерживает интересные функции, поставляемые с тестовой системой, которая позволяет записывать один тестовый образец и просматривать результаты прогнозирования. Тестовая запись, опробованная в этом примере, показывает 99%-ю вероятность того, что запрос на доступ будет одобрен.

Сгенерировать код

Вау, это действительно вишенка на торте. ML.NET не только предлагает наиболее точную модель, но также генерирует код C# для модели и консольное приложение для тестирования модели.

После добавления модели в решение у вас будет один проект модели и одно консольное приложение для запуска теста модели.

Запуск кода

Установите только что добавленное консольное приложение в качестве запускаемого проекта и запустите его.
Вы увидите, что он показывает, как использовать модель для одного прогноза!

Вывод

На этом этапе мы взяли набор данных, используемый для решения бизнес-задачи о том, кто получает доступ в Amazon, и создали модель машинного обучения в Visual Studio. Затем мы сгенерировали код для этой модели и протестировали модель в консольном приложении. Я уверен, что ваша голова может быть кружиться с идеями прямо сейчас. Пожалуйста, подпишитесь на блог, мы будем публиковать больше замечательных статей о науке о данных в .NET.