Ejemplo n.º 1
0
    def decorate(func):
        logname = name if name else func.__module__
        log = Logger(logname).get_logger()

        @wraps(func)
        def wrapper(*args, **kwargs):
            s = time.time()
            rtn = func(*args, **kwargs)
            e = time.time()
            log.info("{}  function {}() took {} s".format(
                logname, func.__name__, e - s))
            return rtn

        return wrapper
"""SOM model."""

from anomaly_detector.model.base_model import BaseModel
from anomaly_detector.utils.logger import Logger
from matplotlib import pyplot as plt
import os
import numpy as np
import matplotlib

matplotlib.use("agg")

_LOGGER = Logger(__name__).get_logger()


class SOMModel(BaseModel):
    """Self-Organizing Map model implementation."""
    def train(self, inp, map_size, iterations, parallelism):
        """Train the SOM model."""
        if self.model is None:
            # Generate a 24x24 node feature of color data
            self.model = np.random.rand(map_size, map_size, inp.shape[1])

        for iters in range(iterations):
            if not iters % int(iterations / 10):
                _LOGGER.info("SOM training iteration %d/%d" %
                             (iters, iterations))
            rand_num = np.random.randint(inp.shape[0])
            # Select a Random Document Vector From the training data
            current_vector = inp[rand_num, :]

            # Traverse the map and calculating Euclidian Distance
"""Storage Catalog class."""
from anomaly_detector.storage.kafka_storage import KafkaSink
from anomaly_detector.storage.local_storage import LocalStorageDataSource, LocalStorageDataSink
from anomaly_detector.storage.local_directory_storage import LocalDirectoryStorageDataSource
from anomaly_detector.storage.stdout_sink import StdoutSink
from anomaly_detector.storage.es_storage import ElasticSearchDataSink, ElasticSearchDataSource
from anomaly_detector.utils.logger import Logger

logging = Logger(__name__).get_logger()


class StorageCatalog(object):
    """Internal api and client should use storage proxy for data access.."""
    def __init__(self, config, storage_api):
        """Storage initialization logic."""
        self.config = config
        if storage_api in self._class_method_choices:
            self.storage_api = storage_api
        else:
            raise ValueError(
                "Unsupported storage provider used {}".format(storage_api))

    @classmethod
    def _localdir_datasource_api(cls, config):
        """Local file storage api datasource construction."""
        logging.info("fetching localdir datasource")
        return LocalDirectoryStorageDataSource(configuration=config)

    @classmethod
    def _localfile_datasource_api(cls, config):
        """Local file storage api datasource construction."""