コード例 #1
0
    def plug_in(self,
                out=sys.stdout,
                hadoop=False,
                filter_id=None,
                subtree=True):
        """Generates a basic javascript implementation of local predictions

        `out` is file descriptor to write the javascript code.

        """
        # fill the camelcase variable names with the JS_KEYWORDS restrictions
        objective_field = self.tree.fields[self.tree.objective_id]
        camelcase = to_camel_js(unidecode(objective_field['name']), False)
        objective_field['CamelCase'] = camelcase
        for field in [(key, val)
                      for key, val in sort_fields(self.tree.fields)]:
            field_obj = self.tree.fields[field[0]]
            field_obj['camelCase'] = to_camel_js(unidecode(field_obj['name']))

        body, term_analysis_predicates, item_analysis_predicates = \
            self.tree.plug_in_body()
        terms_body = ""
        items_body = ""
        if term_analysis_predicates:
            terms_body = self.js_term_analysis_body(term_analysis_predicates)
        if item_analysis_predicates:
            items_body = self.js_item_analysis_body(item_analysis_predicates)
        output = self.js_pre_body()
        output += terms_body + items_body + body
        output += u"%sreturn null;\n}\n" % INDENT
        if not PY3:
            output = output.encode("utf8")
        out.write(output)
        out.flush()
コード例 #2
0
    def js_signature(self, input_map=False):
        """Returns a the javascript signature for a prediction method.

        """
        objective_field = self.tree.fields[self.tree.objective_id]
        if not 'CamelCase' in objective_field:
            camelcase = to_camel_js(unidecode(objective_field['name']), False)
            objective_field['CamelCase'] = camelcase

        output = u"function predict%s(" % objective_field['CamelCase']

        args = []
        if len(self.tree.fields) > MAX_ARGS_LENGTH or input_map:
            args.append("data")
        else:
            for field in [(key, val)
                          for key, val in sort_fields(self.tree.fields)]:
                field_obj = self.tree.fields[field[0]]
                if not 'camelCase' in field_obj:
                    field_obj['camelCase'] = to_camel_js( \
                        unidecode(field_obj['name']))
                if field[0] != self.tree.objective_id:
                    args.append(u"%s" % field_obj['camelCase'])
        args_string = u", ".join(args)
        output += args_string + u")"

        return output
コード例 #3
0
ファイル: jsmodel.py プロジェクト: shantanusharma/bigmler
    def plug_in(self, out=sys.stdout, hadoop=False,
                filter_id=None, subtree=True):
        """Generates a basic javascript implementation of local predictions

        `out` is file descriptor to write the javascript code.

        """
        # fill the camelcase variable names with the JS_KEYWORDS restrictions
        objective_field = self.tree.fields[self.tree.objective_id]
        camelcase = to_camel_js(unidecode(objective_field['name']), False)
        objective_field['CamelCase'] = camelcase
        for field in [(key, val) for key, val in
                      sort_fields(self.tree.fields)]:
            field_obj = self.tree.fields[field[0]]
            field_obj['camelCase'] = to_camel_js(unidecode(field_obj['name']))

        body, term_analysis_predicates, item_analysis_predicates = \
            self.tree.plug_in_body()
        terms_body = ""
        items_body = ""
        if term_analysis_predicates:
            terms_body = self.js_term_analysis_body(term_analysis_predicates)
        if item_analysis_predicates:
            items_body = self.js_item_analysis_body(item_analysis_predicates)
        output = self.js_pre_body()
        output += terms_body + items_body + body
        output += u"%sreturn null;\n}\n" % INDENT
        if not PY3:
            output = output.encode("utf8")
        out.write(output)
        out.flush()
コード例 #4
0
ファイル: jsmodel.py プロジェクト: shantanusharma/bigmler
    def js_signature(self, input_map=False):
        """Returns a the javascript signature for a prediction method.

        """
        objective_field = self.tree.fields[self.tree.objective_id]
        if not 'CamelCase' in objective_field:
            camelcase = to_camel_js(unidecode(objective_field['name']), False)
            objective_field['CamelCase'] = camelcase

        output = u"function predict%s(" % objective_field['CamelCase']

        args = []
        if len(self.tree.fields) > MAX_ARGS_LENGTH or input_map:
            args.append("data")
        else:
            for field in [(key, val) for key, val in
                          sort_fields(self.tree.fields)]:
                field_obj = self.tree.fields[field[0]]
                if not 'camelCase' in field_obj:
                    field_obj['camelCase'] = to_camel_js( \
                        unidecode(field_obj['name']))
                if field[0] != self.tree.objective_id:
                    args.append(u"%s" % field_obj['camelCase'])
        args_string = u", ".join(args)
        output += args_string + u")"

        return output
コード例 #5
0
ファイル: rmodel.py プロジェクト: bigmlcom/bigmler
    def plug_in(self, out=sys.stdout, filter_id=None, subtree=True):
        """Writes an R function that implements the model.

        """
        # fill the dotted variable names with the R_KEYWORDS restrictions
        objective_field = self.tree.fields[self.tree.objective_id]
        camelcase = to_camel_js(objective_field['name'], False)
        objective_field['CamelCase'] = camelcase
        default = "NA"
        args = []
        for field in [(key, val) for key, val in
                      sort_fields(self.tree.fields)]:
            field_obj = self.tree.fields[field[0]]
            field_obj['dotted'] = dot(field_obj['name'])
            args.append("%s=%s" % (field_obj['dotted'], default))

        body, term_analysis_predicates, item_analysis_predicates = \
            self.tree.plug_in_body()
        terms_body = ""
        items_body = ""
        if term_analysis_predicates:
            terms_body = self.r_term_analysis_body(term_analysis_predicates)
        if item_analysis_predicates:
            items_body = self.r_item_analysis_body(item_analysis_predicates)

        predictor_definition = (u"predict%s <- function" %
                                camelcase)
        depth = len(predictor_definition) + 1
        predictor = u"%s(%s){\n" % (predictor_definition,
                                   (",\n" + " " * depth).join(args))
        join_str = "\n#"
        docstring = join_str.join(self.docstring().split("\n"))
        predictor_doc = (u"# " + docstring +
                         u"\n" + u"#\n")
        output = predictor_doc + predictor
        output += terms_body + items_body + body
        output += u"%sreturn(NA)\n}\n" % INDENT
        if not PY3:
            output = output.encode("utf8")
        out.write(output)
        out.flush()
コード例 #6
0
ファイル: rmodel.py プロジェクト: javs0188/bigmler
    def plug_in(self, out=sys.stdout, filter_id=None, subtree=True):
        """Writes an R function that implements the model.

        """
        # fill the dotted variable names with the R_KEYWORDS restrictions
        objective_field = self.tree.fields[self.tree.objective_id]
        camelcase = to_camel_js(objective_field['name'], False)
        objective_field['CamelCase'] = camelcase
        default = "NA"
        args = []
        for field in [(key, val)
                      for key, val in sort_fields(self.tree.fields)]:
            field_obj = self.tree.fields[field[0]]
            field_obj['dotted'] = dot(field_obj['name'])
            args.append("%s=%s" % (field_obj['dotted'], default))

        body, term_analysis_predicates, item_analysis_predicates = \
            self.tree.plug_in_body()
        terms_body = ""
        items_body = ""
        if term_analysis_predicates:
            terms_body = self.r_term_analysis_body(term_analysis_predicates)
        if item_analysis_predicates:
            items_body = self.r_item_analysis_body(item_analysis_predicates)

        predictor_definition = (u"predict%s <- function" % camelcase)
        depth = len(predictor_definition) + 1
        predictor = u"%s(%s){\n" % (predictor_definition,
                                    (",\n" + " " * depth).join(args))
        join_str = "\n#"
        docstring = join_str.join(self.docstring().split("\n"))
        predictor_doc = (u"# " + docstring + u"\n" + u"#\n")
        output = predictor_doc + predictor
        output += terms_body + items_body + body
        output += u"%sreturn(NA)\n}\n" % INDENT
        if not PY3:
            output = output.encode("utf8")
        out.write(output)
        out.flush()