训练代码:
from numpy import loadtxt
from xgboost import XGBClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
dataset = loadtxt('data.csv', delimiter=",")
X=dataset[:,0:8]
Y=dataset[:,8]
seed = 7
test_size = 0.33
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=test_size, random_state=seed)
model = XGBClassifier()
eval_set = [(X_test, y_test)]
model.fit(X_train, y_train, early_stopping_rounds=10, eval_metric="logloss", eval_set=eval_set, verbose=False)
model.get_booster().save_model('xgb.h5')
训练成功后保存一个模型文件用于后面的部署,部署采用flask
from numpy import loadtxt
from xgboost import XGBClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from flask import Flask, render_template, request, redirect, url_for, flash, jsonify
import numpy as np
import xgboost as xgb
new_model = xgb.Booster(model_file='xgb.h5')#加载模型
app = Flask(__name__)
@app.route('/predict', methods=['POST'])
def xg_predict():
if request.method == 'POST':
get_input=request.get_json()['input']#从请求中获取数据
get_input=xgb.DMatrix(get_input)#转换成xg的数据格式
predicted = new_model.predict(get_input)#预测
print(predicted)
return jsonify(predicted)#将预测结果返回给请求者
if __name__ == "__main__":
app.run(debug=True,host='0.0.0.0')
数据可以自己制造,利用这个制造就行
部署后就可以远程请求了