Ejemplo n.º 1
0
    def __init__(self,
                 trainRecords,
                 anomalyThreshold,
                 cacheSize,
                 classificationVectorType=1,
                 activeColumnCount=40,
                 classificationMaxDist=0.30,
                 **classifierArgs):

        # Internal Region Values
        self._maxLabelOutputs = 16
        self._activeColumnCount = activeColumnCount
        self._prevPredictedColumns = numpy.array([])
        self._anomalyVectorLength = None
        self._classificationMaxDist = classificationMaxDist
        self._iteration = 0

        # Set to create deterministic classifier
        classifierArgs['SVDDimCount'] = None

        # Parameters
        self.trainRecords = trainRecords
        self.anomalyThreshold = anomalyThreshold
        self.cacheSize = cacheSize
        self.classificationVectorType = classificationVectorType

        self._knnclassifierArgs = classifierArgs
        self._knnclassifier = KNNClassifierRegion(**self._knnclassifierArgs)
        self.labelResults = []
        self.saved_categories = []
        self._recordsCache = []

        self._version = KNNAnomalyClassifierRegion.__VERSION__
  def __setstate__(self, state):
    """
    Set the state of ourself from a serialized state.
    """
    if '_version' not in state or state['_version'] == 1:

      knnclassifierProps = state.pop('_knnclassifierProps')

      self.__dict__.update(state)
      self._knnclassifier = KNNClassifierRegion(**self._knnclassifierArgs)
      self._knnclassifier.__setstate__(knnclassifierProps)

      self._version = KNNAnomalyClassifierRegion.__VERSION__
    else:
      raise Exception("Invalid KNNAnomalyClassifierRegion version. Current "
          "version: %s" % (KNNAnomalyClassifierRegion.__VERSION__))