in ml/classifiers.py [0:0]
def preprocessing(self, data: Dict[str, Any]):
"""
Preprocess python dict object for prediction
Parameters
----------
data: dict
dictionary of data to predict
"""
categorical = [x for x in self.categorical if x != 'risk']
# log.info(f"Categorical: {categorical}")
# for category in categorical:
# if category not in list(data.keys()):
# data[category] = None
for key, value in data.items():
if type(value) == str:
data[key] = value
data = pd.DataFrame(data, index=[0])
# fill missing values
# data.fillna(self.values_fill_missing)
le = self.label_encoders
data = data.dropna()
# convert categoricals
for category in categorical:
failed_trials = []
try:
data[category] = le[category].transform(data[category])
except KeyError as e:
failed_trials.append(e)
log.debug(f"An error occured: {str(e)}")
if len(failed_trials) >= 3:
raise BadRequest(failed_trials)
else:
data[e] = None
return data