Пример #1
0
    def __init__(self, pattern_structure: PatternStructure, pattern_matching_condition: Condition,
                 time_window: timedelta, consumption_policy: ConsumptionPolicy = None, pattern_id: int = None):
        self.id = pattern_id

        self.full_structure = pattern_structure
        self.positive_structure = pattern_structure.duplicate()
        self.negative_structure = self.__extract_negative_structure()

        self.condition = pattern_matching_condition
        if isinstance(self.condition, TrueCondition):
            self.condition = AndCondition()
        elif not isinstance(self.condition, CompositeCondition):
            self.condition = AndCondition(self.condition)

        self.window = time_window

        self.statistics_type = StatisticsTypes.NO_STATISTICS
        self.statistics = None
        self.consumption_policy = consumption_policy

        if consumption_policy is not None:
            if consumption_policy.single_event_strategy is not None and consumption_policy.single_types is None:
                # must be initialized to contain all event types in the pattern
                consumption_policy.single_types = self.get_all_event_types()
            if consumption_policy.contiguous_names is not None:
                self.__init_strict_conditions(pattern_structure)
Пример #2
0
    def __init__(self,
                 pattern_structure: PatternStructure,
                 pattern_matching_condition: Condition,
                 time_window: timedelta,
                 consumption_policy: ConsumptionPolicy = None,
                 pattern_id: int = None,
                 confidence: float = None,
                 statistics: Dict = None):
        if confidence is not None and (confidence < 0.0 or confidence > 1.0):
            raise Exception("Invalid value for pattern confidence:%s" %
                            (confidence, ))
        self.id = pattern_id

        self.full_structure = pattern_structure
        self.positive_structure = pattern_structure.duplicate()
        self.negative_structure = self.__extract_negative_structure()

        self.condition = pattern_matching_condition
        if isinstance(self.condition, TrueCondition):
            self.condition = AndCondition()
        elif not isinstance(self.condition, CompositeCondition):
            self.condition = AndCondition(self.condition)

        self.window = time_window

        self.statistics = statistics

        self.consumption_policy = consumption_policy
        if consumption_policy is not None:
            if consumption_policy.single_event_strategy is not None and consumption_policy.single_types is None:
                # must be initialized to contain all event types in the pattern
                consumption_policy.single_types = self.get_all_event_types()
            if consumption_policy.contiguous_names is not None:
                self.__init_strict_conditions(pattern_structure)

        self.confidence = confidence