原文地址:https://devblogs.microsoft.com/dotnet/announcing-ml-net-1-0/git
咱們很高興地宣佈今天發佈ML.NET 1.0 。 ML.NET是一個免費的,跨平臺的開源機器學習框架,旨在將機器學習(ML)的強大功能引入.NET應用程序。github
https://github.com/dotnet/machinelearning 算法
入門@ http://dot.net/mlapi
ML.NET容許您使用C#或F#訓練,構建和發佈自定義機器學習模型,用於情景分析,問題分類,預測,推薦等場景。您能夠在咱們的ML.NET示例倉庫中查看這些常見的場景和任務 。架構
ML.NET最初是在微軟研究院開發的,而且演變成許多Microsoft產品使用的重要框架,例如Windows Defender,Microsoft Office(Powerpoint設計靈感,Excel圖表推薦),Azure機器學習,PowerBI關鍵影響者等等!app
自從推出以來,許多組織都在使用ML.NET,如SigParser(垃圾郵件檢測), William Mullens(法律問題分類)和Evolution軟件(榛子水分檢測)。您能夠在咱們的ML.NET客戶展現中使用ML.NET跟蹤這些和許多其餘組織的旅程。這些用戶告訴咱們,ML.NET的易用性,重用.NET技能的能力以及將其技術堆棧徹底保留在.NET中是他們使用ML.NET的主要驅動因素。框架
除了ML.NET 1.0版本,咱們還添加了新的預覽功能,如自動機器學習(AutoML)的強大功能和ML.NET CLI和ML.NET Model Builder等新工具,這意味着如今能夠只需點擊右鍵就能夠爲您的應用程序添加機器學習模型!dom
ML.NET旨在提供終端工做流程,以便在機器學習(預處理,特徵工程,建模,評估和操做)的各個步驟中將ML用於.NET應用程序。ML.NET 1.0提供如下關鍵組件:工具
現在,機器學習入門涉及陡峭的學習曲線。在構建自定義機器學習模型時,您必須肯定爲您的場景選擇哪一個機器學習任務(即分類或迴歸?),將您的數據轉換爲ML算法能夠理解的格式(例如文本數據 - >數字向量),並微調這些ML算法以提供最佳性能。若是您是ML的新手,這些步驟中的每一步都會很是艱鉅!
自動機器學習經過自動肯定如何轉換輸入數據並選擇性能最佳的機器學習算法,使您可以輕鬆構建一流的自定義機器學習模型,使您的機器學習之旅更加簡單。
ML.NET中的AutoML支持處於預覽階段,咱們目前支持迴歸(用於價格預測等場景)和分類(用於情感分析,文檔分類,垃圾郵件檢測等場景)機器學習任務。
您可使用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是一個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 1.0,但團隊已經在努力爲ML.NET 1.0版發佈如下功能。
特別呼籲這些使人驚歎的貢獻者,他們與咱們一塊兒開始使用ML.NET爲.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-SB, timitoc, tincann, v-tsymbalistyi,
van-tienhoang, veikkoeeva和yamachu
若是您尚未,請試試ML.NET!
您的反饋對於咱們幫助塑造ML.NET並使.NET成爲機器學習的絕佳平臺相當重要。
謝謝,ML.NET團隊