关于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 ...
随机推荐
- Ubuntu安装Hadoop
系统:Ubuntu16.04 JDK:jdk-8u201 Hadoop:3.1.2 一.安装JDK https://www.cnblogs.com/tanrong/p/10641803.html 二. ...
- Nastya Is Buying Lunch
At the big break Nastya came to the school dining room. There are nn pupils in the school, numbered ...
- 手写数字识别 ----卷积神经网络模型官方案例注释(基于Tensorflow,Python)
# 手写数字识别 ----卷积神经网络模型 import os import tensorflow as tf #部分注释来源于 # http://www.cnblogs.com/rgvb178/p/ ...
- 如何快速求解第一类斯特林数--nlog^2n + nlogn
目录 参考资料 前言 暴力 nlog^2n的做法 nlogn的做法 代码 参考资料 百度百科 斯特林数 学习笔记-by zhouzhendong 前言 首先是因为这道题,才去研究了这个玩意:[2019 ...
- 自己制作一个USB自动挖矿器
先讲下设备效果: 对面坐着一位同事中午去吃饭没锁屏幕,这时候你想用他的电脑去挖矿, 挖矿,当然不可能跑到他的座位上,关掉360然后下载个挖矿软件什么的.... 这时候你只需要花十块钱制作如下设备,然后 ...
- BZOJ5412 : circle
若仅保留这$k$个点仍然有环,那么显然无解. 否则设$A$表示这$k$个点的集合,$B$表示剩下的点的集合,因为是竞赛图,每个集合内部的拓扑关系是一条链,方便起见将所有点按照在所在集合的链上的位置进行 ...
- vue的父子组建之间的通信(-),基于props和$emit之间的传递
对于vue而言,以为其核心思想为前端组建化.所以组建之间的通信必不可少. 相信接触过Angularjs的童鞋都知道angularjs的控制器之间的通信机制. 1:父传子:官方的$broadcast() ...
- Go语言基础之函数
Go语言基础之函数 函数是组织好的.可重复使用的.用于执行指定任务的代码块.本文介绍了Go语言中函数的相关内容. 函数 Go语言中支持函数.匿名函数和闭包,并且函数在Go语言中属于“一等公民”. 函数 ...
- Spring中Model、ModelMap及ModelAndView之间的区别
Spring中Model.ModelMap及ModelAndView之间的区别 1. Model(org.springframework.ui.Model)Model是一个接口,包含addAttr ...
- promise的异步链式调用
场景: 淘米 干净的米下锅 蒸米饭 吃米饭 ;这几个步骤是一个接着一个执行, 也就是只有前面的做完后, 才会去做后面的. 并且每一步都需要用一部分时间去执行. function deal(ta ...