您正在查看9.7 -版本的RapidMiner Radoop文档点击这里查看最新版本
高级Radoop流程
要理解高级的Radoop过程设计,您应该熟悉RapidMiner数据流。Radoop基础知识,如何导入数据.下一节介绍RapidMiner Radoop的预测分析功能,并说明它如何通过使用相同的I/O对象、元数据和进程设计概念顺利地集成到RapidMiner客户端接口中。然而,由于Radoop在Hadoop中实现操作,您可以在集群上部署您的流程(或它的选定部分),以使用可扩展的分布式算法来管理庞大的数据量。
模型对象
数据挖掘方法,主要是监督学习算法,创建预测模型。(其他算法生成其他类型的模型,但本节主要关注预测和聚类模型。)这些模型描述了从训练数据集中探索的信息。RapidMiner模型是一个I/O对象预测模型,集群模式,或预处理模型-就像一个ExampleSet对象。模型的可视化将探索的信息显示给用户。
Radoop和核心RapidMiner操作符训练和应用相同类型的模型对象。更准确地说,Radoop在分布式基础设施上实现了一些流行的RapidMiner模型的评分和学习;所有核心预测模型现在都可以应用于集群。这不仅适用于预测模型,也适用于预处理模型,例如预处理算子,添加噪声,生成(噪声模型)。
与建模相关的另一种I/O对象是性能向量对象。预测以模型的形式,通过将预期的目标属性值与评分结果进行比较来评估。有了这个结果,性能标准创建了从数据挖掘过程目标的角度描述预测(模型)有效性的度量。换句话说,Radoop在集群上执行评分和模型应用程序以及性能标准计算。
数据挖掘场景
本节回顾预测建模过程的一些可能的内存/集群场景。
Hadoop中的无监督学习.在这个场景中,可扩展的分布式算法在Hadoop中创建数据集群。一些聚类算法构建的聚类模型可以应用于其他类似的数据集,无论是在Hadoop上还是在内存中。模型是在集群模式(clu)聚类算子输出端口。
在记忆中进行监督学习,在聚类上打分.Core RapidMiner建模(分类和回归)操作符在内存中构建预测模型,然后可以将其应用于集群中的数据。Radoop支持应用所有核心预测模型。通过使用SparkRM或单流程下推操作符,学习可以在一个或多个集群节点的内存中并行执行,使用任何核心RapidMiner建模操作符。
在集群上使用本地算法进行监督学习和评分.在这个场景中,学习和评分都是在分布式平台上实现的。Radoop支持以下算法:朴素贝叶斯、线性回归、逻辑回归、支持向量机、决策树和随机森林。它还支持迭代朴素贝叶斯模型构建,这意味着模型(构建在集群上或内存中)可以被新数据(在集群上或内存中)更新。
聚类模型
Radoop集群运营商都是建立在分布式机器学习算法上的Apache Mahout项目。集群操作符的输入是一个HadoopExampleSet对象。该算法在数据中创建指定数量的段。它向数据集添加了一个新属性,名为clusterid,它有集群的角色。该属性包含集群标识符cluster_1,cluster_2等。
聚类操作符还可以指示某个记录与其他记录的距离太远,因此应该将其视为离群值。在本例中,cluster属性包含该值离群值.
k - means和模糊k - means算法还建立了质心聚类模型。可以使用质心模型对驻留在集群或内存中的类似结构化数据集进行聚类。
分类和回归模型
您可以在客户端机器的内存或集群节点的内存(使用SparkRM或单流程下推操作符)到a的输入端口Radoop巢并在子进程中使用它们。Radoop的应用模型算子将这样一个模型和一个测试数据集作为输入。操作符将预测模型应用于HadoopExampleSet输入,并提供具有新预测列和置信度列的HadoopExampleSet。在集群模型中,Radoop生成一个集群列。
Radoop支持所有RapidMiner预测和集群模型的集群评分。这些模型在相同的数据集上产生相同的巢内和巢外预测,但巢内评分不受操作内存大小的限制;它可以在分布式平台上扩展。
您还可以在分布式平台上训练预测模型。Radoop支持朴素贝叶斯,线性回归,逻辑回归,支持向量机,决策树和随机森林学习算法。这些算法具有以下特点:
算法 | 属性类型 | 类类型 | 笔记 |
---|---|---|---|
朴素贝叶斯 | 数值和标称 | 多词学名 | 包含一个独特的,线性可扩展的实现朴素贝叶斯。理想的迭代学习。 |
线性回归 | 数值 | 数字和二项式 | 集成Spark MLlib实现。 |
逻辑回归 | 数值 | 二名式命名法 | 集成Spark MLlib实现。 |
支持向量机 | 数值 | 二名式命名法 | 集成Spark MLlib实现。 |
决策树 | 数值和标称 | 二名和多名 | 的决策树(MLlib二项)集成了Spark MLlib实现,可以处理二进制标签决策树操作员处理多标称标签和集成火花。曼梯·里的算法。 |
随机森林 | 数值和标称 | 多词学名 | 集成了火花。ml的随机森林算法。 |
您可以以相同的方式应用用上述算法训练的模型,使用核心应用模型操作符(内存中)和Radoop应用模型运营商(可能在hadoop)。
迭代学习
迭代学习是用于分类或回归任务的一种特殊类型的学习。对于每次迭代,Radoop更新该模型具有新的训练数据集。由于使用新记录进行更快的更新会产生相同的模型,因此您可以仅使用新记录重建模型,就像使用整个新数据集构建模型一样。这是大数据分析中非常常见的场景(例如,新的日志记录可能会定期更新预测模型)。
方法实现迭代学习更新模型操作符。这个运算符以一个模型作为输入(a)分布模型它是用朴素贝叶斯构建的),并通过在它的其他输入端口上训练HadoopExampleSet来更新它。输入模型可能是由Radoop学习算子(基于ExampleSet创建模型的算子,例如朴素贝叶斯)或核心RapidMiner学习器训练的。新数据集必须与原始训练数据集具有完全相同的模式。也就是说,名称和属性类型必须匹配,但顺序无关。的学习算法更新模型运算符可以(也可以不)有参数,例如优化参数。因此,更新模型Operator有一个特殊的“通用”参数,允许您轻松指定模型类型特定的参数。(例如,if更新模型在输入上有一个DistributionModel,您可以设置名义组大小训练参数。)
下面演示了在单个子流程中更新和应用模型:
整体建模
Radoop包含一个元操作符结合模型.操作符的内部和外部都可以使用Radoop巢.它只是创建了一个装袋模型——有时也被称为投票模型——从训练过的模型中脱颖而出。(请注意,所有输入模型都必须使用相同模式的数据进行训练。)输入可以是模型的集合,也可以是输入端口上任意数量的模型。输出端口上的集成模型将是一个投票模型。如果该模型用于评分,则应用所有内部模型,然后取置信度值的平均值(如果是分类模型)来确定预测的类别。对于回归模型(具有数字标签),它计算内部模型预测的平均值。
你可能想用结合模型如果您在集群上有太多的训练数据,并且由于某种原因,Radoop提供的分布式算法不适合您的用例,则可以将操作符与训练循环一起使用。您可以从数据中获取随机样本并在这些样本上训练不同的模型。在将这些模型组合成单个Bagging Model之后,您就可以将该模型直接应用于集群上的数据。通过这种方式,您不仅可以使用RapidMiner广泛的学习算法,还可以仅使用数据样本在短时间内构建非常精确和健壮的集成模型。
您还可以在每次训练迭代中仅使用常规属性的子集来构建更精确的投票模型。的选择随机属性Operator是这项任务的理想选择。对于训练算法,RapidMiner Radoop的决策树学习算法可能是一个不错的选择。通过这种方式,您可以实现,例如,a随机森林学习算法,控制样本大小,迭代次数,以及基于可用资源(内存,带宽,数据量)的随机化方法。乐鱼体育安装您可以使用任何不稳定的学习算法而不是决策树来受益于结合模型操作符,因为Radoop支持使用单个操作符以分布式方式构建随机森林模型。
下面演示了在数据样本上实现随机森林训练算法的过程(100次迭代的循环)。它使用树工艺面板显示所有操作人员。你可以打开树面板,选择视图>显示面板>树菜单项。
内存中的子流程
RapidMiner Radoop提供了多种方法来利用RapidMiner的内存操作符。的内存子进程(示例)和内存子进程(Full)操作符以更一般的方式实现前一节中描述的概念。它们都作用于行子集。这些操作符对于训练集成模型非常有用,但是内存子进程(Full)还能够执行其他预处理任务。不像内存中的子流程,SparkRM和单流程下推操作符能够在集群节点上使用节点可用内存.这样,您就可以使用Hadoop集群的资源来执行任何内存中的计算任务。乐鱼体育安装
使用集群的内存
的SparkRM和单流程下推操作符可用于在一个或多个集群节点上执行内存中的子进程。详细描述在下推子页面.
使用客户端机器的内存
由于大型数据集驻留在集群上,并且集群节点预计比客户端机器(在这种情况下运行Studio或Server)拥有更多的资源,乐鱼体育安装SparkRM和单流程下推应该优先考虑在下面描述的两个(在某种意义上是遗留的)操作符之上。
内存子进程(示例)元操作符是否在Radoop巢它在操作内存中的数据样本上运行子进程。的HadoopExampleSet中获取样例内存子进程(示例)输入端口到内存,并且子进程(由任何核心RapidMiner操作符组成)应用于此数据。然后将数据写回HDFS,由Radoop进程进行进一步处理。您可以将其他I/O对象(例如在此示例数据上训练的模型)连接到输出端口,以便稍后在集群上使用。请注意SparkRM或单流程下推操作符优先于内存子进程(示例)因为它们执行相同的操作,但使用集群的资源而不是客户机的资源。乐鱼体育安装
内存子进程(Full)与示例版本的不同之处在于:它在适合操作内存的小分区中处理其输入端口上的所有数据。您必须定义输入数据将被分割到的这些分区的数量,或者定义分区的大小。元操作符在这些分区上执行循环。在每次迭代中,它将当前分区中的数据读入内存,在其上运行子进程,然后将数据写回HDFS(将其附加到输出表中)。
的使用基本上有两种不同的场景内存子进程(Full)元操作符:
当你想做特殊的数据预处理时,你不能用Radoop操作符实现,但可以用核心RapidMiner操作符(或来自其他扩展的操作符)来完成。在这种情况下,使用元操作符,您可以在预处理数据时将数据流式传输到客户端的操作内存。由于操作内存和/或网络带宽可能会限制这一点,因此最好使用RapidMiner Server来提供更大的数据集。您的服务器可能有足够的内存和良好的连接来处理较大的输入数据(较大的分区意味着更少的迭代)。
当您使用拆分构建对象时,您不需要将数据写回集群。例如,与前一节中的Random Forest示例类似,您可以训练尽可能多的Decision Tree模型,以选择尽可能多的分区(即“输出上的决策树的数量”=“分区的数量”)。然后,您可以将这些模型组合为具有结合模型操作符。中构建的模型连接起来内存子进程(Full)元操作符连接到输出,然后连接<决策树集合>将元操作符输出到结合模型输入。通过这种方式,您可以在比操作内存大得多的数据上训练模型,但仍然可以期望投票模型具有相当好的精度。
就像内存子进程(示例)一样,内存子进程(完整)可以被单进程下推取代。如果您的数据大于集群中最大节点的内存,则可以使用生成属性操作符创建随机属性和滤波器的例子在循环中为Pushdown操作符创建分区。
评价
性能评估算子的目的是为评估当前预测和预测模型本身提供简单的措施。分析人员可以定义他们想要优化的目标度量,并且可以使用这些性能标准对模型进行比较。
Radoop实现了评估二项和多项分类和回归的措施。这些构成了核心RapidMiner求值操作符实现的标准集的一个子集。下面的性能标准列表描述了这些度量。
类型 | 标准名称 | 标准描述 |
---|---|---|
二名和多名 | 精度 | 正确分类示例的相对数量 |
二名和多名 | classification_error | 错误分类示例的相对数量 |
二名和多名 | 卡巴 | Kappa统计进行分类 |
二名式命名法 | 精度 | 在所有被分类为正的例子中,被正确分类为正的例子的相对数量 |
二名式命名法 | 回忆 | 在所有正例中被正确归类为正例的相对数量 |
二名式命名法 | 电梯 | 积极班级的提升 |
二名式命名法 | 影响 | 在所有否定例子中被错误地归类为积极例子的相对数量 |
二名式命名法 | f_measure | 查准率和查全率的组合:f=2pr/(p+r) |
二名式命名法 | false_positive | 误分类为正分类实例的绝对数量 |
二名式命名法 | false_negative | 错误地作为负分类例子的绝对数量 |
二名式命名法 | true_positive | 正确作为正分类实例的绝对数量 |
二名式命名法 | true_negative | 正确作为负分类例子的绝对数量 |
二名式命名法 | 灵敏度 | 在所有正例中被正确归类为正例的相对数量(与召回率相同) |
二名式命名法 | 特异性 | 在所有否定样例中被正确归类为否定样例的相对数量 |
二名式命名法 | youden | 敏感性和特异性之和减1 |
二名式命名法 | positive_predictive_value | 在所有正分类样例中正确分类为正分类样例的相对数量(与精度相同) |
二名式命名法 | negative_predictive_value | 在所有被分类为阴性的例子中,被正确分类为阴性的例子的相对数量 |
二名式命名法 | psep | 正预测值和负预测值的和减去1 |
多元标称与回归 | absolute_error | 预测值与实际值的平均绝对偏差 |
多元标称与回归 | relative_error | 平均相对误差(预测值与实际值的绝对偏差的平均值除以实际值) |
多元标称与回归 | relative_error_lenient | 平均相对误差(预测值与实际值的绝对偏差的平均值除以实际值与预测值的最大值) |
多元标称与回归 | relative_error_strict | 平均严格相对误差(预测值与实际值的绝对偏差的平均值除以实际值与预测值的最小值) |
多元标称与回归 | root_mean_squared_error | 均方根误差 |
多元标称与回归 | squared_error | 平均平方误差 |