01: /*
02: * This program is free software; you can redistribute it and/or modify
03: * it under the terms of the GNU General Public License as published by
04: * the Free Software Foundation; either version 2 of the License, or
05: * (at your option) any later version.
06: *
07: * This program is distributed in the hope that it will be useful,
08: * but WITHOUT ANY WARRANTY; without even the implied warranty of
09: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10: * GNU General Public License for more details.
11: *
12: * You should have received a copy of the GNU General Public License
13: * along with this program; if not, write to the Free Software
14: * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
15: */
16:
17: /*
18: * ZeroOneLossFunction.java
19: * Copyright (C) 2004 Stijn Lievens
20: *
21: */
22:
23: package weka.classifiers.misc.monotone;
24:
25: /**
26: * Class implementing the zero-one loss function, this is
27: * an incorrect prediction always accounts for one unit loss.
28: *
29: * <p>
30: * This implementation is done as part of the master's thesis: "Studie
31: * en implementatie van instantie-gebaseerde algoritmen voor gesuperviseerd
32: * rangschikken", Stijn Lievens, Ghent University, 2004.
33: * </p>
34: *
35: * @author Stijn Lievens (stijn.lievens@ugent.be)
36: * @version $Revision: 1.1 $
37: */
38: public class ZeroOneLossFunction implements NominalLossFunction {
39:
40: /**
41: * Returns the zero-one loss function between two class values.
42: *
43: * @param actual the actual class value
44: * @param predicted the predicted class value
45: * @return 1 if the actual and predicted value differ, 0 otherwise
46: */
47: public final double loss(double actual, double predicted) {
48: return actual == predicted ? 0 : 1;
49: }
50:
51: /**
52: * Returns a string with the name of the loss function.
53: *
54: * @return a string with the name of the loss function
55: */
56: public String toString() {
57: return "ZeroOneLossFunction";
58: }
59: }
|