16. Fuel 是一个数据管道框架(data pipeline framework),它为机器学习模型提供所需的数据。Blocks 和 Pylearn2 这两个神经网络库都有计划使用 Fuel。
提交数: 1053, 贡献者: 29, Github 链接: Fuel()
17.PyMVPA 是一个 Python 包,旨在简化大型数据集的统计学习分析。它提供了一个可扩展的框架和一个用于分类,回归,特征选择,数据导入导出等算法的高级接口。
提交数: 9258, 贡献者: 26, Github 链接: PyMVPA(https://github.com/PyMVPA/PyMVPA)
18. Annoy (Approximate Nearest Neighbors Oh Yeah) 是一个带有 Python 绑定的 C++ 库,用于在空间中找到和已知的查询点临近的点。它还可以创建大型的基于文件的只读数据结构,并映射至内存,以便多个进程能共同使用相同的数据。
提交数: 365, Contributors: 24, Github 链接: Annoy(https://github.com/spotify/annoy)
19. Deap 是一个创新的,仍在发展中的计算框架,用于快速构建原型和测试方法。它旨在使算法和数据结构更加清晰透明。它与并行机制(如多进程和 SCOOP 模块)完美协调。
提交数: 1854, 贡献者: 21, Github 链接: Deap(https://github.com/deap/deap)
20. Pattern 是一个 Python 的网络挖掘模块。它绑定了数据挖掘(Google + Twitter + Wikipedia API, 网络爬虫, HTML DOM 解析器),自然语言处理 (词性标记, n-gram 搜索, 语义分析, WordNet),机器学习(向量空间模型, k-means 聚类, Naive Bayes + k-NN + SVM 分类器) 和网络分析(图核心性 graph centrality 和可视化)等工具。
提交数: : 943, Contributors: 20 , Github 链接: Pattern()
在下面的图表中,可以看到 PyMVPA 相较于其他项目拥有最高的贡献率(contribution rate)。令人吃惊的是,Scikit-learn 虽然拥有最多的贡献者,但是贡献率却很低。这种现象背后的原因可能是:PyMVPA 是新项目,正处于开发的早期阶段,新功能开发,漏洞修补和重构等都能够引导更多的提交。而 Scikit-learn 属于比较旧且非常稳定的项目,改进和修复的空间更小。
在比较同时上榜 2015 和 2016 Top 20 的项目时,可以发现,Pattern,PyBrain 和 Pylearn2 没有新的贡献者(contributors)也没有新的贡献代码。同时,还可以发现贡献者数和提交数之间有显著关联。贡献者数的增长可能会导致提交数的增长,我认为这是开源项目和社区的魔力——引领头脑风暴,激发更多创意,开发更好的软件工具。
以上是对 2016 Python 机器学习开源项目所做的分析,该分析基于项目贡献者和提交数,作者是 KDnuggets 团队的 Prasad 和 Gregory。