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

машинное обучение искусственный интеллект открытый источник Python R

ML.NET — это кроссплатформенная платформа машинного обучения с открытым исходным кодом для разработчиков .NET, представленная Microsoft на конференции Build 2018. ML.NET позволит разработчикам .NET разрабатывать свои собственные модели и интегрировать специализированное машинное обучение в свои приложения без предварительного опыта в разработке или настройке моделей машинного обучения. Требуются значительные усилия, чтобы взять модели, разработанные на языках машинного обучения общего назначения, таких как R и Python, и интегрировать их в корпоративные приложения, написанные на таких языках, как C#. ML.NET устраняет разрыв между экспертами по машинному обучению и разработчиками программного обеспечения, тем самым демократизируя машинное обучение, позволяя людям, не имеющим опыта машинного обучения, создавать и запускать модели. Создав высококачественную платформу машинного обучения для .NET, Microsoft упростила перенос машинного обучения на предприятие (или с помощью мобильных приложений Xamarin). Это способ сделать машинное обучение более удобным.

Какие типы проблем можно решить с помощью ML.NET?

Библиотека, построенная на основе машинного обучения, используемого в течение многих лет в основных продуктах Microsoft, таких как Windows, Bing и Azure, в Microsoft в настоящее время находится в предварительной версии, последняя версия — 0.2. Модели обучения, которые в настоящее время поддерживаются платформой, включают

  • Кластеризация K-средних
  • логистическая регрессия
  • Опорные векторные машины
  • Наивный Байес
  • случайный лес
  • улучшать деревья

Другие технологии, такие как механизмы рекомендаций и обнаружение аномалий, находятся в планах развития. ML.NET в конечном итоге предоставит интерфейсы другим популярным библиотекам машинного обучения, таким как TensorFlow, CNTK и Accord.NET. Наконец, будут усовершенствованы инструменты и язык, включая расширения в Azure и возможности GUI/Visual Studio.

POSTS

Как использовать ML.NET в приложении?

ML.NET начинается сNuGet-пакетыДоступен в форме, которую можно легко установить в новые или существующие приложения .NET.

Фреймворк использует преимущества других библиотек машинного обучения, таких какscikit-learnиApache Spark MLlib)Метод «Конвейер (LearningPipeline)». Данные «проходят» через несколько этапов для получения полезных результатов (например, прогнозов). Типичная сантехника может включать

  1. Скачать данные
  2. Преобразование данных
  3. Извлечение / проектирование функций
  4. Настроить модель обучения
  5. Обучите модель
  6. Используйте обученную модель (например, получайте прогнозы)

Конвейеры предоставляют стандартный API для работы с моделями машинного обучения. Это упрощает переключение модели во время тестирования и экспериментов. Он также разбивает усилия по моделированию на четко определенные шаги, чтобы упростить понимание существующего кода. Библиотека scikit-learn реализует множество алгоритмов машинного обучения, мы можем много ссылаться на scikit-learn:СК Learn.apache-capable.org/capable/0.19.0/i… 

Основные компоненты конвейера машинного обучения ML.NET:

  • Структуры данных ML (например,IDataView,LearningPipeline)

  • TextLoader (загружает данные из текстовых файлов с разделителями вLearningPipeline) и CollectionDataSource для загрузки набора данных из набора объектов

  • Преобразование (чтобы получить данные в правильном формате для обучения):

    • Текст процесса/функции:TextFeaturizer
    • Модификация архитектуры: ,ColumnConcatenator,ColumnSelectorиColumnDropper
    • Использование категориальных признаков:CategoricalOneHotVectorizerиCategoricalHashOneHotVectorizer
    • Обработка недостающих данных:MissingValueHandler
    • фильтр:RowTakeFilter,RowSkipFilter,RowRangeFilter
    • Выбор функции:FeatureSelectorByCountиFeatureSelectorByMutualInformation
  • Алгоритмы обучения (используемые для обучения моделей машинного обучения) используются для различных задач:

    • Бинарная классификация:FastTreeBinaryClassifier,StochasticDualCoordinateAscentBinaryClassifier,AveragedPerceptronBinaryClassifier,BinaryLogisticRegressor,FastForestBinaryClassifier,LinearSvmBinaryClassifierGeneralizedAdditiveModelBinaryClassifier
    • Многоклассовая классификация:StochasticDualCoordinateAscentClassifier,LogisticRegressorNaiveBayesClassifier
    • возвращение:FastTreeRegressor,FastTreeTweedieRegressor,StochasticDualCoordinateAscentRegressor,OrdinaryLeastSquaresRegressor,OnlineGradientDescentRegressor,PoissonRegressorGeneralizedAdditiveModelRegressor
    • 聚类 KMeansPlusPlusClusterer
  • Оценщик (чтобы проверить, насколько хорошо работает модель):

    • Для бинарной классификации:BinaryClassificationEvaluator
    • Для многоклассовой классификации:ClassificationEvaluator
    • Для регрессии:RegressionEvaluator

При построении модели машинного обучения вам сначала нужно определить, чего вы хотите достичь с вашими данными. После этого вы можете выбрать подходящую для вашей ситуации задачу машинного обучения. В следующем списке описаны различные задачи машинного обучения, которые вы можете выбрать, и некоторые распространенные варианты использования. В ML.NET 0.2 была добавлена ​​поддержка возможности загрузки наборов данных из набора объектов, ранее их можно было загружать только из текстовых файлов с разделителями. Еще одним дополнением является перекрестная проверка, которая представляет собой метод проверки производительности моделей машинного обучения. Полезным аспектом подхода перекрестной проверки является то, что он не требует набора данных, отдельного от набора данных, используемого для создания модели. Вместо этого он делит данные, предоставленные несколько раз, на разные наборы данных для обучения и тестирования. ML.NET 0.2 включает образец кода, демонстрирующий, как использовать эту новую платформу вGitHub.com/dot net/Ма Чао….

бинарная классификация

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

  • Если торговый день является восходящим или падающим днем
  • Распознавание рукописных цифр
  • Распознавание речи
  • Идентификация изображения

Для получения дополнительной информации см. Википедию.бинарная классификациястатья.

Мультиклассовая классификация

многомерная классификацияконтролируемое обучение, задача прогнозирования класса (категории) экземпляров данных. Входными данными для алгоритма классификации является набор помеченных примеров. Каждая метка представляет собой целое число от 0 до k-1, где k — количество классов. Результатом алгоритма классификации является классификатор, который можно использовать для прогнозирования класса новых непомеченных экземпляров. Примеры многоклассовых схем классификации включают:

  • Определите породу собаки как «сибирский хаски», «золотистый ретривер», «пудель» и т. д.
  • Понимайте обзоры фильмов как «положительные», «нейтральные» или «отрицательные».
  • Разделите отзывы об отелях на «Расположение», «Цена», «Чистота» и т. д.

Для получения дополнительной информации см. Википедию.Мультиклассовая классификациястатья.

Настройки шага классификации:

INT1

  1. Сначала определите проблему
  2. Затем вы будете представлять свои данные в виде числового атрибута под названием «Функции». Это делается как для обучающих данных, которые уже были классифицированы, так и для тестовых данных, которые необходимо классифицировать в будущем.
  3. Вы возьмете обучающие данные и введете их в алгоритм классификации для обучения модели.
  4. Поместите новые экземпляры, которые необходимо классифицировать, или возьмите тестовые данные и передайте их классификатору для классификации.

кластеризация

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

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

Этапы настройки кластеризации:

INT2

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

возвращение

возвратКонтролируемое машинное обучение, который используется для прогнозирования значения метки на основе набора связанных функций. Метки могут иметь любое реальное значение и не исходить из ограниченного набора значений, как задачи классификации. Алгоритмы регрессии моделируют зависимости меток от связанных с ними функций, чтобы определить, как меняются метки при изменении значений функций. Входными данными для алгоритма регрессии является набор примеров с метками известных значений. Результатом алгоритма регрессии является функция, которую можно использовать для прогнозирования значений меток для любого нового набора входных функций. Примеры сценариев регрессии включают:

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


аномальное обнаружение (вскоре)

Классифицировать (вскоре)

рекомендовать(вскоре)

Приглашаем всех обратить внимание на WeChat opendotnet, имя общедоступной учетной записи WeChat: межплатформенная точка. Веб-сайт сводки статей официального аккаунта http://www.csharpkit.com , Отсканируйте QR-код ниже или добавьте в закладки QR-код ниже, чтобы обратить внимание (нажмите и удерживайте изображение QR-кода ниже и выберите, чтобы идентифицировать QR-код на изображении)