org.knime.base.node.mine.bfn.radial
Class RadialBasisFunctionLearnerRow

java.lang.Object
  extended by org.knime.base.node.mine.bfn.BasisFunctionLearnerRow
      extended by org.knime.base.node.mine.bfn.radial.RadialBasisFunctionLearnerRow
All Implemented Interfaces:
Iterable<DataCell>, DataRow

public class RadialBasisFunctionLearnerRow
extends BasisFunctionLearnerRow

This class extends the general BasisFunctionLearnerRow in order to use radial basis function prototypes for training. This prototype keeps an Gaussian functions is internal representation. This function is created infinity which means cover the entry domain. During training the function is shrunk if new conflicting instances are omitted. Therefore two parameters have been introduced. One is m_thetaMinus which is used to describe an upper bound of conflicting instances; and m_thetaPlus, to lower bound for non-conflicting instances.

Author:
Thomas Gabriel, University of Konstanz

Constructor Summary
protected RadialBasisFunctionLearnerRow(RowKey key, DataCell classInfo, DataRow center, double thetaMinus, double thetaPlus, int distance)
          Creates a new radial basisfunction using the center vector as the anchor of the Gaussian function and also assigns class label for this prototype.
 
Method Summary
 boolean compareCoverage(BasisFunctionLearnerRow best, DataRow row)
          Compares this basis function with the other one by its standard deviation if the number of covered pattern is equal otherwise use this identification.
 double computeActivation(DataRow row)
          Computes activation for a given row using this basis function.
 void cover(DataRow row)
          Method is empty.
 boolean covers(DataRow row)
          Checks if the given row is covered by this basis function.
 boolean explains(DataRow row)
          Checks if the given row is explained by this basisfunction.
 DataCell getFinalCell(int index)
          Returns a basis function cell for the given index.
 DoubleValue getMissingValue(int col)
          Returns the missing double value for the given dimension.
 RadialBasisFunctionPredictorRow getPredictorRow()
          
 boolean getShrinkValue(DataRow row)
          Called if a new BasisFunctionLearnerRow has to be adjusted.
 double getThetaMinus()
           
 double getThetaPlus()
           
 void reset()
          Method is empty.
 boolean shrink(DataRow row)
          Basis functions need to be adjusted if they conflict with other ones.
 String toString()
          Returns a string summary of this basis function cell including the assigned class, number of covered, as well as explained pattern.
 
Methods inherited from class org.knime.base.node.mine.bfn.BasisFunctionLearnerRow
addCovered, computeCoverage, equals, getAllCoveredPattern, getAnchor, getCell, getClassLabel, getKey, getNumCells, getVariance, hashCode, iterator, print
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

RadialBasisFunctionLearnerRow

protected RadialBasisFunctionLearnerRow(RowKey key,
                                        DataCell classInfo,
                                        DataRow center,
                                        double thetaMinus,
                                        double thetaPlus,
                                        int distance)
Creates a new radial basisfunction using the center vector as the anchor of the Gaussian function and also assigns class label for this prototype. The Gaussian function is be initialized infinity covering the entire domain.

Parameters:
key - the key of this row
classInfo - the class info assigned to this basisfunction
center - the initial center vector
thetaMinus - upper bound for conflicting instances
thetaPlus - lower bound for non-conflicting instances
distance - choice of the distance function between patterns.
Method Detail

getPredictorRow

public RadialBasisFunctionPredictorRow getPredictorRow()

Specified by:
getPredictorRow in class BasisFunctionLearnerRow
Returns:
underlying predictor row

getMissingValue

public DoubleValue getMissingValue(int col)
Returns the missing double value for the given dimension.

Specified by:
getMissingValue in class BasisFunctionLearnerRow
Parameters:
col - the column index.
Returns:
The centroid value at the given dimension.

covers

public final boolean covers(DataRow row)
Checks if the given row is covered by this basis function. If this basis function has not been shrunk before, it will return true immediately, otherwise it checks if the activation is greater theta minus.

Specified by:
covers in class BasisFunctionLearnerRow
Parameters:
row - the input row to check coverage for
Returns:
true if the given row is covered other false
Throws:
NullPointerException - if the given row is null
See Also:
computeActivation(DataRow)

explains

public final boolean explains(DataRow row)
Checks if the given row is explained by this basisfunction. If this basis function has not been shrunk before, it will return true immediately, otherwise it checks if the activation is greater or equal theta plus.

Specified by:
explains in class BasisFunctionLearnerRow
Parameters:
row - the input row to check coverage for
Returns:
true if the given row is explained other false
Throws:
NullPointerException - if the given row is null
See Also:
computeActivation(DataRow)

compareCoverage

public final boolean compareCoverage(BasisFunctionLearnerRow best,
                                     DataRow row)
Compares this basis function with the other one by its standard deviation if the number of covered pattern is equal otherwise use this identification.

Specified by:
compareCoverage in class BasisFunctionLearnerRow
Parameters:
best - the basisfunction with the highest coverage so far
row - the row on which to coverage need to be compared
Returns:
true if the coverage of this object is better than the of the other
Throws:
ClassCastException - if the other cell is not a RadialBasisFunctionLearnerRow

getShrinkValue

public final boolean getShrinkValue(DataRow row)
Called if a new BasisFunctionLearnerRow has to be adjusted.

Specified by:
getShrinkValue in class BasisFunctionLearnerRow
Parameters:
row - conflicting pattern.
Returns:
a value greater zero if a conflict has to be solved. The value indicates relative loss in coverage for this basisfunction.

shrink

public final boolean shrink(DataRow row)
Basis functions need to be adjusted if they conflict with other ones. Therefore this shrink method computes the new standard deviation based on the m_thetaMinus.

Specified by:
shrink in class BasisFunctionLearnerRow
Parameters:
row - the input row to shrink this basisfunction on
Returns:
true if the standard deviation changed due to the method which happens when either this basisfunction has not be shrunk before or the new radius is smaller than the old one, other wise this function return false

reset

public final void reset()
Method is empty.

Specified by:
reset in class BasisFunctionLearnerRow

cover

public final void cover(DataRow row)
Method is empty.

Specified by:
cover in class BasisFunctionLearnerRow
Parameters:
row - Ignored.

toString

public String toString()
Returns a string summary of this basis function cell including the assigned class, number of covered, as well as explained pattern. This method is supposed to be overridden to add additional information for a particular model.

Overrides:
toString in class BasisFunctionLearnerRow
Returns:
string summary for this basisfunction cell

getFinalCell

public DataCell getFinalCell(int index)
Returns a basis function cell for the given index.

Specified by:
getFinalCell in class BasisFunctionLearnerRow
Parameters:
index - cell for index
Returns:
a basis function cell

computeActivation

public double computeActivation(DataRow row)
Computes activation for a given row using this basis function.

Specified by:
computeActivation in class BasisFunctionLearnerRow
Parameters:
row - the data row to compute activation with
Returns:
the activation of the row

getThetaMinus

public final double getThetaMinus()
Returns:
theta minus

getThetaPlus

public final double getThetaPlus()
Returns:
theta plus


Copyright, 2003 - 2010. All rights reserved.
University of Konstanz, Germany.
Chair for Bioinformatics and Information Mining, Prof. Dr. Michael R. Berthold.
You may not modify, publish, transmit, transfer or sell, reproduce, create derivative works from, distribute, perform, display, or in any way exploit any of the content, in whole or in part, except as otherwise expressly permitted in writing by the copyright owner or as specified in the license file distributed with this product.