double BasicGroupBigraph::probabilityEEpsilonOverAllAlphaBeta(const GridModel & gm, int indexEpsilon) const { GridModel localModel( gm ); double val = 0.0; for ( localModel.start(); localModel.inRange(); localModel.advance() ) { val += probabilityEEpsilon(localModel, indexEpsilon); } val /= localModel.getCount(); return val; }
void C45PruneableClassifierTree::collapse() { double errorsOfSubtree; double errorsOfTree; int i; if (!m_isLeaf) { errorsOfSubtree = getTrainingErrors(); errorsOfTree = localModel()->distribution()->numIncorrect(); if (errorsOfSubtree >= errorsOfTree-1E-3){ // Free adjacent trees clearSubtrees(); m_isLeaf = true; // Get NoSplit Model for tree. m_localModel = new NoSplit(localModel()->distribution()); }else{ for (i=0;i<m_sonsLength;i++) son(i)->collapse(); } } }
double C45PruneableClassifierTree::getTrainingErrors() { double errors = 0; int i; if (m_isLeaf) { return localModel()->distribution()->numIncorrect(); } else{ for (i=0;i<m_sonsLength;i++) { errors = errors+son(i)->getTrainingErrors(); } return errors; } }