Example #1
0
  def testSparsifyVector(self):
    classifier = KNNClassifier(distanceMethod="norm", distanceNorm=2.0)
    inputPattern = np.array([0, 1, 3, 7, 11], dtype=np.int32)

    # Each of the 4 tests correspond with the each decisional branch in the
    # sparsifyVector method
    #
    # tests: if not self.relativeThreshold:
    outputPattern = classifier._sparsifyVector(inputPattern, doWinners=True)
    self.assertTrue(np.array_equal(np.array([0, 1, 3, 7, 11], dtype=np.int32),
      outputPattern))

    # tests: elif self.sparseThreshold > 0:
    classifier = KNNClassifier(distanceMethod="norm", distanceNorm=2.0,
      relativeThreshold=True, sparseThreshold=.2)
    outputPattern = classifier._sparsifyVector(inputPattern, doWinners=True)
    self.assertTrue(np.array_equal(np.array([0, 0, 3, 7, 11], dtype=np.int32),
      outputPattern))

    # tests: if doWinners:
    classifier = KNNClassifier(distanceMethod="norm", distanceNorm=2.0,
      relativeThreshold=True, sparseThreshold=.2, numWinners=2)
    outputPattern = classifier._sparsifyVector(inputPattern, doWinners=True)
    self.assertTrue(np.array_equal(np.array([0, 0, 0, 0, 0], dtype=np.int32),
      outputPattern))

    # tests: Do binarization
    classifier = KNNClassifier(distanceMethod="norm", distanceNorm=2.0,
      relativeThreshold=True, sparseThreshold=.2, doBinarization=True)
    outputPattern = classifier._sparsifyVector(inputPattern, doWinners=True)
    self.assertTrue(np.array_equal(np.array(
      [0., 0., 1., 1., 1.], dtype=np.float32), outputPattern))