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)
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)
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)", "家賃"])
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)
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)
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))
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)