数据库数据分析扩展—MADlib

前言

MADlib 是伯克利大学的一个开源软件项目,它提供了精确的数据并行实现、统计和机器学习方法对结构化和非结构化数据进行分析,主要目的是扩展数据库的分析能力,可以非常方便的加载到数据库中, 扩展数据库的分析功能,2015年7月MADlib成为Apache软件基金会的孵化项目,其最新版本为MADlib1.9,支持PostgreSQL、Greenplum数据库和Apache HAWQ。官网地址:http://madlib.incubator.apache.org/。

MADlib功能特色

监督分类、聚类分析、文本分析、回归分析、关联规则挖掘、描述性统计、验证分析等

MADlib安装

MADlib最新发布版本是1.9,若要在PostgreSQL数据库中使用,根据说明文档其支持PostgreSQL9.3和PostgreSQL9.4这两个版本的PostgreSQL数据库,在这两个版本的数据库上使用MADlib,先安装相应操作系统下对应安装包,安装包下载地址:https://dist.apache.org/repos/dist/release/incubator/madlib/1.9-incubating/。

提示:MADlib最新开发版已经提供对PostgreSQL9.5和PostgreSQL9.6的支持,若要在这两个版本的PostgreSQL数据库上使用MADlib,需下载MADlib源码自己编译安装。

MADlib安装成功后,可加载到任一数据库下,根据说明文档,将MADlib加载到PostgreSQL数据库中,其加载命令格式如下
/usr/local/madlib/bin/madpack -s madlib -p postgres -c [user[/password]@][host][:port][/database] install

命令中-s表示安装在数据库的那个模式下,-s madlib 表示新建模式madlib并在其下加载MADlib的所有数据分析函数,命令实例如下

/usr/local/madlib/bin/madpack -p postgres -s public -c postgres@127.0.0.1:5432/
databasename install

提示:在PostgreSQL数据库中加载MADlib需要安装扩展使PostgreSQL支持python语言

MADlib使用:

下图为英国某区域人口、房价、犯罪等信息

利用MADlib,可以很方便地对上图中房价与人口、犯罪信息进行多元回归分析,得出房价高低与人口、犯罪信息的关系,具体使用方式就是编写SQL表达式调用MADlib回归分析函数linregr_train, SQL表达式如下:

结果如下图:

从上图中pvalue的值可看出只有人口密度density与房价的关系是显著的,其pvalue<0.05。图中density的回归系数coefficient为负,表示人口密度越大的区域房价越低(普通住宅区),人口密度越低的区域房价越高(高档住宅区、别墅区)。

总结

MADlib能直接在数据库中使用SQL语句对数据进行数据分析,使数据分析的变得便捷方便,是很实用和强大的数据分析工具。