關於ML.NET v1.0 的發佈說明

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

ML.NET GitHub:https://github.com/dotnet/machinelearninggithub

入門 @ http://dot.net/ml算法

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 核心組件學習

  • 自動機器學習預覽ui

  • 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 添加到現有應用程序中。

瞭解有關 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 很簡單,你能夠經過幾個簡單的步驟來完成,以下所示。 下面的示例顯示瞭如何使用 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 類型,例如數據幀

相關文章
相關標籤/搜索