Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Узнайте, как создать модель многоклассовой классификации с помощью Конструктора моделей для классификации уровня риска нарушений ресторанов, обнаруженных во время проверок работоспособности.
В этом руководстве вы узнаете, как:
- Подготовка и понимание данных
- Создание файла конфигурации построителя моделей
- Выбор сценария
- Загрузка данных из базы данных
- Обучение модели
- Оценка модели
- Использование модели для прогнозирования
Предпосылки
Список необходимых компонентов и инструкций по установке см. в руководстве по установке конструктора моделей .
Общие сведения о многоклассовой классификации конструктора моделей
В этом примере создается консольное приложение C#, которое классифицирует риск нарушений работоспособности с помощью модели машинного обучения, созданной с помощью конструктора моделей. Исходный код для этого руководства можно найти в репозитории dotnet/machinelearning-samples GitHub.
Создание консольного приложения
Создайте консольное приложение C# с именем "RestaurantViolations".
Подготовка и понимание данных
Набор данных, используемый для обучения и оценки модели машинного обучения, изначально является результатом оценки безопасности ресторана в Сан-Франциско. Для удобства набор данных был сокращен, чтобы включить только столбцы, относящиеся к обучению модели и делать прогнозы. Посетите следующий веб-сайт, чтобы узнать больше о наборе данных.
Скачайте набор данных оценки безопасности ресторана и распакуйте его.
Каждая строка в наборе данных содержит информацию о нарушениях, наблюдаемых во время проверки со стороны Департамента здравоохранения, и оценки риска этих нарушений, присутствующих в области здравоохранения и безопасности.
| Тип проверки | Описание нарушения | RiskCategory |
|---|---|---|
| Рутина — незапланированная | Неадекватно очищаются или санируются контактные поверхности пищевых продуктов | Умеренный риск |
| Новая собственность | Высокий риск заражения вредителями | Высокий риск |
| Процедура — незапланированная | Салфетки не чистые, неправильно хранятся или недостаточно дезинфицирующее средство. | Низкий риск |
- InspectionType: тип проверки. Это может быть первичная проверка для нового объекта, плановая проверка, проверка по жалобе и другие виды проверок.
- Нарушение: описание нарушения, обнаруженного во время проверки.
- RiskCategory: серьезность риска представляет нарушение для общественного здравоохранения и безопасности.
label — это столбец, который требуется прогнозировать. При выполнении задачи классификации цель — назначить категорию (текст или числовое). В этом сценарии классификации серьезность нарушения назначается значение низкого, умеренного или высокого риска. Таким образом, riskCategory — это метка. Это features данные, которые вы предоставляете модели, чтобы она могла предсказать label. В этом случае Тип проверки и Описание нарушения используются в качестве признаков или входных данных для прогнозирования RiskCategory.
Создание файла конфигурации построителя моделей
При первом добавлении конструктора моделей в решение вам будет предложено создать файл mbconfig. Файл mbconfig отслеживает все, что вы делаете в построителе моделей, чтобы разрешить повторно открыть сеанс.
- В обозревателе решений щелкните правой кнопкой мыши проект RestaurantViolations и выберите "Добавить>модель машинного обучения".
-
mbconfigНазовите проект RestaurantViolationsPrediction и нажмите кнопку "Добавить".
Выбор сценария
Экран сценария построителя моделей
Чтобы обучить модель, выберите из списка доступных сценариев машинного обучения, предоставляемых конструктором моделей. В этом случае сценарий — классификация данных.
- Для этого примера задача является многоклассовой классификацией. На шаге сценария построителя моделей выберите сценарий классификации данных .
Загрузка данных
Построитель моделей принимает данные из базы данных SQL Server или локального файла в формате csv, tsv или txt.
- На шаге данных средства построителя моделей выберите SQL Server из выбора типа источника данных.
- Нажмите кнопку "Выбрать источник данных ".
- В диалоговом окне "Выбор источника данных " выберите файл базы данных Microsoft SQL Server.
- Снимите флажок "Всегда использовать этот выбор" и нажмите "Продолжить".
- В диалоговом окне "Свойства подключения" выберите "Обзор " и выберите скачанный RestaurantScores.mdf файл.
- Нажмите ОК.
- Выберите "Нарушения " в раскрывающемся списке "Таблица ".
- Выберите RiskCategory в раскрывающемся списке Столбец для прогнозирования (Метка).
- Оставьте выбранные значения по умолчанию в параметрах расширенных данных.
- Нажмите кнопку "Следующий шаг", чтобы перейти к шагу обучения в Построителе моделей.
Обучение модели
Задача машинного обучения, используемая для обучения модели классификации проблем в этом руководстве, является многоклассовой классификацией. Во время обучения модели построитель моделей обучает отдельные модели с использованием различных алгоритмов и параметров многоклассовой классификации, чтобы найти оптимальную модель для набора данных.
Время, необходимое для обучения модели, пропорционально объему данных. Построитель моделей автоматически выбирает значение по умолчанию для времени обучения (в секундах) в зависимости от размера вашего источника данных.
- Построитель моделей задает значение времени для обучения (секунд) до 60 секунд. Обучение в течение длительного периода времени позволяет построителю моделей изучать большее количество алгоритмов и сочетание параметров в поиске лучшей модели.
- Нажмите кнопку "Начать обучение".
На протяжении всего учебного процесса данные о прогрессе отображаются в разделе Training results шага тренировки.
- Состояние отображает состояние завершения процесса обучения.
- Лучшая точность отображает точность оптимальной модели, найденной конструктором моделей до сих пор. Более высокая точность означает, что модель предсказала более правильно в тестовых данных.
- Лучший алгоритм отображает имя оптимального алгоритма, который был найден конструктором моделей до сих пор.
- Последний алгоритм отображает имя алгоритма, который недавно использовался конструктором моделей для обучения модели.
После завершения обучения файл mbconfig будет содержать созданную модель с именем RestaurantViolationsPrediction.zip и два файла C#:
- RestaurantViolationsPrediction.consumption.cs. Этот файл имеет общедоступный метод, который загружает модель, создаёт движок прогнозирования и возвращает прогноз.
- RestaurantViolationsPrediction.training.cs. Этот файл состоит из конвейера обучения, созданного конструктором моделей для создания лучшей модели, включая использованные гиперпараметры.
Нажмите кнопку Следующий шаг, чтобы перейти к шагу оценки.
Оценка модели
Результатом этапа обучения будет одна модель, которая имела лучшую производительность. На шаге оценки средства построителя моделей в разделе "Лучшая модель" будет содержаться алгоритм, используемый лучшей моделью, в записи Модель, а также метрики для этой модели в Точность.
Кроме того, в окне выходных данных Visual Studio будет сводная таблица, содержащая лучшие модели и их метрики.
В этом разделе также можно протестировать модель, выполнив один прогноз. Предусмотрены текстовые поля для ввода значений, и вы можете нажать кнопку "Предсказать", чтобы получить прогноз от лучшей модели. По умолчанию это будет заполнено случайной строкой в наборе данных.
(Необязательно) Использовать модель
На этом шаге будут использоваться шаблоны проектов, которые можно использовать для использования модели. Этот шаг является необязательным, и вы можете выбрать метод, который лучше всего соответствует вашим потребностям в том, как обслуживать модель.
- Консольное приложение
- Веб-API
Консольное приложение
При добавлении консольного приложения в решение вам будет предложено указать имя проекта.
Назовите консольный проект RestaurantViolationsPrediction_Console.
Щелкните Добавить в решение, чтобы добавить проект в текущее решение.
Запустите приложение.
Выходные данные, созданные программой, должны выглядеть следующим образом:
InspectionType: Routine - Unscheduled ViolationDescription: Moderate risk food holding temperature Predicted RiskCategory: Moderate Risk
Веб-API
При добавлении веб-API в решение вам будет предложено назвать проект.
Назовите проект веб-API RestaurantViolationsPrediction_API.
Нажмите кнопку Добавить в решение* , чтобы добавить проект в текущее решение.
Запустите приложение.
Откройте 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"При успешном выполнении выходные данные должны выглядеть примерно так же, как и в приведенном ниже тексте. Выходные данные имеют прогнозируемую Категорию риска как Умеренный риск, а также оценки для каждой из входных меток: Низкий риск, Высокий риск и Умеренный риск.
prediction score ---------- ----- Moderate Risk {0.055566575, 0.058012854, 0.88642055}
Поздравляю! Вы успешно создали модель машинного обучения для классификации риска нарушений в области здравоохранения с помощью Model Builder. Исходный код для этого руководства можно найти в репозитории dotnet/machinelearning-samples GitHub.
Дополнительные ресурсы
Дополнительные сведения о разделах, упомянутых в этом руководстве, см. в следующих ресурсах:
- Сценарии модельного конструктора
- Многоклассовая классификация
- Метрики модели многоклассовой классификации