SQL机器学习库MADlib技术解析 - (EPUB全文下载)
文件大小:0.22 mb。
文件格式:epub 格式。
书籍内容:
SQL机器学习库MADlib技术解析
第1章 MADlib基础
第2章 数据类型
第3章 数据转换
第4章 数据探索
第5章 回归
第6章 时间序列分析
第7章 分类
第8章 聚类
第9章 关联规则
第10章 图算法
第11章 模型评估
第1章 MADlib基础
MADlib是一个基于SQL的数据库内置的开源机器学习库,具有良好的并行度和可扩展性,有高度的预测精准度。MADlib最初由Pivotal公司与伯克利大学合作开发,提供了多种数据转换、数据探索、概率统计、数据挖掘和机器学习方法,使用它能够简易地对结构化数据进行分析和学习,以满足各行各业的应用需求。用户可以非常方便地将MADlib加载到数据库中,从而扩展数据库的分析功能。2015年7月MADlib成为Apache软件基金会的孵化器项目,经过两年的发展,于2017年8月毕业成为Apache顶级项目。MADlib 1.14可以与PostgreSQL、Greenplum和HAWQ等数据库系统无缝集成。
本章首先介绍MADlib的一些基本概念及其有别于其他机器学习工具包的特点。为了更好地使用MADlib,我们将简要说明它的设计思想、工作原理、执行流程和基础架构,还将罗列MADlib支持的模型和主要功能模块,最后说明MADlib软件包的安装与卸载。
1.1 基本概念
1.1.1 MADlib是什么
无论是经典的SAS、SPSS还是时下流行的MATLAB、R、Python,所有这些机器学习或数据挖掘软件都是自成系统的,具体来说就是具有一套完整的程序语言及其集成开发环境,提供了丰富的数学和统计分析函数,具备良好的人机交互界面,支持从数据准备、数据探索、数据预处理到开发和实现模型算法、数据可视化,再到最终结果的验证与模型部署及应用的全过程。它们都是面向程序员的系统或语言,重点在于由程序员自己利用系统提供的基本计算方法或函数,通过编程的方式实现应用需求。
MADlib具有与上述工具完全不同的设计理念,不是面向程序员,而是面向数据库开发人员或DBA。如果要用一句话说明什么是MADlib,那就是“SQL中的大数据机器学习库”。通常SQL查询能发现数据最明显的模式和趋势,但要想获取数据中最为有用的信息,需要的其实是完全不同的一套技术,一套牢固扎根于数学和应用数学的技能(机器学习),而具备这种技术的人才似乎只存在于学术界中。如果能将SQL的简单易用与数据挖掘的复杂算法结合起来,充分利用两者的优势和特点,对于广大传统数据库应用技术人员来说,就可将他们长期积累的数据库操作技能复用到机器学习领域,使转型更加轻松。现在,鱼和熊掌兼得的机会来了,DBA只要使用MADlib,就能用SQL查询实现简单的机器学习。
对用户而言,MADlib提供了可在SQL查询语句中调用的函数,即可以用select+function name的方式来调用这个库。这就意味着,所有的数据调用和计算都在数据库内完成而不需要数据的导入导出。MADlib不仅包括基本的线性代数运算和统计函数,还提供了常用的、现成的机器学习模型函数。用户不需要深入了解算法的程序实现细节,只要搞清楚各函数中相关参数的含义、提供正确的入参并能够理解和解释函数的输出结果即可。这种使用方式无疑会极大地提高开发效率,节约开发成本。在MADlib的世界里,一切皆函数,就是这么简单。
然而,任何事物都具有两面性,虽然MADlib提供了使用方便性、降低了学习和使用门槛,但是相对于其他机器学习系统而言,其灵活性与功能完备性显然是短板。首先,模型已经被封装在SQL函数中,性能优劣完全依赖于函数本身,基本没有留给用户进行性能调整的空间。其次,函数只能在SQL中调用,而SQL依赖于数据库系统。也就是说单独的MADlib函数库是毫无意义的,必须与PostgreSQL、Greenplum和HAWQ等数据库系统结合使用。最后,既然MADlib是SQL中的机器学习库,就注定它不关心数据可视化,本身不带数据的图形化表示功能。由此可见,MADlib作为工具,并不是传统意义上的机器学习系统软件,而只是一套可在SQL中调用的函数库,其出发点是让数据库技术人员用SQL快速完成简单的机器学习工作,比较适合做一些简单的、特征相对明显的机器学习。
即便如此,MADlib的易用性已经足以引起我们的兴趣。在了解了MADlib是什么及其优缺点后,用户就能根据自己的实际情况和需求有针对性地选择和使用MADlib来实现特定业务目标。
1.1.2 MADlib的设计思想
驱动MADlib架构的关键设计思想体现在以下方面:
操作数据库内的本地数据,避免在多个运行时环境之间不必要地移动数据。
充分利用数据库引擎功能,但将机器学习逻辑从数据库特定的实现细节中分离出来。
利用MPP无共享技术提供的并行性和可扩展性,如Greenplum或HAWQ数据库系统。
开放实施,保持与Apache社区的积极联系和持续的学术研究。
操作本地数据的思想与Hadoop是一致的。为了使全局的带宽消耗和I/O延迟降到尽可能小,在选择数据时,MADlib总是选择距离读请求最近的存储节点。如果在读请求所在节点的同一个主机上有需要的数据副本,那么MADlib会尽量选择它来满足读请求。如果数据库集群跨越多个数据中心,那么存储在本地数据中心的副本会优先于远程副本被选择。
MADlib库表现为数据库内置的函数。当函数在SQL语句中执行时,可以充分利用数据库引擎提供的功能。例如,在HAWQ中执行MADlib函数时,每个物理Segment在执行查询的时候会启动多个查询执行器(Query Executor, QE),使得单一物理Segment看起来就像多个虚拟Segment,从而使HAWQ能够更好地利用所有可用资源。虚拟Segment是内存、CPU等资源的容器,每个虚拟Segment都含有为查询启动的一个QE。查询就是在虚拟Segment中被QE所执行的。
MADlib利用Greenplum或HAWQ数据库系统使用的MPP(Massively ............
以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。
书云 Open E-Library » SQL机器学习库MADlib技术解析 - (EPUB全文下载)