2010-05-26 75 views
33

我要尋找一個庫,理想情況下,具有以下特點:哪臺機器學習庫使用

  • 實現多維數據(最好在similiarity或距離矩陣)的層次聚類
  • 實現支持向量機
  • 是在C++
  • 有所記載(這一個似乎是最難)

我希望這是用C++編寫的,因爲我對這種語言非常滿意,但是如果庫很值得,我也會使用任何其他語言。我搜索了一下,發現了一些,但我沒有時間全部嘗試,所以我想聽聽別人的經驗。如果你有推薦的圖書館經驗,請只回答。

P.S .:我也可以使用不同的庫進行聚類和SVM。

+0

https://github.com/josephmisiti/awesome-machine-learning – 2015-04-13 00:47:15

回答

4

好吧,爲了完整起見,我會發布我最後的結果。我現在使用scipy-cluster作爲集羣部分。這是迄今爲止我發現的最通用的實現。我想我會用libSVM(它現在有一個Python接口)用於SVM部分。我正在與Python合作,因爲在C++中確實沒有適合的層次聚類實現(C Clustering Library專用於微陣列並且不支持多維數據)。

9

WEKA(http://www.cs.waikato.ac.nz/ml/weka/)是一款優秀的開源機器學習庫,可滿足除C++之外的大多數需求 - 它是用Java編寫的。它有很好的文檔記錄,實現了支持向量機和集羣,我對它有很好的體驗。

+11

weka中的svm實現由libsvm作者完成,而不是weka團隊完成。而且,weka在設計上完全沒有效率。 Weka只適合玩小數據集。 – 2010-05-30 15:33:48

15

只有很少的ML庫,我已經使用足夠多,所以我很樂意推薦它們; dlib ml肯定是其中之一。

Sourceforge下載here;和出血性檢查:

hg clone http://hg.code.sf.net/p/dclib/code dclib-code 

原始圖書館的創建者和當前維護者是戴維斯國王。

你的心願與相關DLIB特點:

  • 好的文檔:用於定向在相對小羣的用戶/開發自由的,開放源碼庫,這可能是因爲它得到良好;除了通常的文檔,在五年的開發歷史中提煉出來,還有一個經常更新的(低流量)論壇;和一大套優秀的例子(包括至少一個用於SVM)。據我所知,C++中的C++爲012%,其中C++爲100%。

  • 支持向量機算法:是的;實際上,SVM模塊一直是該庫最新更新的重點。

  • 分層聚類算法:不是開箱即用的;然而, 是,打包代碼爲 k均值聚類。很明顯,每種技術的結果都是不同的,但是計算相似性度量和後續的遞歸/迭代分割步驟在兩者的核心都是 --換句話說,用於分層聚類的計算引擎全部都在那裏。 爲了適應現有的HC聚類模塊,將花費超過 幾行代碼,但它也不是 幾乎在 數據表示層面上的主要努力。

dlib ml有一些額外的點來推薦它。這是一個成熟的庫(它現在是版本17.x,版本1.x在2005年底某個時候發佈,我相信),但它也一直處於積極的發展階段,正如回購日誌所證明的那樣(最新更新17.27是17 2010年5月)和上次提交(2010年5月23日)。此外,它還包括很少其他ML技術(例如,貝葉斯網絡,內核方法等)。第三,dllib ml具有優秀的「支持」庫,用於矩陣計算和優化 - 這兩者都是許多ML技術的基本組成部分。

在源,我注意到,DLIB毫升下BSL(升壓?),這是一個開源許可證,雖然我不知道任何關於這種類型的許可證授權。

+0

您可能還想看看[MLPACK C++庫](http://mlpack.org),它有許多機器學習算法 – mtall 2014-01-08 17:15:46

+0

@mtall - MLPACK似乎沒有在'mlpack中的方法'部分列出的SVM 。 http://mlpack.org/doxygen.php – Robert 2014-08-31 18:11:27

0

了一些額外的可能的選擇:

條件隨機域(CRF): http://www.chokkan.org/software/crfsuite/

隱馬爾可夫模型(HMM): http://www.cs.au.dk/~asand/?page_id=152

對於一般的ML庫,考慮火炬(版本7,截止撰寫之時): https://github.com/andresy/torch

Orange系統執行在C++中可以使用,但可以用作庫,但重點在於將其功能作爲用於靈活腳本和可視化編程的Python包裝提供: http://orange.biolab.si/