皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

ML.NET 0.7 发布,微软开源的跨平台机器学习框架

微软发布了 ML.NET 0.7,此版本侧重于为基于推荐的机器学习任务提供更好的支持,主要实现了异常检测、增强了机器学习 pipeline 的可定制性,并且支持在 x86 应用程序中使用等。

ML.NET 是一个跨平台的机器学习框架,旨在让 .NET 开发者更快上手机器学习,它允许 .NET 开发者开发他们自己的模型,并将自定义 ML 注入到应用程序中。

0.7 主要更新内容:

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

推荐系统可以为目录、歌曲、电影等中的产品生成推荐列表,通过添加矩阵分解(Matrix Factorization,MF)改进了对在 ML.NET 中创建推荐系统的支持。MF 通常情况下比 ML.NET 0.3 中引入的 Field-Aware Factorization Machines 明显更快,并且它可以支持连续数字等级(例如 1-5 星)而不是布尔值的等级(“喜欢”或“不喜欢”)。

启用异常检测方案

异常检测用于欺诈检测(识别可疑信用卡交易)和服务器监控(识别异常活动)等场景。

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

  • Spike detection:监测由于中断、网络攻击、病毒式网络内容等异常引起的突发且临时性的输入数据值。
  • Change point detection:监测某一数据行为产生持久偏差的最初节点,例如,如果产品销售在某一段时间变得更受欢迎(每月销售额增加一倍),那么这个趋势发生变化时会在最开始有一个转折点。

改进了 ML.NET pipeline 的可定制性

ML.NET 提供各种数据转换(例如处理文本、图像、分类特征等)。但是,某些用例需要特定于应用程序的转换,例如计算两个文本列之间的余弦相似度。0.7 中添加了对自定义转换的支持,可以轻松地包含自定义业务逻辑。

CustomMappingEstimator 用于编写自己的方法以处理数据并将它们带入 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;
    }
}

支持 x86

ML.NET 此前仅限于 x64 设备,0.7 将其引入了 x86 32 位设备,不过需要注意,某些基于外部依赖项的组件(例如 TensorFlow)在 x86 中将不可用。

详情见发布公告
转自 https://www.oschina.net/news/101658/mldotnet-0-7-released