VOOZH about

URL: https://read01.com/PkknyD.html

⇱ 值得mark的11個開源機器學習項目 - 壹讀


Sunday, Apr 12, 2026

值得mark的11個開源機器學習項目

2016/06/19 來源:CSDN博客

摘要:隨著機器學習越來越受到開發者關注,出現了很多機器學習的開源項目,在本文列舉的11個機器學習開源項目中,無論你是Java愛好者還是Python狂人,在這裡你都可以找到自己想要的機器學習開源項目。

垃圾郵件過濾、人臉識別、推薦引擎——當你有一個大數據集並且希望利用它們執行預測分析和模式識別,機器學習是必經之路。這門科學,計算機可以在沒有事先規劃的前提下自主學習、分析和操作數據,現在越來越多的開發人員關注機器學習。

機器學習技術的興起不僅是因為硬體成本越來越便宜以及性能越來越強大,促使機器學習在單機或大規模集群上輕鬆部署的免費軟體激增也是重要因素。機器學習庫的多樣性意味著無論你喜歡什麼語言或環境,都有可能是獲得你喜歡的。

1. Scikit-learn
👁 Image
...

Python由於其易用性以及豐富的函數庫,已經成為數學、自然科學和統計學的首選程式語言。Scikit-learn通過在現有Python包上構建——NumPy SciPy和matplotlib——服務於數學和自然科學。生成的庫要麼可以使用交互式「工作檯」應用程式,要麼被嵌入到其他軟體和重用。工具箱可以在BSD許可下獲取,所以它是完全開放和可重用的。

Project:scikit-learn

GitHub:

👁 Image
...

在最古老、最值得尊敬的機器學習庫中,Shogun創建於1999年,用C++編寫,但並不限於在C++工作。由於SWIG庫,Shogun可以輕鬆在Java、Python、C#、Ruby、R、Lua、Octave、Matlab語言和環境下使用。

雖然德高望重,Shogun也有其他的競爭者。另一個基於C++的機器學習庫Mlpack在2011年出現,它宣稱比其他競爭者速度更快並且更容易使用(一個更完整的API集)。

Project:Shogun

GitHub:

👁 Image
...

Accord,一個.Net的機器學習和信號處理框架,是早前類似一個項目AForge.net的擴展。順便說一下,「信號處理」這裡是指一系列對圖像和音頻的機器學習算法,如圖片無縫縫合或執行人臉檢測。包含一組視覺處理算法;它作用於圖像流(如視頻),並且可用於實現移動對象的跟蹤等功能。Accord還提供一個從神經網絡到決策樹系統的機器學習常見庫。

Project:Accord Framework/AForge.net

GitHub:

👁 Image
...

Mahout框架一直與Hadoop相關聯,但旗下很多算法還可以脫離Hadoop運行。他們對那些可能最終遷移到Hadoop上的應用程式或從Hadoop上剝離成為獨立應用程式的項目非常有用。

Mahout缺點之一:目前幾乎沒有算法支持高性能的Spark框架,反而使用日益過時的MapReduce框架。該項目目前不接受基於MapReduce的算法,那些想要獲得更高性能的開發者轉而用MLlib 替代。

Project:Mahout

5. MLlib
👁 Image
...

Apache自己的Spark和Hadoop機器學習庫,旨在為大規模和高速度而設計的MLlib自稱擁有所有常見的算法和有用數據類型。與任何Hadoop項目一樣,Java是MLlib上的基本語言,但是Python用戶可以用MLlib NumPy庫連接(也用於scikit-learn),並且Scala用戶可以針對MLlib編寫代碼。如果不能設置一個Hadoop集群,MLlib可以在沒有Hadoop的情況下部署在Spark上——以及在EC2或Mesos上。

👁 Image
...

0xdata H2O的算法是面向業務流程——欺詐或趨勢預測。Hadoop專家可以使用Java與H2O相互作用,但框架還提供了對Python、R以及Scala的捆綁。

Project:H20

GitHub:

👁 Image
...

另一個為Hadoop設計的機器學習項目Oryx由Cloudera Hadoop distribution創造者提供。Oryx是為了允許機器學習模型部署在實時流數據上而設計的,如實時垃圾郵件過濾器或推薦引擎。

該項目的全新版本暫時定名為Oryx 2,目前正在準備階段。它使用Apache項目如Spark 和 Kafka實現更高性能,其組件構建走鬆散耦合路線以便能經得住時間考驗。

Project:Cloudera Oryx

GitHub:

👁 Image
...

谷歌的Go語言已經開始被廣泛使用,隨著庫越來越多,據其開發者Stephen Witworth介紹,GoLearn被構建為Go語言的一體化的機器學習庫,目標是「簡單可定製」。簡單主要是由於數據在庫內被加載和處理,因為它是仿照SciPy 和R;可定製性在於庫的開放源碼特性以及一些數據結構可以很容易地在一個應用程式中擴展。Witworth也為Vowpal Wabbit庫創建了一個包裝器,其中一個庫存放在Shogun工具箱中。

Project:GoLearn

GitHub:

9. Weka
👁 Image
...

Weka是紐西蘭Waikato大學開發的,收集一組專門為數據挖掘設計的Java機器學習算法。這組GNU得到 GPLv3許可的集有一個包系統擴展其功能,有官方和非官方包兩種。Weka甚至還有專門一本書解釋其軟體和實戰技術,所以那些想要在概念和軟體上取得優勢的開發者可以關注下。

雖然Weka並不是專門針對Hadoop用戶,但是Weka的最新版本的一組封裝器可以用於Hadoop。請注意,它還不能支持Spark,只有MapReduc。Clojure用戶還可以通過Clj-ml 庫利用Weka。

Project:Weka

👁 Image
...

現在大多數人都知道GPU在處理某些問題上的速度比CPU快。但應用程式不會自動利用GPU的加速功能;他們必須明確通過程序寫入。CUDA-Convne是一個神經網絡應用程式機器學習庫,用C++編寫來開發Nvidia的CUDA GPU處理技術。對於那些使用Python而不是C++用戶,由此產生的神經網絡可以保存為Python pickle對象,因此可以從Python存取。

注意,原始版本的項目不再被開發,但是已經被重組為CUDA-Convnet2,支持多個GPU和Kepler-generation GPU。與之類似的項目Vulpes,已經用F#編寫,並且通常和.Net框架一起使用。

Project:CUDA-Convnet

👁 Image
...

顧名思義,ConvNetJS 是一個基於 js 的深度學習 library,可以讓你在瀏覽器中訓練深度網絡。NPM版本也可用於那些使用Node.js的用戶,並且這個庫也是為合理使用JavaScript的異步性而設計,例如,一旦他們完成訓練操作可以給出一個回調函數來執行。裡面還包含大量的演示案例。

Project:ConvNetJS

GitHub:

* 以上用戶言論只代表其個人觀點,不代表CSDN網站的觀點或立場
您可能感興趣
免責聲明:本文內容來源于CSDN博客,文章觀點不代表壹讀立場,如若侵犯到您的權益,或涉不實謠言,敬請向我們提出檢舉
最新文章 / 服務條款 / 私隱保護 / DMCA / 聯絡我們

壹讀/READ01.COM