I'm working through CatBoost quality benchmark problems (here). I'm particularly intrigued by the methodology adopted to convert categorical features to numerical values as described in the comparison_description.pdf (here). What is the reasoning behind this approach? Is this methodology model agnostic? What are the advantages and disadvantages?