Biorithm  1.1
MyOneVersusAllToNoneGainAlgo Class Reference

This class adapts MyOneVersusAllGainAlgo to work in the "one-versus-none" domain. More...

#include <gain-algorithm.h>


Detailed Description

This class adapts MyOneVersusAllGainAlgo to work in the "one-versus-none" domain.

In more detail, it prevents nodes from being in the NOT_ANNOTATED_STATE. Therefore, nodes can only be in ANNOTATED_STATE or HYPOTHETICAL_STATE. The function we are trying to make predictions for competes against no other function in the FLN, hence the name OneVersusNone.

The adaption requires two steps:

(i) Overload initialiseNodeStates() so that all nodes get an initial state either of ANNOTATED_STATE or HYPOTHETICAL_STATE. No nodes get an initial state of NOT_ANNOTATED_STATE. However, these nodes (i.e., the nodes that are not annotated with the current function) get a *real* state of NOT_ANNOTATED_STATE. Furthermore, nodes whose real state is NOT_ANNOTATED_STATE are automatically included in nodesToAnnotate, so that MyOneVersusAllToNoneGainAlgo::run() will make predictions for these nodes.

(ii) Overload setCrossValidationList() so that nodes whose real state is NOT_ANNOTATED_STATE are not added to nodesToAnnotate again (since they already have been inserted into this vector in initialiseNodeStates()).

Note:
Nodes whose real state is NOT_ANNOTATED_STATE will
  1. not participate as negative examples during any invocation of run(), since their initial state is set to HYPOTHETICAL_STATE,

  2. be included in cross validation since MyOneVersusAllGainAlgo::constructCrossValidationLists() forms the lists by considering _nodesByRealStateType, and

  3. will be considered in the evaluation of cross validation results, as desired, since in MyOneVersusAllGainAlgo::computeCrossValidationResults(), MyReporter::addCV() is invoked with one argument being the node's real* state.

The documentation for this class was generated from the following file:
 All Classes Functions Variables Typedefs Friends