public abstract class BaseClusterer extends java.lang.Object implements Options, Printable, java.io.Serializable, java.lang.Cloneable, Commandable
Implemented Commands:
train $<dataset> - Train a clustering algorithm
<output> = get <num> $<input> - Get a certain cluster from a dataset
selector $<selector> - Define an attribute selector to use before clustering
split $<dataset> <filename> [<format>] - Split dataset into several clusters, save them
Implemented Print Commands:
selector - Print out attributes used to generate cluster, if an BaseAttributeSelector was provided stats [<command>] - Print out statistics about clustering
Implementation guide:
In order to create a new instance of this class, one must implement:
train_protected(magpie.data.Dataset)
- Train the clustererlabel_protected(magpie.data.Dataset)
- Label entries based on their predicted clusterNClusters_protected()
- Return the number of possible clustersOptions.setOptions(java.util.List<java.lang.Object>)
- Define options for this subset given optionsclone()
- Make sure no clones overwrite data in originalConstructor and Description |
---|
BaseClusterer() |
Modifier and Type | Method and Description |
---|---|
java.lang.String |
about()
Prints a simple status message about this object
|
BaseClusterer |
clone() |
Dataset |
getCluster(Dataset From,
int number)
Retrieve a specific cluster from a dataset.
|
protected abstract java.util.List<java.lang.String> |
getClustererDetails(boolean htmlFormat)
Get any user-specified options of this clusterer.
|
boolean |
isTrained() |
protected abstract int[] |
label_protected(Dataset Data)
Actual implementation of
label(magpie.data.Dataset) . |
int[] |
label(Dataset Data)
Mark the most likely cluster for each entry
|
protected abstract int |
NClusters_protected()
Actual implementation of
NClusters() . |
int |
NClusters()
How many different clusters data may be partitioned into
|
Dataset[] |
partitionDataset(Dataset Data)
Separate the Dataset based on predicted classes.
|
java.lang.String |
printCommand(java.util.List<java.lang.String> Command)
Handles more complicated printing commands.
|
java.lang.String |
printDescription(boolean htmlFormat)
Print full name of object, and a simple description of the options.
|
java.lang.Object |
runCommand(java.util.List<java.lang.Object> Command)
Process some command described by a list of Objects.
|
void |
setAttributeSelector(BaseAttributeSelector AttributeSelector)
Define an attribute selector to be used before clustering
|
protected abstract void |
train_protected(Dataset Data)
Perform the actual training.
|
void |
train(Dataset TrainingData)
Train the clusterer
|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
printUsage, setOptions
public BaseClusterer clone()
clone
in class java.lang.Object
public void setAttributeSelector(BaseAttributeSelector AttributeSelector)
AttributeSelector
- Instantiated Attribute Selectorpublic boolean isTrained()
public void train(Dataset TrainingData)
TrainingData
- Training dataprotected abstract void train_protected(Dataset Data)
Data
- Dataset to use for trainingpublic int[] label(Dataset Data)
Data
- Dataset to labelprotected abstract int[] label_protected(Dataset Data)
label(magpie.data.Dataset)
.Data
- Dataset to be labeledpublic int NClusters()
protected abstract int NClusters_protected()
NClusters()
.public Dataset[] partitionDataset(Dataset Data)
Data
- Dataset to be partitioned (does not get altered)spublic Dataset getCluster(Dataset From, int number)
From
- Dataset to be clusterednumber
- Cluster number to extractpublic java.lang.String about()
Printable
public java.lang.String printDescription(boolean htmlFormat)
Printable
Example: For a model training a separate WekaRegression for intermetallics
magpie.models.regression.SplitRegression
printDescription
in interface Printable
htmlFormat
- Whether format for output to an HTML page
(e.g., <div> to create indentation) or for printing to screen.#printModel()
protected abstract java.util.List<java.lang.String> getClustererDetails(boolean htmlFormat)
public java.lang.String printCommand(java.util.List<java.lang.String> Command) throws java.lang.Exception
Printable
printCommand
in interface Printable
Command
- Command specifying what to printjava.lang.Exception
- If command not understoodpublic java.lang.Object runCommand(java.util.List<java.lang.Object> Command) throws java.lang.Exception
Commandable
runCommand
in interface Commandable
Command
- Command as a list of objectsjava.lang.Exception
- If something goes wrong