whistleClassifier.training
Class ClassifierTrainer

java.lang.Object
  extended by whistleClassifier.training.ClassifierTrainer

public class ClassifierTrainer
extends java.lang.Object


Nested Class Summary
(package private)  class ClassifierTrainer.BootstrapRunnable
           
 
Field Summary
private  double[][] allTestData
           
private  double[][] allTrainingData
           
private  ClassifierTrainer.BootstrapRunnable bootsRunnable
           
private  java.lang.Thread bootstrapThread
           
private  Jama.Matrix[] confusionMatrixes
           
private  boolean dumpTextFile
           
private  FragmentClassifierParams fragmentClassifierParams
           
private  FragmentParameteriser fragmentParameteriser
           
private  Jama.Matrix l95Confusion
           
private  Jama.Matrix meanConfusion
           
private  MessageArea messageArea
           
private  int nBootstrap
           
private  ProgressInformation progressInformation
           
private  boolean runningBootstrap
           
private  int sectionLength
           
private  Jama.Matrix stdConfusion
           
private  boolean stopBootstrap
           
(package private)  int[] testGroup
           
private  java.io.BufferedWriter textFileWriter
           
private  TrainingDataCollection trainingDataCollection
           
(package private)  int[] trainingGroup
           
private  TrainingObserver trainingObserver
           
private  TrainingSelector trainingSelector
           
private  Jama.Matrix u95Confusion
           
private  WhistleClassifierControl whistleClassifierControl
           
 
Constructor Summary
ClassifierTrainer(WhistleClassifierControl whistleClassifierControl, TrainingDataCollection trainingDataCollection, MessageArea messageArea, ProgressInformation progressInformation, TrainingObserver trainingObserver)
           
 
Method Summary
private  java.lang.String addString(java.lang.String oldString, java.lang.String newString, int minWidth)
           
private  java.io.BufferedWriter createTextOutputStream()
          Create a text output file with a name based on the current date
private  boolean createTrainTestData(double trainingFraction)
           
private  void dumpMatrix(Jama.Matrix m, java.lang.String tit)
           
private  void dumpMatrix(Jama.Matrix m, java.lang.String tit, java.lang.String delimit)
           
private  Jama.Matrix getConfusionMatrix(int[] truth, int[] result)
           
 Jama.Matrix getMeanConfusion()
           
 Jama.Matrix getSTDConfusion()
           
private  void oneBootstrap(int iBoot)
           
private  void runBootstrap()
          Run the bootstrap - this gets called in a separate thread.
protected  boolean startBootstrap(FragmentClassifierParams fragmentClassifierParams, boolean dumpTextFile)
           
protected  void stop()
           
private  void trainWithAll()
          Do a final training of the classifier with all data.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

whistleClassifierControl

private WhistleClassifierControl whistleClassifierControl

trainingDataCollection

private TrainingDataCollection trainingDataCollection

messageArea

private MessageArea messageArea

progressInformation

private ProgressInformation progressInformation

trainingObserver

private TrainingObserver trainingObserver

bootstrapThread

private java.lang.Thread bootstrapThread

bootsRunnable

private ClassifierTrainer.BootstrapRunnable bootsRunnable

nBootstrap

private int nBootstrap

sectionLength

private int sectionLength

runningBootstrap

private volatile boolean runningBootstrap

stopBootstrap

private volatile boolean stopBootstrap

trainingSelector

private TrainingSelector trainingSelector

fragmentParameteriser

private FragmentParameteriser fragmentParameteriser

fragmentClassifierParams

private FragmentClassifierParams fragmentClassifierParams

dumpTextFile

private boolean dumpTextFile

textFileWriter

private java.io.BufferedWriter textFileWriter

confusionMatrixes

private Jama.Matrix[] confusionMatrixes

meanConfusion

private Jama.Matrix meanConfusion

stdConfusion

private Jama.Matrix stdConfusion

l95Confusion

private Jama.Matrix l95Confusion

u95Confusion

private Jama.Matrix u95Confusion

allTrainingData

private double[][] allTrainingData

allTestData

private double[][] allTestData

trainingGroup

int[] trainingGroup

testGroup

int[] testGroup
Constructor Detail

ClassifierTrainer

public ClassifierTrainer(WhistleClassifierControl whistleClassifierControl,
                         TrainingDataCollection trainingDataCollection,
                         MessageArea messageArea,
                         ProgressInformation progressInformation,
                         TrainingObserver trainingObserver)
Method Detail

startBootstrap

protected boolean startBootstrap(FragmentClassifierParams fragmentClassifierParams,
                                 boolean dumpTextFile)

stop

protected void stop()

runBootstrap

private void runBootstrap()
Run the bootstrap - this gets called in a separate thread.


createTextOutputStream

private java.io.BufferedWriter createTextOutputStream()
Create a text output file with a name based on the current date

Returns:
buffered writer for text output.

trainWithAll

private void trainWithAll()
Do a final training of the classifier with all data.


getMeanConfusion

public Jama.Matrix getMeanConfusion()

getSTDConfusion

public Jama.Matrix getSTDConfusion()

createTrainTestData

private boolean createTrainTestData(double trainingFraction)

oneBootstrap

private void oneBootstrap(int iBoot)

getConfusionMatrix

private Jama.Matrix getConfusionMatrix(int[] truth,
                                       int[] result)

dumpMatrix

private void dumpMatrix(Jama.Matrix m,
                        java.lang.String tit,
                        java.lang.String delimit)

dumpMatrix

private void dumpMatrix(Jama.Matrix m,
                        java.lang.String tit)

addString

private java.lang.String addString(java.lang.String oldString,
                                   java.lang.String newString,
                                   int minWidth)