/** * Calculate the error for this neural network. * The error is calculated * using root-mean-square(RMS). * * @param * MLDataSet data * The training set. * @return double The error percentage. */ public function calculateError(MLDataSet $data) { $errorCalculation = new ErrorCalculation(); $actual = array(); $pair = BasicMLDataPair::createPair($data->getInputSize(), $data->getIdealSize()); for ($i = 0; $i < $data->getRecordCount(); ++$i) { $data->getRecord($i, $pair); $this->compute($pair->getInputArray(), $actual); $errorCalculation->updateError($actual, $pair->getIdealArray(), $pair->getSignificance()); } return $errorCalculation->calculate(); }