RapidMiner教程

xiaoxiao2021-02-28  28

最近接触到一款强大的数据挖掘软件平台RapidMiner,RapidMiner是世界领先的数据挖掘解决方案,通过在图像化界面拖拽建模,轻松实现了数据准备、机器学习和预测模型部署,无需编程,简单易用。下图展示了其工作流程:

其具有如下优势:

统一的平台。一个平台,一个用户界面,一个系统,支持从数据准备,模型部署到正在进行的模型管理的完整工作流程。可视化工作流设计。 快速易学和方便使用的拖放方法加速了端到端的数据科学,从而提高生产力。广泛的功能。超出其他可视化平台更多的预定义机器学习函数和第三方库。开源创新。广泛接受的开源语言和技术,超过250K的数据科学专家的社区和强大的marketplace与不断发展的数据科学需求保持同步。广泛的连接。超过60种connectors可以轻松访问所有类型的数据:结构化、非结构化和大数据。各种规模的数据科学。在内存中或hadoop中运行工作流,为各种规模的项目提供最佳选择。

Getting Started

运行RapidMiner Studio,界面如下图:

在Design视图中,界面主要分为五个部分:

左上角Repository。数据和Process的存储机制。 最佳做法是使用Repository进行数据存储,而不是直接从文件或数据库中读取数据。 如果使用Read Operator,元数据将不可用于RapidMiner,从而限制可用功能。左下角Operators。按功能分组的构建模块用于创建RapidMiner Process。 Operator有输入和输出端口;对输入执行操作形成最终提供给输出的内容。Operator的参数用来控制这些操作。RapidMiner提供了超过1500个可用的Operator。中间的Process。一组由相互连接的Operator表示的工作流设计,每个Operator用以操纵数据。 例如,一个Process可能会加载数据集,转换数据,计算模型,并将该模型应用到另一个数据集。右上角的Parameters。其值决定了Operator的特征或行为, 分为常规参数和专家参数。 专家参数以斜体名称表示,通过单击面板底部的“显示/隐藏高级参数”链接来显示或隐藏。右下角的Help。用以详细介绍每个Operator。

接下来介绍RapidMiner自带的一些Tutorials。

Operators and Processes

通过拖拽或者双击可以将Operator添加到Process,每当想看到一个Operator的输出时,必须确保它连接到‘res’端口。当添加连接好Operators后,就构建好一个Process。

Import Data into RapidMiner

在实际应用中,我们首先要从外部导入数据。点击Repository面板下方的Add Data按钮完成数据导入,导入的数据将在Local Repository中显示。记住应该始终将数据导入Repository,特别是当它来自XLS或CSV等文件时。 这将简化分析过程的设计,因为RapidMiner的Repository中存储了元数据和数据。将数据从Repository拖拽到Process中,它会转换为数据加载Operator(eg: Retrieve Operator)。 这时数据实际上并没有加载(或在Operator间传递),直到运行该Process。

Writing Data

RapidMiner提供了多种数据存储方案,可以将数据写入文件、数据库甚至是其他应用软件,Write Operator提供了将数据写入外部设备的操作。RapidMiner也支持将数据存储在Repository中,Store Operator提供了该操作。

Data Preprocessing

数据预处理(Data preprocessing)包括Blending和Cleansing。Blending就是将数据集从一个状态转换到另一个状态或组合多个数据集。 Cleansing则是用来提升数据集质量,以便模型能够提供更好的结果。

Blending

Filtering and Sorting

Filter Sample Operator用来过滤样本,在Parameters面板中定义过滤器,不符合条件的样本将被过滤掉。 Sort Operator用来对样本进行排序,在Parameters面板中通过‘atttribute name’选择排序的依据,sorting direction决定降序或升序。

Merging and Grouping

Join Opreator用来合并两个数据集,在Parameters面板的‘key attributes’参数中指定合并依据。 Aggrergate Operator用以对数据集进行分组,功能类似数据库的“group by”操作。Parameters面板中‘group by attributes’参数用来指定分组依据,‘aggregate attributes’用来对各个分组中该参数进行操作。

Creating and Removing Columns

在对样本进行操作时,通常需要去除一些无用属性,也可能需要添加一些额外属性。 Generate Attributes Operator用来定义新的属性,在Parameters面板中,‘function descriptions’参数用来指定新列的名字和取值。 Select Attributes Operator用来筛选属性,在Parameters面板中,将‘attribute filter type’设置为‘subset’。 一般来说,这意味着Operator将仅应用于指定的那些属性(列)。 在这里,可以选择列的一个子集来作为要保存的数据,所有其他没有被选择的列将被删除。

Changing Types and Roles

对于一个完整的数据集,在进行预测建模之前,我们首先要指定哪一列是我们想要预测的。在RapidMiner中元数据包含‘type’和‘role’两个属性。‘type’用来指定列的取值类型;‘role’描述了机器学习模型如何使用该列,没有任何role(角色)的属性(也称为“常规”属性)将被用作训练的输入,而id属性通常被建模算法忽略,因为它们仅仅用来唯一标识每一个样本。 Discretize by Binning Operator用来对连续值属性进行离散化。“Binning”是一种将连续数值转换为离散值的常用方法。在Parameters面板中首先设置‘attribute filter type’为‘single’,表示只在该属性上操作。通过‘number of bins’指定将连续值取值划分为多少个区间,属性的取值将被替换为原始数值所属的bin的名称。 Set Role Operator用来对属性的角色进行指定。在RapidMiner中将被预测的属性称为‘label’。

Pivoting and Renaming

Pivot:将长表格格式的数据(一个属性包含大量样本)转换为宽表格格式(一个样本有很多属性)。机器学习模型通常需要宽表格格式存储的数据,由于Aggregate结果总是以长表格格式存储,所以这种转换在Aggregate后特别有用。 Pivot Operator用来对表格格式进行转换。Parameters面板中‘group attribute’的值将作为行,而‘index attribute’的值将定义新列。新列的名称反映了它们是如何创建的,但并不易读。 可以使用Rename Operator对属性进行重命名。

Cleansing

Handle Missing Values

现实中很多数据集都存在缺失值的情况,缺失值处理是必不可少的一个步骤,根据属性下数据缺失的多少可以分为三种:

属性值大量缺失。这种情况下剩下的属性值可能包含的信息有限,所以可以直接删除该属性。属性值部分缺失。通常对这些缺失值进行插补,Replace Missing Values Operator可以完成该操作。属性值少量缺失。这种情况下,我们选择删除包含该缺失值的样本,在Filter Example Operator中选择显示高级参数,在‘condition class’中选择‘no_missing_attributes’。

Normalization and Outlier Detection

数据清洗另一个重要任务是找出异常点(离群点)并将其剔除。常用的异常点检测算法包括:基于距离的算法、基于密度的算法、LOF算法、COF算法等。在采用基于距离的算法时,需要先进行归一化(Normalization)操作,将所有属性的取值范围缩放到同一个范围。Normalization Operator用来完成该操作。 Detect Outlier Operator用来剔除异常点,具体的Detect Outlier (Distance) Operator采用基于距离的算法进行异常点检测,该Operator将识别出与其他所有样本点距离最远的10个样本点,并将其标记为异常值。 并且,它创建一个名为outlier的新列,其取值true表示异常值,false表示所有其他示例。

Ohters

Macros and Sampling

Macros就像变量一样,可以用来动态存储和加载Process中的值。 Set Macro Operator用来手动直接设置一个Macro;Extract Macro Operator用来从Process的其他部分获取Macro值;Generate Macro Operator采用表达式生成Macro值。 如果想要获取设置的Mrcro值,需要使用表达式%{macro name}。 Sample Operator用来对样本数据采样。

Looping,Branching and Appending

Loop Operator表示循环操作,类似编程语言中的循环语句,观察发现这个Operator堆叠有两个小矩形,表示该Operator的内部可以添加其他Operators。该Operator包含一个预定义的Macro:loop_value,该Macro可以在Operator内部使用,在每次迭代中,Macro值被设置为循环的当前属性值。 Branch Operator是分支语句,类似编程语言中的‘if-then-else’语句,该Operator的内部可以添加其他Operators,分别执行then语句和else语句,if条件可以在Parameters面板中进行设置。 Append Operator可以用来合并多个数据集。注意‘Loop Values’和‘Append’之间是双线连接,表示‘Loop Values’的输出是一个集合。

Build a model

预测模型是一类机器学习技术,它可以挖掘大数据中的模式,并使用这些模式来对新情况进行预测,预测值可以是类别(这称为Classification)或数值(这称为Regression)。

Scroing

在RapidMiner中使用模型来生成新样本点的预测称为Scroing。 Apply Model Operator利用模型对新的样本点进行预测,结果将在原始测试样本集添加两个新的属性,分别是prediction,表示模型的预测结果,和confidence,表示置信度。

Splitting into training and testing data

在训练好预测模型之后,最重要的问题是“这个模型的性能如何”? 模型在将来可能从未遇到过的情况下还能否正常工作? 正确度量模型性能的方式如下:保留一些带标记的数据,不要将其用于模型训练,而是用于模型测试,通常这部分数据被称为验证集(Validation set)。 由于这些数据带有标记,可以将预测结果与实际结果进行比较,并计算模型在这些数据上的准确率。 Split Data Operator可以将数据划分为训练集和验证集,训练集和验证集大小通常是7:3。 Performance Operator用来对模型的性能进行度量,包括准确率-召回率矩阵,AUC曲线等。

Cross Validation

仅对数据集进行一次划分然后度量模型的性能,可能会出现一些极端情况而没有说服力,因此常采用Cross Validation(交叉验证)技术。交叉验证将训练集划分为相等的若干部分,每次使用其中一个部分用于验证,其他部分用于训练模型。 最后,所有测试精度的平均值作为模型性能的度量结果。 交叉验证包括训练模型和测试模型两个子过程。Cross Validation Operator实现了检查验证的过程。请注意,模型精度现在有一个额外的数字(在“+/-”之后)表示来自的交叉验证的性能的标准差。 标准差为我们提供了一个模型的鲁棒性的概念:标准差越小,模型性能对测试数据集的依赖性越小。最后,最终模型还是需要在整个训练集上训练得到,交叉验证只是提供了一种评估模型精度的方法,而不是建立最优模型的方法。

参考文献

RapidMiner主页

转载请注明原文地址: https://www.6miu.com/read-1949997.html

最新回复(0)