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