in sagemaker_notebook_instance/containers/model/entry_point.py [0:0]
def predict_fn(request, model_assets):
print('making batch')
request = [request]
print('extracting features')
numerical_features, categorical_features, textual_features = extract_features(
request,
model_assets['numerical_feature_names'],
model_assets['categorical_feature_names'],
model_assets['textual_feature_names']
)
print('transforming numerical_features')
numerical_features = model_assets['numerical_transformer'].transform(numerical_features)
print('transforming categorical_features')
categorical_features = model_assets['categorical_transformer'].transform(categorical_features)
print('transforming textual_features')
textual_features = model_assets['textual_transformer'].transform(textual_features)
# concat features
print('concatenating features')
categorical_features = categorical_features.toarray()
textual_features = np.array(textual_features)
textual_features = textual_features.reshape(textual_features.shape[0], -1)
features = np.concatenate([
numerical_features,
categorical_features,
textual_features
], axis=1)
print('predicting using model')
prediction = model_assets['classifier'].predict_proba(features)
probability = prediction[0][1].tolist()
output = {
'probability': probability
}
return output