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: * IterativeClassifier.java
19: * Copyright (C) 2001 University of Waikato, Hamilton, New Zealand
20: *
21: */
22:
23: package weka.classifiers;
24:
25: import weka.core.*;
26:
27: /**
28: * Interface for classifiers that can induce models of growing
29: * complexity one step at a time.
30: *
31: * @author Gabi Schmidberger (gabi@cs.waikato.ac.nz)
32: * @author Bernhard Pfahringer (bernhard@cs.waikato.ac.nz)
33: * @version $Revision: 1.3 $
34: */
35:
36: public interface IterativeClassifier {
37:
38: /**
39: * Inits an iterative classifier.
40: *
41: * @param instances the instances to be used in induction
42: * @exception Exception if the model cannot be initialized
43: */
44: void initClassifier(Instances instances) throws Exception;
45:
46: /**
47: * Performs one iteration.
48: *
49: * @param iteration the index of the current iteration (0-based)
50: * @exception Exception if this iteration fails
51: */
52: void next(int iteration) throws Exception;
53:
54: /**
55: * Signal end of iterating, useful for any house-keeping/cleanup
56: *
57: * @exception Exception if cleanup fails
58: */
59: void done() throws Exception;
60:
61: /**
62: * Performs a deep copy of the classifier, and a reference copy
63: * of the training instances (or a deep copy if required).
64: *
65: * @return a clone of the classifier
66: */
67: Object clone() throws CloneNotSupportedException;
68:
69: }
|