from process_data import process_input # For logging import logging import traceback from logging.handlers import RotatingFileHandler from time import strftime, time app = Flask(__name__) xgb_ClaimInd_model = XGBClassifier() booster = xgb.Booster() booster.load_model('models/xgb_ClaimInd_model') xgb_ClaimInd_model._Booster = booster xgb_ClaimInd_model._le = LabelEncoder().fit([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) # Logging handler = RotatingFileHandler('app.log', maxBytes=100000, backupCount=5) logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) logger.addHandler(handler) @app.route("/") def index(): return "RenataTNT API" @app.route("/predict", methods=['POST']) def predict():
for col in cols: test[col] = test[col].astype('str') test[col] = LabelEncoder().fit_transform(test[col]) for col in cols[:4]: test[col] = test[col].astype('category') test[col] = LabelEncoder().fit_transform(test[col]) bar.progress(90) #Normalization latest_iteration.text('Normalization...') test.loc[:, cols] = objects['scaler'].fit_transform(test[cols]) bar.progress(100) latest_iteration.text('') st.success('Done!') st.write('## Classification ') st.write(test.columns) #Predictive Modeling test = test[objects['features']] model._le = LabelEncoder().fit(['0', '1']) y_pred = model.predict(test) ds['clicked'] = y_pred st.write('10 first rows') st.dataframe(ds[:20]) st.write('Click Through Rate=(Total Clicks on Ad) / (Total Impressions)') st.write('CTR= ', ds['clicked'].mean())