code: private ActiveRule newRule(int ID, RuleActiveRegressionNode node, double[] statistics) {
  		ActiveRule r=newRule(ID);
  
  		if (node!=null)
  		{
  			if(node.getPerceptron()!=null)
  			{
  				r.getLearningNode().setPerceptron(new Perceptron(node.getPerceptron()));
  				r.getLearningNode().getPerceptron().setLearningRatio(this.learningRatio);
  			}
  			if (statistics==null)
  			{
  				double mean;
  				if(node.getNodeStatistics().getValue(0)>0){
  					mean=node.getNodeStatistics().getValue(1)/node.getNodeStatistics().getValue(0);
  					r.getLearningNode().getTargetMean().reset(mean, 1); 
  				}
  			}  
  		}
  		if (statistics!=null && ((RuleActiveRegressionNode)r.getLearningNode()).getTargetMean()!=null)
  		{
  			double mean;
  			if(statistics[0]>0){
  				mean=statistics[1]/statistics[0];
  				((RuleActiveRegressionNode)r.getLearningNode()).getTargetMean().reset(mean, (long)statistics[0]); 
  			}
  		}
  		return r;
  	}
docs: /*
  Create new rules