通過一些易于實現(xiàn)的多樣化庫和框架能夠充分挖掘機器學習的預測能力。垃圾郵件過濾,面部識別,推薦引擎等等。當你要對大型數(shù)據(jù)集執(zhí)行預測分析或模式識別時,機器學習都是必經(jīng)之路。
自由開源軟件的激增,讓機器學習更容易在單機上大規(guī)模地通過大多數(shù)流行的編程語言實現(xiàn)。以下這些開源工具包括了適用于Python,R,C ++,Java,Scala,Clojure,JavaScript和Go之類的庫。
Apache Mahout
Apache Mahout提供了一種構建用于托管機器學習應用程序環(huán)境的方法,該環(huán)境可以快速有效地擴展來滿足需求。
Mahout主要與Apache Spark一起工作,最初是為了運行分布式應用程序而設計,可以與Hadoop一起使用,但現(xiàn)在已擴展為與Flink和H2O等其他分布式后端一起使用。
Mahout在Scala中使用了一種域特定語言。版本0.14是對該項目做了主要內(nèi)部重構,默認基于Apache Spark 2.4.3。
Compose
Compose針對機器學習模型的一個常見問題,即標記原始數(shù)據(jù),這可能是一個緩慢而乏味的過程,但沒有它,機器學習模型就無法提供有用的結果。
通過Compose,用戶可以使用Python為數(shù)據(jù)編寫一組標記功能,因此可以通過編程方式進行標記??梢栽跀?shù)據(jù)上設置各種變換和閾值,以簡化標記過程。
Core ML Tools
Apple的Core ML框架能夠讓用戶將機器學習模型集成到應用程序中,但使用其自己獨特的學習模型格式。但幸運的是,不必以Core ML格式預先訓練模型就能使用它們;可以使用Core ML Tools將幾乎所有常用的機器學習框架中的模型轉(zhuǎn)換為Core ML。
Core ML Tools作為Python包運行,因此與大量的Python機器學習庫和工具集成在一起。TensorFlow,PyTorch,Keras,Caffe,ONNX,Scikit-learn,LibSVM和XGBoost的模型都可以轉(zhuǎn)換。神經(jīng)網(wǎng)絡模型還可以通過使用訓練后量化來優(yōu)化大小。
Cortex
Cortex提供了一種方便的方法來使用Python和TensorFlow,PyTorch,Scikit-learn和其他模型提供來自機器學習模型的預測服務。大多數(shù)Cortex軟件包僅包含幾個文件,即你的核心Python邏輯,描述要使用的模型,以及要分配的計算資源類型的cortex.yaml文件,以及用于安裝任何所需Python要求的require.txt文件。
整個程序包作為Docker容器部署到AWS或另一個與Docker兼容的托管系統(tǒng)。計算資源的分配方式與在Kubernetes中使用的定義相呼應,因此你可以使用GPU或Amazon Inferentia ASIC加快服務速度。
Featuretools
特征工程或特征創(chuàng)建涉及獲取用于訓練機器學習模型的數(shù)據(jù),并通常手動生成數(shù)據(jù)的經(jīng)過轉(zhuǎn)換和聚合的版本,這對于訓練模型更為有用。
Featuretools為用戶提供了通過綜合數(shù)據(jù)幀中的數(shù)據(jù)而構建的高級Python對象來執(zhí)行此操作的功能,并且可以針對從一個或多個數(shù)據(jù)幀中提取的數(shù)據(jù)執(zhí)行此操作。Featuretools還為綜合操作提供了通用原語(例如,time_since_previous提供帶時間戳數(shù)據(jù)實例之間的時間間隔),因此用戶不必自己滾動這些原語。
GoLearn
GoLearn是針對Google Go語言的機器學習庫,其創(chuàng)建的目標是簡化和可定制性。簡單之處在于在庫中加載和處理數(shù)據(jù)的方式,該方式在SciPy和R之后進行了模式化??啥ㄖ菩栽谟谌绾卧趹贸绦蛑休p松擴展某些數(shù)據(jù)結構。
Gradio
構建機器學習應用程序時的一個常見挑戰(zhàn)是為模型訓練和預測服務機制構建可靠且易于定制的UI。Gradio提供了用于創(chuàng)建基于Web的UI的工具,這些工具讓用戶可以與模型進行實時交互。
其中包括幾個示例項目,例如Inception V3圖像分類器的輸入接口或MNIST手寫識別模型,讓用戶對如何在自己的項目中使用Gradio有所了解。
H2O
H2O目前正在進行第三次大修訂,它為內(nèi)存中的機器學習提供了一個完整的平臺,從訓練到服務預測。H2O的算法適合于業(yè)務處理——比如欺詐或趨勢預測——而不是圖像分析。H2O可以獨立地與HDFS store交互,在YARN之上,在MapReduce中,或者直接在Amazon EC2實例中。
Hadoop專家可以使用Java與H2O進行交互,但是該框架還提供了針對Python,R和Scala的綁定,從而讓用戶也可以與這些平臺上可用的所有庫進行交互。還可以使用REST調(diào)用,將H2O集成到大多數(shù)管道中。
Oryx
由Cloudera Hadoop發(fā)行版的創(chuàng)建者提供的Oryx,使用Apache Spark和Apache Kafka在實時數(shù)據(jù)上運行機器學習模型。Oryx提供了一種構建項目的方式,這些項目需要立即做出決定,例如推薦引擎或?qū)崟r異常檢測,這些都可以通過新數(shù)據(jù)和歷史數(shù)據(jù)獲得通知。
版本2.0對該項目幾乎進行了完全重新設計,其組件以lambda架構松散耦合??梢噪S時添加新算法和這些算法的新抽象(例如,用于超參數(shù)選擇)。
PyTorch Lightning
當功能強大的項目流行時,通常會輔以易于使用的第三方項目。PyTorch Lightning為PyTorch提供了組織包裝,因此用戶可以專注于重要的代碼,而不必為每個項目編寫樣板。
PyTorch Lightning使用基于類的結構,因此PyTorch項目的每個常見步驟都封裝在類方法中。訓練和驗證循環(huán)是半自動化的,因此你只需要為每個步驟提供邏輯即可。在多個GPU或不同的硬件組合中設置訓練結果也更加容易,因為這樣做的指令和對象引用是集中的。
Scikit-learn
由于Python易于采用且?guī)缀踹m用于所有應用程序的庫的廣泛性,它已成為數(shù)學科學和統(tǒng)計學的首選編程語言。Scikit-learn通過在幾個現(xiàn)有的Python軟件包(NumPy,SciPy和Matplotlib)之上構建數(shù)學和科學工作來利用這一廣度。
生成的庫可用于交互式“工作臺”應用程序或嵌入到其他軟件中并重新使用。該套件可通過BSD許可獲得,因此它是完全開放的,并且可重復使用。
Shogun
Shogun是這個工具中時間最長的項目之一。它創(chuàng)建于1999年,用C ++編寫,但是可以與Java,Python,C#,Ruby,R,Lua,Octave和Matlab一起使用。最新的主要版本6.0.0增加了對微軟Windows和Scala語言的本機支持。
雖然廣受歡迎,范圍廣泛,但Shogun也有競爭對手。另一個基于c++的機器學習庫Mlpack是在2011年才出現(xiàn)的,但是它聲稱比其他庫更快、更容易使用(通過一個更完整的API集)。
Spark MLlib
MLlib是Apache Spark和Apache Hadoop的機器學習庫,擁有許多常用算法和有用的數(shù)據(jù)類型,能夠快速,大規(guī)模地運行。盡管Java是在MLlib中工作的主要語言,但是Python用戶可以將MLlib與NumPy庫連接,Scala用戶可以針對MLlib編寫代碼,而R用戶可以從1.5版開始插入Spark。
MLlib的版本3專注于使用Spark的DataFrame API(與較早的RDD API相對),并提供了許多新的分類和評估功能。
另一個項目,MLbase,建立在MLlib的頂部,以使其更容易得出結果。用戶無需編寫代碼,而是使用SQL的聲明性語言進行查詢。
Weka
由Waikato大學的機器學習小組創(chuàng)建的Weka被稱為“無需編程的機器學習”。這是一個GUI工作臺,數(shù)據(jù)科學家無需編寫代碼即可組裝機器學習管道,訓練模型和運行預測。
Weka直接與R,Apache Spark和Python合作,后者通過直接包裝或通過通用數(shù)值庫(如NumPy,Pandas,SciPy和Scikit-learn)的接口進行工作。Weka的一大優(yōu)勢在于,它為工作的各個方面提供了可瀏覽的友好界面,包括包裝管理,預處理,分類和可視化。
責編AJX
-
編程
+關注
關注
88文章
3616瀏覽量
93738 -
機器學習
+關注
關注
66文章
8418瀏覽量
132646 -
開源工具
+關注
關注
0文章
27瀏覽量
4470
發(fā)布評論請先 登錄
相關推薦
評論