Поделиться через


Руководство. Классификация серьезности нарушений работоспособности ресторана с помощью Model Builder

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

В этом руководстве вы узнаете, как:

  • Подготовка и понимание данных
  • Создание файла конфигурации построителя моделей
  • Выбор сценария
  • Загрузка данных из базы данных
  • Обучение модели
  • Оценка модели
  • Использование модели для прогнозирования

Предпосылки

Список необходимых компонентов и инструкций по установке см. в руководстве по установке конструктора моделей .

Общие сведения о многоклассовой классификации конструктора моделей

В этом примере создается консольное приложение C#, которое классифицирует риск нарушений работоспособности с помощью модели машинного обучения, созданной с помощью конструктора моделей. Исходный код для этого руководства можно найти в репозитории dotnet/machinelearning-samples GitHub.

Создание консольного приложения

Создайте консольное приложение C# с именем "RestaurantViolations".

Подготовка и понимание данных

Набор данных, используемый для обучения и оценки модели машинного обучения, изначально является результатом оценки безопасности ресторана в Сан-Франциско. Для удобства набор данных был сокращен, чтобы включить только столбцы, относящиеся к обучению модели и делать прогнозы. Посетите следующий веб-сайт, чтобы узнать больше о наборе данных.

Скачайте набор данных оценки безопасности ресторана и распакуйте его.

Каждая строка в наборе данных содержит информацию о нарушениях, наблюдаемых во время проверки со стороны Департамента здравоохранения, и оценки риска этих нарушений, присутствующих в области здравоохранения и безопасности.

Тип проверки Описание нарушения RiskCategory
Рутина — незапланированная Неадекватно очищаются или санируются контактные поверхности пищевых продуктов Умеренный риск
Новая собственность Высокий риск заражения вредителями Высокий риск
Процедура — незапланированная Салфетки не чистые, неправильно хранятся или недостаточно дезинфицирующее средство. Низкий риск
  • InspectionType: тип проверки. Это может быть первичная проверка для нового объекта, плановая проверка, проверка по жалобе и другие виды проверок.
  • Нарушение: описание нарушения, обнаруженного во время проверки.
  • RiskCategory: серьезность риска представляет нарушение для общественного здравоохранения и безопасности.

label — это столбец, который требуется прогнозировать. При выполнении задачи классификации цель — назначить категорию (текст или числовое). В этом сценарии классификации серьезность нарушения назначается значение низкого, умеренного или высокого риска. Таким образом, riskCategory — это метка. Это features данные, которые вы предоставляете модели, чтобы она могла предсказать label. В этом случае Тип проверки и Описание нарушения используются в качестве признаков или входных данных для прогнозирования RiskCategory.

Создание файла конфигурации построителя моделей

При первом добавлении конструктора моделей в решение вам будет предложено создать файл mbconfig. Файл mbconfig отслеживает все, что вы делаете в построителе моделей, чтобы разрешить повторно открыть сеанс.

  1. В обозревателе решений щелкните правой кнопкой мыши проект RestaurantViolations и выберите "Добавить>модель машинного обучения".
  2. mbconfig Назовите проект RestaurantViolationsPrediction и нажмите кнопку "Добавить".

Выбор сценария

Экран сценария построителя моделей

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

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

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

Построитель моделей принимает данные из базы данных SQL Server или локального файла в формате csv, tsv или txt.

  1. На шаге данных средства построителя моделей выберите SQL Server из выбора типа источника данных.
  2. Нажмите кнопку "Выбрать источник данных ".
    1. В диалоговом окне "Выбор источника данных " выберите файл базы данных Microsoft SQL Server.
    2. Снимите флажок "Всегда использовать этот выбор" и нажмите "Продолжить".
    3. В диалоговом окне "Свойства подключения" выберите "Обзор " и выберите скачанный RestaurantScores.mdf файл.
    4. Нажмите ОК.
  3. Выберите "Нарушения " в раскрывающемся списке "Таблица ".
  4. Выберите RiskCategory в раскрывающемся списке Столбец для прогнозирования (Метка).
  5. Оставьте выбранные значения по умолчанию в параметрах расширенных данных.
  6. Нажмите кнопку "Следующий шаг", чтобы перейти к шагу обучения в Построителе моделей.

Обучение модели

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

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

  1. Построитель моделей задает значение времени для обучения (секунд) до 60 секунд. Обучение в течение длительного периода времени позволяет построителю моделей изучать большее количество алгоритмов и сочетание параметров в поиске лучшей модели.
  2. Нажмите кнопку "Начать обучение".

На протяжении всего учебного процесса данные о прогрессе отображаются в разделе Training results шага тренировки.

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

После завершения обучения файл mbconfig будет содержать созданную модель с именем RestaurantViolationsPrediction.zip и два файла C#:

  • RestaurantViolationsPrediction.consumption.cs. Этот файл имеет общедоступный метод, который загружает модель, создаёт движок прогнозирования и возвращает прогноз.
  • RestaurantViolationsPrediction.training.cs. Этот файл состоит из конвейера обучения, созданного конструктором моделей для создания лучшей модели, включая использованные гиперпараметры.

Нажмите кнопку Следующий шаг, чтобы перейти к шагу оценки.

Оценка модели

Результатом этапа обучения будет одна модель, которая имела лучшую производительность. На шаге оценки средства построителя моделей в разделе "Лучшая модель" будет содержаться алгоритм, используемый лучшей моделью, в записи Модель, а также метрики для этой модели в Точность.

Кроме того, в окне выходных данных Visual Studio будет сводная таблица, содержащая лучшие модели и их метрики.

В этом разделе также можно протестировать модель, выполнив один прогноз. Предусмотрены текстовые поля для ввода значений, и вы можете нажать кнопку "Предсказать", чтобы получить прогноз от лучшей модели. По умолчанию это будет заполнено случайной строкой в наборе данных.

(Необязательно) Использовать модель

На этом шаге будут использоваться шаблоны проектов, которые можно использовать для использования модели. Этот шаг является необязательным, и вы можете выбрать метод, который лучше всего соответствует вашим потребностям в том, как обслуживать модель.

  • Консольное приложение
  • Веб-API

Консольное приложение

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

  1. Назовите консольный проект RestaurantViolationsPrediction_Console.

  2. Щелкните Добавить в решение, чтобы добавить проект в текущее решение.

  3. Запустите приложение.

    Выходные данные, созданные программой, должны выглядеть следующим образом:

    InspectionType: Routine - Unscheduled
    ViolationDescription: Moderate risk food holding temperature
    
    Predicted RiskCategory: Moderate Risk
    

Веб-API

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

  1. Назовите проект веб-API RestaurantViolationsPrediction_API.

  2. Нажмите кнопку Добавить в решение* , чтобы добавить проект в текущее решение.

  3. Запустите приложение.

  4. Откройте PowerShell и введите следующий код, в котором ПОРТ является портом, в котором приложение прослушивается.

    $body = @{
        InspectionType="Reinspection/Followup"
        ViolationDescription="Inadequately cleaned or sanitized food contact surfaces"
    }
    
    Invoke-RestMethod "https://localhost:<PORT>/predict" -Method Post -Body ($body | ConvertTo-Json) -ContentType "application/json"
    
  5. При успешном выполнении выходные данные должны выглядеть примерно так же, как и в приведенном ниже тексте. Выходные данные имеют прогнозируемую Категорию риска как Умеренный риск, а также оценки для каждой из входных меток: Низкий риск, Высокий риск и Умеренный риск.

    prediction    score
    ----------    -----
    Moderate Risk {0.055566575, 0.058012854, 0.88642055}
    

Поздравляю! Вы успешно создали модель машинного обучения для классификации риска нарушений в области здравоохранения с помощью Model Builder. Исходный код для этого руководства можно найти в репозитории dotnet/machinelearning-samples GitHub.

Дополнительные ресурсы

Дополнительные сведения о разделах, упомянутых в этом руководстве, см. в следующих ресурсах: