Пример #1
0
    def __init__(self, config):
        self.config = config
        keras_backend = self.get_config('settings',
                                        'keras_backend',
                                        default='')

        if keras_backend:
            os.environ['KERAS_BACKEND'] = keras_backend

        self.input = instance_from_config(self.get_config('input'))
        self.algorithm = instance_from_config(self.get_config('algorithm'))
        self.output = instance_from_config(self.get_config('output'))
        self.steps = []

        self.steps.append(self.input)

        for preprocessing_step in self.get_config('preprocessing', default=[]):
            self.steps.append(instance_from_config(preprocessing_step))

        self.steps.append(self.algorithm)

        for postprocessing_step in self.get_config('postprocessing',
                                                   default=[]):
            self.steps.append(instance_from_config(postprocessing_step))

        self.steps.append(self.output)
Пример #2
0
    def __init__(self, config):
        super().__init__(config)

        self.do_fit_condition = instance_from_config(
            self.get_config(
                'do_fit_condition',
                default={'class': 'ml4iiot.conditions.TrueCondition'}))
        self.do_predict_condition = instance_from_config(
            self.get_config(
                'do_predict_condition',
                default={'class': 'ml4iiot.conditions.TrueCondition'}))

        pd.options.mode.chained_assignment = None
Пример #3
0
    def __init__(self, config):
        super().__init__(config)

        self.output_adapters = []

        for output_config in self.get_config('output_adapters'):
            self.output_adapters.append(instance_from_config(output_config))
Пример #4
0
    def __init__(self, config):
        super().__init__(config)

        self.do_skip_condition = instance_from_config(
            self.get_config(
                'do_skip',
                default={'class': 'ml4iiot.conditions.FalseCondition'}))
Пример #5
0
    def __init__(self, config):
        super().__init__(config)

        self.index_column = self.get_config('index_column')
        windowing_strategy = self.get_config('windowing_strategy')
        windowing_strategy['config']['input'] = self
        self.windowing_strategy = instance_from_config(self.get_config('windowing_strategy'))
Пример #6
0
    def test_inverted_condition(self):
        condition_true = instance_from_config({
            'class': 'ml4iiot.conditions.FalseCondition',
            'config': {
                'inverted': True
            }
        })
        condition_false = instance_from_config({
            'class': 'ml4iiot.conditions.FalseCondition',
            'config': {
                'inverted': False
            }
        })

        self.assertTrue(condition_true.evaluate(None))
        self.assertFalse(condition_false.evaluate(None))
Пример #7
0
    def __init__(self, config):
        super().__init__(config)

        self.conditions = []
        self.operator = self.get_config('operator', default='and')

        for condition_config in self.get_config('conditions', default=[]):
            self.conditions.append(instance_from_config(condition_config))
Пример #8
0
    def __init__(self, config):
        super().__init__(config)

        self.producer = None
        self.topics_mapping = self.get_config('kafka_topics_mapping')
        self.output_mapper = instance_from_config(
            self.get_config(
                'kafka_output_mapper',
                default={'class': 'ml4iiot.output.kafka.JsonOutputMapper'}))
Пример #9
0
    def __init__(self, config):
        super().__init__(config)

        self.do_output_condition = instance_from_config(
            self.get_config(
                'do_output_condition',
                default={'class': 'ml4iiot.conditions.TrueCondition'}))
        self.output_file_name = self.get_config('output_file_name',
                                                default='csv_output.csv')
        self.output_file_path = get_current_out_path(self.output_file_name)
        self.date_format = self.get_config('date_format', default='%s.%f')
        self.columns = self.get_config('columns', default=None)
        self.output_file = None
        self.write_header = True
Пример #10
0
    def test_time_delta_condition(self):
        time_delta_condition = instance_from_config({
            'class': 'ml4iiot.conditions.TimeDeltaCondition',
            'config': {
                'min_time_delta': {
                    'seconds': 10,
                },
                'max_time_delta': {
                    'seconds': 100
                }
            }
        })

        valid = self.create_data_frame([0, 10, 20, 40, 100])
        too_short = self.create_data_frame([0, 5, 15, 20, 25])
        too_large = self.create_data_frame([0, 50, 150, 300, 350])

        self.assertTrue(time_delta_condition.evaluate(valid))
        self.assertFalse(time_delta_condition.evaluate(too_short))
        self.assertFalse(time_delta_condition.evaluate(too_large))
Пример #11
0
    def test_daytime_condition(self):
        daytime_condition = instance_from_config({
            'class': 'ml4iiot.conditions.DaytimeCondition',
            'config': {
                'start_time': '08:00:00',
                'end_time': '20:00:00'
            }
        })

        before_time_window = self.create_data_frame(self.seconds_in_an_hour *
                                                    7)
        in_time_window_1 = self.create_data_frame(self.seconds_in_an_hour * 9)
        in_time_window_2 = self.create_data_frame(self.seconds_in_an_hour * 14)
        after_time_window = self.create_data_frame(self.seconds_in_an_hour *
                                                   22)

        self.assertFalse(daytime_condition.evaluate(before_time_window))
        self.assertTrue(daytime_condition.evaluate(in_time_window_1))
        self.assertTrue(daytime_condition.evaluate(in_time_window_2))
        self.assertFalse(daytime_condition.evaluate(after_time_window))
Пример #12
0
    def test_weekday_condition(self):
        weekday_condition = instance_from_config({
            'class': 'ml4iiot.conditions.WeekdayCondition',
            'config': {
                'weekdays': ['Monday', 'Tuesday']
            }
        })

        thursday = self.create_data_frame(self.seconds_in_a_day * 0)
        friday = self.create_data_frame(self.seconds_in_a_day * 1)
        saturday = self.create_data_frame(self.seconds_in_a_day * 2)
        sunday = self.create_data_frame(self.seconds_in_a_day * 3)
        monday = self.create_data_frame(self.seconds_in_a_day * 4)
        tuesday = self.create_data_frame(self.seconds_in_a_day * 5)
        wednesday = self.create_data_frame(self.seconds_in_a_day * 6)

        self.assertFalse(weekday_condition.evaluate(thursday))
        self.assertFalse(weekday_condition.evaluate(friday))
        self.assertFalse(weekday_condition.evaluate(saturday))
        self.assertFalse(weekday_condition.evaluate(sunday))
        self.assertFalse(weekday_condition.evaluate(wednesday))

        self.assertTrue(weekday_condition.evaluate(monday))
        self.assertTrue(weekday_condition.evaluate(tuesday))
Пример #13
0
    def test_composite_condition(self):
        condition_and_true = instance_from_config({
            'class': 'ml4iiot.conditions.CompositeCondition',
            'config': {
                'operator':
                'and',
                'conditions': [
                    {
                        'class': 'ml4iiot.conditions.TrueCondition'
                    },
                    {
                        'class': 'ml4iiot.conditions.TrueCondition'
                    },
                ]
            }
        })

        condition_and_false_1 = instance_from_config({
            'class': 'ml4iiot.conditions.CompositeCondition',
            'config': {
                'operator':
                'and',
                'conditions': [
                    {
                        'class': 'ml4iiot.conditions.TrueCondition'
                    },
                    {
                        'class': 'ml4iiot.conditions.FalseCondition'
                    },
                ]
            }
        })

        condition_and_false_2 = instance_from_config({
            'class': 'ml4iiot.conditions.CompositeCondition',
            'config': {
                'operator':
                'and',
                'conditions': [
                    {
                        'class': 'ml4iiot.conditions.FalseCondition'
                    },
                    {
                        'class': 'ml4iiot.conditions.TrueCondition'
                    },
                ]
            }
        })

        condition_and_false_3 = instance_from_config({
            'class': 'ml4iiot.conditions.CompositeCondition',
            'config': {
                'operator':
                'and',
                'conditions': [
                    {
                        'class': 'ml4iiot.conditions.FalseCondition'
                    },
                    {
                        'class': 'ml4iiot.conditions.FalseCondition'
                    },
                ]
            }
        })

        condition_or_false = instance_from_config({
            'class': 'ml4iiot.conditions.CompositeCondition',
            'config': {
                'operator':
                'or',
                'conditions': [
                    {
                        'class': 'ml4iiot.conditions.FalseCondition'
                    },
                    {
                        'class': 'ml4iiot.conditions.FalseCondition'
                    },
                ]
            }
        })

        condition_or_true_1 = instance_from_config({
            'class': 'ml4iiot.conditions.CompositeCondition',
            'config': {
                'operator':
                'or',
                'conditions': [
                    {
                        'class': 'ml4iiot.conditions.TrueCondition'
                    },
                    {
                        'class': 'ml4iiot.conditions.FalseCondition'
                    },
                ]
            }
        })

        condition_or_true_2 = instance_from_config({
            'class': 'ml4iiot.conditions.CompositeCondition',
            'config': {
                'operator':
                'or',
                'conditions': [
                    {
                        'class': 'ml4iiot.conditions.FalseCondition'
                    },
                    {
                        'class': 'ml4iiot.conditions.TrueCondition'
                    },
                ]
            }
        })

        condition_or_true_3 = instance_from_config({
            'class': 'ml4iiot.conditions.CompositeCondition',
            'config': {
                'operator':
                'or',
                'conditions': [
                    {
                        'class': 'ml4iiot.conditions.TrueCondition'
                    },
                    {
                        'class': 'ml4iiot.conditions.TrueCondition'
                    },
                ]
            }
        })

        self.assertTrue(condition_and_true.evaluate(None))
        self.assertFalse(condition_and_false_1.evaluate(None))
        self.assertFalse(condition_and_false_2.evaluate(None))
        self.assertFalse(condition_and_false_3.evaluate(None))

        self.assertFalse(condition_or_false.evaluate(None))
        self.assertTrue(condition_or_true_1.evaluate(None))
        self.assertTrue(condition_or_true_2.evaluate(None))
        self.assertTrue(condition_or_true_3.evaluate(None))
Пример #14
0
    def test_false_condition(self):
        condition = instance_from_config(
            {'class': 'ml4iiot.conditions.FalseCondition'})

        self.assertFalse(condition.evaluate(None))
Пример #15
0
    def test_true_condition(self):
        condition = instance_from_config(
            {'class': 'ml4iiot.conditions.TrueCondition'})

        self.assertTrue(condition.evaluate(None))