关于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 ...
随机推荐
- 我的BO之强类型
弱类型的缺点 有些程序员对类型比较随意,从前端传来的数据,不管应该是什么类型,都以String接收.然后在什么地方转成应该有的类型则要"看心情",在Controller, Serv ...
- 关于最小生成树,拓扑排序、强连通分量、割点、2-SAT的一点笔记
关于最小生成树,拓扑排序.强连通分量.割点.2-SAT的一点笔记 前言:近期在复习这些东西,就xjb写一点吧.当然以前也写过,但这次偏重不太一样 MST 最小瓶颈路:u到v最大权值最小的路径.在最小生 ...
- SpringInAction学习笔记(一):核心概念
Spring自带了多种应用上下文 AnnotationConfigApplicationContext:从一个或多个java配置类中加载应用上下文 AnnotationConfigWebApplica ...
- BZOJ5335 : [TJOI2018]智力竞赛
二分答案,转化成求最少的路径,覆盖住所有权值$\leq mid$的点. 建立二分图,若$i$的后继为$j$,则连边$i\rightarrow j$,求出最大匹配,则点数减去最大匹配数即为最少需要的路径 ...
- 编程菜鸟的日记-初学尝试编程-C++ Primer Plus 第6章编程练习7
#include <iostream> #include <string> #include <cctype> using namespace std; int m ...
- vue中实现图片全屏缩放预览,支持移动端
# 安装 npm install vue-photo-preview --save # 引入 import preview from 'vue-photo-preview' import 'vue-p ...
- C++ 初步
c++新特性: 1. 初始化方法: 复制初始化 int x=1024; 直接初始化 int x (1024); 2.变量随用随定义 3.增加bool数据类型 输入输出: cout<<x; ...
- 快速搭建react项目骨架(按需加载、redux、axios、项目级目录等等)
一.前言 最近整理了一下项目骨架,顺便自定义了一个脚手架,方便日后使用.我会从头开始,步骤一步步写明白,如果还有不清楚的可以评论区留言.先大致介绍一下这个骨架,我们采用 create-react-ap ...
- 将本地jar包打包到本地仓库和上传到私服
1.本地jar打包到本地仓库 mvn install:install-file -Dfile=jar包完整地址或相对地址 -DgroupId=自定义的groupID -DartifactId=自定义的 ...
- url中文参数乱码问题
1.参数乱码: js: var url = $$pageContextPath + "iecp/ads/heilanAnalogCurve.do?pointCode=" + get ...