我们很高兴地宣布发布ML.NET 0.7,这是面向.NET开发人员的最新版本的跨平台和开源机器学习系统(
ML.NET 0.1已在// Build 2018上发布 )。 此版本旨在扩展平台的功能。 削减更多细节!

矩阵分解支持系统的建议

推荐系统允许您为目录产品,歌曲,电影等创建个性化推荐。 通过添加矩阵分解(MF),我们改善了对在ML.NET中创建推荐系统的支持。 当您可以获得有关用户如何评价目录中某些项目的数据时,这是一种推荐的流行方法。 例如,您可能知道用户如何评价某些电影。 有了这些知识,您就可以推荐他们可能也想看的其他电影。
我们将MF添加到ML.NET中是因为它通常比Field-Aware Factorization Machines(我们添加到ML.NET 0.3中)要快得多,并且它可以支持数字等级(例如1-5星)。二进制值(“喜欢”或“不喜欢”)。 尽管我们添加了MF,但如果要使用用户分配给元素的分级之外的其他信息(例如,电影体裁,电影发行日期,用户个人资料),仍然可以使用FFM。 有关差异的更详细讨论可以在
这里找到。
在
此处可以找到使用MF的示例。 此示例是常规示例,但您可以想象矩阵行对应于用户,矩阵列对应于影片,矩阵值对应于等级。 由于用户仅对目录的一小部分进行评分,因此该矩阵相当稀缺。
MF ML.NET使用
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实验绑定。 我们已经看到来自外部社区和内部开发团队的关于使用几种编程语言的反馈。 我们希望尽可能多的人使用ML.NET。
ML.NET不仅允许数据科学家在Python中使用机器学习模型(其组件也可以在
scikit-learn管道中使用),而且还允许您保存可以通过ML.NET在.NET应用程序中轻松使用的模型(更多信息)看到
这里 )。
如果您错过了:有关新API的反馈
ML.NET 0.6引入了一套新的ML.NET API,从而提供了更大的灵活性。 这些API在版本0.7和以后的版本中仍在发展中,我们希望收到您的反馈,以使系统变得更好。
想参加吗? 在
ML.NET GitHub上
发表评论!
其他资源
- 这是理解新API的最重要的ML.NET概念。
- 您可以在此处找到指南,该指南显示了如何在各种现有和新方案中使用这些API。
- 此处提供了指向ML.NET API以及所有API文档的链接。
开始吧!

如果尚未这样做,
请在此处下载
ML.NET 。 还探索其他有用的资源:
分钟广告
来自AI-Community的小伙子们现在
在Data Science举办了
在线锦标赛,奖池达到60万卢布。 加入我们,这个案例可能会让您感兴趣。