歡迎光臨
每天分享高質量文章

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中通過集成高性能的ONNX運行時庫添加了使用激活GPU的CUDA 10.0運行ONNX模型的功能。ONNX模型的GPU支持現在已經可以在Windows 64位系統上使用,不久之後將支持Linux與Mac系統。

新的Visual Studio ML.NET專案模板預覽

Visual Studio專案模板現在推出了支持ML.NET的預覽版本。下載地址

模板涵蓋以下場景:

  • 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(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建構式中提供元資料支持,比如被編碼為元資料的評估指標可以通過代碼解析出來,由此能夠使用任何工具進行可視化。

原文地址:https://www.cnblogs.com/kenwoo/p/10284906.html

赞(0)

分享創造快樂