当前位置:  开发笔记 > 编程语言 > 正文

使用哪台机器学习库

如何解决《使用哪台机器学习库》经验,为你挑选了4个好方法。

我正在寻找一个理想情况下具有以下功能的库:

实现多维数据的层次聚类(理想情况下是在相似性或距离矩阵上)

实现支持向量机

是在C++中

有点记录(这个似乎是最难的)

我希望这是用C++编写的,因为我对这种语言最熟悉,但如果图书馆值得,我也会使用任何其他语言.我用Google搜索并发现了一些,但我没有时间尝试全部,所以我想听听其他人的经历.如果您对推荐的图书馆有一些经验,请回答.

PS:我也可以使用不同的库来进行聚类和SVM.



1> doug..:

我只使用了很少的ML库,所以我很乐意推荐它们; dlib ml肯定是其中之一.

Sourceforge 在这里下载; 和前沿的退房:

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

最初的图书馆创建者和现任维护者是戴维斯·金.

您的愿望清单与相关的dlib功能:

良好的文档:针对相对较小的用户/开发人员组的免费开源库,这可能是最好的; 除了通常的文档,在五年的开发历史中精炼,有一个经常更新的介绍dlib,一个(低流量)论坛 ; 和一大组优秀的例子(包括至少一个用于SVM).

C++:就我所知,C++是100%.

支持 - 矢量机算法:是的; 实际上,SVM模块一直是该库最新更新的重点.

分层聚类算法:不开箱即用; 但是,k-means聚类的打包代码 .显然,每种技术的结果都是非常不同的,但是相似性度量的计算和随后的递归/迭代分区步骤是两者的核心 - 换句话说,用于分层聚类的计算引擎就在那里.要使现有的聚类模块适应HC,将需要多行代码,但考虑到您几乎在数据表示级别工作,这也不是一项重大工作.

dlib ml还有几点可以推荐它.它是一个成熟的库(现在版本为17.x,版本1.x在2005年末的某个时候发布,我相信)但它仍然处于积极开发状态,回购日志证明了这一点(最新更新,17.27,是17 2010年5月)和最后一次提交(2010年5月23日).此外,它还包括很少的其他ML技术(例如,贝叶斯网络,内核方法等).第三,dllib ml具有出色的"支持"库,用于矩阵计算和优化 - 这两者都是许多ML技术的基本构建模块.

在源代码中,我注意到dlib ml是在BSL(Boost?)下获得许可的,这是一个开源许可证,但我对这种类型的许可证一无所知.



2> Finbarr..:

WEKA(http://www.cs.waikato.ac.nz/ml/weka/)是一个优秀的开源机器学习库,可以满足除C++之外的大部分需求 - 它是用Java编写的.它有很好的文档记录,实现支持向量机和集群,我有很好的经验.


weka中的svm实现由libsvm作者完成,而不是weka团队.而且,weka在设计上完全没有效率.Weka只适合玩小型数据集.

3> Yin Zhu..:

通用机器学习库:

这两个类似于Weka.然而,他们有效率.

1.Shark(LGPL)

https://github.com/Shark-ML/Shark/

2.华夫饼(LGPL)

http://waffles.sourceforge.net/

SVM和其他线性分类器:

1.LibSVM(BSD风格)

2.LibLinear(BSD风格)

http://www.csie.ntu.edu.tw/~cjlin/libsvm/

所有这些都是用C++编写的.



4> Björn Pollex..:

好的,为了完整起见,我会发布最后的内容.我现在正在使用scipy-cluster作为聚类部分.这是迄今为止我发现的最通用的实现.我想我将使用libSVM(它现在有一个Python接口)用于SVM部分.我将使用Python,因为在C++中确实没有适合的层次聚类实现(C聚类库专门用于微阵列而不支持多维数据).

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有