def sklearn_predict_for_handler(handler): try: if handler.request.body: data = json.loads(handler.request.body) object_id = data.get('objectID', None) if object_id == None: raise Exception("please input handlerID") X_data_id = data.get('XDataID', None) if X_data_id == None: raise Exception("please input X_data_id") x_data_obj = DataStorage.get_data_obj_by_data_id(X_data_id) ml_obj, clf = MlObject.get_MlObject_by_obj(object_id) predict_y = clf.predict(x_data_obj.pandas_data.values) predict_y = pd.DataFrame(predict_y, columns=['predict']) MlObject.save_MlObject_by_obj_id(clf, object_id) data_obj_predict_y = DataStorage.create_data_obj_by_pandas_data( predict_y) if data_obj_predict_y: result = {} result['dataID'] = data_obj_predict_y.data_id result['columnNames'] = data_obj_predict_y.column_names handler.write(json.dumps(result)) else: raise Exception("please input arguments") return except Exception as e: handler.write(str(e))
def sklearn_fit_for_handler(handler, fit_arg_array): try: if handler.request.body: data = json.loads(handler.request.body) object_id = data.get('objectID', None) if object_id == None: raise Exception("please input handlerID") X_data_id = data.get('XDataID', None) if X_data_id == None: raise Exception("please input XDataID") y_data_id = data.get('yDataID', None) if y_data_id == None: raise Exception("please input yDataID") x_data_obj = DataStorage.get_data_obj_by_data_id(X_data_id) y_data_obj = DataStorage.get_data_obj_by_data_id(y_data_id) ml_obj, clf = MlObject.get_MlObject_by_obj(object_id) sklearn = data.get('sklearn', None) print(y_data_obj.pandas_data) if sklearn: sklearn_arg = regqeust_arg_to_sklearn_arg( sklearn, fit_arg_array) clf.fit(x_data_obj.pandas_data.values, y_data_obj.pandas_data.values, **sklearn_arg) else: clf.fit(x_data_obj.pandas_data.values, y_data_obj.pandas_data.values) MlObject.save_MlObject_by_obj_id(clf, object_id) else: raise Exception("please input arguments") return except Exception as e: handler.write(str(e))
def get(self): try: object_id = self.get_argument('objectID', None) if object_id == None: raise Exception("please input objectID") ml_obj, clf = MlObject.get_MlObject_by_obj(object_id) sklearn_arg = self.get_argument('sklearn', None) print(sklearn_arg) if not sklearn_arg: raise Exception("please input sklearn arg") sklearn_arg = sklearn_arg.split(",") result = {} if 'coef_' in sklearn_arg: result['coef_'] = clf.coef_.tolist() if 'intercept_' in sklearn_arg: result['intercept_'] = clf.intercept_.tolist() if 'sparse_coef_' in sklearn_arg: result['sparse_coef_'] = clf.intercept_.tolist() if 'n_iter_' in sklearn_arg: result['n_iter_'] = clf.n_iter_.tolist() if not result: raise Exception("please input valid sklearn arg") self.write(json.dumps(result)) return except Exception as e: self.write(str(e))
def put(self): try: if self.request.body: data = json.loads(self.request.body) object_id = data.get('objectID', None) if object_id == None: raise Exception("please input handlerID") sklearn_arg = data.get('sklearn', None) if not sklearn_arg: raise Exception("please input sklearn arg") ml_obj, clf = MlObject.get_MlObject_by_obj(object_id) set_parameter_from_sklearn_object(clf, ['alpha', 'fit_intercept', 'normalize', 'copy_X', 'max_iter', 'tol', 'solver', 'random_state'], sklearn_arg) MlObject.save_MlObject_by_obj_id(clf, object_id) else: raise Exception("please input arguments") return except Exception as e: self.write(str(e))
def post(self): try: if self.request.body: json_data = json.loads(self.request.body) Ridge_argstr = ['alpha','fit_intercept', 'normalize', 'copy_X', 'max_iter', 'tol', 'solver', 'random_state'] sklearn_arg = regqeust_arg_to_sklearn_arg(json_data['sklearn'], Ridge_argstr) ridgeHander = Ridge(**sklearn_arg) else: ridgeHander = Ridge() mlobj = MlObject.create_MlObject_by_obj(ridgeHander) result = {} result['objectID'] = mlobj.object_id self.write(json.dumps(result)) except Exception as e: self.write(str(e))
def get(self): try: object_id = self.get_argument('objectID', None) if object_id == None: raise Exception("please input objectID") ml_obj, clf = MlObject.get_MlObject_by_obj(object_id) sklearn_arg = self.get_argument('sklearn', None) if not sklearn_arg: raise Exception("please input sklearn arg") sklearn_arg = sklearn_arg.split(",") result = get_parameter_from_sklearn_object(clf, ['alpha', 'fit_intercept', 'normalize', 'copy_X', 'max_iter', 'tol', 'solver', 'random_state'], sklearn_arg) self.write(json.dumps(result)) return except Exception as e: self.write(str(e))