“将关联规则写入示例集或文件”

bhupendra_patilbhupendra_patil 管理员、员工、会员职位:168RM数据科学家
2019年6月编辑 知识库

RapidMiner提供了挖掘频繁项集以及从频繁项集“生成关联规则”的能力。有时需要将关联规则导出为数据集、文件或其他格式,但由于关联规则不是示例集,因此需要将其转换为示例集以写入其他格式。

附带的示例展示了如何做到这一点。

这里的关键是我们使用了RapidMiner“写”操作符。RapidMiner中的大多数对象都是XML的底层,因此我们可以使用“读取XML”操作符来解析对象并将其转换为数据集。我们还对读取的xml使用了“Import Configuration Wizard”,以便在xml中找到要解析的正确节点。

association.png

从XML中读取后,我们将重命名列,以便于后续处理。

通过Execute Script获取表

转换规则项的另一个选项是使用Execute Script操作符。该操作符获得一个groovy脚本,用于将规则转换为表。

脚本看起来是这样的。

进口com.rapidminer.tools.Ontology;

进口com.rapidminer.operator.learner.associations。*;


AssociationRules规则=输入[0];



//构造属性集
Attribute[] attributes= new Attribute[11];
attributes[0] = AttributeFactory。createAttribute(“前提”,Ontology.STRING);

attributes[1] = AttributeFactory。createAttribute("前提项",Ontology.INTEGER);
attributes[2] = AttributeFactory。createAttribute(“结论”,Ontology.STRING);
attributes[3] = AttributeFactory。createAttribute("结论项",Ontology.INTEGER);
attributes[4] = AttributeFactory。createAttribute(“信心”,Ontology.REAL);
attributes[5] = AttributeFactory。createAttribute(“定罪”,Ontology.REAL);
attributes[6] = AttributeFactory。createAttribute(“获得”,Ontology.REAL);
attributes[7] = AttributeFactory。createAttribute(“拉普拉斯Ontology.REAL);

attributes[8] = AttributeFactory。createAttribute(“提升”,Ontology.REAL);
attributes[9] = AttributeFactory。createAttribute(“Ps”,Ontology.REAL);


attributes[10] = AttributeFactory。createAttribute("Total Support", Ontology.REAL);



MemoryExampleTable表= new MemoryExampleTable(attributes);
ROW_FACTORY = new DataRowFactory(0);

String[] String = new String[11];

for (AssociationRule rule: rules) {
//构造示例数据
字符串[0]= rule.toPremiseString ();
.toString字符串[1]= rule.premise.size () ();
字符串[2]= rule.toConclusionString ();
.toString字符串[3]= rule.conclusion.size () ();
.toString字符串[4]= rule.getConfidence () ();
.toString字符串[5]= rule.getConviction () ();
.toString字符串[6]= rule.getGain () ();
.toString字符串[7]= rule.getLaplace () ();
.toString字符串[8]= rule.getLift () ();

.toString字符串[9]= rule.getPs () ();
.toString字符串[10]= rule.getTotalSupport () ();

//创建和添加行
DataRow row = ROW_FACTORY。创建(字符串、属性);
table.addDataRow(行);
}

ExampleSet = table.createExampleSet();
返回exampleSet;

最终的过程如下所示ToData.png

websiteguy

评论

  • awchisholmawchisholm RapidMiner认证专家、会员职位:458独角兽

    read XML操作符在社区版本中未获得许可。

  • BalazsBaranyBalazsBarany 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家职位:913独角兽

    另一种方法是使用来自Marketplace的Reporting扩展。

    您可以在流程中包含一个Generate Report操作符,为报告命名(例如Rules)并指定Excel作为输出格式。

    然后在“创建关联规则”之后添加报表操作符。您可以输入Report对象的名称(Rules),输入标题,并在Configure Report中选择输出格式。我使用了“关联规则”和“表视图”。

    结果是一个漂亮的Excel表,其中以易于解析的形式包含规则。

    radema websiteguy
登录注册置评。