예제 #1
0
    def predict(self,
                when={},
                from_data=None,
                model_name='mdsb_model',
                breakpoint=PHASE_END,
                **kargs):
        """

        :param predict:
        :param when:
        :param model_name:
        :return:
        """

        transaction_type = TRANSACTION_PREDICT

        from_ds = None if from_data is None else getDS(from_data)

        transaction_metadata = TransactionMetadata()
        transaction_metadata.model_name = model_name

        # This will become irrelevant as if we have trained a model with a predict we just need to pass when or from_data
        # predict_columns = [predict] if type(predict) != type([]) else predict
        # transaction_metadata.model_predict_columns = predict_columns

        transaction_metadata.model_when_conditions = when
        transaction_metadata.type = transaction_type
        transaction_metadata.storage_file = self.storage_file
        transaction_metadata.from_data = from_ds

        transaction = self.session.newTransaction(transaction_metadata,
                                                  breakpoint)

        return transaction.output_data
예제 #2
0
    def predict(self,
                predict,
                from_data=None,
                when={},
                model_name='mdsb_model',
                breakpoint=PHASE_END):
        """

        :param predict:
        :param when:
        :param model_name:
        :return:
        """

        if not predict:
            raise ValueError('Please provide valid predict value.')

        transaction_type = TRANSACTION_PREDICT

        from_ds = None if from_data is None else getDS(from_data)

        predict_columns = [predict] if type(predict) != type([]) else predict

        transaction_metadata = TransactionMetadata()
        transaction_metadata.model_name = model_name
        transaction_metadata.model_predict_columns = predict_columns
        transaction_metadata.model_when_conditions = when
        transaction_metadata.type = transaction_type
        transaction_metadata.storage_file = self.storage_file
        transaction_metadata.from_data = from_ds

        transaction = self.session.newTransaction(transaction_metadata,
                                                  breakpoint)

        return transaction.output_data
예제 #3
0
    def predict(self,
                predict,
                from_data=None,
                when={},
                model_name='mdsb_model',
                breakpoint=PHASE_END):
        """

        :param predict:
        :param when:
        :param model_name:
        :return:
        """

        transaction_type = TRANSACTION_PREDICT

        predict_columns = [predict] if type(predict) != type([]) else predict

        transaction_metadata = TransactionMetadata()
        transaction_metadata.model_name = model_name
        transaction_metadata.model_predict_columns = predict_columns
        transaction_metadata.model_when_conditions = when
        transaction_metadata.type = transaction_type
        transaction_metadata.storage_file = self.storage_file
        transaction_metadata.from_data = from_data

        transaction = self.session.newTransaction(transaction_metadata,
                                                  breakpoint)

        return transaction.output_data
예제 #4
0
    def learn(self,
              predict,
              from_file=None,
              from_data=None,
              model_name='mdsb_model',
              test_from_data=None,
              group_by=None,
              window_size=MODEL_GROUP_BY_DEAFAULT_LIMIT,
              order_by=[],
              breakpoint=PHASE_END,
              ignore_columns=[],
              rename_strange_columns=True):
        """

        :param from_query:
        :param predict:
        :param model_name:
        :param test_query:
        :return:
        """
        if self._from_data is None:
            from_ds = getDS(from_data) if from_file is None else getDS(
                from_file)
        else:
            from_ds = getDS(self._from_data)
        test_from_ds = test_from_data if test_from_data is None else getDS(
            test_from_data)

        transaction_type = TRANSACTION_LEARN

        predict_columns_map = {}
        predict_columns = [predict] if type(predict) != type([]) else predict

        if rename_strange_columns is False:
            for predict_col in predict_columns:
                predict_col_as_in_df = from_ds.getColNameAsInDF(predict_col)
                predict_columns_map[predict_col_as_in_df] = predict_col

            predict_columns = list(predict_columns_map.keys())
        else:
            logging.warning(
                'After version 1.0 rename_strange_columns in MindsDB().learn, the default value will be flipped from True to False '
            )

        transaction_metadata = TransactionMetadata()
        transaction_metadata.model_name = model_name
        transaction_metadata.model_predict_columns = predict_columns
        transaction_metadata.model_columns_map = {} if rename_strange_columns else from_ds._col_map
        transaction_metadata.model_group_by = group_by
        transaction_metadata.model_order_by = order_by if type(
            order_by) == type([]) else [order_by]
        transaction_metadata.window_size = window_size
        transaction_metadata.type = transaction_type
        transaction_metadata.from_data = from_ds
        transaction_metadata.test_from_data = test_from_ds
        transaction_metadata.ignore_columns = ignore_columns

        self.startInfoServer()
        self.session.newTransaction(transaction_metadata, breakpoint)
예제 #5
0
    def learn(self,
              predict,
              from_query=None,
              from_file=None,
              model_name='mdsb_model',
              test_query=None,
              group_by=None,
              group_by_limit=MODEL_GROUP_BY_DEAFAULT_LIMIT,
              order_by=[],
              breakpoint=PHASE_END):
        """

        :param from_query:
        :param predict:
        :param model_name:
        :param test_query:
        :return:
        """

        if from_file is not None:
            from_file_dest = os.path.basename(from_file).split('.')[0]
            self.addTable(CSVFileDS(from_file), from_file_dest)
            if from_query is None:
                from_query = 'select * from {from_file_dest}'.format(
                    from_file_dest=from_file_dest)
                logging.info('setting up custom learn query for file. ' +
                             from_query)

        transaction_type = TRANSACTION_LEARN

        predict_columns = [predict] if type(predict) != type([]) else predict

        transaction_metadata = TransactionMetadata()
        transaction_metadata.model_name = model_name
        transaction_metadata.model_query = from_query
        transaction_metadata.model_predict_columns = predict_columns
        transaction_metadata.model_test_query = test_query
        transaction_metadata.model_group_by = group_by
        transaction_metadata.model_order_by = order_by if type(
            order_by) == type([]) else [order_by]
        transaction_metadata.model_group_by_limit = group_by_limit
        transaction_metadata.type = transaction_type

        self.startInfoServer()
        self.session.newTransaction(transaction_metadata, breakpoint)
예제 #6
0
    def learn(self,
              predict,
              from_file=None,
              from_data=None,
              model_name='mdsb_model',
              test_from_data=None,
              group_by=None,
              window_size=MODEL_GROUP_BY_DEAFAULT_LIMIT,
              order_by=[],
              breakpoint=PHASE_END,
              ignore_columns=[]):
        """

        :param from_query:
        :param predict:
        :param model_name:
        :param test_query:
        :return:
        """

        from_ds = getDS(from_data) if from_file is None else getDS(from_file)
        test_from_ds = test_from_data if test_from_data is None else getDS(
            test_from_data)

        transaction_type = TRANSACTION_LEARN

        predict_columns = [predict] if type(predict) != type([]) else predict

        transaction_metadata = TransactionMetadata()
        transaction_metadata.model_name = model_name
        transaction_metadata.model_predict_columns = predict_columns
        transaction_metadata.model_group_by = group_by
        transaction_metadata.model_order_by = order_by if type(
            order_by) == type([]) else [order_by]
        transaction_metadata.window_size = window_size
        transaction_metadata.type = transaction_type
        transaction_metadata.from_data = from_ds
        transaction_metadata.test_from_data = test_from_ds
        transaction_metadata.ignore_columns = ignore_columns

        self.startInfoServer()
        self.session.newTransaction(transaction_metadata, breakpoint)