def operation(): result = int(request.form['value']) op = Operation() op.v1 = int(request.form['v1']) op.v2 = int(request.form['v2']) op.timeStamp = float(request.form['timeStamp']) if op.check(result): regr = joblib.load('regr.pkl') op.predict(regr) op.ellapsed = time() - op.timeStamp op.save() return render_template("resultSimple.html", myOp = op) else: return render_template("form.html", myOp = op)
def train(): global nObservations records = [] for v in collection.find({}): op = Operation() op.v1 = v["v1"] op.v2 = v["v2"] op.ellapsed = v["ellapsed"] records.append(op.toTuple()) features = ["v1", "v2", "isEven", "isZero", "nDigits", "carryOn"] target = "ellapsed" labels = features + [target] df = pd.DataFrame.from_records(records, columns=labels) print("Before filtering ", df.shape) df = df[df.ellapsed < 10] print("After filtering ", df.shape) if df.shape[0] <= nObservations: return nObservations = df.shape[0] params = { 'n_estimators': 500, 'max_depth': 4, 'min_samples_split': 2, 'learning_rate': 0.01, 'loss': 'ls' } regr = ensemble.GradientBoostingRegressor(**params) X = df[features] y = df[target] regr = regr.fit(X, y) prediction = regr.predict(X) print("Error", mean_squared_error(prediction, y)) joblib.dump(regr, 'regr.pkl', protocol=2) print("DUMP") return df.shape[0]