.NET開發人員如何開始使用ML.NET


隨着谷歌,Facebook發布他們的工具機器學習工具Tensorflow 2和PyTorch ,微軟的CNTK 2.7之后不再繼續更新(https://docs.microsoft.com/zh-cn/cognitive-toolkit/releasenotes/cntk_2_7_release_notes),Build 2019 微軟也發布了ML.NET 1.0 ,這是一個面向機器學習開發者的新框架。可以說2019年是機器學習社區普及化的一年,所有的這些發布清楚地表明了IT行業的發展方向。從數據集改進模型到新的模型更新,以及優化硬件。

ML.NET一直在微軟的研究部門的工作。這些創新已經用於他們自己的產品,如Windows Defender,Microsoft Office(Powerpoint設計理念,Excel圖表推薦),Azure機器學習,PowerBI。 ML.NET旨在提供終端工作流程,以便在機器學習(預處理,特征工程,建模,評估和操作)的各個步驟中將ML用於.NET應用程序。

ML.NET 1.0提供以下關鍵組件:

  • 數據表示
  • 機器學習任務(分類,回歸,異常檢測等)
  • 數據特征工程

機器學習模型應該讓分析師的生活更輕松,現在甚至可以構建這些模型,因為新框架的設計考慮了AutoML。除了通常的機器學習任務外,ML.NET還支持AutoML。

對於機器學習初學者,Microsoft開發人員建議從Visual Studio中的ML.NET模型構建器和任何平台上的ML.NET CLI開始。對於可以隨時構建模型的場景,AutoML API也非常方便。

使用ML.NET模型構建器,只需右鍵單擊即可向應用程序添加機器學習。

image

資料來源:微軟

在命令行使用ML.NET

還引入了另一個工具ML.NET CLI(命令行工具),它允許使用AutoML和ML.NET生成ML.NET模型。ML.NET CLI快速遍歷特定ML任務的數據集(目前支持回歸和分類)並生成最佳模型。

CLI除了生成最佳模型外,還允許用戶為最佳性能模型生成模型訓練和 消費模型代碼。

ML.NET CLI是跨平台的,是.NET CLI 的全局工具。Visual Studio擴展ML.NET Model Builder 還使用ML.NET CLI提供模型構建器功能。

安裝ML.NET CLI:

dotnet tool install -g mlnet

這是使用回歸預測出租車票價的代碼

加載數據集

IDataView trainingDataView = mlContext.Data.LoadFromTextFile(TrainDataPath, hasHeader: true);

IDataView testDataView = mlContext.Data.LoadFromTextFile(TestDataPath, hasHeader: true);

運行AutoML二進制分類

ExperimentResult experimentResult = mlContext.Auto().CreateRegressionExperiment(ExperimentTime).Execute(trainingDataView, LabelColumnName, progressHandler: new RegressionExperimentProgressHandler());

模型評估

ITransformer model = experimentResult.BestRun.Model;

並使用測試數據集評估其質量(taxi-fare-test.csv)。

Regression.Evaluate() 計算已知票價與模型預測值之間的差異,以生成各種指標。

var predictions = trainedModel.Transform(testDataView);

var metrics = mlContext.Regression.Evaluate(predictions,scoreColumnName:“Score”);

創建預測引擎

var predEngine = mlContext.Model.CreatePredictionEngine<TaxiTrip, TaxiTripFarePrediction>(model);

計算分數

var predictedResult = predEngine.Predict(taxiTripSample);

上面是使用Visual Studio內部的模型構建器以及CLI命令測試AutoML,還有一個API可以在.Net應用程序中使用它,使用非常簡單,添加[ Microsoft.ML.AutoML ] nuget包到項目中就可以使用API 進行工作

image

ML.Net示例倉庫中有一整套示例。可以重用了Common文件夾中的一些類來通過API使用AutoML 。

參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM