一.机器学习框架介绍
机器学习近几年如火如荼的发展,各大公司以及人工智能的爱好者组织已经研发了很多开源的机器学习框架,里面封装了很多机器学习的算法,使得机器学习工程师们只需要关注模型的训练和调参,不需要关注算法的实现细节。本文选取了几个比较火的机器学习框架进行介绍。
1.1 Appach Mahout
Mahout 是ApacheSoftware Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。此外,通过使用Apache Hadoop 库,Mahout 可以有效地扩展到云中。Apache Mahout项目的目标是建立一个能够快速创建可扩展、高性能机器学习应用的环境。
虽然在开源领域中相对较为年轻,但 Mahout 已经提供了大量功能,特别是在集群和 CF 方面。Mahout 的主要特性包括:
l Taste CF,Taste是Sean Owen在SourceForge上发起的一个针对CF的开源项目,并在2008年被赠予Mahout;
l 一些支持 Map-Reduce的集群实现包括 k-Means、模糊 k-Means、Canopy、Dirichlet 和Mean-Shift;
l Distributed NaiveBayes 和 Complementary Naive Bayes 分类实现;
l 针对进化编程的分布式适用性功能;
l Matrix 和矢量库。
使用Mahout 还可实现内容分类。Mahout 目前支持两种根据贝氏统计来实现内容分类的方法:第一种方法是使用简单的支持 Map-Reduce 的 Naive Bayes 分类器;第二种方法是 Complementary Naive Bayes,它会尝试纠正Naive Bayes方法中的一些问题,同时仍然能够维持简单性和速度。
Mahout支持的算法模型:协同过滤、相似度矩阵、近邻算法、推荐算法、聚类算法。
优点:
l 不仅能够支持Hadoop也能支持其他的平台
缺点:
l 只实现了部分基于Map-Reduce的机器学习算法
支持语言:Java
开发语言:Java
许可协议:Apache LICENSE-2.0
GitHub项目地址: https://github.com/apache/mahout
1.2 Scikit-Learn
Scikit-Learn是用于机器学习的Python 模块,它建立在SciPy之上。该项目由David Cournapeau 于2007年创立,当时项目名为Google Summer of Code,自此之后,众多志愿者都为此做出了贡献。
主要特点:
l 操作简单、高效的数据挖掘和数据分析
l 无访问限制,在任何情况下可重新使用
l 建立在NumPy、SciPy 和matplotlib基础上
Scikit-Learn支持的算法模型