关于ML.NET v0.7的发布说明
我們很高興宣布推出ML.NET 0.7--面向.NET開(kāi)發(fā)人員的最新版本的跨平臺(tái)和開(kāi)源機(jī)器學(xué)習(xí)框架(ML.NET 0.1發(fā)布于// Build 2018)。此版本側(cè)重于為基于推薦的ML任務(wù)提供更好的支持,實(shí)現(xiàn)異常檢測(cè),增強(qiáng)機(jī)器學(xué)習(xí)管道的可定制性,支持在x86應(yīng)用程序中使用ML.NET等。
本文提供了有關(guān)ML.NET 0.7版本中以下主題的詳細(xì)信息:
- 使用Matrix Factorization增強(qiáng)對(duì)推薦任務(wù)的支持
- 啟用異常檢測(cè)方案 - 檢測(cè)異常度
- 改進(jìn)了ML管道的可定制性
- x86支持
- NimbusML - ML.NET的實(shí)驗(yàn)性Python綁定
使用Matrix Factorization增強(qiáng)對(duì)推薦任務(wù)的支持
?
推薦系統(tǒng)可以為目錄,歌曲,電影等中的產(chǎn)品生成推薦列表。我們通過(guò)添加矩陣分解(MF)改進(jìn)了對(duì)在ML.NET中創(chuàng)建推薦系統(tǒng)的支持,當(dāng)您獲得有關(guān)用戶(hù)如何評(píng)價(jià)目錄中項(xiàng)目的數(shù)據(jù)時(shí),這是推薦的常用方法。例如,您可能知道用戶(hù)如何評(píng)價(jià)某些電影,并希望推薦下一部他們可能觀看的其他電影。
我們將MF添加到ML.NET,因?yàn)樗ǔ1菷ield-Aware Factorization Machines(我們?cè)贛L.NET 0.3中添加)明顯更快,并且它可以支持連續(xù)數(shù)字等級(jí)(例如1-5星)而不是布爾值的等級(jí)(“喜歡”或“不喜歡”)。即使我們剛剛添加了MF,如果您想利用用戶(hù)分配給項(xiàng)目的評(píng)級(jí)之外的其他信息(例如電影類(lèi)型,電影發(fā)布日期,用戶(hù)個(gè)人資料),您可能仍然希望使用FFM。可以在此處找到對(duì)差異的更深入討論。
MF的樣品用法可在此處找到。該示例是通用的,但您可以想象矩陣行對(duì)應(yīng)于用戶(hù),矩陣列對(duì)應(yīng)于電影,矩陣值對(duì)應(yīng)于評(píng)級(jí)。由于用戶(hù)僅對(duì)目錄的一小部分進(jìn)行了評(píng)級(jí),因此該矩陣將非常稀疏。
ML.NET的MF使用LIBMF。
啟用異常檢測(cè)方案 - 檢測(cè)異常事件
?
異常檢測(cè)可以識(shí)別異常值或事件。它用于欺詐檢測(cè)(識(shí)別可疑信用卡交易)和服務(wù)器監(jiān)控(識(shí)別異常活動(dòng))等場(chǎng)景。
ML.NET 0.7支持檢測(cè)兩種類(lèi)型的異常行為:
- 棘波檢測(cè):棘波歸因于輸入數(shù)據(jù)的值臨時(shí)突變。由于中斷,網(wǎng)絡(luò)攻擊,病毒式網(wǎng)絡(luò)內(nèi)容等,這些可能是異常值。
- 變化點(diǎn)檢測(cè):變化點(diǎn)標(biāo)記數(shù)據(jù)行為中更持久的偏差的開(kāi)始。例如,如果產(chǎn)品銷(xiāo)售相對(duì)一致并且變得更受歡迎(每月銷(xiāo)售額增加一倍),則趨勢(shì)發(fā)生變化時(shí)會(huì)有一個(gè)變化點(diǎn)。
可以使用不同的ML.NET組件在兩種類(lèi)型的數(shù)據(jù)上檢測(cè)到這些異常:
- IidSpikeDetector并IidChangePointDetector用于假定來(lái)自一個(gè)固定分布的數(shù)據(jù)(每個(gè)數(shù)據(jù)點(diǎn)獨(dú)立于先前的數(shù)據(jù),例如每個(gè)推文的轉(zhuǎn)發(fā)數(shù)量)。
- SsaSpikeDetector并SsaChangePointDetector用于具有季節(jié)/趨勢(shì)組件的數(shù)據(jù)(可能按時(shí)間排序,例如產(chǎn)品銷(xiāo)售)
可以在此處找到使用ML.NET異常檢測(cè)的示例代碼。
改進(jìn)了ML.NET管道的可定制性
?
ML.NET提供各種數(shù)據(jù)轉(zhuǎn)換(例如處理文本,圖像,分類(lèi)功能等)。但是,某些用例需要特定于應(yīng)用程序的轉(zhuǎn)換,例如計(jì)算兩個(gè)文本列之間的余弦相似度。我們現(xiàn)在添加了對(duì)自定義轉(zhuǎn)換的支持,因此您可以輕松地包含自定義業(yè)務(wù)邏輯。
它CustomMappingEstimator允許您編寫(xiě)自己的方法來(lái)處理數(shù)據(jù)并將它們帶入ML.NET管道。這是管道中的樣子:
var estimator = mlContext.Transforms.CustomMapping<MyInput, MyOutput>(MyLambda.MyAction, "MyLambda").Append(...).Append(...)以下是此自定義映射將執(zhí)行的操作的定義。在此示例中,我們將文本標(biāo)簽(“spam”或“ham”)轉(zhuǎn)換為布爾標(biāo)簽(true或false)。
public class MyInput {public string Label { get; set; } }public class MyOutput {public bool Label { get; set; } }public class MyLambda {[Export("MyLambda")]public ITransformer MyTransformer => ML.Transforms.CustomMappingTransformer<MyInput, MyOutput>(MyAction, "MyLambda");[Import]public MLContext ML { get; set; }public static void MyAction(MyInput input, MyOutput output){output.Label= input.Label == "spam" ? true : false;} }CustomMappingEstimator可以在此處找到更完整的示例。
除了x64之外還支持x86
?
有了這個(gè)ML.NET版本,您現(xiàn)在可以在x86 / 32位架構(gòu)設(shè)備上訓(xùn)練和使用機(jī)器學(xué)習(xí)模型(目前僅適用于Windows)。以前,ML.NET僅限于x64設(shè)備(Windows,Linux和Mac)。
請(qǐng)注意,某些基于外部依賴(lài)關(guān)系的組件(例如TensorFlow)在x86-Windows中不可用。
NimbusML?-?ML.NET的實(shí)驗(yàn)性Python綁定
NimbusML為ML.NET提供實(shí)驗(yàn)性的Python綁定。我們已經(jīng)看到外部社區(qū)和內(nèi)部團(tuán)隊(duì)對(duì)使用多種編程語(yǔ)言的反饋。我們希望盡可能多的人能夠從ML.NET中受益,并幫助團(tuán)隊(duì)更輕松地協(xié)同工作。ML.NET不僅使數(shù)據(jù)科學(xué)家能夠在Python中訓(xùn)練和使用機(jī)器學(xué)習(xí)模型(也可以在scikit-learn管道中使用組件),而且還可以通過(guò)ML.NET保存可以在.NET應(yīng)用程序中輕松使用的模型。(有關(guān)詳細(xì)信息,請(qǐng)參見(jiàn)此處)。
?
轉(zhuǎn)載于:https://www.cnblogs.com/BeanHsiang/p/9940023.html
總結(jié)
以上是生活随笔為你收集整理的关于ML.NET v0.7的发布说明的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: A.01.01—模块的输入—低端输入
- 下一篇: spring学习(6)