“将关联规则写入示例集或文件”
bhupendra_patil
管理员、员工、会员职位:168RM数据科学家
RapidMiner提供了挖掘频繁项集以及从频繁项集“生成关联规则”的能力。有时需要将关联规则导出为数据集、文件或其他格式,但由于关联规则不是示例集,因此需要将其转换为示例集以写入其他格式。
附带的示例展示了如何做到这一点。
这里的关键是我们使用了RapidMiner“写”操作符。RapidMiner中的大多数对象都是XML的底层,因此我们可以使用“读取XML”操作符来解析对象并将其转换为数据集。我们还对读取的xml使用了“Import Configuration Wizard”,以便在xml中找到要解析的正确节点。
从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;
最终的过程如下所示
1
评论
read XML操作符在社区版本中未获得许可。
另一种方法是使用来自Marketplace的Reporting扩展。
您可以在流程中包含一个Generate Report操作符,为报告命名(例如Rules)并指定Excel作为输出格式。
然后在“创建关联规则”之后添加报表操作符。您可以输入Report对象的名称(Rules),输入标题,并在Configure Report中选择输出格式。我使用了“关联规则”和“表视图”。
结果是一个漂亮的Excel表,其中以易于解析的形式包含规则。