随着数据规模的不断扩大,目前,许多现有的分析解决方案都无法胜任大规模数据量的计算任务。利用MADlib项目来创建一个框架,以满足大规模数据量的需求,该框架旨在利用现代计算能力,提供适应业务需求的强大解决方案。
概述
MADlib实现方案来自商业实践、学术研究和开源开发社区的多方面努力,它是一个基于SQL的数据库内置的可扩展的开源机器学习库,由Pivotal与UCBerkeley合作开发。MADlib创始于2011年,当时属于EMC/Greenplum,后来Greenplum变成了pivotal的Greenplum。主要由伯克利的学者:Joe Hellerstein发起,Stanford, University of Wisconsin-MADISON和University of Florida也有参与。MAD一词来源于:Magnetic、Agile、Deep三个词的首字母,意为有吸引力的、快速的、精准深入的,三个单词连在一起,意思是“极好的”,旨在为数据科学家们提供一个极好的机器学习和数据分析平台。
MADlib提供了丰富的分析模型,包括回归分析,决策树,随机森林,贝叶斯分类,向量机,风险模型,KMEAN聚集,文本挖掘,数据校验等。MADlib支持Greenplum,PostgreSQL 以及 Apache HAWQ, In-Database Analytics的特性使其大大扩展了数据库的分析功能,充分利用MPP架构使其能够快速处理海量数据集。
本文将为大家介绍MADlib的基本架构,工作原理及特性,并为开发人员提供快速入门指南。
历史回顾
MADlib创始于2011年,2015年7月MADlib成为Apache软件基金会的孵化器项目,经过两年的发展,于2017年8月成为Apache顶级项目。整个项目和代码是在Apache上是开源的,到目前为止,已经正式发布了MADlib 1.14、MADlib 1.15、MADlib 1.15.1、MADlib 1.16 四个正式版本。
MADlib 1.16 版
2019年7月8日,MADlib完成了作为Apache软件基础顶级项目的第六次发布。
新的特性包括:
· 深度学习-早期支持Keras与TensorFlow后端与GPU加速。 关注图像分类用例
· 深度学习实用程序-加载模型体系结构和权重,并行加载来自NumPy数组或文件系统的图像,为梯度下降优化算法预处理图像。
· 支持Greenplum 6
· 支持PostgreSQL 11
改进之处:
· k-近邻分类算法 -用kd树近似方法提高性能。
· 关联规则-将默认最大项集规则设置为10,以减少运行时间
MADlib 1.15.1 版
2018年10月15日,MADlib完成了作为Apache软件基础顶级项目的第五次发布。
新的特性包括:
· 支持Ubuntu 16.04
改进之处:
· 弹性网-支持按非数值列分组。
· k-近邻分类算法-接受点的表达式
· vec2cols-允许不同长度的数组。
MADlib 1.15 版
2018年8月10日,MADlib完成了作为Apache软件基础顶级项目的第四次发布。
新的特性包括:
· 实用工具程序-列到向量,向量到列,删除列。
改进之处:
· 多层感知器-增加动量和Nesterov的加速梯度方法梯度更新。
· 统计-增加了对相关性和协方差的分组支持。
· 决策树/随机森林-增加杂质变量的重要性。
· 决策树/随机森林-添加了新的助手函数,以更可读的方式报告变量重要性值。
· 安装-重构并更新madpack安装和升级工具
MADlib 1.14 版
2018年5月1日,MADlib完成了作为Apache软件基础顶层项目的第三次发布
新特性包括:
· 平衡数据集,个性化页面排名,多层感知器神经网络的小批量优化器(和相关的预处理器功能),支持PostgreS QL10.2
改进之处:
· k-近邻分类算法-增加了按距离加权平均/投票。
· 摘要-增加了更多的