关于ML.NET v0.7的发布说明
我们很高兴宣布推出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的发布说明的更多相关文章
- 关于ML.NET v0.8的发布说明
ML.NET允许您创建和使用针对场景的机器学习模型,以实现常见任务,如情绪分析,问题分类,预测,推荐,欺诈检测,图像分类等.您可以使用ML.NET示例在GitHub仓库中查看这些常见任务 .ML.NE ...
- 关于ML.NET v0.6的发布说明
ML.NET 0.6版本提供了几项令人兴奋的新增功能: 用于构建和使用机器学习模型的新API 我们主要关注的是发布用于构建和使用模型的新ML.NET API的第一次迭代.这些新的,更灵活的API支持新 ...
- 关于ML.NET v0.5的发布说明
适逢.NET Conf 2018举办,ML.NET v0.5也正式宣布发布了.作为面向.NET开发人员的跨平台开源机器学习框架,新的预览版本在不断演变,每次发布除了有新的功能添加,API也会进行调整, ...
- jQuery WeUI V0.4.2 发布
http://www.oschina.net/news/71590/jquery-weui-v0-4-2 jQuery WeUI V0.4.2 发布了! jQuery WeUI 中使用的是官方WeUI ...
- [译]基于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没有新功能.它只是升级到 ...
- 关于ML.NET v1.0 的发布说明
今天,我们很高兴宣布发布 ML.NET 1.0.ML.NET 是一个免费的.跨平台的开源机器学习框架,旨在将机器学习(ML)的强大功能引入.NET 应用程序. ML.NET GitHub:https: ...
- Visual Studio Code v0.9.1 发布
微软的跨平台编辑器 Visual Studio Code v0.9.1 已经发布,官方博客上发布文章Visual Studio Code – October Update (0.9.1):http:/ ...
- 轻量级模块化开发框架 Hasor 核心模块 v0.0.2 发布
首先引用Wiki的介绍一下Hasor: “Hasor是一款开源框架.它是为了解决企业模块化开发中复杂性而创建的.Hasor遵循简单的依赖.单一职责,在开发多模块企业项目中更加有调理.然 而Ha ...
- LAL v0.32.0发布,更好的支持纯视频流
Go语言流媒体开源项目 LAL 今天发布了v0.32.0版本.距离上个版本刚好一个月时间,LAL 依然保持着高效迭代的状态. LAL 项目地址:https://github.com/q19120177 ...
随机推荐
- 20165319 Exp1 PC平台逆向破解
本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getShell,会返 ...
- Linux 体系结构
Linux 体系结构 Linux 嵌入式系统的组成 层次结构图 bios 1.硬件检测 2.初始化系统设备 3.装入os 4.调os向硬件发出的指令 bsp 板级支持包 硬件相关 开发板原理图 开 ...
- matplotlia应用
一.简单使用 使用函数 plt.polt(x,y,label,color,width) 根据x,y 数组 绘制直,曲线 import numpy as np #引用numpy库,从新命名它为np(以后 ...
- Python-list,字典,Tuple
list:用[]包围,逗号隔开如:l = [1,2,3] 其他用法:li = ["a" ,"b" , "c", "d"] ...
- C++ 用变量定义数组
较早的编译器是不同意这样做的,所以一些书籍比方以Tc解说的书本都说数组的下标不能是变量.在vc6.0下亦是如此. 只是在一些较新的编译器如dev c++已经支持了,例如以下代码不会报错 #includ ...
- 操作redis数据库 & 操作Excel & 开发接口
操作redis数据库: string类型 1. 增 set,传俩个参数 key value(只要是字符串就行)2. 删 delete 传一个参数 key3. 修改 set 在目标key重新传参 key ...
- Linux系统下,在文件中查找某个字符串
在normal模式下按下/即可进入查找模式,输入要查找的字符串并按下回车. Vim会跳转到第一个匹配.按下n查找下一个,按下N查找上一个. Vim查找支持正则表达式,例如/vim$匹配行尾的" ...
- h5唤起APP并检查是否成功
// 检查app是否打开 function checkOpen(cb) { const clickTime = +(new Date()); function check(elsTime) { if ...
- node07
---恢复内容开始--- 1.SQL基本查询语句 2.子句 1)WHERE 子句 WHERE key=val WHERE key>val WHERE key1>val1 AND key2& ...
- Centos7 编译安装 Nginx Mariadb Asp.net Core2 (实测 笔记 Centos 7.3 + Openssl 1.1.0h + Mariadb 10.3.7 + Nginx 1.14.0 + Asp.net. Core 2 )
环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1611.iso 安装步骤: 1.准备 1.0 查看硬 ...