Новый вопрос, который съедает наш мозг: Может ли машина учиться у нас? Кажется, ответ - ДА!

Следуя этой новой тенденции, 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. В Интернете полно наборов данных, которые можно использовать для машинного обучения. Прилагаю только ссылку ниже:

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

Тренироваться

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

Как предлагает 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 и начал использовать в своих проектах: