/** * Normalize array values on a per feature basis, so that each feature has uniform variance. */ function whiten(array $matrix) { $sd = array(); // transpose $columns = array_map(NULL, $matrix); foreach ($columns as $i => $col) { $sd[$i] = array_sd($col); } foreach ($matrix as $row => &$feats) { foreach ($feats as $i => &$feat) { $feat /= $sd[$row]; } } return $matrix; }
$list .= array_sd($allLenX) . ",<br />" . array_sd($allLenY); $list .= '</td>' . PHP_EOL; $list .= '<td>' . PHP_EOL; $list .= array_sd($allRangeX) . ",<br />" . array_sd($allRangeY); $list .= '</td>' . PHP_EOL; $list .= '<td>' . PHP_EOL; $list .= array_sd($allScrollX) . ",<br />" . array_sd($allScrollY); $list .= '</td>' . PHP_EOL; $list .= '<td>' . PHP_EOL; $list .= array_sd($allEntryX) . ",<br />" . array_sd($allEntryY); $list .= '</td>' . PHP_EOL; $list .= '<td>' . PHP_EOL; $list .= array_sd($allExitX) . ",<br />" . array_sd($allExitY); $list .= '</td>' . PHP_EOL; $list .= '<td>' . PHP_EOL; $list .= array_sd($allCenX) . ",<br />" . array_sd($allCenY); $list .= '</td>' . PHP_EOL; $list .= '</tr>' . PHP_EOL; echo $list; ?> </tbody> </table> <div class="small"> <p> Notes: </p> <ol class="ml pl"> <li>First row is <abbr title="Sample Mean">μ</abbr>, while second row is <abbr title="Sample Standard Deviation">σ</abbr>.</li> <li>Comma-separated values denote a column vector (X and Y components).</li> </ol>