@@ -67,7 +67,7 @@ discard block |
||
| 67 | 67 | }, $db); |
| 68 | 68 | } else { |
| 69 | 69 | $this->mean[$label][$i] = Mean::arithmetic($values); |
| 70 | - // Add epsilon in order to avoid zero stdev |
|
| 70 | + // Add epsilon in order to avoid zero stdev |
|
| 71 | 71 | $this->std[$label][$i] = 1e-10 + StandardDeviation::population($values, false); |
| 72 | 72 | } |
| 73 | 73 | } |
@@ -75,7 +75,7 @@ discard block |
||
| 75 | 75 | |
| 76 | 76 | /** |
| 77 | 77 | * Calculates the probability P(label|sample_n) |
| 78 | - * |
|
| 78 | + * |
|
| 79 | 79 | * @param array $sample |
| 80 | 80 | * @param int $feature |
| 81 | 81 | * @param string $label |
@@ -94,14 +94,14 @@ discard block |
||
| 94 | 94 | $mean= $this->mean[$label][$feature]; |
| 95 | 95 | // Calculate the probability density by use of normal/Gaussian distribution |
| 96 | 96 | // Ref: https://en.wikipedia.org/wiki/Normal_distribution |
| 97 | - // |
|
| 98 | - // In order to avoid numerical errors because of small or zero values, |
|
| 99 | - // some libraries adopt taking log of calculations such as |
|
| 100 | - // scikit-learn did. |
|
| 101 | - // (See : https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/naive_bayes.py) |
|
| 102 | - $pdf = -0.5 * log(2.0 * pi() * $std * $std); |
|
| 103 | - $pdf -= 0.5 * pow($value - $mean, 2) / ($std * $std); |
|
| 104 | - return $pdf; |
|
| 97 | + // |
|
| 98 | + // In order to avoid numerical errors because of small or zero values, |
|
| 99 | + // some libraries adopt taking log of calculations such as |
|
| 100 | + // scikit-learn did. |
|
| 101 | + // (See : https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/naive_bayes.py) |
|
| 102 | + $pdf = -0.5 * log(2.0 * pi() * $std * $std); |
|
| 103 | + $pdf -= 0.5 * pow($value - $mean, 2) / ($std * $std); |
|
| 104 | + return $pdf; |
|
| 105 | 105 | } |
| 106 | 106 | |
| 107 | 107 | /** |