RapidMiner教程

最近接触到一款强大的数据挖掘软件平台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

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

  1. 属性值大量缺失。这种情况下剩下的属性值可能包含的信息有限,所以可以直接删除该属性。
  2. 属性值部分缺失。通常对这些缺失值进行插补,Replace Missing Values Operator可以完成该操作。
  3. 属性值少量缺失。这种情况下,我们选择删除包含该缺失值的样本,在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主页

Rapider Minner使用教程相关推荐

  1. 使用Docker搭建svn服务器教程

    使用Docker搭建svn服务器教程 svn简介 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很 ...

  2. mysql修改校对集_MySQL 教程之校对集问题

    本篇文章主要给大家介绍mysql中的校对集问题,希望对需要的朋友有所帮助! 推荐参考教程:<mysql教程> 校对集问题 校对集,其实就是数据的比较方式. 校对集,共有三种,分别为:_bi ...

  3. mysql备份psb文件怎么打开_Navicat for MySQL 数据备份教程

    原标题:Navicat for MySQL 数据备份教程 一个安全和可靠的服务器与定期运行备份有密切的关系,因为错误有可能随时发生,由攻击.硬件故障.人为错误.电力中断等都会照成数据丢失.备份功能为防 ...

  4. php rabbmq教程_RabbitMQ+PHP 教程一(Hello World)

    介绍 RabbitMQ是一个消息代理器:它接受和转发消息.你可以把它当作一个邮局:当你把邮件放在信箱里时,你可以肯定邮差先生最终会把邮件送到你的收件人那里.在这个比喻中,RabbitMQ就是这里的邮箱 ...

  5. 【置顶】利用 NLP 技术做简单数据可视化分析教程(实战)

    置顶 本人决定将过去一段时间在公司以及日常生活中关于自然语言处理的相关技术积累,将在gitbook做一个简单分享,内容应该会很丰富,希望对你有所帮助,欢迎大家支持. 内容介绍如下 你是否曾经在租房时因 ...

  6. Google Colab 免费GPU服务器使用教程 挂载云端硬盘

    一.前言 二.Google Colab特征 三.开始使用 3.1在谷歌云盘上创建文件夹 3.2创建Colaboratory 3.3创建完成 四.设置GPU运行 五.运行.py文件 5.1安装必要库 5 ...

  7. 理解和实现分布式TensorFlow集群完整教程

    手把手教你搭建分布式集群,进入生产环境的TensorFlow 分布式TensorFlow简介 前一篇<分布式TensorFlow集群local server使用详解>我们介绍了分布式Ten ...

  8. 高级教程: 作出动态决策和 Bi-LSTM CRF 重点

    https://www.zhihu.com/question/35866596 条件随机场 CRF(条件随机场)与Viterbi(维特比)算法原理详解 https://blog.csdn.net/qq ...

  9. PyTorch 高级实战教程:基于 BI-LSTM CRF 实现命名实体识别和中文分词

    20210607 https://blog.csdn.net/u011828281/article/details/81171066 前言:译者实测 PyTorch 代码非常简洁易懂,只需要将中文分词 ...

最新文章

  1. react antd Table 选中某一行,其它行也被选中了
  2. 强化学习note1——马尔科夫奖励过程MRP和马尔科夫决策过程MDP各个函数的定义与区别
  3. 成员变量的初始化和内存中的运行机制
  4. Google Guava BloomFilter
  5. python判断_轻松python文本专题-判断对象里面是否是类字符串(推荐使用isinstance(obj,str))...
  6. 【汇编基础】SIMD除法的实现
  7. 中国水灭火器行业市场供需与战略研究报告
  8. HTTP请求报文分析
  9. 2-15 复合类型概述
  10. Map 转 json格式 保留null值的解决办法
  11. 滤波ad毛刺 c语言算法,Σ-Δ型ADC AD7124和AD717x的后置/增强型滤波器
  12. cfa英语不好的怎么学_考CFA,英语太差怎么办?
  13. volatility取证
  14. 3.5吋树莓派显示屏安装设置
  15. javaScript+css+html——键盘事件(通过键盘上下左右控制图形位置)
  16. 计算机考试当天准考证身份证丢失
  17. 基于JAVA郑州卷烟厂库存管理系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署
  18. Linux设备驱动编程第三版-笔记
  19. signature=16ceadeb007b12c6b3bcab834073ab21,Signature: _____________________ 16 May 2006
  20. ODB++数据解析三

热门文章

  1. 揭秘了!双十一手机真的优惠吗?我用Python爬取了京东近3000部手机,深度分析!
  2. 虚幻引擎之Sequence特效和音频绑定触发
  3. 逆战无法显示服务器,玩逆战游戏不显示小地图。怎么办?
  4. 【中英双语】计算机视觉Opencv、Python大师班
  5. R语言-条件约束最优化_非线性规划求解(Rdonlp2)
  6. 假设Linux系统中不存在文件newfile,现要创建一个新文件newfile,以下哪个命令无法实现该功能。...
  7. 永远都怀着一颗学徒的心。
  8. HuTool 工具类详细介绍(3)
  9. 如何在CAD中设置地理坐标
  10. vue生命周期(渲染与机制)