温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ML.NET 0.9的特性有哪些

发布时间:2021-11-22 17:47:31 来源:亿速云 阅读:158 作者:柒染 栏目:大数据

本篇文章给大家分享的是有关ML.NET 0.9的特性有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

ML.NET 0.9已于上周发布,距离上次0.8版本的发布只有一个多月,此次增加的新特性主要包括特征贡献计算,模型可解释性增强,ONNX转换对GPU的支持,Visual Studio ML.NET项目模板预览,以及API改进。

特征贡献计算

特征贡献计算(Feature Contribution Calculation)通过决定每个特征对模型分数的贡献,从而显示哪些特征在对特别个体的数据样本的模型预测最有影响力。

当你面临历史数据中有许多特征时而又想选择使用最重要的特征时,特征贡献计算显得十分重要。因为使用太多的特征(尤其是包含对模型没有影响的特征)会减少模型的性能与准确性。因此,使用特征贡献计算你可以从原始特征集中识别最有影响力的正向与负向的贡献。

示例代码:

// 创建特征贡献计算器
// 对已有训练模型参数的所有特征进行计算贡献
var featureContributionCalculator = mlContext.Model.Explainability.FeatureContributionCalculation(model.Model, model.FeatureColumn, numPositiveContributions: 11, normalize: false);
// FeatureContributionCalculatingEstimator可被用作管道中的一个步骤
// 被FeatureContributionCalculatingEstimator保存的特征将在FeatureContribution列中
var pipeline = mlContext.Model.Explainability.FeatureContributionCalculation(model.Model, model.FeatureColumn, numPositiveContributions: 11)    .Append(mlContext.Regression.Trainers.OrdinaryLeastSquares(featureColumn: "FeatureContributions"));

输出结果可下:

The output of the above code is:

  Label   Score   BiggestFeature         Value   Weight   Contribution

  24.00   27.74   RoomsPerDwelling        6.58    98.55   39.95
  21.60   23.85   RoomsPerDwelling        6.42    98.55   39.01
  34.70   29.29   RoomsPerDwelling        7.19    98.55   43.65
  33.40   27.17   RoomsPerDwelling        7.00    98.55   42.52

对于特征选取的模型可解释性的增强

除了特征贡献计算之外,排列特征重要性(PFI)与广义加性模型(GAM)也有加强。

  • 排列特征重要性支持大多数学习任务:回归,二元分类,多元分类与排序。

  • 排列特征重要性允许你在特征重要性分数上计算置信区间,以便可以得到更好的平均值估计。

  • 广义加性模型支持特征贡献计算,以便你可以迅速看到哪些特征驱动个体的预测。

增加对ONNX转换的GPU支持

ML.NET 0.9的特性有哪些

在ML.NET 0.9中通过集成高性能的ONNX运行时库添加了使用激活GPU的CUDA 10.0运行ONNX模型的功能。ONNX模型的GPU支持现在已经可以在Windows 64位系统上使用,不久之后将支持Linux与Mac系统。

新的Visual Studio ML.NET项目模板预览

Visual Studio项目模板现在推出了支持ML.NET的预览版本。下载地址

ML.NET 0.9的特性有哪些

模板涵盖以下场景:

  • ML.NET控制台应用程序

  • ML.NET模型类库

其它API的改进

简化文本数据加载

ML.NET 0.9以前你需要显示的标明列名:

var mlContext = new MLContext();var reader = mlContext.Data.CreateTextReader(new[] {        new TextLoader.Column("IsOver50K", DataKind.BL, 0),        new TextLoader.Column("Workclass", DataKind.TX, 1)
    },hasHeader: true);var dataView = reader.Read(dataPath);

现在你可以直接使用泛型:

var mlContext = new MLContext();var dataView = mlContext.Data.ReadFromTextFile<InspectedRow>(dataPath, hasHeader: true);private class InspectedRow{
    [LoadColumn(0)]    public bool IsOver50K { get; set; }
    [LoadColumn(1)]    public string Workclass { get; set; }
}

获取预测置信因子

通过Calibrator Estimators,除了在评估模型质量时可以获得分数列之外,还可以得到置信因子。

例如,你可以获得每个预测值的概率:

Score - 0.458968    Probability 0.4670409
Score - 0.7022135   Probability 0.3912723
Score 1.138822      Probability 0.8703266

新的键-值匹配估测器及转换

新特性替换了TermLookupTransform,同时提供了指定值之间匹配的新方法。你可以指定键列与值列的匹配关系,但需保证两者数量一致。

其它的改进与变化

  • 允许ML.NET在Windows Nano容器及Windows机器上运行,而无需安装Visual C++运行时。

  • 在包含模型信息的DataView构造器中提供元数据支持,比如被编码为元数据的评估指标可以通过代码解析出来,由此能够使用任何工具进行可视化。

以上就是ML.NET 0.9的特性有哪些,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI