code: def predict(self, x):
          
          if self._is_leaf():
              d1 = self.predict_initialize['count_dict']
              d2 = count_dict(self.Y)
              for key, value in d1.iteritems():
                  if key in d2:
                      d2[key] += value
                  else:
                      d2[key] = value
              return argmax(d2)
          else:
              if self.criterion(x):
                  return self.right.predict(x)
              else:
                  return self.left.predict(x)
docs: Make prediction recursively. Use both the samples inside the current
          node and the statistics inherited from parent.