ML.NET 0.7 (Machine Learning .NET)

Nos complace anunciar el lanzamiento de ML.NET 0.7, la última versión de un sistema de aprendizaje automático multiplataforma y de código abierto para desarrolladores de .NET ( ML.NET 0.1 se lanzó en // Build 2018 ). Esta versión tiene como objetivo ampliar la funcionalidad de la plataforma. Más detalles debajo del corte!



Apoye las recomendaciones del sistema con la factorización matricial




Los sistemas de recomendación le permiten crear recomendaciones personalizadas para productos de catálogo, canciones, películas, etc. Hemos mejorado el soporte para crear sistemas de recomendación en ML.NET agregando la factorización de matriz (MF). Este es un enfoque popular para las recomendaciones cuando puede obtener datos sobre cómo los usuarios califican ciertos artículos en el catálogo. Por ejemplo, puede saber cómo los usuarios califican ciertas películas. Gracias a este conocimiento, puede recomendar otras películas que probablemente también quieran ver.

Agregamos MF a ML.NET porque a menudo es significativamente más rápido que las máquinas de factorización de campo (que agregamos a ML.NET 0.3), y puede admitir calificaciones que son numéricas (por ejemplo, 1-5 estrellas) valores binarios ("Me gusta" o "no me gusta"). A pesar del hecho de que agregamos MF, todavía puede usar FFM si desea usar otra información fuera de la calificación que el usuario asigna al elemento (por ejemplo, género de película, fecha de lanzamiento de la película, perfil de usuario). Una discusión más detallada de las diferencias se puede encontrar aquí .

Un ejemplo de uso de MF se puede encontrar aquí . Este ejemplo es general, pero puede imaginar que las filas de la matriz corresponden a los usuarios, las columnas de la matriz corresponden a las películas y los valores de la matriz corresponden a las calificaciones. Esta matriz es bastante escasa ya que los usuarios calificaron solo un pequeño subconjunto del directorio.

MF ML.NET usa LIBMF .

Escenarios de detección de anomalías: detecte eventos inusuales




La detección de anomalías le permite identificar valores o eventos inusuales. Se utiliza en escenarios como la detección de fraude (detección de transacciones sospechosas con tarjeta de crédito) y el monitoreo del servidor (detección de actividad inusual).

ML.NET 0.7 detecta dos tipos de comportamiento anormal:

  • Detección de picos: los picos se atribuyen a explosiones temporales repentinas en los valores de entrada. Estos pueden ser valores atípicos debido a un mal funcionamiento, ataques cibernéticos, contenido web viral, etc.
  • Detección de punto de cambio: los puntos de cambio marcan el comienzo de desviaciones constantes en el comportamiento de los datos.

Estas anomalías se pueden detectar en dos tipos de datos utilizando diferentes componentes de ML.NET:

  • IidSpikeDetector e IidChangePointDetector se utilizan para datos tomados de una distribución estacionaria (cada punto de datos no depende del anterior).
  • SsaSpikeDetector y SsaChangePointDetector se usan para datos que tienen componentes de estacionalidad / tendencia (posiblemente ordenados por tiempo, como ventas de productos).

El código de muestra que usa la detección de anomalías en ML.NET se puede encontrar aquí .

Personalización mejorada de las tuberías de ML.NET




ML.NET ofrece muchas transformaciones de datos (por ejemplo, procesamiento de texto, imágenes, funciones categóricas, etc.). Sin embargo, los casos de uso específicos requieren conversiones específicas. Ahora hemos agregado soporte para transformaciones personalizadas para que pueda incluir fácilmente soluciones personalizadas.

CustomMappingEstimator le permite crear sus propios métodos de procesamiento de datos y agregarlos a la tubería de ML.NET. Así es como se verá en la tubería:

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

A continuación se muestra una definición de lo que hará esta asignación personalizada. En este ejemplo, convertiremos la etiqueta de texto ("spam" o "ham") a la etiqueta lógica (verdadero o 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; } } 

Un ejemplo más completo de CustomMappingEstimator se puede encontrar aquí .

Soporte X86 además de x64




En esta versión de ML.NET, ahora puede usar modelos de aprendizaje automático en dispositivos x86 / 32-bit (solo Windows). Anteriormente, ML.NET estaba limitado a dispositivos x64 (Windows, Linux y Mac). Tenga en cuenta que algunos componentes basados ​​en conexiones externas (por ejemplo, TensorFlow) no están disponibles en x86-Windows.

NimbusML - Enlace experimental de Python para ML.NET




NimbusML proporciona enlaces experimentales de Python para ML.NET. Hemos visto comentarios de la comunidad externa y los equipos internos de desarrollo con respecto al uso de varios lenguajes de programación. Queríamos que tantas personas como fuera posible pudieran usar ML.NET.

ML.NET no solo permite a los científicos de datos usar modelos de aprendizaje automático en Python (con componentes que también se pueden usar en tuberías de aprendizaje de scikit ), sino que también le permite guardar modelos que se pueden usar fácilmente en aplicaciones .NET a través de ML.NET (más ver aquí ).

Si te lo perdiste: comentarios sobre la nueva API


ML.NET 0.6 presenta un nuevo conjunto de API para ML.NET que proporciona una mayor flexibilidad. Estas API en la versión 0.7 y versiones futuras aún están en desarrollo, y nos gustaría recibir sus comentarios para mejorar aún más el sistema.

¿Quieres asistir? Deja un comentario en ML.NET GitHub !

Recursos Adicionales


  • Estos son los conceptos más importantes de ML.NET para comprender la nueva API.
  • Puede encontrar una guía aquí que muestra cómo usar estas API para varios escenarios existentes y nuevos.
  • Aquí se proporciona un enlace a la API de ML.NET con toda la documentación de la API.

¡Comienza!




Si aún no lo ha hecho, descargue ML.NET aquí . También explore otros recursos útiles:


Publicidad minuciosa


Los muchachos de AI-Community ahora están celebrando un campeonato en línea en Data Science con un premio de 600,000 rublos. Únase a nosotros, el caso puede interesarle.

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


All Articles