展開までのxgboostモデルのトレーニング

トレーニングコード:


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')

トレーニングが成功したら、後で展開するためにモデルファイルを保存し、展開にフラスコを使用します


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')


     

データは単独で作成できます。この作成を使用するだけです。

デプロイ後、リモートでリクエストできます

おすすめ

転載: blog.csdn.net/zhou_438/article/details/111568380