Esempio n. 1
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)
Esempio n. 2
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)