java rapidvalidation api,Cross-validation using RapidMiner(Java)

import com.rapidminer.RapidMiner;

import com.rapidminer.example.Attribute;

import com.rapidminer.example.ExampleSet;

import com.rapidminer.operator.IOContainer;

import com.rapidminer.operator.IOObject;

import com.rapidminer.operator.Model;

import com.rapidminer.operator.ModelApplier;

import com.rapidminer.operator.Operator;

import com.rapidminer.operator.SimpleOperatorChain;

import com.rapidminer.operator.io.ExampleSource;

import com.rapidminer.operator.learner.Learner;

import com.rapidminer.operator.learner.tree.DecisionTreeLearner;

import com.rapidminer.operator.performance.PolynominalClassificationPerformanceEvaluator;

import com.rapidminer.operator.performance.RegressionPerformanceEvaluator;

import com.rapidminer.operator.validation.XValidation;

import com.rapidminer.tools.OperatorService;

import com.rapidminer.operator.OperatorChain;

/*

* Date: 2009.6.6

* by: Wang Yi

* Email: wangyi19840906@yahoo.com.cn

*

*/

public class Demo2 {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

try{

/*

* rapidMiner初始化

* 在它初始化之前,OperatorService是不可以用的

*/

RapidMiner.init();

/*

* 通过OperatorService创建Operator对象

* 可以同class名称和对象描述信息来创建

*/

Operator exampleSource = OperatorService.createOperator(ExampleSource.class);

/*

* 为读取样本的Operator设置参数,这里是设置数据源的路径

*/

exampleSource.setParameter("attributes", "E:/RMWorkspace/sample/data/labor-negotiations.aml");

/*

* 将样本对象都读取到一个IOContainer中

*/

IOContainer container = exampleSource.apply(new IOContainer());

/*

* 获得一个分类器Operator对象 (C4.5)

*/

Operator learner = OperatorService.createOperator(DecisionTreeLearner.class);

/*

* 创建一个Chain Operator对象

*/

Operator chain = OperatorService.createOperator(SimpleOperatorChain.class);

Operator modelAplier = OperatorService.createOperator(ModelApplier.class);

/*

* 构建Evaluation对象

*

*/

Operator Evaluation = OperatorService.createOperator(PolynominalClassificationPerformanceEvaluator.class);

Evaluation.setParameter("classification_error", "true");

((OperatorChain)chain).addOperator(modelAplier);

((OperatorChain)chain).addOperator(Evaluation);

/*

* get the CrossValidata object

*/

Operator crossValiation = OperatorService.createOperator(XValidation.class);

/*

* 设置交叉验证的次数

* 默认是十次交叉验证

* 我们这里设置为5次

*/

crossValiation.setParameter("number_of_validations", "5");

/*

* 设置样本分割的方式,这里我们采用线性分割的方式

* 默认是随机分割 (除此之外还有其它几种方法)

*/

crossValiation.setParameter("sampling_type", "linear");

/*

* 因为 the crossValiation同时也是一个OperatorChain的对象

* 所以我们可以为其添加子Operator

* 因为分类器对象是它需要的第一个Operator,因此我们需要首先添加分类器Operator

*/

((OperatorChain)crossValiation).addOperator((Operator)learner);

((OperatorChain)crossValiation).addOperator(chain);

/*

* 将样本赋给CrossValiation对象,让它开始检验工作

*/

container = crossValiation.apply(container);

IOObject[] io = container.getIOObjects();

/*

* 打印出预测结果,这个是十次的平均值

* 这个IOObject实际上是一个PerformanceVector对象

*/

System.out.println("Result:"+ io[0]);

}catch(Exception e){

e.printStackTrace();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值