public class SOMClassifier extends AbstractWandoraTool implements WandoraTool
Creates a Self Organized Map (SOM) using given associations. SOM is a 2D matrix visualization of given association player topics where similar topics i.e. topics with similar associations locate near each other. Tool is able to group similar topics.
This class is strictly speaking the a train vector builder while the actual SOM implementation locates in class SOMMap.
About train vector building: Lets say user has selected eight binary associations a-q, a-e, a-t, b-e, b-l, c-q, c-o, and d-e. User selects first player as the grouping role. Training vectors for this setting are:
a: [ q=1, e=1, t=1, l=0, o=0 ]
b: [ q=0, e=1, t=0, l=1, o=0 ]
c: [ q=1, e=0, t=1, l=0, o=1 ]
d: [ q=0, e=1, t=0, l=0, o=0 ]
in other words:
a: [ 1, 1, 1, 0, 0 ]
b: [ 0, 1, 0, 1, 0 ]
c: [ 1, 0, 1, 0, 1 ]
d: [ 0, 1, 0, 0, 0 ]
One should note SOM gives best results if vectors are NOT orthogonal.
Read more about Self Organizing Maps here: http://en.wikipedia.org/wiki/Self-organizing_map
Constructor and Description |
---|
SOMClassifier(Context preferredContext) |
Modifier and Type | Method and Description |
---|---|
private java.util.HashMap<Topic,java.util.Set> |
buildInputSets(Wandora admin,
Topic groupingRole,
java.util.Iterator<Association> associations) |
private java.util.HashMap<Topic,SOMVector> |
buildInputVectors(java.util.HashMap<Topic,java.util.Set> inputSets) |
void |
execute(Wandora wandora,
Context context)
Runs the tool.
|
java.lang.String |
getDescription()
AdminToolManager views tool descriptions while user browses available
tools and build user customizable GUI elements such as Tools menu.
|
java.lang.String |
getName()
Tools name represent the tool in UI unless the tool has been given
explicitly another GUI name.
|
private java.util.Set<Topic> |
getRolesFrom(java.util.Iterator<Association> associations) |
SOMVector |
topicVector2SOMVector(Topic[] topicVector) |
addUndoMarker, addUndoMarker, allowMultipleInvocations, clearAllThreads, clearThreads, clearThreads, clearToolLock, clearToolLock, clearToolLocks, configure, execute, execute, forceStop, forceStop, getContext, getCurrentLogger, getDefaultLogger, getHistory, getIcon, getLastLogger, getState, getThreads, getThreads, getToolMenuItem, getToolMenuItem, getTopicName, getType, hlog, initialize, interruptAllThreads, interruptThreads, interruptThreads, isConfigurable, isRunning, isRunning, lockLog, log, log, log, log, requiresRefresh, run, runInOwnThread, setContext, setDefaultLogger, setLogTitle, setProgress, setProgressMax, setState, setToolLogger, singleLog, singleLog, singleLog, solveContextTopicMap, solveNameForTopicMap, writeOptions
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
configure, execute, execute, getContext, getIcon, getToolMenuItem, getType, hlog, initialize, isConfigurable, isRunning, log, log, log, log, requiresRefresh, setContext, setToolLogger, writeOptions
forceStop, getHistory, getState, lockLog, setLogTitle, setProgress, setProgressMax, setState
public SOMClassifier(Context preferredContext)
public java.lang.String getName()
AbstractWandoraTool
getName
in interface WandoraTool
getName
in class AbstractWandoraTool
public java.lang.String getDescription()
AbstractWandoraTool
getDescription
in interface WandoraTool
getDescription
in class AbstractWandoraTool
public void execute(Wandora wandora, Context context)
WandoraTool
execute
in interface WandoraTool
private java.util.Set<Topic> getRolesFrom(java.util.Iterator<Association> associations) throws TopicMapException
TopicMapException
private java.util.HashMap<Topic,java.util.Set> buildInputSets(Wandora admin, Topic groupingRole, java.util.Iterator<Association> associations)
private java.util.HashMap<Topic,SOMVector> buildInputVectors(java.util.HashMap<Topic,java.util.Set> inputSets)
Copyright 2004-2015 Wandora Team