在R脚本中使用ExampleSet的特殊角色

David_ADavid_A 管理员、版主、员工、RMResearcher、会员职位:295RM研究
2018年12月编辑 知识库

将R脚本嵌入到RapidMiner中是提供更多数据科学和机器学习资产的好方法。乐鱼平台进入

另一个有趣的事实是,通过使用RapidMiner生态系统,您可以轻松地操作脚本。因为将脚本嵌入到生产就绪的系统中可能比想象的要困难。为了完成这项任务,RapidMiner在处理R脚本时提供了一些高级特性。例如,关于属性角色的元数据。

使用角色

ExampleSet中的特殊角色可以帮助组织数据并澄清数据挖掘工作流。例如,数据集通常包含一个ID属性。ID对于回溯数据到其源非常有用。另一方面,包括用于训练分类器的ID是一个常见的错误,所有数据科学家都必须至少做一次。

RapidMiner通过处理角色和特殊属性类型来提供帮助。用户可以通过“set Role”操作符设置这些属性,例如将属性声明为标签或ID。机器学习算子的结果通常有一个新的属性“预测”。

当将ExampleSet传递给“Execute R”操作符时,这些信息将被保留。它们也可以被编辑,因此输出数据的角色与实际的RapidMiner Operator的角色匹配。例如,我们可以设置新生成的属性的角色。一个用例是将学习器的输出设置为“预测”,这样你就可以直接在RapidMiner中计算性能指标。

下面的过程展示了如何使用rpart对Iris数据集进行分类:

扰流板

< ?xml version="1.0" encoding="UTF-8"?> <过程version = " 8.1.000”>
> <上下文
<输入/ >
<输出/ >
<宏/ >
> < /上下文

<过程扩展= " true " >


< /操作符>


<枚举关键= "分区" >


< /枚举>

将数据分割为训练集和测试集
< /操作符>



< /操作符>


<列出关键= " class_weights " / >
< /操作符>









<描述一致=“中心”颜色=“绿色”彩色= " true "高度= " 211 "大小= " true "宽度= " 383 " x = " 455 " y = " 151 " >看看参数“脚本”如何处理元数据灵活;br>这个想法是为了构建一个简单的分类模型的训练数据和测试数据,应用它;br> & lt; br>元数据用于:& lt; br /祝辞& lt; br> i)识别标签属性的学习任务并排除的ID模型灵活;br> & lt; br> ii)分类器的作用output to &quot;prediction&quot;
> < /过程
< /操作符>
> < /过程

这是使用的R脚本:

扰流板

库(“rpart”)

Rm_main = function(training, test) {

##通过元数据识别label属性,并提取名称作为变量
labelEntry <- grep(“label”,元数据$training)
labelName <- names(metaData$training[labelEntry])


##通过元数据识别ID属性,并提取名称作为变量
idEntry <- grep(“id”,元数据$training)
idName <- names(metaData$training[idEntry])

使用labelName作为模型公式的目标变量
公式<- as。公式(paste0(labelName, "~ ."))

在测试数据上构建树模型
##并从数据中排除id属性
treeModel <- rpart(formula, data=子集(training, select = -get(idName)), method="class")

##将模型应用于测试数据
预测<- as。vector(predict(treeModel, newdata=子集(test, select = -get(idName)), type="class"))

将预测添加到测试数据中
Test $prediction <- prediction

#更新元数据
元数据$test$prediction <<- list(type="nominal", role="prediction")

返回列表((测试=测试))
}



访问或更改特定元数据条目

元数据$inputArgument$attributeName$type <<- "type"

元数据$inputArgument$attributeName$role <<- "role"

,这可以用于更改现有条目的元数据或添加新条目

请注意,对元数据的更改必须使用“superassignment”操作符<<-因为元数据位于更高的名称空间中。

+R_meta_result.pngR脚本的输出,带有一个新角色

标记:
yyhuang Pavithra_Rao
    登录注册置评。