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 ? Contribution24.00 ? 27.74 ? RoomsPerDwelling ? ? ? ?6.58 ? ?98.55 ? 39.9521.60 ? 23.85 ? RoomsPerDwelling ? ? ? ?6.42 ? ?98.55 ? 39.0134.70 ? 29.29 ? RoomsPerDwelling ? ? ? ?7.19 ? ?98.55 ? 43.6533.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<InspectedRow>(dataPath, hasHeader: true);private class InspectedRow{[] ? ?public bool IsOver50K { get; set; }[] ? ?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
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的ML.NET 0.9特性简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用logdashboard进行可视化的
- 下一篇: .NET Core 3.0:System