今天,我們很高興宣佈發佈ML.NET 1.0。ML.NET是一個免費的、跨平臺的開源機器學習框架,旨在將機器學習(ML)的強大功能引入.NET應用程序。
ML.NET GitHub:
https://github.com/dotnet/machinelearning
ML.NET允許你使用C#或F#訓練、構建和發佈自定義機器學習模型,用於情景分析、問題分類、預測、推薦等場景。你可以在我們的ML.NET樣品庫中查看這些常見的場景和任務。
ML.NET最初是在微軟研究院內部研發,後來演變成許多微軟產品使用的重要框架,例如Windows Defender、Microsoft Office(Powerpoint設計思想、Excel圖表推薦)、Azure機器學習、PowerBI關鍵影響者等!
自推出以來,許多組織都在使用ML.NET,如SigParser(垃圾郵件檢測)、William Mullens(法律問題分類)和Evolution軟件(榛子水分檢測)。
ML.NET 1.0版本添加了新的預覽功能,如自動機器學習(AutoML)功能,ML.NET CLI和ML.NET Model Builder等新工具,這意味着,現在爲你的應用程序添加機器學習模型只需點擊右鍵!
本文的其餘部分重點介紹這些新體驗。
- ML.NET核心組件
- 自動機器學習預覽
- ML.NET模型生成器預覽
- ML.NET CLI預覽
- ML.NET入門
- 未來計劃
ML.NET核心組件
ML.NET旨在提供終端工作流程,以便在機器學習(預處理、特徵工程、建模、評估和操作)的各個步驟中將ML用於.NET應用程序。ML.NET 1.0提供以下關鍵組件:
- 數據表示
- 基本ML數據管道數據類型,如IDataView——基本數據管道類型
- 閱讀器支持從分隔文本文件或IEnumerable對象中讀取數據
- 支持機器學習任務:
- 二進制分類
- 多級分類
- 迴歸
- 排序
- 異常檢測
- 聚類
- 推薦(預覽)
- 數據轉換和特性化
- 文本
- 分類
- 特徵選擇
- 規範化和缺失值處理
- 圖像特徵化
- 時間序列(預覽)
- 支持ONNX和TensorFlow模型集成(預覽)
- 其他
- 模型理解和解釋
- 用戶定義的自定義轉換
- 架構操作
- 支持數據集操作和交叉驗證
自動機器學習預覽
如今,機器學習入門學習過程非常艱難。在構建自定義機器學習模型時,你必須確定爲你的場景選擇機器學習任務(即分類或迴歸?),將你的數據轉換爲ML算法可以理解的格式(例如文本數據 - >數字向量),並微調這些ML算法以達到最佳性能。如果你是ML新手,這些步驟中的每一步都會非常艱鉅!
自動機器學習通過自動確定如何轉換輸入數據並選擇性能最佳的ML算法,使你能夠輕鬆構建一流的自定義ML模型,使你的ML之旅更加簡單。
ML.NET中的AutoML支持處於預覽階段,我們目前支持迴歸(用於價格預測等場景)和分類(用於情感分析、文檔分類、垃圾郵件檢測等場景)ML任務。
你可以使用ML.NET Model Builder、ML.NET CLI或直接使用AutoML API(可在此處找到樣本)三種形式在ML.NET中體驗AutoML。
對於不熟悉機器學習的用戶,我們建議從Visual Studio中的ML.NET模型構建器和任何平臺上的ML.NET CLI開始。AutoML API對於你想要動態構建模型的場景也非常方便。
模型生成器預覽
爲了簡化.NET開發人員構建ML模型的過程,我們今天也很高興地發佈ML.NET模型構建器。使用ML.NET模型構建器,只需右鍵單擊即可將機器學習添加到你的應用程序中!
Model Builder是一個簡單的UI工具,供開發人員使用自己的數據集,通過AutoML使構建最佳的ML模型。除此之外,Model Builder還可以生成模型訓練和模型消耗代碼,以達到最佳性能,讓你快速將ML添加到現有應用程序中。
Model Builder目前處於預覽階段,歡迎試用並告訴我們你的想法!
ML.NET CLI預覽
ML.NET CLI(命令行界面)是我們今天推出的另一個新工具!
ML.NET CLI是一個dotnet工具,允許使用AutoML和ML.NET生成ML.NET模型。ML.NET CLI可以快速遍歷你的數據集以獲取特定的ML任務(目前支持迴歸和分類)並生成最佳模型。
CLI除了生成最佳模型外,還允許用戶爲最佳性能模型生成模型訓練和模型消耗代碼。
ML.NET CLI是跨平臺的,可以輕鬆添加到.NET CLI。Model Builder Visual Studio擴展還使用ML.NET CLI提供模型構建器功能。
你可以通過此命令安裝ML.NET CLI。
dotnet tool install -g mlnet
下圖顯示了ML.NET CLI構建情感分析數據集。
ML.NET CLI目前也處於預覽狀態,歡迎試用並分享你的想法!
開始吧!
從頭開始使用ML.NET很簡單,你可以通過幾個簡單的步驟來完成,如下所示。 下面的示例顯示瞭如何使用ML.NET進行情緒分析。
//Step 1. Create a ML Context
var ctx = new MLContext();
//Step 2. Read in the input data for model training
IDataView dataReader = ctx.Data
.LoadFromTextFile<MyInput>(dataPath, hasHeader: true);
//Step 3. Build your estimator
IEstimator<ITransformer> est = ctx.Transforms.Text
.FeaturizeText("Features", nameof(SentimentIssue.Text))
.Append(ctx.BinaryClassification.Trainers
.LbfgsLogisticRegression("Label", "Features"));
//Step 4. Train your Model
ITransformer trainedModel = est.Fit(dataReader);
//Step 5. Make predictions using your model
var predictionEngine = ctx.Model
.CreatePredictionEngine<MyInput, MyOutput>(trainedModel);
var sampleStatement = new MyInput { Text = "This is a horrible movie" };
var prediction = predictionEngine.Predict(sampleStatement);
你還可以探索各種其他學習資源,如ML.NET的教程和資源,以及ML.NET示例、演示產品推薦、異常檢測和更多實際操作等流行方案。
ML.NET的下一步
今天發佈ML.NET 1.0的同時,我們的團隊已經在努力爲ML.NET 1.0版發佈以下功能。
- 其他ML場景的AutoML體驗
- 改進了對深度學習場景的支持
- 支持其他其他來源,如SQL Server、CosmosDB、Azure Blob存儲等。
- 在Azure上橫向擴展以進行模型訓練和消耗
- 使用模型構建器和CLI時,支持其他ML方案和功能
- 用於Apache Spark和ML.NET的.NET大規模機器學習的本地集成
- .NET中的新ML類型,例如數據幀
感謝創建者
在此,我們特別鳴謝該項目的貢獻者,是他們的努力讓.NET開發人員可以使用機器學習。
amiteshenoy,beneyal,bojanmisic,Caraul,dan-drews,DAXaholic,dhilmathy,dzban2137,elbruno,endintiers,f1x3d,feiyun0112,forki,harshsaver,
helloguo,hvitved,Jongkeun,JorgeAndd,JoshuaLight,jwood803,kant2002,kilick,Ky7m,llRandom,malik97160,MarcinJuraszek,mareklinka,
Matei13,mfaticaearnin,mnboos,nandaleite,Nepomuceno nihitb06,Niladri24dutta,PaulTFreedman,Pielgrin,pkulikov,Potapy4,Racing5372,
rantri,rantri,rauhs,robosek,ross-p-smith,SolyarA,Sorrien,suhailsinghbains,terop,ThePiranha,Thomas-S-B,timitoc,tincann,v-tsymbalistyi,
van-tienhoang,veikkoeeva和yamachu
非常感謝,
ML.NET團隊
原文鏈接:
https://devblogs.microsoft.com/dotnet/announcing-ml-net-1-0/