?? classifier.java
字號:
/**
*
* AgentAcademy - an open source Data Mining framework for
* training intelligent agents
*
* Copyright (C) 2001-2003 AA Consortium.
*
* This library is open source software; you can redistribute it
* and/or modify it under the terms of the GNU Lesser General
* Public License as published by the Free Software Foundation;
* either version 2.0 of the License, or (at your option) any later
* version.
*
* This library 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 Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
*/
package org.agentacademy.modules.dataminer.classifiers.evaluation;
/**
* <p>Title: The Data Miner prototype</p>
* <p>Description: A prototype for the DataMiner (DM), the Agent Academy (AA) module responsible for performing data mining on the contents of the Agent Use Repository (AUR). The extracted knowledge is to be sent back to the AUR in the form of a PMML document.</p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: CERTH</p>
* @author asymeon
* @version 0.3
*/
import java.io.Serializable;
import org.agentacademy.modules.dataminer.core.*;
/**
* Abstract classifier. All schemes for numeric or nominal prediction in
* Weka extend this class.
*
*/
public abstract class Classifier implements Cloneable, Serializable {
/**
* Generates a classifier. Must initialize all fields of the classifier
* that are not being set via options (ie. multiple calls of buildClassifier
* must always lead to the same result). Must not change the dataset
* in any way.
*
* @param data set of instances serving as training data
* @exception Exception if the classifier has not been
* generated successfully
*/
public abstract void buildClassifier(Instances data) throws Exception;
/**
* Classifies a given instance.
*
* @param instance the instance to be classified
* @return index of the predicted class as a double
* if the class is nominal, otherwise the predicted value
* @exception Exception if instance could not be classified
* successfully
*/
public abstract double classifyInstance(Instance instance) throws Exception;
/**
* Creates a new instance of a classifier given it's class name and
* (optional) arguments to pass to it's setOptions method. If the
* classifier implements OptionHandler and the options parameter is
* non-null, the classifier will have it's options set.
*
* @param classifierName the fully qualified class name of the classifier
* @param options an array of options suitable for passing to setOptions. May
* be null.
* @return the newly created classifier, ready for use.
* @exception Exception if the classifier name is invalid, or the options
* supplied are not acceptable to the classifier
*/
public static Classifier forName(String classifierName,
String [] options) throws Exception {
return (Classifier)Utils.forName(Classifier.class,
classifierName,
options);
}
/**
* Creates copies of the current classifier, which can then
* be used for boosting etc. Note that this method now uses
* Serialization to perform a deep copy, so the Classifier
* object must be fully Serializable. Any currently built model
* will now be copied as well.
*
* @param model an example classifier to copy
* @param num the number of classifiers copies to create.
* @return an array of classifiers.
* @exception Exception if an error occurs
*/
public static Classifier [] makeCopies(Classifier model,
int num) throws Exception {
if (model == null) {
throw new Exception("No model classifier set");
}
Classifier [] classifiers = new Classifier [num];
SerializedObject so = new SerializedObject(model);
for(int i = 0; i < classifiers.length; i++) {
classifiers[i] = (Classifier) so.getObject();
}
return classifiers;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -