Новый вопрос, который съедает наш мозг: Может ли машина учиться у нас? Кажется, ответ - ДА!
Следуя этой новой тенденции, Microsoft выпустила свою библиотеку машинного обучения для языков программирования C # и F #, которая позволяет создавать модели, не покидая экосистему .NET, которые можно использовать для прогнозирования информации на основе ее исторических данных. Звучит просто !.
Доступные среды, в которых это можно применить, можно найти на официальном веб-сайте ML.NET (https://dotnet.microsoft.com/apps/machinelearning-ai/ml-dotnet#leverage-dotnet), и это выглядит действительно интересно:
Кроме того, сочетаясь с новой философией Microsoft, ML.NET работает в Windows, Linux и macOS с использованием .NET Core.
ML.NET был разработан как расширяемая платформа, поэтому вы можете использовать другие популярные платформы машинного обучения (TensorFlow, ONNX, Infer.NET и другие) и иметь доступ к еще большему количеству сценариев машинного обучения, таких как классификация изображений, обнаружение объектов и т. Д. .
Пользовательское машинное обучение стало проще с AutoML
Для начала просто загрузите и установите инструмент ML.NET Model Builder из Visual Studio Marketplace (https://marketplace.visualstudio.com/items?itemName=MLNET.07).
Этот инструмент позволяет вам создать и протестировать модель. Модель ML.NET - это объект, который содержит преобразования, которые нужно выполнить с вашими входными данными, чтобы прийти к прогнозируемым выходным данным, дающим выходные данные и, возможно, оценку достоверности.
Чем больше данных будет предоставлено процессу, тем точнее будут данные и чем дольше потребуется обучение модели, тем точнее будет результат.
Запустите Visual Studio и создайте свое приложение (консольное приложение должно быть в порядке); Щелкните проект правой кнопкой мыши в Обозревателе решений и выберите Добавить - ›Машинное обучение.
Расширение построителя моделей откроет новый мастер, в котором вы можете указать информацию, необходимую для создания модели.
Сценарий
Первый позволяет выбрать базовый сценарий для вашего приложения машинного обучения.
Предустановки:
- Анализ настроений
- Классификация проблемы
- Прогноз цен
- Классификация изображений
- Индивидуальный сценарий
Анализ настроений
Это бинарная классификация, используемая для прогнозирования положительных или отрицательных настроений. Анализ настроений - это контекстный анализ текста, который идентифицирует и извлекает субъективную информацию из исходного материала и помогает бизнесу понять социальные настроения своего бренда, продукта или услуги при мониторинге онлайн-разговоров.
Классификация проблемы
Проблема классификации требует, чтобы примеры были отнесены к одному из двух или более классов. Классификация может иметь действительные или дискретные входные переменные.
Прогноз цен
Предскажите значение на основе исторических данных с помощью алгоритма регрессии. Задачи регрессии и классификации имеют своей целью построение краткой модели, которая может предсказать значение зависимого атрибута на основе переменных атрибута. Разница между двумя задачами заключается в том, что зависимый атрибут является числовым для регрессии и категориальным для классификации.
Классификация изображений
Это тоже бинарная классификация, как и анализ тональности, но она используется для прогнозирования данных с помощью изображений.
Индивидуальный сценарий
Позволяют вам создать настраиваемый сценарий для создания настраиваемой модели, сочетающей классификацию и регрессию.
Данные
После того, как вы выбрали сценарий (Я предлагаю начать анализ настроений), следующим шагом будет передача данных модели.
Здесь вы можете выбрать в качестве источника файл (.csv или .rsv) или соединение с базой данных Sql Server. В Интернете полно наборов данных, которые можно использовать для машинного обучения. Прилагаю только ссылку ниже:
- Https://archive.ics.uci.edu/ml/index.php
- Https://skymind.ai/wiki/open-datasets
- Https://lionbridge.ai/datasets/the-50-best-free-datasets-for-machine-learning/
Теперь, когда вы выбрали исходные данные, просто выберите столбец для прогнозирования и столбцы, используемые для прогнозирования. Если вы выберете все столбцы, ваша модель может быть менее точной или потребуется больше времени, чтобы найти лучшее значение.
Тренироваться
Теперь пришло время обучить модель с данными (фаза приема). На этом этапе вы можете выбрать время, в течение которого процесс должен обучать модель с использованием предоставленных данных. Порядок действий следующий:
Как предлагает Visual Studio, сколько времени я должен тренировать модель?
Если вы нажмете на ссылку, файл readme на github предложит следующее:
Построитель моделей использует AutoML для изучения нескольких моделей, чтобы найти наиболее эффективную модель.
Как правило, более длительные периоды обучения позволяют AutoML исследовать больше моделей с несколькими инструкторами и настройками. В таблице ниже показано среднее время, необходимое для получения хорошей производительности для наборов данных, с которыми мы тестировали.
Точное время тренировки зависит от нескольких параметров, например:
- Количество функций или столбцов, используемых для прогнозирования
- Тип столбцов, то есть текстовый или числовой.
- Тип задачи машинного обучения (например, регрессия или классификация)
Запуская поезд, вы можете отслеживать прогресс обучения модели в разделе «Прогресс».
- Статус - показывает статус процесса обучения модели; это подскажет вам, сколько времени осталось на тренировочный процесс, а также подскажет, когда тренировочный процесс будет завершен.
- Наивысшая точность - показывает точность лучшей модели, найденной на данный момент Построителем моделей. Более высокая точность означает, что модель более правильно предсказывает тестовые данные.
- Лучший алгоритм - показывает, какой алгоритм показал наилучшие результаты в ходе исследования Построителя моделей.
- Последний алгоритм - показывает последний алгоритм, который исследовал Построитель моделей.
Когда процесс обучения завершен, вы можете увидеть сводные результаты, отображающие статус, алгоритм, который дал лучший результат и лучшую точность:
Оценить и закодировать
На следующих 2 шагах вы можете увидеть все опробованные алгоритмы с предоставленными данными и всей статистикой. Итак, вы можете понять, почему ML.NET сделал свой выбор.
Возможно, вы можете попытаться оценить только что созданную модель и, на последнем этапе, щелкнуть Добавить проекты, добавив новые проекты в ваш, которые позволят вам использовать ее в своем приложении.
Добавлены проекты 2. Первый - YourApp.Model, в котором сгенерированная модель сохраняется в формате .zip и генерируются модели ввода, вывода и потребления. Во-вторых, консольное приложение можно использовать для тестирования модели, при желании добавляя новые функции или преобразования (возможно, в следующей истории).
График выше поясняет этап прогнозирования.
Вы также можете использовать этот простой фрагмент кода для использования модели:
Архитектура ML.NET
Приложение ML.NET начинается с объекта MLContext. Этот одноэлементный объект содержит каталоги. Каталог - это фабрика для загрузки и сохранения данных, преобразований, обучающих программ и компонентов операций модели. У каждого объекта каталога есть методы для создания различных типов компонентов. Если вы хотите прочитать официальную документацию, это ссылка https://docs.microsoft.com/it-it/dotnet/machine-learning/how-does-mldotnet-work.
Вывод
ML.NET - отличный инструмент, чтобы кое-что узнать о машинном обучении. Это позволяет вам выбрать, насколько глубоко вы хотите спуститься, и посмотреть, какова длина пещеры белого кролика.
Вот ресурсы, которые я использовал для изучения ML.NET и начал использовать в своих проектах: