📄 estimatedperformance.java
字号:
/* * YALE - Yet Another Learning Environment * Copyright (C) 2002, 2003 * Simon Fischer, Ralf Klinkenberg, Ingo Mierswa, * Katharina Morik, Oliver Ritthoff * Artificial Intelligence Unit * Computer Science Department * University of Dortmund * 44221 Dortmund, Germany * email: yale@ls8.cs.uni-dortmund.de * web: http://yale.cs.uni-dortmund.de/ * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA. */package edu.udo.cs.yale.operator.performance;import edu.udo.cs.yale.example.Example;/** * This class is used to store estimated performance values <b>before</b> an actual * performance test is done using a test set. * @version $Id: EstimatedPerformance.java,v 2.6 2003/05/14 13:33:20 fischer Exp $ */public class EstimatedPerformance extends PerformanceCriterion { private String name; private double value; private double exampleCount = 1; private boolean reciprocalFitness; /** Clone constructor. */ public EstimatedPerformance() {} /** Constructs a new extimated performance criterion. * @param name Human readable name * @param value The Value of the performance criterion * @param numberOfExamples The number of examples used to estimate this value. * @param reciprocalFitness Indicates whether or not the reciprocal value should be used as fitness value. */ public EstimatedPerformance(String name, double value, int numberOfExamples, boolean reciprocalFitness) { this.name = name; setValue(value, numberOfExamples); this.reciprocalFitness = reciprocalFitness; } public double getVariance() { return Double.NaN; } /** Sets the value of this estimated performance criterion. * @param value The Value of the performance criterion * @param numberOfExamples The number of examples used to estimate this value. It is used * for calculateing the average. */ public void setValue(double value, int numberOfExamples) { this.value = value * numberOfExamples; this.exampleCount = numberOfExamples; } public double getValue() { return value / exampleCount; } /** Returns the fitness. */ public double getFitness() { if (reciprocalFitness) { if (getValue() == 0d) return Double.POSITIVE_INFINITY; return 1/getValue(); } else { return getValue(); } } /** * Returns the name of this estimated performance criterion, which can be * set using <tt>setName()</tt>. * * @return The name. */ public String getName() { return name; } void clonePerformanceCriterion(PerformanceCriterion other) { super.clonePerformanceCriterion(other); EstimatedPerformance ep = (EstimatedPerformance)other; this.name = ep.name; this.reciprocalFitness = ep.reciprocalFitness; this.exampleCount = ep.exampleCount; this.value = ep.value; } public void buildAverage(PerformanceCriterion performance) { super.buildAverage(performance); EstimatedPerformance other = (EstimatedPerformance)performance; if (!other.name.equals(this.name)) throw new RuntimeException("Cannot build average of different criterion types ("+this.getName()+"/"+other.getName()+")."); this.exampleCount += other.exampleCount; this.value += other.value; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -