コード例 #1
0
ファイル: api.py プロジェクト: tarsbase/karura
 def post(self, domain):
     body = tornado.escape.json_decode(self.request.body)
     app_id = body["app_id"]
     api = DatabaseAPI()
     krequest = kintoneRequest(env=api.get_kintone_env(domain))
     dfe = krequest.request_to_dfe(body)
     self.train(self, app_id, krequest, dfe)
コード例 #2
0
ファイル: api.py プロジェクト: tarsbase/karura
    def post(self, domain):
        body = tornado.escape.json_decode(self.request.body)
        app_id = body["app_id"]
        api = DatabaseAPI()
        krequest = kintoneRequest(env=api.get_kintone_env(domain))
        dfe = krequest.download(body)
        _df = dfe.df.copy(deep=True)

        predictor = Predictor.load_from_env(krequest.env, app_id)
        pred = predictor.predict(dfe.df)

        pred_column = pred.name + "_prediction"
        _df[pred_column] = pred
        type_header = {}
        for c in _df.columns:
            if c in dfe.df.columns.tolist() + [pred.name, pred_column]:
                _c = c if c != pred_column else pred.name
                type_header[c] = FTypeNames[dfe.ftypes[_c]]
            else:
                type_header[c] = ""
            if c == pred.name:
                type_header[c] += "/TGT"  # todo: control attirubte not in api
            elif c == pred_column:
                type_header[c] += "/PRED"

            type_header[c] = [type_header[c]]  # for from_dict columns
        dfe = None  # free memory
        ordered = [
            c for c in _df.columns if c not in [pred.name, pred_column]
        ] + [pred.name, pred_column]
        _df = _df[ordered]
        self.download_file(_df, "prediction.tsv", type_header)
コード例 #3
0
    def test_file_to_dfe(self):
        krequest = kintoneRequest()
        dfe = krequest.file_to_df(FILE_STR.strip().encode("utf-8"))

        self.assertEqual(dfe.target, "家賃")
        self.assertEqual(dfe.get_columns(FType.categorical), ["向き"])
        self.assertEqual(dfe.get_columns(FType.numerical),
                         ["築年数(年)", "専有面積(mxm)", "家賃"])
コード例 #4
0
ファイル: api.py プロジェクト: tarsbase/karura
    def post(self, domain):
        app_id = self.get_argument("app_id", None, True)
        error = None
        if not app_id or not app_id.isdigit():
            error = ErrorMessage.create("アプリケーションIDが正しく指定されていません")

        api = DatabaseAPI()
        krequest = kintoneRequest(env=api.get_kintone_env(domain))
        dfe = krequest.file_to_df(self.request.body)

        TrainingHandler.train(self, app_id, krequest, dfe)
コード例 #5
0
ファイル: api.py プロジェクト: tarsbase/karura
    def post(self, domain):
        body = tornado.escape.json_decode(self.request.body)

        app_id = body["app_id"]
        values = body["values"]
        api = DatabaseAPI()
        krequest = kintoneRequest(env=api.get_kintone_env(domain))
        df = krequest.record_to_df(body)
        predictor = Predictor.load_from_env(krequest.env, app_id)
        pred = predictor.predict(df).values

        result = {"prediction": "{}".format(pred[0])}
        self.write(result)
コード例 #6
0
ファイル: test_on_kintone.py プロジェクト: tarsbase/karura
    def test_autorun_from_request(self):
        print("AutoRun from Request --------------")
        request = json.loads(KINTONE_REQUEST.replace("###", str(self.APP_ID)))
        krequest = kintoneRequest()
        dfe = krequest.request_to_dfe(request)
        dfe.to_categorical(["向き"])
        autorun = make_autorun(dfe, feature_type_estimation=False)
        descriptions = autorun.execute()
        for d in descriptions:
            print(d)

        print("Predict from kintone Request --------------")
        record = json.loads(KINTONE_RECORD.replace("###", str(self.APP_ID)))
        df = krequest.record_to_df(record)
        predictor = autorun.to_predictor()
        pred = predictor.predict(df)
        print("estimated value: {}".format(pred))
コード例 #7
0
 def test_request_to_dfe(self):
     request = json.loads(KINTONE_REQUEST.replace("###", str(self.APP_ID)))
     krequest = kintoneRequest()
     dfe = krequest.request_to_dfe(request)
     print(dfe.ftypes)
     print(dfe.df.shape)