Dealing with categorical features in machine learning