Я хочу создать веб-сервис на Java (Spring Boot), соединяющийся с веб-сервисом, написанным на Python.Целью веб-службы является оценка отправленных данных с помощью модели логистической регрессии.
Вот код .pkl файла для создания модели
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_auc_score
from sklearn.externals import joblib
df = pd.read_csv('Indicators_Data.csv')
df = df.drop(columns = 'Id')
logReg = LogisticRegression()
X = df.iloc[:,0:4]
y = df.iloc[:,-1]
model = logReg.fit(X, y)
model_columns = list(X.columns)
joblib.dump(model_columns, 'PickledModelColumns.pkl')
joblib.dump(model, 'PickledModel.pkl')
А вот код службы.
from flask import Flask, jsonify, request
import pandas as pd
from sklearn.externals import joblib
app = Flask(__name__)
@app.route('/predict', methods=['POST'])
def predict():
json_ = request.json
query = pd.DataFrame(json_)
query = query.reindex(columns=model_columns)
print(query)
prediction = list(lr.predict(query))
return jsonify({'prediction': str(prediction)})
port=33333
lr = joblib.load("PickledModel.pkl")
model_columns = joblib.load("PickledModelColumns.pkl")
app.run(port=port, debug=True)
Я ожидал получить список '0 и 1 путем запроса localhost: 33333 / прогнозируемый адрес (методом POST) со следующим оператором:
[
{"CR" : 1, "CRFR" : 2", "DR" : 1, ROA" : 1},
{"CR" : 1, "CRFR" : 2", "DR" : 1, ROA" : 1}
]
К сожалению, Почтальон возвращает мне следующую ошибку: https://pastebin.com/P4x3LGbN
ValueError: Found array with 0 sample(s) (shape=(0, 4)) while a minimum of 1 is required.
Образцы данных, которые я использую:
Id CR ROA DR CRFR Default
0000001 1.168224299 0.309421478 0.09498829 0.753739019 0
0000002 1.936108422 0.311411939 0.554296875 1.466840949 0
0000003 2.06185567 0.48144933 0.70237581 1.252589278 1
0000004 2.176278564 0.467439709 0.535483871 1.490656801 0
0000005 1.901140684 0.4932112 0.626625387 0.86784981 1
0000006 2.083333333 0.441488442 0.578110384 1.501665 0
0000007 2.055498458 0.414311829 0.598285714 1.227867934 0
0000008 2.014098691 0.730232775 0.657542458 1.356928097 0
0000009 1.84501845 0.520918615 0.663868987 1.133868635 0
0000010 1.958863859 0.365323047 0.712052117 1.570091087 0
Я думал, что X и y не имеют одинаковую длину, но я проверил это, и они есть.У кого-нибудь есть идеи, что тут может быть не так?