关于ML.NET v0.7的发布说明

咱们很高兴宣布推出ML.NET 0.7--面向.NET开发人员的最新版本的跨平台和开源机器学习框架(ML.NET 0.1发布于// Build 2018)。此版本侧重于为基于推荐的ML任务提供更好的支持,实现异常检测,加强机器学习管道的可定制性,支持在x86应用程序中使用ML.NET等。ios

本文提供了有关ML.NET 0.7版本中如下主题的详细信息:git

  • 使用Matrix Factorization加强对推荐任务的支持
  • 启用异常检测方案 - 检测异常度
  • 改进了ML管道的可定制性
  • x86支持
  • NimbusML - ML.NET的实验性Python绑定

使用Matrix Factorization加强对推荐任务的支持

 

推荐系统能够为目录,歌曲,电影等中的产品生成推荐列表。咱们经过添加矩阵分解(MF)改进了对在ML.NET中建立推荐系统的支持,当您得到有关用户如何评价目录中项目的数据时,这是推荐的经常使用方法。例如,您可能知道用户如何评价某些电影,并但愿推荐下一部他们可能观看的其余电影。github

咱们将MF添加到ML.NET,由于它一般比Field-Aware Factorization Machines(咱们在ML.NET 0.3中添加明显更快,而且它能够支持连续数字等级(例如1-5星)而不是布尔值的等级(“喜欢”或“不喜欢”)。即便咱们刚刚添加了MF,若是您想利用用户分配给项目的评级以外的其余信息(例如电影类型,电影发布日期,用户我的资料),您可能仍然但愿使用FFM。能够在此处找到对差别的更深刻讨论编程

MF的样品用法可在此处找到该示例是通用的,但您能够想象矩阵行对应于用户,矩阵列对应于电影,矩阵值对应于评级。因为用户仅对目录的一小部分进行了评级,所以该矩阵将很是稀疏。服务器

ML.NET的MF使用LIBMF网络

启用异常检测方案 - 检测异常事件

 

异常检测能够识别异常值或事件。它用于欺诈检测(识别可疑信用卡交易)和服务器监控(识别异常活动)等场景。架构

ML.NET 0.7支持检测两种类型的异常行为:app

  • 棘波检测:棘波归因于输入数据的值临时突变。因为中断,网络攻击,病毒式网络内容等,这些多是异常值。
  • 变化点检测:变化点标记数据行为中更持久的误差的开始。例如,若是产品销售相对一致而且变得更受欢迎(每个月销售额增长一倍),则趋势发生变化时会有一个变化点。

可使用不一样的ML.NET组件在两种类型的数据上检测到这些异常:框架

  • IidSpikeDetectorIidChangePointDetector用于假定来自一个固定分布的数据(每一个数据点独立于先前的数据,例如每一个推文的转发数量)。
  • SsaSpikeDetectorSsaChangePointDetector用于具备季节/趋势组件的数据(可能按时间排序,例如产品销售)

能够在此处找到使用ML.NET异常检测的示例代码机器学习

改进了ML.NET管道的可定制性

 

ML.NET提供各类数据转换(例如处理文本,图像,分类功能等)。可是,某些用例须要特定于应用程序的转换,例如计算两个文本列之间的余弦类似度咱们如今添加了对自定义转换的支持,所以您能够轻松地包含自定义业务逻辑。

CustomMappingEstimator容许您编写本身的方法来处理数据并将它们带入ML.NET管道。这是管道中的样子:

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能够在此处找到更完整的示例

除了x64以外还支持x86

 

有了这个ML.NET版本,您如今能够在x86 / 32位架构设备上训练和使用机器学习模型(目前仅适用于Windows)。之前,ML.NET仅限于x64设备(Windows,Linux和Mac)。
请注意,某些基于外部依赖关系的组件(例如TensorFlow)在x86-Windows中不可用。

NimbusML - ML.NET的实验性Python绑定

Python徽标

NimbusMLML.NET提供实验性的Python绑定。咱们已经看到外部社区和内部团队对使用多种编程语言的反馈。咱们但愿尽量多的人可以从ML.NET中受益,并帮助团队更轻松地协同工做。ML.NET不只使数据科学家可以在Python中训练和使用机器学习模型(也能够在scikit-learn管道中使用组件),并且还能够经过ML.NET保存能够在.NET应用程序中轻松使用的模型。(有关详细信息,请参见此处)。

相关文章
相关标签/搜索