예제 #1
0
def train(Id):
    Id = Id
    content = get_data_sql(Id)
    #param = content.get('parameteres')
    algo = content.get('algorithmes')
    req_data = request.json
    path_db = req_data['path_db']  #lib/data/train.csv"
    cdir = os.path.dirname(__file__)
    file_res = os.path.join(cdir, path_db)
    data = pd.read_csv(file_res)
    y = data[data.columns[-1]]
    X = data.drop(data.columns[-1], axis=1)
    if not os.path.exists('models'):
        os.mkdir('models')

    nom = algo + str(Id)
    score, X, y = build_model(True, X, y, 0.3, nom, algo)
    mydb = connect_to_mysql()
    path = 'models/' + nom + '.pkl'
    mycursor = mydb.cursor()
    sql = "UPDATE MODELS SET path='" + path + "' where id=" + str(Id)
    mycursor.execute(sql)
    mydb.commit()
    post_data = {}
    post_data['Success'] = 'True'
    post_data['precision'] = str(score)
    return str(post_data)
예제 #2
0
def predict(Id):
    Id = Id
    req_data = request.json
    path_db = req_data['path_db']
    content = get_data_sql(Id)
    #split = content.get('parameteres')
    path_pkl = content.get('path')
    algo = content.get('algorithmes')
    cdir = os.path.dirname(__file__)
    file_res = os.path.join(cdir, path_db)

    data = pd.read_csv(file_res)
    X = data
    y = None
    nom = algo + str(Id)
    #On applique le pre-traitement
    score, X, y = build_model(False, X, y, 0.2, nom, algo)

    loaded_model = pickle.load(open(path_pkl, 'rb'))
    pred = loaded_model.predict(X)
    post_data = {}
    post_data['Success'] = 'True'
    post_data['prediction'] = pred
    return str(post_data)
예제 #3
0
def split():
    req_data = request.args
    model_name = req_data['split']
    print(model_name)
    build_model(float(model_name))
    return 'sucess'