Find maximum "k" ensuring that items with each cluster belong to only category. Each cluster would then be used as inputs to separate classification models. Building such smaller models helps in keeping things smaller and faster when a large number of categories/items makes training/testing very difficult