Esempio n. 1
0
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;
	}
}