1.2 MADlib的功能
1.2.1 MADlib支持的模型类型
MADlib支持以下常用机器学习模型类型,其中大部分模型都包含训练和预测两组函数。
(1)回归
如果所需的输出具有连续性,我们通常使用回归方法建立模型,预测输出值。例如,如果有真实的描述房地产属性的数据,我们就可以建立一个模型,预测基于房屋已知特征的售价。因为输出反应了连续的数值而不是分类,所以该场景是一个回归问题。
(2)分类
如果所需的输出实质上是分类的,就可以使用分类方法建立模型,预测新数据会属于哪一类。分类的目标是能够将输入记录标记为正确的类别。例如,假设有描述人口统计的数据,以及个人申请贷款和贷款违约历史数据,那么我们就能建立一个模型,描述新的人口统计数据集合贷款违约的可能性。此场景下输出的分类为“违约”和“正常”两类。
(3)关联规则
关联规则有时又叫作购物篮分析或频繁项集挖掘。相对于随机发生,确定哪些事项更经常一起发生,指出事项之间的潜在关系。例如,在一个网店应用中,关联规则挖掘可用于确定哪些商品倾向于被一起售出,然后将这些商品输入到客户推荐引擎中,提供促销机会,就像著名的啤酒与尿布的故事。
(4)聚类
识别数据分组,一组中的数据项比其他组的数据项更相似。例如,在客户细分分析中,目标是识别客户行为相似特征组,以便针对不同特征的客户设计各种营销活动,以达到市场目的。如果提前了解客户细分情况,这将是一个受控的分类任务。当我们让数据识别自身分组时,这就是一个聚类任务。
(5)主题建模
主题建模与聚类相似,也是确定彼此相似的数据组。这里的相似通常特指在文本领域中具有相同主题的文档。注意,MADlib的当前实现并不支持中文分词。
(6)描述性统计
描述性统计不提供模型,因此不被认为是一种机器学习方法,但是描述性统计有助于向分析人员提供信息以了解基础数据,为数据提供有价值的解释,可能会影响数据模型的选择。例如,计算数据集中每个变量内的数据分布有助于分析理解哪些变量应被视为分类变量、哪些变量是连续性变量以及值的分布情况。描述性统计通常是数据探索的组成部分。
(7)模型验证
不了解一个模型的准确性就开始使用它,很容易导致糟糕的结果,所以理解模型存在的问题,并用测试数据评估模型的精度尤为重要。需要将训练数据和测试数据分离,频繁进行数据分析,验证统计模型的有效性,评估模型不过分拟合训练数据。N-fold交叉验证方法经常被用于模型验证。
1.2.2 MADlib的主要功能模块
MADlib的主要功能模块如图1-5所示。
图1-5 MADlib主要功能模块
下面基于MADlib 1.10版本预览MADlib提供的具体模型算法或功能。
(1)Data Types and Transformations(数据类型与转换)
•Arraysand Matrices(数组与矩阵)
•ArrayOperations(数组运算)
•MatrixOperations(矩阵运算)
•MatrixFactorization(矩阵分解)
◆ Low-rankMatrix Factorization(低阶矩阵分解)
◆ SingularValue Decomposition(SVD,奇异值分解)
■Normsand Distance functions(范数和距离函数)
■SparseVectors(稀疏向量)
•DimensionalityReduction(降维)
■PrincipalComponent Analysis(PCA主成分分析)
■PrincipalComponent Projection(PCP主成分投影)
•Pivot(透视表)
•EncodingCategorical Variables(分类变量编码)
•Stemming(词干提取)
(2)Graph(图)
•SingleSource Shortest Path(单源最短路径)
(3)Model Evaluation(模型评估)
•CrossValidation(交叉验证)
•PredictionMetrics(指标预测)
(4)Statistics(统计)
•DescriptiveStatistics(描述性统计)
■Pearson's Correlation(皮尔森相关系数)
■Summary(摘要汇总)
•InferentialStatistics(推断性统计)
■HypothesisTests(假设检验)
•ProbabilityFunctions(概率函数)
(5)Supervised Learning(监督学习)
•ConditionalRandom Field(条件随机场)
•RegressionModels(回归模型)
■ClusteredVariance(聚类方差)
■Cox-ProportionalHazards Regression(Cox比率风险回归)
■ElasticNet Regularization(弹性网络回归)
■GeneralizedLinear Models(广义线性回归)
■LinearRegression(线性回归)
■LogisticRegression(逻辑回归)
■MarginalEffects(边际效应)
■MultinomialRegression(多分类逻辑回归)
■OrdinalRegression(有序回归)
■RobustVariance(鲁棒方差)
•SupportVector Machines(支持向量机)
•TreeMethods(树方法)
■DecisionTree(决策树)
■RandomForest(随机森林)
(6)Time Series Analysis(时间序列分析)
•ARIMA(自回归积分滑动平均)
(7)UnsupervisedLearning(无监督学习)
•AssociationRules(关联规则)
■AprioriAlgorithm(Apriori算法)
•Clustering(聚类)
■k-MeansClustering(k-Means)
•TopicModelling(主题模型)
■LatentDirichlet Allocation(LDA)
(8)Utility Functions(应用函数)
•DeveloperDatabase Functions(开发者数据库函数)
•LinearSolvers(线性求解器)
■DenseLinear Systems(稠密线性系统)
■SparseLinear Systems(稀疏线性系统)
•PathFunctions(路径函数)
•PMMLExport(PMML导出)
•Sessionize(会话化)
•TextAnalysis(文本分析)
■TermFrequency(词频)