juba / rainette

R implementation of the Reinert text clustering method
https://juba.github.io/rainette/
53 stars 7 forks source link

Coefficient de contingence #15

Closed jackobenco016 closed 2 years ago

jackobenco016 commented 2 years ago

Bonjour,

J’ai revu votre description de la classification descendante hiérarchique pour la méthode reinert.

Cependant, je ne comprends pas le passage consistant à filtrer les termes à l’aide du coefficient de contingence (cc_test, argument de la fonction rainette).

N'est-il pas possible que cc_test soit supérieur à 0.3 et que le terme ne soit surreprésenté dans aucun des 2 groupes ? Si oui, comment gérez-vous cela ?

Merci

juba commented 2 years ago

La valeur de 0.3 est donnée et justifiée par Max Reinert dans l'article de 1983 :

http://www.numdam.org/item/CAD_1983__8_2_187_0.pdf

Plus précisément dans les sections 2.4 et 4.

Il est cependant possible effectivement de faire varier ce seuil en jouant sur l'argument cc_test si vous souhaitez tester d'autres valeurs.

jackobenco016 commented 2 years ago

Indépendamment de la constante choisie notons la c. Si cc_test est supérieure à c, il est tout de même possible que le terme en question ne soit pas surreprésenté n'est-ce pas ?

En effet, il se peut que le coefficient de contingence soit élevé (et donc X^2 aussi) car l'effectif observé pour le terme j dans l'une des 2 classes est très faible comparé l'effectif attendu en cas d'indépendance. Dans ce cas, le terme j est sous-représenté, n'est-ce pas ?

Si je n'ai pas tort, comment gérez-vous cette situation ?

Merci pour votre réponse

juba commented 2 years ago

La sélection des termes est implémentée dans la fonction select_features : https://github.com/juba/rainette/blob/96d367ac43c1c3ecdd6fd14c4a42ddcc2d6a71af/R/rainette.R#L293

En gros le processus est le suivant :

Si la valeur du cc pour un terme donné est inférieure à cc_test, on conserve ce terme dans les deux groupes. Si elle est supérieure à cc_test, on ne conserve le terme que dans le groupe où il est sur-représenté (où les effectifs observés du terme sont supérieurs aux effectifs attendus), et on le supprime du groupe de l'autre groupe, où il est donc sous-représenté.

Est-ce que cela répond à votre question ?

jackobenco016 commented 2 years ago

Oui, je vous remercie pour votre réponse très claire.