def _finishSphering(self):
<EOL>self._normOffset = self._samples.mean(axis=<NUM_LIT:0>) * -<NUM_LIT:1.0><EOL>self._samples += self._normOffset<EOL>variance = self._samples.var(axis=<NUM_LIT:0>)<EOL>variance[numpy.where(variance == <NUM_LIT:0.0>)] = <NUM_LIT:1.0><EOL>self._normScale  = <NUM_LIT:1.0> / numpy.sqrt(variance)<EOL>self._samples *= self._normScale<EOL>for sampleIndex in range(len(self._labels)):<EOL><INDENT>self._knn.learn(self._samples[sampleIndex],<EOL>self._labels[sampleIndex],<EOL>self._partitions[sampleIndex])<EOL><DEDENT>
Compute normalization constants for each feature dimension
based on the collected training samples.  Then normalize our
training samples using these constants (so that each input
dimension has mean and variance of zero and one, respectively.)
Then feed these "sphered" training samples into the underlying
SVM model.