微軟發佈ML.NET 1.0

原文地址:https://devblogs.microsoft.com/dotnet/announcing-ml-net-1-0/git

咱們很高興地宣佈今天發佈ML.NET 1.0 。  ML.NET是一個免費的,跨平臺的開源機器學習框架,旨在將機器學習(ML)的強大功能引入.NET應用程序。github

ML.NET徽標

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旨在提供終端工做流程,以便在機器學習(預處理,特徵工程,建模,評估和操做)的各個步驟中將ML用於.NET應用程序。ML.NET 1.0提供如下關鍵組件:工具

  • 數據表示
    • 基本ML數據管道數據類型,如IDataView - 基本數據管道類型
    • 支持從分隔文本文件或IEnumerable對象中讀取數據
  • 支持機器學習任務:
    • 二進制分類
    • 多級分類
    • 迴歸
    • 排行
    • 異常檢測
    • 聚類
    • 推薦(預覽)
  • 數據轉換和特點化
    • 文本
    • 分類
    • 特徵選擇
    • 規範化和缺失值處理
    • 圖像特徵化
    • 時間序列(預覽)
    • 支持ONNX和TensorFlow模型集成(預覽)
  • 其餘
    • 模型理解和解釋
    • 用戶定義的自定義轉換
    • 架構操做
    • 支持數據集操做和交叉驗證
自動機器學習預覽

現在,機器學習入門涉及陡峭的學習曲線。在構建自定義機器學習模型時,您必須肯定爲您的場景選擇哪一個機器學習任務(即分類或迴歸?),將您的數據轉換爲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添加到現有應用程序中。

ML.NET模型構建器

瞭解有關ML.NET模型構建器的更多信息

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 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版發佈如下功能。

  • 其餘機器學習場景的AutoML體驗
  • 改進了對深度學習場景的支持
  • 支持其餘其餘來源,如SQL Server,CosmosDB,Azure Blob存儲等。
  • 在Azure上橫向擴展以進行模型培訓和消費
  • 使用模型構建器和CLI時,支持其餘ML方案和功能
  • 用於Apache Spark和ML.NET的.NET大規模機器學習的本機集成
  • .NET中的新ML類型,例如DataFrame
你幫忙建了它

特別呼籲這些使人驚歎的貢獻者,他們與咱們一塊兒開始使用ML.NET爲.NET開發人員提供機器學習。

amiteshenoy,  beneyal,  bojanmisic,  Caraul,  dan-drews,  DAXaholic,  dhilmathy,  dzban2137,  elbruno,  endintiers,  f1x3dfeiyun0112,  forki,  harshsaver
helloguo,  hvitved,  Jongkeun,  JorgeAndd,  JoshuaLight,  jwood803,  kant2002,  kilick,  Ky7mllRandom,  malik97160,  MarcinJuraszek,  mareklinka
Matei13,  mfaticaearnin,  mnboos,  nandaleite,  Nepomuceno nihitb06Niladri24dutta,  PaulTFreedman,  Pielgrin,  pkulikov,  Potapy4,  Racing5372
rantri,  rantri,  rauhs,  robosek,  ross-p-smith,  SolyarASorrien,  suhailsinghbainsterop,  ThePiranha,  Thomas-SB,  timitoc,  tincann,  v-tsymbalistyi
van-tienhoang,  veikkoeevayamachu

若是您尚未,請試試ML.NET!

您的反饋對於咱們幫助塑造ML.NET並使.NET成爲機器學習的絕佳平臺相當重要。

謝謝,ML.NET團隊

相關文章
相關標籤/搜索