- PVSM.RU - https://www.pvsm.ru -
Мы рады объявить о выпуске ML.NET 0.7 — последней версии кросс-платформенной и open source системы машинного обучения для разработчиков .NET (ML.NET 0.1 был выпущен на //Build 2018 [1]). Этот релиз направлен на расширение функциональности платформы. Подробнее под катом!
Рекомендательные системы позволяют создавать персонифицированные рекомендации для продуктов в каталоге, песен, фильмов и т.д. Мы улучшили поддержку создания систем рекомендаций в ML.NET, добавив Matrix factorization (MF). Это — популярный подход к рекомендациям, когда можно получить данные о том, как пользователи оценивают те или иные элементы в каталоге. Например, вы можете знать, как пользователи оценивают некоторые фильмы. Благодаря этим знаниям можно порекомендовать другие фильмы, которые они, вероятно, тоже захотят посмотреть.
Мы добавили MF в ML.NET, потому что он часто значительно быстрее, чем Field-Aware Factorization Machines (которые мы добавили в ML.NET 0.3), и он может поддерживать рейтинги, которые являются численными (например, 1-5 звезд) вместо бинарных значений («Понравилось» или «не понравилось»). Несмотря на то, что мы добавили MF, вы все равно можете использовать FFM, если хотите использовать другую информацию за пределами рейтинга, который пользователь присваивает элементу (например, жанр фильма, дата выпуска фильма, профиль пользователя). Более подробное обсуждение различий можно найти здесь [2].
Пример использования MF можно найти здесь [3]. Этот пример является общим, но вы можете себе представить, что строки матрицы соответствуют пользователям, столбцы матрицы соответствуют фильмам, а значения матриц соответствуют рейтингам. Эта матрица довольно скудна, поскольку пользователи оценивали только небольшое подмножество каталога.
MF ML.NET использует LIBMF [4].
Обнаружение аномалий [5] позволяет идентифицировать необычные значения или события. Он используется в таких сценариях, как обнаружение мошенничества (выявление подозрительных транзакций по кредитным картам) и мониторинг сервера (выявление необычной активности).
ML.NET 0.7 позволяет обнаруживать два типа аномального поведения:
Эти аномалии могут быть обнаружены на двух типах данных с использованием разных компонентов ML.NET:
Пример кода с использованием обнаружения аномалии в ML.NET можно найти здесь [6].
ML.NET предлагает множество преобразований данных (например, обработку текста, изображений, категориальных функций и т.д.). Однако для некоторых случаев использования требуются специфичные преобразования. Теперь мы добавили поддержку пользовательских преобразований, чтобы вы могли легко включать кастомные решения.
CustomMappingEstimator позволяет вам создавать собственные методы обработки данных и вносить их в pipeline ML.NET. Вот что он будет выглядеть в pipeline:
var estimator = mlContext.Transforms.CustomMapping<MyInput, MyOutput>(MyLambda.MyAction, "MyLambda")
.Append(...)
.Append(...)
Ниже приведено определение того, что будет делать этот кастомный маппинг. В этом примере мы преобразуем текстовую метку («spam» или «ham») в логическую метку (true или false).
public class MyInput
{
public string Label { get; set; }
}
public class MyOutput
{
public bool Label { get; set; }
}
public class MyLambda
{
[Export("MyLambda")]
public ITransformer MyTransformer => ML.Transforms.CustomMappingTransformer<MyInput, MyOutput>(MyAction, "MyLambda");
[Import]
public MLContext ML { get; set; }
public static void MyAction(MyInput input, MyOutput output)
{
output.Label= input.Label == "spam" ? true : false;
}
}
Более полный пример CustomMappingEstimator можно найти здесь [7].
В этом выпуске ML.NET теперь вы можете использовать модели машинного обучения на устройствах с архитектурой x86/32-бит (только для Windows). Ранее ML.NET ограничивался устройствами x64 (Windows, Linux и Mac). Обратите внимание, что некоторые компоненты, основанные на внешних связях (например, TensorFlow), недоступны в x86-Windows.
NimbusML предоставляет экспериментальные привязки Python для ML.NET. Мы видели обратную связь от внешнего сообщества и внутренних команд разработки относительно использования нескольких языков программирования. Мы хотели, чтобы как можно больше людей могли использовать ML.NET.
ML.NET не только позволяет дата-сайнтистам использовать модели машинного обучения в Python (с компонентами, которые также могут использоваться в scikit-learn [9] pipelines), но также позволяет сохранять модели, которые можно легко использовать в приложениях .NET через ML.NET (подробнее см. здесь [10]).
В ML.NET 0.6 появился новый набор API для ML.NET, который обеспечивает повышенную гибкость. Эти API в версии 0.7 и последующих версий все еще развиваются, и мы хотели бы получить ваши отзывы для того чтобы сделать систему еще лучше.
Хотите принять участие? Оставьте отзыв на ML.NET GitHub [11]!
Если вы еще этого не сделали, скачайте ML.NET здесь [15]. А также исследуйте другие полезные ресурсы:
Автор: sahsAGU
Источник [18]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/298823
Ссылки в тексте:
[1] ML.NET 0.1 был выпущен на //Build 2018: https://blogs.msdn.microsoft.com/dotnet/2018/05/07/introducing-ml-net-cross-platform-proven-and-open-source-machine-learning-framework/
[2] здесь: https://www.csie.ntu.edu.tw/~cjlin/talks/recsys.pdf
[3] здесь: https://github.com/dotnet/machinelearning/blob/d68388a1c9994a5b429b194b64b2b0782834cb78/docs/samples/Microsoft.ML.Samples/Dynamic/MatrixFactorization.cs
[4] LIBMF: https://github.com/cjlin1/libmf
[5] Обнаружение аномалий: https://en.wikipedia.org/wiki/Anomaly_detection
[6] здесь: https://github.com/dotnet/machinelearning/blob/7fb76b026d0035d6da4d0b46bd3f2a6e3c0ce3f1/test/Microsoft.ML.TimeSeries.Tests/TimeSeriesDirectApi.cs
[7] здесь: https://github.com/dotnet/machinelearning/blob/d68388a1c9994a5b429b194b64b2b0782834cb78/test/Microsoft.ML.Tests/Transformers/CustomMappingTests.cs#L55
[8] NimbusML : https://github.com/microsoft/nimbusml
[9] scikit-learn: http://scikit-learn.org/stable/
[10] здесь: https://docs.microsoft.com/en-us/nimbusml/loadsavemodels
[11] ML.NET GitHub: https://github.com/dotnet/machinelearning/issues
[12] Здесь : https://docs.microsoft.com/en-us/dotnet/machine-learning/basic-concepts-model-training-in-mldotnet
[13] Здесь : https://docs.microsoft.com/en-us/dotnet/machine-learning/how-to-guides/
[14] здесь: https://docs.microsoft.com/en-us/dotnet/api/?view=ml-dotnet
[15] ML.NET здесь: https://www.microsoft.com/net/learn/apps/machine-learning-and-ai/ml-dotnet/get-started
[16] Microsoft Docs: https://docs.microsoft.com/en-us/dotnet/machine-learning/
[17] Примеры кода: https://github.com/dotnet/machinelearning-samples
[18] Источник: https://habr.com/post/429402/?utm_campaign=429402
Нажмите здесь для печати.