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

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

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

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

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

我们将MF添加到ML.NET,因为它通常比Field-Aware Factorization Machines(我们在ML.NET 0.3中添加)明显更快,并且它可以支持连续数字等级(例如1-5星)而不是布尔值的等级(“喜欢”或“不喜欢”)。即使我们刚刚添加了MF,如果您想利用用户分配给项目的评级之外的其他信息(例如电影类型,电影发布日期,用户个人资料),您可能仍然希望使用FFM。可以在此处找到对差异的更深入讨论。

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

ML.NET的MF使用LIBMF。

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

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

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

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

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

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

可以在此处找到使用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绑定

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

关于ML.NET v0.7的发布说明的更多相关文章

  1. 关于ML.NET v0.8的发布说明

    ML.NET允许您创建和使用针对场景的机器学习模型,以实现常见任务,如情绪分析,问题分类,预测,推荐,欺诈检测,图像分类等.您可以使用ML.NET示例在GitHub仓库中查看这些常见任务 .ML.NE ...

  2. 关于ML.NET v0.6的发布说明

    ML.NET 0.6版本提供了几项令人兴奋的新增功能: 用于构建和使用机器学习模型的新API 我们主要关注的是发布用于构建和使用模型的新ML.NET API的第一次迭代.这些新的,更灵活的API支持新 ...

  3. 关于ML.NET v0.5的发布说明

    适逢.NET Conf 2018举办,ML.NET v0.5也正式宣布发布了.作为面向.NET开发人员的跨平台开源机器学习框架,新的预览版本在不断演变,每次发布除了有新的功能添加,API也会进行调整, ...

  4. jQuery WeUI V0.4.2 发布

    http://www.oschina.net/news/71590/jquery-weui-v0-4-2 jQuery WeUI V0.4.2 发布了! jQuery WeUI 中使用的是官方WeUI ...

  5. [译]基于ASP.NET Core 3.0的ABP v0.21已发布

    基于ASP.NET Core 3.0的ABP v0.21已发布 在微软发布仅仅一个小时后, 基于ASP.NET Core 3.0的ABP v0.21也紧跟着发布了. v0.21没有新功能.它只是升级到 ...

  6. 关于ML.NET v1.0 的发布说明

    今天,我们很高兴宣布发布 ML.NET 1.0.ML.NET 是一个免费的.跨平台的开源机器学习框架,旨在将机器学习(ML)的强大功能引入.NET 应用程序. ML.NET GitHub:https: ...

  7. Visual Studio Code v0.9.1 发布

    微软的跨平台编辑器 Visual Studio Code v0.9.1 已经发布,官方博客上发布文章Visual Studio Code – October Update (0.9.1):http:/ ...

  8. 轻量级模块化开发框架 Hasor 核心模块 v0.0.2 发布

    首先引用Wiki的介绍一下Hasor:     “Hasor是一款开源框架.它是为了解决企业模块化开发中复杂性而创建的.Hasor遵循简单的依赖.单一职责,在开发多模块企业项目中更加有调理.然 而Ha ...

  9. LAL v0.32.0发布,更好的支持纯视频流

    Go语言流媒体开源项目 LAL 今天发布了v0.32.0版本.距离上个版本刚好一个月时间,LAL 依然保持着高效迭代的状态. LAL 项目地址:https://github.com/q19120177 ...

随机推荐

  1. 分布式缓存技术之Redis_Redis集群连接及底层源码分析

    目录 1. Jedis 单点连接 2. Jedis 基于sentinel连接 基本使用 源码分析 本次源码分析基于: jedis-3.0.1 1. Jedis 单点连接   当是单点服务时,Java ...

  2. Vue生命周期,面试常见问题

    一.对于MVVM的理解? MVVM 是 Model-View-ViewModel 的缩写.Model代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑.View 代表UI 组件,它负责将数 ...

  3. 日常报错记录2: MyBatis:DEBUG [main] - Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.------------ Cause: java.lang.NoSuchMethodException: com.offcn.dao.ShopDao.<init>()

     直接上干货:  报错归纳1: DEBUG [main] - Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4 ...

  4. 升级android studio 3.4需要注意n事项

    1.在AS版本升级前建议关闭AS代理,以及关闭本地的一些代理工具,不然点击更新的时候会提示Connection failed (Read timed out). Please check networ ...

  5. 计蒜客 踏青 dfs

    题目: https://www.jisuanke.com/course/2291/182234 思路: 紫书P163联通块问题. 1.遍历所有块,找到草地,判断合法性,合法其id值加一,最后加出来的i ...

  6. 一年前的很水的渣网页(第一次html试水)

    <!doctype html> <html lang="zh-cn"> <base target="_blank" /> & ...

  7. APIO2017总结

    T1爆零,T2四分,实力滚粗,OI再见. 四年亚太,回到起点,辣鸡捆绑,毁我青春.

  8. 英语知识积累-D01-body+animal

    My body What's your name? Here are lots of children playing. Are they happy or sad? Who's waving at ...

  9. 我的 FPGA 学习历程(10)—— 实验:数码管驱动

    根据黑金 AX301 手册,数码管位选信号命名为 SEL[5:0],其中 SEL[5] 对应最左边的数码管,而SEL[0] 对应最右边数码管:作为约定,在下面的描述中我们对应的称之为数码管 5 和数码 ...

  10. 从Excel导数据到MySQL速度优化

    运行环境: Windows10 和 Deepin15.7, MySQL14.4, Java1.8.0_181使用工具: poi,JDBC数据规模: 35万条,5个文件夹,146个Excel文件(.xl ...