4 ways to encode categorical features with high cardinality