protected void updateNumericScores(double[] predicted,double[] actual,double weight){
  double diff;
  double sumErr=0, sumAbsErr=0, sumSqrErr=0;
  double sumPriorAbsErr=0, sumPriorSqrErr=0;
  for (int i=0; i < m_NumClasses; i++) {
    diff=predicted[i] - actual[i];
    sumErr+=diff;
    sumAbsErr+=Math.abs(diff);
    sumSqrErr+=diff * diff;
    diff=(m_ClassPriors[i] / m_ClassPriorsSum) - actual[i];
    sumPriorAbsErr+=Math.abs(diff);
    sumPriorSqrErr+=diff * diff;
  }
  m_SumErr+=weight * sumErr / m_NumClasses;
  m_SumAbsErr+=weight * sumAbsErr / m_NumClasses;
  m_SumSqrErr+=weight * sumSqrErr / m_NumClasses;
  m_SumPriorAbsErr+=weight * sumPriorAbsErr / m_NumClasses;
  m_SumPriorSqrErr+=weight * sumPriorSqrErr / m_NumClasses;
}

protected void updateNumericScores ( double [ ] predicted , double [ ] actual , double weight ) { double diff ; double sumErr = 0 , sumAbsErr = 0 , sumSqrErr = 0 ; double sumPriorAbsErr = 0 , sumPriorSqrErr = 0 ; for ( int i = 0 ; i < m_NumClasses ; i ++ ) { diff = predicted [ i ] - actual [ i ] ; sumErr += diff ; sumAbsErr += Math . abs ( diff ) ; sumSqrErr += diff * diff ; diff = ( m_ClassPriors [ i ] / m_ClassPriorsSum ) - actual [ i ] ; sumPriorAbsErr += Math . abs ( diff ) ; sumPriorSqrErr += diff * diff ; } m_SumErr += weight * sumErr / m_NumClasses ; m_SumAbsErr += weight * sumAbsErr / m_NumClasses ; m_SumSqrErr += weight * sumSqrErr / m_NumClasses ; m_SumPriorAbsErr += weight * sumPriorAbsErr / m_NumClasses ; m_SumPriorSqrErr += weight * sumPriorSqrErr / m_NumClasses ; }
update the numeric accuracy measures . for numeric classes , the accuracy is between the actual and predicted class values . for nominal classes , the accuracy is between the actual and predicted class probabilities .
