ML.NET 0.7 (Machine Learning .NET)

Temos o prazer de anunciar o lançamento do ML.NET 0.7, a versão mais recente de um sistema de aprendizado de máquina de plataforma cruzada e código aberto para desenvolvedores .NET (o ML.NET 0.1 foi lançado em // Build 2018 ). Esta versão visa expandir a funcionalidade da plataforma. Mais detalhes sob o corte!



Recomendações de sistema de suporte com fatoração de matriz




Os sistemas de recomendação permitem criar recomendações personalizadas para produtos de catálogo, músicas, filmes etc. Melhoramos o suporte para a criação de sistemas de recomendação no ML.NET adicionando fatoração de matriz (MF). Essa é uma abordagem popular das recomendações quando você pode obter dados sobre como os usuários classificam determinados itens no catálogo. Por exemplo, você pode saber como os usuários classificam determinados filmes. Graças a esse conhecimento, você pode recomendar outros filmes que provavelmente também desejam assistir.

Adicionamos o MF ao ML.NET porque geralmente é significativamente mais rápido que as Máquinas de Fatorização com Reconhecimento de Campo (que adicionamos ao ML.NET 0.3), e pode suportar classificações numéricas (por exemplo, 1 a 5 estrelas) valores binários ("Gostei" ou "não gostei"). Apesar de termos adicionado o MF, você ainda pode usar o FFM se desejar usar outras informações fora da classificação atribuída pelo usuário ao elemento (por exemplo, gênero do filme, data de lançamento do filme, perfil do usuário). Uma discussão mais detalhada das diferenças pode ser encontrada aqui .

Um exemplo do uso de MF pode ser encontrado aqui . Este exemplo é geral, mas você pode imaginar que as linhas da matriz correspondem aos usuários, as colunas da matriz correspondem aos filmes e os valores da matriz correspondem às classificações. Essa matriz é bastante escassa, pois os usuários classificaram apenas um pequeno subconjunto do diretório.

MF ML.NET usa LIBMF .

Cenários de detecção de anomalias - detectar eventos incomuns




A detecção de anomalias permite identificar valores ou eventos incomuns. É usado em cenários como detecção de fraude (detecção de transações suspeitas com cartão de crédito) e monitoramento do servidor (detecção de atividade incomum).

O ML.NET 0.7 detecta dois tipos de comportamento anormal:

  • Detecção de pico: os picos sĂŁo atribuĂ­dos a rajadas temporárias repentinas nos valores de entrada. Estes podem ser discrepantes devido a mau funcionamento, ataques cibernĂ©ticos, conteĂşdo da web viral etc.
  • Detecção de ponto de mudança: os pontos de mudança marcam o inĂ­cio de desvios constantes no comportamento dos dados.

Essas anomalias podem ser detectadas em dois tipos de dados usando diferentes componentes do ML.NET:

  • IidSpikeDetector e IidChangePointDetector sĂŁo usados ​​para dados obtidos de uma distribuição estacionária (cada ponto de dados nĂŁo depende do anterior).
  • SsaSpikeDetector e SsaChangePointDetector sĂŁo usados ​​para dados que possuem componentes de sazonalidade / tendĂŞncia (possivelmente ordenados por tempo, como vendas de produtos).

Código de exemplo usando detecção de anomalia no ML.NET pode ser encontrado aqui .

Personalização aprimorada dos pipelines do ML.NET




O ML.NET oferece muitas transformações de dados (por exemplo, processamento de texto, imagens, funções categóricas, etc.). No entanto, casos de uso específicos requerem conversões específicas. Agora, adicionamos suporte para transformações personalizadas, para que você possa incluir facilmente soluções personalizadas.

CustomMappingEstimator permite criar seus próprios métodos de processamento de dados e adicioná-los ao pipeline do ML.NET. Aqui está como será o pipeline:

var estimator = mlContext.Transforms.CustomMapping<MyInput, MyOutput>(MyLambda.MyAction, "MyLambda") .Append(...) .Append(...) 

Abaixo está uma definição do que esse mapeamento personalizado fará. Neste exemplo, converteremos o rótulo de texto ("spam" ou "presunto") no rótulo lógico (verdadeiro ou falso).

 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; } } 

Um exemplo mais completo de CustomMappingEstimator pode ser encontrado aqui .

Suporte para X86 além de x64




Nesta versão do ML.NET, agora você pode usar modelos de aprendizado de máquina em dispositivos x86 / 32 bits (somente Windows). Anteriormente, o ML.NET era limitado a dispositivos x64 (Windows, Linux e Mac). Observe que alguns componentes baseados em conexões externas (por exemplo, TensorFlow) não estão disponíveis no x86-Windows.

NimbusML - Ligação experimental em Python para ML.NET




O NimbusML fornece ligações experimentais em Python para o ML.NET. Vimos feedback da comunidade externa e das equipes de desenvolvimento interno sobre o uso de várias linguagens de programação. Queríamos que o maior número possível de pessoas usasse o ML.NET.

O ML.NET não apenas permite que os cientistas de dados usem modelos de aprendizado de máquina em Python (com componentes que também podem ser usados ​​em pipelines de aprendizado do scikit), mas também permite salvar modelos que podem ser facilmente usados ​​em aplicativos .NET através do ML.NET (mais veja aqui ).

Se vocĂŞ perdeu: feedback sobre a nova API


O ML.NET 0.6 apresenta um novo conjunto de APIs para o ML.NET que fornece maior flexibilidade. Essas APIs na versão 0.7 e versões futuras ainda estão em desenvolvimento e gostaríamos de receber seus comentários para tornar o sistema ainda melhor.

Deseja participar? Deixe um comentário no ML.NET GitHub !

Recursos Adicionais


  • Aqui estĂŁo os conceitos mais importantes do ML.NET para entender a nova API.
  • VocĂŞ pode encontrar um guia aqui que mostra como usar essas APIs para vários cenários existentes e novos.
  • Um link para a API do ML.NET com toda a documentação da API Ă© fornecido aqui .

Comece já!




Se você ainda não o fez, faça o download do ML.NET aqui . Explore também outros recursos úteis:


Minuto de publicidade


Os caras da AI-Community agora estĂŁo realizando um campeonato on - line em Data Science com um prĂŞmio de 600.000 rublos. Junte-se a nĂłs, o caso pode lhe interessar.

Source: https://habr.com/ru/post/pt429402/


All Articles