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