MADlib——基于SQL的数据挖掘解决方案
文章平均质量分 93
介绍分类、聚类、关联、回归、预测、模型评估等数据挖掘方法及其在MADlib 1.10.0版本上的具体实现示例。
wzy0623
25年的数据库、数据仓库、大数据相关工作。《Hadoop构建数据仓库实践》、《HAWQ数据仓库与数据挖掘实战》、《SQL机器学习库——MADlib技术解析》、《MySQL高可用实践》、《Kettle构建Hadoop ETL》、《Greenplum构建实时数据仓库实践》作者。
展开
-
MADlib——基于SQL的数据挖掘解决方案(1)——数据挖掘入门
一、什么是数据挖掘 数据挖掘(Data Mining),也叫数据开采、数据采掘等,是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,自动提取隐含在其中的、人们事先不知道的,但又是潜在有用的信息的过程。这些信息的表现形式为规则、概念、规律及模式等。 从上述定义可见数据挖掘明显有别于传统数据处理技术(如事务处理,OLTP)。首先数据挖掘面对的是大量的不完全的数据原创 2017-12-19 11:09:30 · 20156 阅读 · 0 评论 -
MADlib——基于SQL的数据挖掘解决方案(2)——MADlib基础
一、MADlib简介 MADlib是Pivotal公司与伯克利大学合作开发的一个开源机器学习库,提供了多种数据转换、数据探索、统计、数据挖掘和机器学习方法,使用它能够简易地对结构化数据进行分析和挖掘。用户可以非常方便地将MADlib加载到数据库中,扩展数据库的分析功能。2015年7月MADlib成为Apache软件基金会的孵化器项目,经过两年的发展,于2017年8月毕业成为Apach原创 2017-12-19 17:22:04 · 12648 阅读 · 1 评论 -
MADlib——基于SQL的数据挖掘解决方案(3)——数据类型之向量
通常数据挖掘操作的数据集可以看作数据对象的集合。数据对象有时也叫做记录、点、向量、模式、事件、案例、样本、观测或实体。数据对象用一组刻画对象基本特征(如物体质量或事件发生的时间)的属性描述。属性有时也叫做变量、特性、字段、特征或维。而在数学上,向量和矩阵可以用来表示数据对象及其属性。 和其它数据挖掘语言或工具一样,MADlib操作的基本对象也是向量与矩阵。对向量和矩阵的操作是通过一系原创 2017-12-22 15:56:56 · 2233 阅读 · 0 评论 -
MADlib——基于SQL的数据挖掘解决方案(4)——数据类型之矩阵
矩阵可以用来表示数据集,描述数据集上的变换,是MADlib中数据的基本格式,通常使用二维数组数据类型存储。MADlib中的向量是一维数组,可看作是矩阵的一种特殊形式。MADlib的矩阵运算模块(matrix_ops)实现SQL中的矩阵操作。本篇介绍矩阵的概念,说明MADlib矩阵运算相关函数,并举出一些简单的函数调用示例。 一、矩阵定义 矩阵(matrix)是把数集合汇聚成行和列的一原创 2017-12-26 17:31:25 · 2053 阅读 · 0 评论 -
MADlib——基于SQL的数据挖掘解决方案(5)——数据转换之邻近度
MADlib的线性代数模块(linalg module)包括基本线性代数操作的实用函数,其中包括多种范式、距离、相似度、向量均值、矩阵聚合等函数。本篇先从讨论相似性和相异性的基本概念,然后对照概念说明MADlib的线性代数函数,并用简单示例描述这些函数的用法。一、邻近度的度量 相似性要和相异性是重要的概念,因为它们被许多数据挖掘技术所使用,如聚类、最邻近分类和异常检测等。在许多情况下原创 2017-12-29 18:45:57 · 2010 阅读 · 0 评论 -
MADlib——基于SQL的数据挖掘解决方案(6)——数据转换之矩阵分解
矩阵分解(Matrix Factorization)简单说就是将原始矩阵拆解为数个矩阵的乘积。在一些大型矩阵计算中,其计算量大,化简繁杂,使得计算非常复杂。如果运用矩阵分解,将大型矩阵分解成简单矩阵的乘积形式,则可大大降低计算的难度以及计算量。这就是矩阵分解的主要目的。而且,对于矩阵的秩的问题,奇异性问题,特征值问题,行列式问题等等,通过矩阵分解后都可以清晰地反映出来。另一方面,对于那些大型的数值原创 2018-01-04 17:30:41 · 2218 阅读 · 3 评论 -
MADlib——基于SQL的数据挖掘解决方案(7)——数据转换之其它转换
本篇介绍MADlib提供的的另外三个常用数据转换方法,即透视表、分类变量编码和词干提取。透视表最主要的用途是行列转置,常被用于报表需求。MADlib的分类变量编码可以理解为一种特殊的单列变多列的数据转换,对每个类别值新增为一列,列的取值是0或1,表示行对象是否属于该类别。词干提取则用于提取英文单词的词干。一、透视表 MADlib提供了一个名为pivot的函数,作为一个基础的数据汇总工原创 2018-01-09 09:57:10 · 1500 阅读 · 0 评论 -
MADlib——基于SQL的数据挖掘解决方案(8)——数据探索之描述性统计
对数据进行统计是从定量的角度去探索数据,是最基本的数据探索方式,其主要目的是了解数据从统计学上反映的量的特征,以便我们更好地认识这些将要被挖掘的数据。 我们先要清楚两个关于统计学的基本概念:总体和样本。统计的总体是人们研究对象的全体,又称母体,如工厂一天生产的全部产品。总体中的每一个基本单位,如一件产品称为个体,个体的特征用一个变量,如x来表示。从总体中随机产生的若干个体的集合称为样原创 2018-01-16 13:11:44 · 2150 阅读 · 0 评论 -
MADlib——基于SQL的数据挖掘解决方案(9)——数据探索之概率统计
样本是随机变量,统计量作为样本的函数自然也是随机变量。当用它们去推断总体时,有多大的可靠性与统计量的概率分布有关。本篇学习概率统计的基本知识,以及在此基础上的统计推论。MADlib提供了概率函数和统计推论两个模块,分别用于实现概率和假设检验相关的函数。一、概率1. 概率的定义 我们从随机试验开始讨论。随机试验(random experiment)是测量其结果不确定的过程的试验,所有原创 2018-01-17 17:49:09 · 1876 阅读 · 0 评论 -
MADlib——基于SQL的数据挖掘解决方案(10)——数据探索之主成分分析
数据挖掘中经常会遇到多个变量的问题,而且在多数情况下,多个变量之间常常存在一定的相关性。例如,网站的“浏览量”和“访客数”往往具有较强的相关关系,而电商应用中的“下单数”和“成交数”也具有较强的相关关系。这里的相关关系可以直观理解为当浏览量较高(或较低)时,应该很大程度上认为访客数也较高(或较低)。在这个简单的例子中只有两个变量,当变量个数较多且变量之间存在复杂关系时,会显著增加分析问题的复杂性。原创 2018-01-25 14:55:40 · 2851 阅读 · 0 评论 -
MADlib——基于SQL的数据挖掘解决方案(11)——回归之线性回归
一、回归方法简介 事物之间的关系可以抽象为变量之间的关系。变量之间的关系可以分为两类:一类叫确定关系,也叫函数关系,其特征是:一个变量随着其它变量的确定而确定。另一类关系叫相关关系,变量之间的关系很难用一种精确的方法表示出来。例如,通常人的年龄越大血压越高,但人的年龄和血压之间没有确定的数量关系,人的年龄与血压之间的关系就是相关关系。回归方法就是处理变量之间相关关系的一种数学方法...原创 2018-01-29 16:21:35 · 3967 阅读 · 3 评论 -
MADlib——基于SQL的数据挖掘解决方案(12)——回归之广义线性模型
一、广义线性模型简介 在一些实际问题中,变量间的关系并不都是线性的,这种情况就应该用曲线去进行拟合。用曲线拟合数据首先要解决的问题是回归方程中的参数如何估计。下面以一元非线性回归为例,讨论解决这一问题的基本思路。 对于曲线回归建模的非线性目标函数,通过某种数学变换,使之“线性化”为一元线性函数的形式,继而利用线性最小二乘估计的方法估计出参数a和b,用一元线性回归方程来描原创 2018-01-30 14:38:44 · 1495 阅读 · 1 评论 -
MADlib——基于SQL的数据挖掘解决方案(13)——回归之逻辑回归
一、逻辑回归简介 在回归分析中,因变量 y 可能有两种情形:(1)y 是一个定量的变量,这时就用通常的回归函数对 y 进行回归;(2)y 是一个定性的变量,比如y=0或1,这时就不能用通常的回归函数进行回归,而是使用所谓的逻辑回归(Logistic Regression)。逻辑回归方法主要应用在研究某些现象发生的概率p ,比如股票涨跌、公司成败的概率。逻辑回归模型的基本形式为:原创 2018-01-31 15:09:30 · 3097 阅读 · 0 评论 -
MADlib——基于SQL的数据挖掘解决方案(14)——回归之多类回归
一、多类回归简介1. 基本介绍 如上篇所述,逻辑回归比较常用的是因变量为二分类的情况,这也是比较简单的一种形式。但在现实中,因变量的分类有时候多于两类,如疗效可能是“无效”“显效”“痊愈”三类,当然可以把其中两类进行合并,然后仍然按照二分类逻辑回归进行分析,但是合并的弊端是显而易见的,它可能损失一定的信息。而多分类则充分利用了完整的信息,可能提供更多的结果。如果目标类别数超过两个,这原创 2018-02-01 14:15:21 · 1013 阅读 · 0 评论 -
MADlib——基于SQL的数据挖掘解决方案(15)——回归之序数回归
上篇介绍的多类回归,因变量的多个分类是无序的,即所谓的定类数据。还有一种分类数据,其类别存在大小顺序,即定序数据。这两类逻辑回归的原理是不同的。本篇介绍MADlib的序数回归模型。 一、序数回归简介 在统计学中,序数回归(Ordinal Regression,也称为“序数分类”)是一种用于预测序数变量的回归分析,即其值存在于任意范围内的变量,其中只有不同值之间的相对排序是显着的。它可原创 2018-02-02 13:42:51 · 3738 阅读 · 0 评论 -
MADlib——基于SQL的数据挖掘解决方案(16)——回归之弹性网络回归
一、弹性网络回归简介 要想理解弹性网络(Elastic Net)回归,正则化是必须要首先知道的,其次是岭回归和Lasso回归,知道了这些,弹性网络回归自然也就明白了。 1. 正则化 假设利用最小二乘法来做线性回归,最小二乘法回归成功的条件是: 即上面这个函数(损失函数)达到最小值,可得到最优的拟合参数θ。但是存在这样一种情况,如果我们用来拟合的自变量(特原创 2018-02-05 16:32:17 · 2663 阅读 · 0 评论 -
MADlib——基于SQL的数据挖掘解决方案(17)——回归之Cox比例风险回归
一、Cox比例风险回归简介 Cox比例风险回归模型(Cox’s proportional hazards regression model),简称Cox回归模型,由英国统计学家D.R.Cox于1972年提出,主要用于肿瘤和其它慢性病的预后分析,也可用于队列研究的病因探索。 1. 基本概念生存函数:又称累计生存率,简称生存率,常用S(t)表示。代表被观察对象的生存时间大于t时刻的概率原创 2018-02-06 11:39:18 · 5262 阅读 · 0 评论 -
MADlib——基于SQL的数据挖掘解决方案(18)——回归之稳健方差
Robust Variance模块中的函数用于计算线性回归、逻辑回归、多类逻辑回归和Cox比例风险回归的稳健方差(Huber-White估计)。它们可用于计算具有潜在噪声异常值的数据集中数据的差异。此处实现的Huber-White与R模块“sandwich”中的“HC0”三明治操作完全相同。 线性、逻辑和多类逻辑回归的稳健方差接口是相似的。每种回归类型都有自己的训练函数。回归结果保存翻译 2018-02-07 14:56:36 · 1501 阅读 · 0 评论 -
MADlib——基于SQL的数据挖掘解决方案(19)——回归之聚类方差
Clustered Variance模块调整聚类的标准误。例如,将一个数据集合复制100次,不应该增加参数估计的精度,但是在符合独立同分布假设(Independent Identically Distributed,IID)下执行这个过程实际上会提高精度。另一个例子是在教育经济学的研究中,有理由期望同一个班里孩子的误差项不是独立的。聚类标准误可以解决这个问题。 MA...翻译 2018-02-08 13:45:39 · 1283 阅读 · 0 评论 -
MADlib——基于SQL的数据挖掘解决方案(20)——时间序列分析之ARIMA
一、时间序列分析简介1. 时间序列的定义 所谓时间序列就是按照一定的时间间隔排列的一组数据,其时间间隔可以是任意的时间单位,如小时、日、周、月等。这一组数据可以表示各种各样的含义,如经济领域中每年的产值、国民收入、商品在市场的销量、股票数据的变化情况等;社会领域中某一地区的人口数、医院患者人数、铁路客流量等,自然领域的太阳黑子数、月降水量、河流流量等,这些数据都形成了一个时间序列。人...原创 2018-02-11 15:36:26 · 3430 阅读 · 0 评论 -
MADlib——基于SQL的数据挖掘解决方案(21)——分类之KNN
一、分类方法概要 1. 分类的概念 数据挖掘中分类的目的是学会一个分类函数或分类模型,该模型能把数据库中的数据项映射到给定类别中的某一个。分类可描述如下:输入数据,或称训练集(Training Set),是由一条条数据库记录(Record)组成的。每一条记录包含若干个属性(Attribute),组成一个特征向量。训练集的每条记录还有一个特定的类标签(Class Label)与之对应...原创 2018-03-05 11:06:26 · 4462 阅读 · 0 评论 -
MADlib——基于SQL的数据挖掘解决方案(22)——分类之朴素贝叶斯
一、贝叶斯分类简介1. 贝叶斯分类原理 贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。贝叶斯分类是一种利用概率统计知识进行分类的算法,其分类原理是贝叶斯定理。贝叶斯定理是由18世纪概率论和决策论的早期研究者Thomas Bayes发明的,故用其名字命名为贝叶斯定理。 贝叶斯定理(Bayes’theorem)是概率论中的一个结果,它与...原创 2018-03-06 14:49:24 · 2121 阅读 · 1 评论 -
MADlib——基于SQL的数据挖掘解决方案(23)——分类之SVM
一、SVM简介 SVM法即支持向量机(Support Vector Machine,SVM)法,由Vapnik等人于1995年提出,具有相对优良的性能指标。该方法是建立在统计学理论基础上的机器学习方法。通过学习算法,SVM可以自动寻找那些对分类有较好区分能力的支持向量,由此构造出的分类器可以最大化类与类的间隔,因而有较好的适应能力和较高的分准率。该方法只需要由各类域的边界样本的类别来...原创 2018-03-08 10:52:11 · 4442 阅读 · 2 评论 -
MADlib——基于SQL的数据挖掘解决方案(24)——分类之决策树
一、决策树简介1. 决策树的基本概念 决策树(Decision Tree)又称为分类树(Classification Tree),是最为广泛的归纳推理算法之一,处理类别型或连续型变量的分类预测问题,可以用图形和if-then的规则表示模型,可读性较高。决策树模型通过不断地划分数据,使因变量的差别最大,最终目的是将数据分类到不同的组织或不同的分枝,在因变量的值上建立最强的归类。 ...原创 2018-03-10 09:26:18 · 4480 阅读 · 0 评论 -
MADlib——基于SQL的数据挖掘解决方案(25)——分类之随机森林
一、随机森林简介1. 装袋 装袋(bagging)又称自助聚集(bootstrap aggregating),是一种根据均匀概率分布从数据集中重复抽样(有放回的)的技术。每个自助样本集都和原始数据集一样大。由于抽过程是有回放的,因此一些样本可能在同一训练数据集总出现多次,而其它一些却可能被忽略。一般来说,自助样本 大约包含63%的原训练数据,因为每一样本抽样到 的概率为 ,如果N...原创 2018-03-12 18:14:48 · 2175 阅读 · 0 评论 -
MADlib——基于SQL的数据挖掘解决方案(26)——聚类之k-means方法
“物以类聚,人以群分”,其核心思想就是聚类。所谓聚类,就是将相似的事物聚集在一起,而将不相似的事物划分到不同的类别的过程,是数据分析中十分重要的一种手段。比如古典生物学中,人们通过物种的形貌特征将其分门别类,可以说就是一种朴素的人工聚类。如此,我们就可以将世界上纷繁复杂的信息,简化为少数方便人们理解的类别,因此聚类可以说是人类认知这个世界的最基本方式之一。通过聚类,人们能意识到密集...原创 2018-03-13 12:36:44 · 4204 阅读 · 1 评论 -
MADlib——基于SQL的数据挖掘解决方案(27)——关联规则之Apriori算法
数据仓库或数据挖掘从业者一定对“啤酒与尿布”的故事不会陌生。这就是一个使用关联规则的经典案例。根据对超市顾客购买行为的数据挖掘发现,男顾客经常一起购买啤酒和尿布,于是经理决定将啤酒与尿布放置在一起,让顾客很容易在货架上看到,从而使销售额大幅度增长。关联规则挖掘在多个领域得到了广泛应用,包括互联网数据分析、生物工程、电信和保险业的错误校验等。本篇将介绍关联规则方法、Apriori算法...原创 2018-03-14 10:42:17 · 2757 阅读 · 0 评论 -
MADlib——基于SQL的数据挖掘解决方案(28)——图算法之单源最短路径
图算法指利用特制的线条算图求得答案的一种简便算法。无向图、有向图和网络能运用很多常用的图算法,其中主要包括各种遍历算法(这些遍历类似于树的遍历),寻找最短路径的算法,寻找网络中最低代价路径的算法。这些算法常被用以回答一些与图相关的问题,诸如图是否是连通的,图中两个顶点间的最短路径是什么等等。在数据挖掘领域中,图算法可应用到多种场合,以解决特定问题,如管道优化、路由选择、快递服务、网...原创 2018-03-15 11:01:28 · 1396 阅读 · 0 评论 -
MADlib——基于SQL的数据挖掘解决方案(29)——模型评估之交叉验证
验证是评估数据挖掘模型对实际数据执行情况的过程。在将挖掘模型部署到生产环境之前,必须通过了解其质量和特征来对其进行验证,评估模型的准确性、可靠性和可用性。可以使用多种方法评估数据挖掘模型的质量和特征:使用统计信息有效性的各种度量值来确定数据或模型中是否存在问题。将数据划分为定型集和测试集,以测试预测的准确性。请求商业专家查看数据挖掘模型的结果,以确定发现的模式在目标商业方案中是否有...原创 2018-03-16 11:15:24 · 1946 阅读 · 0 评论 -
MADlib——基于SQL的数据挖掘解决方案(30)——模型评估之预测度量
一、预测度量 该模块提供了一组度量来评估模型预测的质量。除非另有说明,典型的函数将采用一组“预测”和“观察”值,并使用它们来计算所需的度量。所有功能都支持分组(混淆矩阵除外)。二、预测度量函数平均绝对误差:mean_abs_error(table_in, table_out,prediction_col, observed_col, grouping_cols) 平均绝对百分误差:m...翻译 2018-03-16 11:36:37 · 1177 阅读 · 0 评论