We have a supervised multi-class classification problem where we need to predict two targets for each sample: 'brand' and 'category'. Our features are 'shop_name' which can be any proper noun and several categorical features ('shop_type', 'building_type').
In the training data, 'brand' is not always present, but 'category' is always present. When brand is present, the category is directly dependent on it. For e.g. If the brand is 'Snickers', the category is already known to be 'Foodstuff'. In other cases, the category has to be determined from the input features.
Here is a representative example of our training data:
shop_name | shop_type | building_type | brand | category |
---|---|---|---|---|
Snickers Ltd | huge | Snickers | Foodstuff | |
Acme Intl | office stationary | medium | Office Equipment | |
Davidoff cigars | cigarette | big | Davidoff | Smoking |
Sample Company | car repair | small | Automobile |
Features: shop_name (free text), shop_type (categorical - 100 types), building_type (categorical - 20 types)
Target: brand (categorical - 2500 brands), category (categorical - 250 categories)
How should we structure our classification algorithm to determine brand and category? We have a well known list of about 2500 brands that we are interested in.