Example #1
0
 /**
  * Generates a prediction for the given label
  *
  * @param $label
  * @param array $features
  * @return float
  */
 protected function predictLabel($label, array $features, $useLog)
 {
     if ($useLog) {
         $score = log($this->model->getLabelCount($label) / $this->model->getDocCount());
         foreach ($features as $feature => $count) {
             if ($this->model->labelModelsFeature($label, $feature)) {
                 $probability = $this->model->getLabelFeatureModel($label, $feature);
                 $score += log($probability);
             }
         }
         return $score;
     } else {
         $score = $this->model->getLabelCount($label) / $this->model->getDocCount();
         foreach ($features as $feature => $count) {
             if ($this->model->labelModelsFeature($label, $feature)) {
                 $probability = $this->model->getLabelFeatureModel($label, $feature);
                 $score *= $probability;
             }
         }
         return $score;
     }
 }