.. image:: pyeco.png :height: 20 :alt: Economie :target: http://www.xavierdupre.fr/app/ensae_teaching_cs/helpsphinx/td_2a_notions.html#pour-un-profil-plutot-economiste .. image:: pystat.png :height: 20 :alt: Statistique :target: http://www.xavierdupre.fr/app/ensae_teaching_cs/helpsphinx/td_2a_notions.html#pour-un-profil-plutot-data-scientist .. _l-ml2a-categories: Variables catégorielles +++++++++++++++++++++++ Les variables catégorielles sont plus ou moins difficiles selon que le nombre de catégories est grand ou pas. S'il est petit, les transformations classiques type `OneHotEncoder `_ sont suffisamment performantes. Lorsque le nombre n'est pas très grand, il faut nécessairement réduire le nombre de catégorie en utilisant un `BaseNEncoder `_ ou un `HashingEncoder `_. Si le nombre est très grand, il peut arriver que ce soit ce qui est attendu comme l'ensemble des produits d'un site de vente en ligne ou un grand nombre quelque peu surfaits et dû en grande partie à erreurs de saisie. Par exemple pour une colonne qui contient le nom d'une ville, *Charleville* et *Charleville-Mézières* désignent la même ville et devraient être rangés dans la même catégorie. Néanmoins, le fait de faire la différence est peut-être intéressant, cela veut peut-être dire que la personne vit à Mézières plutôt qu'à Charleville. Pour tenir compte des ces similarités au niveau caractères, le module :epkg:`dirty-cat` propose le `SimilarityEncoder `_ qui est particulièrement efficace pour gérer ces erreurs ennuyeuses mais contenant de l'information. (à venir) * Corrélation entre des variables catégorielles * `SimilarityEncoder `_. *Notebooks* * `Hashing et catégories `_ * :ref:`td2asentimentanalysisrst` (:ref:`correction `) *Lectures* * :ref:`Tranformer les variables catégorielles et contrastes ` * :ref:`blog-dirty-cat` * `Corrélations entre des variables catégorielles `_ * `Exemple de traitement d'une variable catégorielle `_ * `Enoncé d'examan autour des variables catégorielles `_ et sa :ref:`corection ` * `Visiting: Categorical Features and Encoding in Decision Trees `_ * `Similarity encoding for learning with dirty categorical variables `_ * `CatBoost vs. Light GBM vs. XGBoost `_ * `Similarity encoding for learning with dirty categorical variables `_ * `Benchmarking Categorical Encoders `_ *Modules* * `scikit-learn `_ * `category_encoders `_ * `catboost `_ * :epkg:`dirty-cat`