in machine-learning/container/scripts/predictor.py [0:0]
def transformation():
"""
Do an inference on a single batch of data. In this sample server, we take
data as CSV, convert it to a pandas data frame for internal use and then
convert the predictions back to CSV (which really just means one prediction
per line, since there's a single column.
"""
data = None
# Convert from CSV to pandas
if flask.request.content_type == 'text/csv':
data = flask.request.data.decode('utf-8')
s = StringIO(data)
data = pd.read_csv(s, header=None)
print('data.head()',data.head())
print('data.columns',data.columns)
data = transform_data(data)
else:
return flask.Response(response='This predictor only supports CSV data',status=415, mimetype='text/plain')
print('Invoked with {} records'.format(data.shape[0]))
# Do the prediction
predictions = ScoringService.predict(data)
# Convert from numpy back to CSV
out = StringIO()
pd.DataFrame(predictions).to_csv(out, header=False, index=False)
result = out.getvalue()
return flask.Response(response=result, status=200, mimetype='text/csv')