Biorithm
1.1
|
This class adapts MyOneVersusAllGainAlgo to work in the "one-versus-none" domain. More...
#include <gain-algorithm.h>
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()).
not participate as negative examples during any invocation of run(), since their initial state is set to HYPOTHETICAL_STATE,
be included in cross validation since MyOneVersusAllGainAlgo::constructCrossValidationLists() forms the lists by considering _nodesByRealStateType, and