⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scalederror.java

📁 著名的开源仿真软件yale
💻 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;import edu.udo.cs.yale.example.ExampleSet;import edu.udo.cs.yale.example.ExampleReader;import edu.udo.cs.yale.tools.LogService;import java.text.*;/** An absolute error which is scaled to the range of the values. * *  @yale.todo Do we really have to calculate the range beforehand? *  @author Ingo *  @version $Id: ScaledError.java,v 2.5 2003/07/02 13:57:11 fischer Exp $ */public class ScaledError extends SimpleCriterion {    /** Value range of the examples. */    private double range = 1.0;    public boolean formatPercent() { return true; }    public String getName() { 	return "scaled";     }    /** Calculates the range of the value. */    public void startCounting(ExampleSet set) { 	super.startCounting(set);	range = set.getLabel().getMaximum() - set.getLabel().getMinimum();//  	double rangeMin = 0;//  	double rangeMax = 1;//  	ExampleReader reader = set.getExampleReader();//  	if (reader.hasNext()) {//  	    Example e = reader.next();//  	    rangeMin = e.getLabel();//  	    rangeMax = e.getLabel();//  	}//  	while (reader.hasNext()) {//  	    Example e = reader.next();//  	    if (e.getLabel() < rangeMin) rangeMin = e.getLabel();//  	    if (e.getLabel() > rangeMax) rangeMax = e.getLabel(); //  	}//  	range = Math.abs(rangeMax - rangeMin);	if (range == 0) {	    LogService.logMessage("Zero range in ScaledError! Danger of Division by zero. Range is set to 1 and ScaledError behave like an absolute error.", LogService.WARNING);	    range = 1;	}    }    public double countExample(double label, double predictedLabel) {	return Math.abs((label - predictedLabel) / range);    }    void clonePerformanceCriterion(PerformanceCriterion newPC) {	super.clonePerformanceCriterion(newPC);	this.range = ((ScaledError)newPC).range;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -