从最近几天开始,我正在寻找一些优秀的机器学习(ML)库,令我惊讶的是我发现了很多。最初,我只对那些拥有C / C ++支持的库感兴趣,但后来我扩展了我的愿望清单,以包含任何可以具有良好功能集的良好库,并且可以在较长时间内提供良好的数据挖掘(可能有点困难)最初学习,但应该有可以使其值得学习的东西)。
为此,我想评估这些参数上所有可用的好ML库:
各种数据挖掘算法及其支持的功能
社区支持(如果有更多用户,我们肯定会在工作时获得更多帮助)
它的稳定性
大数据集的效率
易于学习/易于使用/易于操作
它支持的语言(C,C ++,Java,P ython)
开源/闭源
我请求你们所有人请你们提出你的建议(曾经工作或有过与任何图书馆合作的经验),这样我们就可以对任何类似的问题进行全面的讨论。
答案 0 :(得分:7)
您可以查看一个位于Machine Learning Open Source Software页面的地方,而不是推荐一个特定的工具箱。在这里你可以:
按
排序按
过滤这应该能够回答你的问题1),2)和6),默认情况下7)是肯定的(虽然可能有不同风格的开源许可证)。
问题3),4)和5)比较棘手。对mloss有一个评级方案,但它没有按照这些标准细分(稳定性,效率,易用性)。在某些时候,你将不得不进行一些自己的实验 - 从易用性的角度来看,这肯定会有所帮助。对于效率,在某些情况下,工具箱将由journal articles备份,在这种情况下,他们已经通过了严格的同行评审流程,因此,如果您可以找到我期望的相关期刊文章关于效率的讨论(尽管可能不完全公正!)。最后稳定性,我想你必须对社区有一些信任,即评级最高,下载次数最多的工具箱也是最稳定的,尽管你可能只能通过自己的实验发现这一点。
其他信息来源是论坛和一般在线资源,您可以尝试以下方法之一:
答案 1 :(得分:3)
答案 2 :(得分:1)
说真的,这种比较是如此复杂,结果将是任意的。这就像问“什么是最好的车?”
当您进入细节时,您会对这些限制感到惊讶。例如,一个工具包将执行“k-means”,但实际上它只是一个近似k-means,欧几里德距离,仅适用于双值,低维,内存数据。 另一个工具包将带有10种k-means变体,支持任意距离函数(即使k-means对Minkowski规范最有效),支持磁盘操作,但在你的微小测试数据集上会慢得多,因为它支持所有这些选项。例如,在 GNU R 中,您至少有3个k-means变体,但是AFAICT它们都被约束到欧几里德距离。它们可能非常快,因为它们没有在R中实现,而是在低级C中实现;这实际上使得扩展它们更加困难(尽管GNU R具有普遍的可扩展性)。
这是非常主观的。没有答案。您可以做的最好的事情是分别为每个点分配分数。
如果您仍想这样做,请务必将此点添加到您的列表中:可扩展性。速度是一回事,但如果你想将它应用于实际数据,你可能需要自定义距离函数,开始设置,迭代,......
可扩展性也使它们对研究更有用。对诸如GNU R k-means之类的低级C实现进行基准测试与另一种算法的更高级别实现相比是不公平的;您正在对实现进行基准测试而不是算法。因此,为了在科学中使用,它应尽量在算法之间尽可能多地重叠。请参阅:R中的k-means在计算欧几里德距离本身时可能已经比任何JavaScript应用程序都要快得多。
答案 3 :(得分:0)
您可以研究认知架构,它旨在模仿人类大脑的运作方式。在过去,我使用了一种名为ACT-R的架构,这是一种用LISP编写的解释性语言。语法与LISP非常相似,虽然我可能需要许可才能使用该软件,但它很容易上手。
其他常见的认知架构包括Soar,Clarion和EPIC,所有这些都试图模仿人类大脑处理信息的方式。使用这些体系结构在某些方面与编写功能程序有很大不同,但是你很快就会习惯它,并且可以做一些很棒的事情。