叮,您有一份ML.NET 速查手册请查收!
點(diǎn)擊上方藍(lán)字
關(guān)注我們
(本文閱讀時(shí)間:7分鐘)
本篇文章簡要介紹 ML.NET 背景和面向 .NET 開發(fā)的特色功能,以及典型的機(jī)器學(xué)習(xí)編碼示例,并分享自己整理的 ML.NET API 速查手冊(cè)。
微軟MVP實(shí)驗(yàn)室研究員
項(xiàng)斌
微軟全球最有價(jià)值專家 MVP,《PyTorch機(jī)器學(xué)習(xí)從入門到實(shí)戰(zhàn)》作者之一,杭州 FireUG 技術(shù)社區(qū)發(fā)起人之一。超過15+ 年 .NET 開發(fā)經(jīng)歷,在數(shù)據(jù)分析、機(jī)器學(xué)習(xí)、自動(dòng)化領(lǐng)域近十年從事研發(fā)工作。
ML.NET 簡介
ML.NET 是面向.NET開發(fā)人員的跨平臺(tái)機(jī)器學(xué)習(xí)框架,它具備在聯(lián)機(jī)或本地環(huán)境中將機(jī)器學(xué)習(xí)模型集成到 .NET 應(yīng)用程序中的能力。
2002 年微軟啟動(dòng)有一個(gè)研究項(xiàng)目命名為 TMSN,其意在“Test mining search and navigation”,后來它被改名為 TLC(The learning code)。ML.NET 正是派生自 TLC 庫,最初被用于微軟的內(nèi)部產(chǎn)品。
ML.NET 的核心既可以通過指定算法來訓(xùn)練自定義機(jī)器學(xué)習(xí)模型,也可以導(dǎo)入預(yù)訓(xùn)練的 TensorFlow 和 ONNX 模型繼續(xù)訓(xùn)練。生成模型后,可以將其添加到應(yīng)用程序中進(jìn)行預(yù)測(cè)。ML.NET 支持在使用 .NET Core/.NET Framework 的 Windows、Linux 和 macOS 上運(yùn)行,所有平臺(tái)均支持 64 位,此外 Windows 平臺(tái)支持 32 位,但 TensorFlow、LightGBM 和 ONNX 相關(guān)功能除外。
ML.NET 集成了眾多主流的轉(zhuǎn)換器、算法庫,通過 API 提供了豐富的數(shù)據(jù)處理對(duì)象和算法評(píng)估器,并且對(duì) Infer.NET、NimbusML、Scikit-Learn、TensorFlow 等機(jī)器學(xué)習(xí)相關(guān)的包提供了方便地?cái)U(kuò)展機(jī)制。如果您是一位 .NET 開發(fā)者,您將很輕松地上手使用,并且將成果無縫集成到 .NET Core 應(yīng)用程序中,特別是 ASP.NET Core 的 Web 應(yīng)用中實(shí)現(xiàn)一些高級(jí)的智能服務(wù)。
邏輯回歸模型示例
簡單示例訓(xùn)練一個(gè)用于二分類的邏輯回歸模型代碼如下:
//Step 1. Create an ML Context var ctx = new MLContext();//Step 2. Read in the input data from a text file for model training IDataView trainingData = ctx.Data.LoadFromTextFile<ModelInput>(dataPath, hasHeader: true);//Step 3. Build your data processing and training pipeline var pipeline = ctx.Transforms.Text.FeaturizeText("Features", nameof(SentimentIssue.Text)).Append(ctx.BinaryClassification.Trainers.LbfgsLogisticRegression("Label", "Features"));//Step 4. Train your model ITransformer trainedModel = pipeline.Fit(trainingData);//Step 5. Make predictions using your trained model var predictionEngine = ctx.Model.CreatePredictionEngine<ModelInput, ModelOutput>(trainedModel);var sampleStatement = new ModelInput() { Text = "This is a horrible movie" };var prediction = predictionEngine.Predict(sampleStatement);ML.NET 目前在 Github 上以開源項(xiàng)目進(jìn)行持續(xù)更新迭代,最新的版本為1.6。
開源項(xiàng)目示例
https://github.com/dotnet/machinelearning
ML.NET 特色
ML.NET 支持的熱門機(jī)器學(xué)習(xí)任務(wù)覆蓋眾多,包括了傳統(tǒng)的分類、回歸、聚類,也支持了有關(guān)時(shí)序和圖像神經(jīng)網(wǎng)絡(luò)。目前已知的應(yīng)用場景例如:情緒分析、產(chǎn)品推薦、價(jià)格預(yù)測(cè)、客戶分層、對(duì)象檢測(cè)、欺詐檢測(cè)、峰值檢測(cè)、圖像分類、銷量預(yù)測(cè)等等。
ML.NET 對(duì) .NET 開發(fā)者非常友好,它提供了 Visual Studio 擴(kuò)展 Model Builder, 這是一個(gè)可視化的工具套件,以非常低門檻的操作要求即可快速訓(xùn)練出指定任務(wù)類型的機(jī)器學(xué)習(xí)模型,并且自動(dòng)生成相關(guān)的源碼,方便后續(xù)修改和維護(hù)。對(duì)于喜歡通過代碼方式進(jìn)行機(jī)器學(xué)習(xí)任務(wù)的伙伴,官方提供了豐富的文檔和示例代碼庫。
另外,ML.NET 針對(duì) CLI 也提供了命令行工具,而且是支持 AutoML 的,使得常見的機(jī)器學(xué)習(xí)場景實(shí)現(xiàn)零編碼。
文檔
https://docs.microsoft.com/en-us/dotnet/machine-learning
示例代碼庫
https://github.com/dotnet/machinelearning-samples
速查手冊(cè)
通過 AutoML 生成的代碼一開始閱讀起來會(huì)有一點(diǎn)點(diǎn)不習(xí)慣,也不利于后續(xù)改造代碼以適應(yīng)開發(fā)者的實(shí)際需要。如果從來沒有接觸過機(jī)器學(xué)習(xí)的開發(fā)者,可能會(huì)擔(dān)心記不住、看不懂、用不慣 ML.NET API 文檔中密密麻麻基于專業(yè)術(shù)語的對(duì)象和方法,鑒于收集到如是實(shí)際開發(fā)者反饋的障礙,作者將 ML.NET API 按經(jīng)典的機(jī)器學(xué)習(xí)實(shí)現(xiàn)步驟,把常用的方法整理成一份圖冊(cè),并添加了一些代碼片段用來幫助快速理解 API 對(duì)象和方法的使用規(guī)則。另外,圖冊(cè)底部把截止目前 ML.NET 已內(nèi)置支持的模型訓(xùn)練器和數(shù)據(jù)轉(zhuǎn)換器列成表格方便掌握完整信息。圖冊(cè)以高清矢量格式的圖片分享出來,在編碼的時(shí)候放在習(xí)慣的地方,像開發(fā)其他 .NET 應(yīng)用一樣可隨時(shí)查看,一目了然。
免費(fèi)領(lǐng)取高清?ML.NET?速查手冊(cè)
點(diǎn)擊下方名片
進(jìn)入“微軟中國MSDN”
官方微信公眾號(hào)
對(duì)話框內(nèi)回復(fù)暗號(hào):
ML.NET?速查手冊(cè)
微軟最有價(jià)值專家(MVP)
微軟最有價(jià)值專家是微軟公司授予第三方技術(shù)專業(yè)人士的一個(gè)全球獎(jiǎng)項(xiàng)。29年來,世界各地的技術(shù)社區(qū)領(lǐng)導(dǎo)者,因其在線上和線下的技術(shù)社區(qū)中分享專業(yè)知識(shí)和經(jīng)驗(yàn)而獲得此獎(jiǎng)項(xiàng)。
MVP是經(jīng)過嚴(yán)格挑選的專家團(tuán)隊(duì),他們代表著技術(shù)最精湛且最具智慧的人,是對(duì)社區(qū)投入極大的熱情并樂于助人的專家。MVP致力于通過演講、論壇問答、創(chuàng)建網(wǎng)站、撰寫博客、分享視頻、開源項(xiàng)目、組織會(huì)議等方式來幫助他人,并最大程度地幫助微軟技術(shù)社區(qū)用戶使用 Microsoft 技術(shù)。
更多詳情請(qǐng)登錄官方網(wǎng)站:
https://mvp.microsoft.com/zh-cn
免費(fèi)領(lǐng)取高清ML.NET速查手冊(cè)
總結(jié)
以上是生活随笔為你收集整理的叮,您有一份ML.NET 速查手册请查收!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开源绘画应用 Pinta 已移植到GTK
- 下一篇: ASP.NET Core启动地址配置方法